SK/CZ free software community

August 27, 2010

Samuel Kupka

August 25, 2010

Samuel Kupka

August 24, 2010

Samuel Kupka

August 23, 2010

Samuel Kupka

July 30, 2010

Jaroslav Petráš

Ako fotí Nokia N900? Zopár fotiek z potuliek

Fotky boli zmenšené, inak žiadne ďalšie manipulácie či úpravy. Ku kvalite fotografií sa nebudem vyjadrovať, veď čo sa už len dá zachytiť cez tú "štrbinu" ;-) Zase na druhej strane, telefón, či skôr vreckový počítač si človek nekupuje primárne na fotenie.

by administrator@cyberasylum.eu (Jaroslav Petráš) at July 30, 2010 15:06

July 24, 2010

Samuel Kupka

[blackhole.sk] Gadžety - TP-LINK TL-WR1043ND

Naposledy som predstavil dosku RouterStation Pro, ktorá je určená (výkonom, ale aj cenou) skôr na "profesionálne" nasadenie. Niekedy ale človek potrebuje niečo lacné, no stále dostatočne výkonné a konfigurovateľné. A práve takýto router predstavím dnes.

July 24, 2010 16:25

July 05, 2010

Adam Sloboda

Google paranoja a záloha web 2.0

Dnes som sa trochu hrabal v službách Google a natrafil som na neznámu službu Google Bookmarks. Nič nezvyčajné, keby boli bookmarky prázdne, no zrejme koncom februára a v marci sa mi tam neznámym spôsobom podarilo niečo popridávať.

Pozitívne na tej službe je, že vľavo je odkaz na Web History, kde som si skontroloval, že ukladanie všetkých údajov by malo byť vypnuté.

Zároveň mi teda napadlo, že by som si mal zálohovať bookmarky, ktoré som si vytvoril na del.icio.us, a vôbec aj ďalších služieb, kde mám aspoň relatívne cenné dáta.

last.fm

Začnem teda od konca, kedy som sa po zložitom hľadaní dopracoval k užitočnej utilite lfmCOL.pl - last.fm Data Collector.

Použitie je veľmi jednoduché, stačí nahradiť USER prihlasovacím menom:

perl lfmCOL.pl -xmlfile=myLovedTracks.xml method=user.getLovedTracks user=USER
# Collect your complete scrobbling history:
perl lfmCOL.pl -xmlfile=myRecentTracks.xml method=user.getRecentTracks limit=50 user=USER
# Collect your complte music library:
perl lfmCOL.pl -xmlfile=myMusicLibrary.xml method=library.getTracks user=USER

YouTube

Tu ma zaujímajú iba obľúbené videá, ale dopracovať sa k správnemu spôsobu dolovania dát chvíľu trvalo.

API poskytuje XML výstup na adrese http://gdata.youtube.com/feeds/api/users/USER/favorites?max-results=50&start-index=1. Počiatočný index musí byť 1 a potom môžeme pridávať po 50. Počet som si musel zistiť z profilu.

ČSFD

Tu nie je žiadne API, ale dá sa stiahnuť jednoducho HTML výstup, ktorý obsahuje komentáre a ohodnotenia. Keď zistíme počty, tak je to pomerne jednoduché sťahovanie.

del.icio.us

Úplne bez problémov výstup: http://delicious.com/settings/bookmarks/export

Záver

V závere sa podelím o škaredé kombinácie Ruby/shell skriptov, ktoré sú pre mňa dostatočné: source tarball.

Ešte by som spomenul, že napriek existencii Data Liberation Front, ktorý má pomáhať s extrakciou dát uložených v aplikáciách od Google, zrejme nie je možné nijak dostať z Google Reader nič okrem zoznamu feedov.

This blog post was created on 2010-07-05 at 18:33 and last modified on 2010-07-05 at 18:35 by disorder. It is tagged with backup, google, paranoia, web2.0.

by disorder at July 05, 2010 16:33

July 03, 2010

Adam Sloboda

Miniprojekt: Kalendár a feedy seriálov

Začalo sa to pred pár mesiacmi keď vysielanie seriálov bolo sporadické a tak som vytvoril skript TV series episode announcer na vytvorenie feedov, ktoré pridávajú novú položku do RSS v deň vysielania.

Teraz som ho vylepšil tak, že sa dáta aktualizujú iba cez cron. Tiež som pridal aj export do iCalendar formátu a malé webové UI. Je to trochu ušité na mieru serveru, kde beží, ale zatiaľ to funguje bezchybne.

Feedy by mali byť o niečo spoľahlivejšie a kalendár funguje dobre v Google Reader aj IceOwl 0.9 (Debian verzia niektorej Mozilla aplikácie).

Aplikácia je prístupná tu: serialy.disorder.sk

This blog post was created on 2010-07-03 at 14:54 by disorder. It is tagged with project.

by disorder at July 03, 2010 12:54

June 24, 2010

Peter Oslanec

Sľub 28.

Využívanie v maximálnej miere voľne dostupného softvéru vo verejnej správe.

June 24, 2010 12:22

June 23, 2010

Adam Sloboda

Malé pojednanie o browseroch

Frustrácia z niekoľkomesačného zanedbávania novej verzie browseru Opera (relevantná platforma je Linux) som sa pokúšal nahradiť ho inými. Týmto sa budem snažiť spraviť zoznam nedostatkov z pohľadu skúseného používateľa Opery, ale taktiež úspešné čiastočné riešenia nastavenia ovládania v iných browseroch.

Najväčšou prekážkou je výnimočná nastaviteľnosť klávesových skratiek v Opere. Dá sa povedať, že iné browsery to umožňujú iba programovaním rozšírení. Testoval som browser Chrome a FireFox. Epiphany vypadol hneď po spustení, pretože bolo jasné, že na moje náročné požiadavky nemá.

Chrome/Chromium

Chrome je mnohými vychvaľovaný, ale pre mňa obrovské sklamanie. Aj keď som čiastočne zvyknutý na množstvo pamäte, ktoré dokáže browser naleakovať, tak na Chrome to nemá. Každý tab využíva desiatky MiB pamäte a Extensions nie sú zadarmo (vo verzii 5 je to päť a viac MiB, vo verzii 6 je to desať a viac). Na obranu treba spomenúť, že vo verzii 6 sa zrejme zlepšilo zdieľanie dát medzi tabmi pre rovnaký server.

Potvrdilo sa mi, že Chrome je užitočný len ako obal pre aplikácie Google, teda najmä GMail. Mierným sklamaním bolo nie celkom dokonalé správanie Facebooku, pri update news feedu sa nejak sekla animácia a update nikde.

Najväčším nepriateľom sú jeho vývojári (alebo skôr nariadenia od Google?), kam sa má/nemá užívateľské rozhranie uberať.

  • Napriek veľkej kritike si presadili zmenu address baru a odstránili z adresy prefix protokolu http.
  • Odmietajú nastaviteľnosť skratiek.
  • Odmietajú skratku / pre vyhľadávanie. Dôvod je celkom zrejmý, no napriek tomu som ho nikde nevidel verejne priznaný. Je to dôvod celkom prozaický: konflikt s Google aplikáciami.

Riešenia:

  • Chrome Keyconfig – umožňuje nastaviť niektoré skratky, ale ich funkčnosť je obmedzená v chrome: taboch a zrejme aj na stránkach s rozšíreniami. Niektoré skratky nie je možné nahradiť a niektoré nefungujú uspokojivo. Celkom dobre hodnotím z/x na back/forward a 1/2 na pohyb po taboch, no oproti zabudovaným skratkám nepreskakuje zatvorené “pinned” taby. Ctrl+N pre nový tab funguje, ale address bar nedostáva focus. Ctrl+. pre zastavenie loadovania a Ctrl+Z pre znovuotvorenie zatvoreného tabu sú teda jediná plne funkčné klávesy. / nie je možné uspokojivo nahradiť a taktiež nie je možné nastaviť F8 na focus pre address bar.
  • FlashBlocku nemám čo vytknúť, jeho úloha je jednoduchá a splnená.
  • RSS Subscription Extension – tu niet veľmi čo dodať.
  • Ovládanie tabov. Obrovský problém, čiastočne riešiteľný kombináciou rozšírení (vrátane spomenutého Keyconfig). Ďalšie sú Recent Tabs, Sexy Undo Close Tab, Tabs Plus. Podarilo sa mi teda napodobniť Operu, ale Ctrl+Tab nie je možné nahradiť a je teda nutné zvyknúť si na inú skratku (vývojári odporúčajú Ctrl+`).
  • Blokovanie je možné rôznymi AdBlock rozšíreniami, nie sú veľmi jednoduché na ovládanie a využívajú desiatky MiB pamäti.

Príjemné prekvapenia:

  • Rozšírenie Google Dictionary príjemne zjednodušuje vyhľadanie definície slova.
  • Pinned taby je možné zavrieť, čo ušetrí mnoho pamäte a taktiež týmto spôsobom je možné uvoľniť leaknutú pamäť (ahoj Facebook, ale časom papkajú aj iné taby). Tiež sa mi páči, že tab je užší a obsahuje len favicon, no vo výnimočných prípadoch je to neželané.

Firefox

Firefox je jedno veľké príjemné prekvapenie. Naozaj sa im podarilo prekonať lenivosť odozvy a nároky na pamäť. Ale možno je to relatívne nezašpineným profilom. Skutočnosťou ostáva, že Firefox je dnes špičkou v spravovaní pamäte, dôsledne si po sebe upratuje.

Rozšírenia oproti Chrome majú zrejme celkom zanedbateľné nároky. Zrejme je to kvôli tomu, že celé UI pracuje rovnakým spôsobom.

Aby som teda niečo aj vytkol, možnosť nastavenia pozície address baru pod taby vývojári celé roky ignorujú. Nie je to show-stopper, ale zamrzí to.

Ešte spomeniem, že teoreticky nastavovanie skratiek by malo byť uľahčené rozšírením Keyconfig, no údajne nové verzie nepodporuje (3.5.9+).

Základná zostava rozšírení:

  • All-in-One Sidebar
  • FlashBlock
  • TabMixPlus
  • Single Key Tab Switch (1/2 pre prepínanie tabov) ručne rozšírené o z/x back/forward.

Previazanosť rozšírení s UI je bezchybná, prejdem k neuspokojeným požiadavkám:

  • Ctrl+Z pre znovuotvorenie zatvoreného tabu: nemožné. Dôvodom je konflikt s Undo.
  • URL z X selection (prostredné tlačidlo myši) sa otvára v tom istom tabe a zrejme nie je dostupné riešenie.
  • All-in-One sidebar sa zobrazuje popri taboch, takze zužuje priestor keď sa otvorí. Riešenie možno kedysi existovalo, ale podľa uvedeného postupu som sa nikam nedostal.
  • Location bar (podľa terminológie Firefoxu) sa nedá presunúť pod taby, ale existuje hack na jeho presunutie na samotný vrch aplikácie. Riešenie pekné, ale na tom mieste očakávam menu.
  • F8 pre nastavenie focusu address baru. Zrejme nemožné.
  • Ctrl+. pre zastavenie loadovania. Pravdepodobne možné rozšírením, ale nevýhody prevážili natoľko, že som nemal motiváciu.
  • Ctrl+N pre nový tab. Neviem ako je to s konfliktmi skratiek, takže možno to tiež pôjde cez rozšírenie.
  • Istá lenivosť UI pretrvala pri vykresľovaní stránky. Má to dva dôsledky: v tom čase nereaguje na začatie vyhľadávania v stránke a taktiež zbytočne sťahuje dáta. Rozšírenie ImgLikeOpera je dobrým doplnením, ale pokiaľ si želám sťahovať všetky obrázky, tak mi nepomôže.

Opera

Či už nová alebo stará opera, všetky majú tie isté výhody. Odozva UI je svižná, klávesové skratky rozumné a v prípade potreby úplne nastaviteľné. Nie sú potrebné žiadne rozšírenia, čoho príjemným dôsledkom je, že aj na novom počítači môžeme byť v priebehu sekúnd ako doma.

Samostatnou kapitolou je agresívna cache, ktorá je v naprostej väčšine prípadov plusom. Dostupné nastavenia Fit to width, aplikovanie rôznych štýlov na stránku (napr. high contrast white on black) a vypnutie načítania obrázkov. Taktiež je zabudovaná čítačka feedov a Turbo, ktoré má zrýchliť načítanie pri pomalých pripojeniach.

V novej verzii pribudol zabudovaný Flash blocker a podpora HTML5 technológií (vrátane WebM a tiež podpora H.264 cez GStreamer pluginy). Obrovskou nevýhodou je zatiaľ zanedbávanie problémov Unix verzie.

Pri tej zásadnej zmene UI boli vykonané i zmeny, ktoré mi nie sú po chuti. Kedysi bolo napríklad uvedené meno súboru v kontextovom menu obrázku, to v novej verzii chýba (ale chýba to aj iným browserom). Tiež mi prekáža “efektné” vysúvanie vyhľadávacieho políčka (doplnenie: opera:config#UserPrefs|EnableUIAnimations), pretože posúva aj stránku (doplnenie: toto sa dá zmeniť v Appearance-Toolbars cez zobrazenie všetkých a potom nastaviť vyhľadávaniu aby bolo dole). Dúfam, že situácia s leakovaním (v predchádzajúcej verzii asi najmä javascriptom) bola zlepšená. z

Záver

Pre pokročilého používateľa Opery je prechod bez škrípania zubov nemožný, ale Firefox je solídnou alternatívou. Opera má svoje problémy, ale svojou nastaviteľnosťou a všetkými zabudovanými a vyladenými službami je jedinečná. Chrome je jednoznačný prepadák najmä kvôli náročnosti na pamäť. Všetky ostatné browsery je nutné dlho nastavovať, aby boli aspoň čiastočne použiteľné, ale Firefox dokáže Operu imitovať lepšie.

This blog post was created on 2010-06-23 at 09:25 and last modified on 2010-07-05 at 10:29 by disorder. It is tagged with browser, chrome, firefox, opera, rant.

by disorder at June 23, 2010 07:25

June 22, 2010

Jaroslav Petráš

Nokia N900 a mobilný prehliadač pre web - Mozilla Fennec

nokia-n900-mozilla-fennec

Pred nedávnom som vyskúšal mobilnú verziu webového prehliadača (web browser) postaveného na jadre Gecko, zvaného Fennec na mojej N900. So svojimi dojmami a postrehmi by som vás chcel oboznámiť v tomto zápisku. Mimochodom fennec je druh malej líšky s dlhými ušami.

by administrator@cyberasylum.eu (Jaroslav Petráš) at June 22, 2010 23:50

June 09, 2010

Jaroslav Petráš

June 07, 2010

Samuel Kupka

June 03, 2010

Samuel Kupka

May 29, 2010

Jaroslav Petráš

Joomla - narušenie XHTML validity rozšírením Shadowbox Media Viewer

Joomla and Shadowbox Media Viewer

Veľmi sa mi páči rozšírenie Shadowbox Media Viewer no všimol som si že narušilo XHTML validitu mojej prezentácie, čo pre mňa predstavuje obrovský principiálny problém. Riešenie je však veľmi jednoduché.

by administrator@cyberasylum.eu (Jaroslav Petráš) at May 29, 2010 11:15

May 27, 2010

Jaroslav Petráš

Užitočné rozšírenia pre Google Chrome, alebo Chromium

Chromium

Prednedávnom som sa rozhodol ukončiť svoju každodennú púť webom s prehliadačom Mozilla Firefox. Presnejšie Minefield, kedže sa jednalo o každodenne aktualizovanú verziu z nightbuildov. Mojím novým prehliadacím prostriedkom sa stalo Chromium. (čo je to chromium môžete zistiť tu: code.google.com/intl/en/chromium/). Ohnivá líška je však známa tým že u ľudí vyvoláva závislosť na rozšíreniach a inak to nie je ani v mojom prípade. No tento problém sa mi podarilo celkom úspešne vyriešiť.

by administrator@cyberasylum.eu (Jaroslav Petráš) at May 27, 2010 17:49

May 24, 2010

Jaroslav Petráš

Foto - rozobratý HP Pavilion dv6000

hardware

Našiel som fotky z minulého roku keď som menil teplovodivú pastu v laptope HP Pavilion rady dv6000.

by administrator@cyberasylum.eu (Jaroslav Petráš) at May 24, 2010 20:57

Joomla - užitočné rozšírenia doplnkov pre programátora

joomla tinymce geshi


Rozšírenia ktoré budem opisovať v tomto zápisku sú rozšíreniami pre doplnky redakčného systému Joomla. Konkrétne sa jedná o preelementfix, čo je zásuvný modul (plugin) pre TinyMCE (WYSIWYG editor). Vhodný je najmä pre programátorov nakoľko odstraňuje tvrdohlavosť TinyMCE pri úprave vzorky predformátovaného textu uvádzaného v (X)HTML elemente <pre></pre>. Spomínaná vzorka predformátovaného textu je častokrát kód, alebo skript napísaný v programovacom jazyku ktorý má svoju syntax. Jej farebné zvýraznenie nám zabezpečí doplnok Code Highlighter ktorý využíva GeSHi (Generic Syntax Highlighter). Tento doplnok sa štandardne nachádza v balíku redakčného systému Joomla, avšak dodávatel riadne osekal množstvo podporovaných jazykov a zameral sa iba na pár vyvolených, súvisiacich s web technológiami. Mojim cieľom bolo napraviť toto nešťastné rozhodnutie a zároveň odstrániť všeobecný problém s interpretáciou ampérsandu, ktorý vzniká pri špecifickej kombinácii TinyMCE a GeSHi.

by administrator@cyberasylum.eu (Jaroslav Petráš) at May 24, 2010 07:53

May 12, 2010

Samuel Kupka

[blackhole.sk] Gadžety - Ubiquity RouterStation Pro

Raz za čas sa mi do rúk dostane nejaká zaujímavá alebo užitočná hračka. Niektoré z nich som sa rozhodol postupne priblížiť aj cteným čitateľom môjho blogu. Tentokrát pôjde o dosku od spoločnosti Ubiquity, ktorá v sebe za veľmi príjemnú cenu skrýva pozoruhodný výkon.

May 12, 2010 16:15

May 08, 2010

Samuel Kupka

[blackhole.sk] Customizácia Tiny Core Linux

Krátke pojednanie o tom, ako mi Tiny Core Linux zjednodušil prácu a urobil život krajším.

May 08, 2010 03:50

May 01, 2010

Tomáš Križalkovič

Ako vrátiť ovládacie prvky okna napravo - Lucid Lynx

Ako som sa pôvodne dočítal, malo sa jednať o veľmi jednoduchú procedúru. To vo mne evekovovalo pocit, že to bude možné vyklikať v nastaveniach témy. Po niekoľko minútovom hľadaní som bohužial musel siahnuť po google a ten mi poradil.

Najprv je potrebné spustiť gconf. Stlačíme Alt+f2, napíšeme „gconf-editor“. Potom je potrebné sa preklikať cez “/apps/metacity/general/“ k „button_layout“. Dvojklikom zmeníme hodnotu na “:minimize,maximize,close“ a zmeny by sa mali ihneď prejaviť.

Read or add comments to this article

by Tomáš Križalkovič at May 01, 2010 11:43

April 22, 2010

Samuel Kupka

April 13, 2010

Samuel Kupka

March 20, 2010

Tomáš Križalkovič

Ako si narýchlo vyrobiť bootovacie USB

Včera som zasa raz narazil na tento problém. Google našiel celú kopu zdĺhavých alebo hlúpych (usb-creator) návodov. Pre debian som našiel tento návod. To isté funguje aj pre ubuntu, avšak je potrebné stiahnuť boot.img z http://archive.ubuntu.com. Na image debianu sa zmestí netinst alebo businesscard iso. Image ubuntu ma viac ako 700MB, ciže by sa tam malo zmestiť štandardné iso.

Existuje ešte jeden spôsob ako si takéto usb vyrobiť.

wget http://archive.ubuntu.com/ubuntu/dists/karmic/main/installer-i386/current/images/netboot/boot.img.gz -O - | gunzip | dd of=/dev/sdb

Samozrejme je potrebné uviesť vhodný netboot image a disk (i386 a /dev/sdb v mojom prípade). Po nabootovaní už len stačí napísať „install“ alebo „help“. Jedná sa o jednoduchý netinstall podobný tomu, ktorý je použitý v debiane. Tento spôsob sa mi veľmi pozdáva, kedže je pomerne šetrný k zaťaženiu linky pri občasných inštaláciách.

Read or add comments to this article

by Tomáš Križalkovič at March 20, 2010 14:06

March 18, 2010

Adam Sloboda

Opera, HTML5 video a H.264

Používatelia Opery už postrehli, že pre Windows vyšla nová verzia 10.50 s podporou HTML5. Horúcou témou v tejto súvislosti je tag video a používané kodeky.

Hoci pre Unix opera nevydala ani betu, konečne sa mi podarilo v alfa verzii spojazdniť pravý YouTube s HTML5 prehrávaním. Opera používa gstreamer na dekódovanie videa, takže ak je potrebný dekodér dostupný, nie je žiaden problém s prehrávaním H.264.

Má to ešte nedostatky, ale dôležité je, že zvuk (ten hrá aj keď H.264 dekódovanie nie je dostupné) aj video sa už dá prehrať. Stačí nainštalovať gstreamer0.10-ffmpeg, nie gstreamer0.10-plugins-ugly, ako niektoré zdroje udávajú.

Vyzerá to tak, že Firefox 1) bude jediný dôležitý browser, ktorý H.264 kodek nebude podporovať. Microsoft už oznámil a predviedol 2), že nezostane pozadu za Chrome a Safari.

This blog post was created on 2010-03-18 at 16:51 by disorder. It is tagged with html5, opera, video.

by disorder at March 18, 2010 14:51

March 17, 2010

Adam Sloboda

Wikipedia maže svoje články?!

Oh, the humanity!

Zatiaľ čo sa národné wikipédie snažia násobiť svoj obsah, tá anglická v tichosti maže relevantné články. A tie praktiky. Nemám slov.

Súvisiace odkazy:

This blog post was created on 2010-03-17 at 23:27 and last modified on 2010-03-17 at 23:30 by disorder. It is tagged with cluebat, wikipedia.

by disorder at March 17, 2010 21:27

March 14, 2010

Adam Sloboda

Emacs daemon

Ako daemon už niekoľko rokov používam aj prehrávač hudby (najskôr xmms2, potom mpd), takže som si už nejakú dobu takúto funkciu želal aj pre Emacs.

Emacs od verzie 23 má plne zabudovanú podporu spúšťania ako daemon a po niekoľkých mesiacoch musím skonštatovať, že som konečne spokojný. Skúšal som rôzne riešenia v predchádzajúcich verziách, ale nepodarilo sa mi to vyladiť k mojej spokojnosti.

Teraz stručne popíšem “setup”, ktorý mi vyhovuje. Používam 2 inštancie, jednu ako oddelený mailový klient (Wanderlust) a jednu na všetko ostatné (org-mode, LaTeX, programovanie, písanie textov). Príkazy, ktoré uvediem je možné si pomocou xbindkeys nastaviť na nejakú klávesovú skratku, nebudem uvádzať svoje, pretože to nie je podstatné.

Základom je spustenie daemona a klienta k nemu (klient je len nový frame, ktorý sa môže kedykoľvek zatvoriť a daemon to neovplyvní):

alias emacsd='emacs --daemon'
alias emacs='emacsclient -c'

Dôležité je aj vedieť daemona správne ukončiť, tieto aliasy ukončujú interaktívne a neinteraktívne (bezpodmienečné ukončenie bez uloženia zmien):

alias emacs-kill="emacsclient -e \"(progn (setq desktop-save \\\"~/\\\") (save-some-buffers) (kill-emacs))\""
alias emacs-kill-9="emacsclient -e \"(progn (setq desktop-save \\\"~/\\\") (save-some-buffers) (setq kill-emacs-hook 'nil) (kill-emacs))\""

Keď už máme stále bežiaci Emacs, tak na otvorenie súboru v ňom som si vytvoril funkciu aj so skráteným názvom eo:

emacs-open() { emacsclient -e "(find-file \"$1\")'" }
alias eo=emacs-open

Na záver som aplikoval nejaký vizuálny tuning, pretože štart Emacsu v textovom režime (platí aj pre daemon) nemôže nastaviť niektoré veci týkajúce sa len Gtk+ verzie:

emacsclient -c -e '(set-cursor-color "green")' -e '(load "~/.emacs.d/tabbar.el")' -e "(set-face-font 'tooltip \"DejaVu Sans 7\")"

A nakoniec ešte spustenie samostatného Emacsu s e-mailovým klientom, ktorý nepoužíva desktop (ukladanie zoznamu otvorených bufferov, histórie, atď.):

emacs -eval '(wl)' --no-desktop

Takéto oddelenie síce má svoje nevýhody, ale naopak ak potrebujem otvárať obrovské foldery až s desaťtisícami mailov, tak časom dokáže nabobtnať a je lepšie ho ukončiť a spustiť znovu.

This blog post was created on 2010-03-14 at 21:56 by disorder. It is tagged with emacs, tips.

by disorder at March 14, 2010 19:56

March 13, 2010

Adam Sloboda

Je mi smiešno z C++

Citujem z Trip Report: March 2010 ISO C++ Standards Meeting – Removed Export Template:

For context, the only reason we’re even considering this is because Edison Design Group (EDG), the only company to ever implement export, is recommending export be removed or deprecated. Recall that back in the 1990s the committee originally voted the feature in over EDG’s objections in the first place, then in the late 1990s and early 2000s EDG graciously and gallantly went on to invest enormous effort to implement the feature in order to conform to the standard, and so the committee was loath to punish them again by now removing the feature on them. However, given the passage of time, EDG reports that their experience in the field has been that nearly no one actually uses the feature, and that it would be right (and okay with EDG) to deprecate or remove it.

This blog post was created on 2010-03-13 at 22:35 by disorder. It is tagged with c++, funny.

by disorder at March 13, 2010 20:35

March 09, 2010

Adam Sloboda

GCC a tail-call recursion

GCC so zapnutými optimalizáciami dokáže preložiť nasledujúci kód (ktorý nie je správne napísaná tail-call recursion) optimalizovane:

long fact(long x) {
    if (x <= 0)
        return 1;
 
    return x*fact(x-1);
}

Výsledok:

0000000000400494 <fact>:
  400494:	b8 01 00 00 00       	mov    $0x1,%eax
  400499:	48 85 ff             	test   %rdi,%rdi
  40049c:	7e 09                	jle    4004a7 <fact+0x13>
  40049e:	48 0f af c7          	imul   %rdi,%rax
  4004a2:	48 ff cf             	dec    %rdi
  4004a5:	eb f2                	jmp    400499 <fact+0x5>
  4004a7:	c3                   	retq   

Zdroj tohoto zázraku:

In addition to the standard tail recursion elimination, we handle the most trivial cases of making the call tail recursive by creating accumulators. For example the following function
int sum (int n)
{
  if (n > 0)
    return n + sum (n - 1);
  else
    return 0;
}


is transformed into

int sum (int n)
{
  int acc = 0;
 
  while (n > 0)
    acc += n--;
 
  return acc;
}

(http://gcc.gnu.org/viewcvs/trunk/gcc/tree-tailcall.c?revision=151935&view=markup)

This blog post was created on 2010-03-09 at 16:28 by disorder. It is tagged with c, gcc, programming, recursion.

by disorder at March 09, 2010 14:28

March 08, 2010

Adam Sloboda

Ukážka vývoja DSL v Lispe

V súvislosti s posledným zápisom som našiel ukážkové video vývoja DSL v Common Lispe, pre záujemcov to budem nejaký čas seedovať (125 MiB, 19 min.):

dsl_domain_specific_language_in_lisp.3735468.tpb.torrent

dsl-in-lisp-small.jpg

This blog post was created on 2010-03-08 at 12:43 and last modified on 2010-03-14 at 12:49 by disorder. It is tagged with dsl, lisp, programming, screencast.

by disorder at March 08, 2010 10:43