30. November 2009

Pár užitočných klávesových skratiek pre Windows 7

Na WebExpo 2009 som dostal malú brožúrku o Windows 7. Píše sa v nej, prečo je Windows 7 cool.

Zaujalo ma niekoľko nových klávesových skratiek, ktoré zjednodušujú manipulácia s oknami a plochou.

Tu sú:

  • wokienko + šipka hore/dole – maximalizácia/minimalizácia okna
  • wokienko + šipka vľavo/vpravo – prichytenie okna na pol obrazovky, toto je užitočné, pokiaľ pracujete s údajmi v dvoch oknách
  • wokienko + shift + šipka hore/dole – maximalizácia a obnovenie vertikálnej veľkosti
  • wokienko + medzera – kuk na desktop

Wokienko je taká zábavná klávesa medzi CTRL a ALT. Na Macoch a IBM T42 ju budete hľadať márne. Nepomôže, ani keď si ju nakreslíte.

Ešte pridávam odkaz na VirtualWin, je určený pre ľudí, čo trpia klaustrofóbiou na jednej pracovnej ploche.

22. November 2009

PyGTK a preklad GUI pre Windows

PyGTK je výborné rozšírenie Pythonu, ktoré umožňuje pracovať s GTK GUI. Pekne to funguje aj pod Windows. Dôkazom je napríklad aplikácia Srobick.

No, všetko by bolo dobré, keby som si v jednej rozmarnej chvíli nebol zmyslel, že chcem preložené GUI. Zobral som GUI designér Glade. Prepísal som GUI do angličtiny. Vygeneroval som si prekladové súbory. Pomocou PoEditu som ich preložil. Podľa návodu som pridal set_translation_domain. Pod Linuxom to pekne chodilo. Spustím pod Windows a ajhľa. How do you jodlajdú. Všetko v angličtine.

Prebrázdil som celý internet. Od jedného konca, po druhý. Nič. Skúsil som dokonca nastavovanie systémových premenných pomocou kernel balíku a nič. Proste zúfalstvo.

Väčšina návodov je zastaralých a počíta s gtk.glade, ktorý sa už v nových verziách nenachádza. Tu je drobná finta, ako dostať preklad do chodu. Jednoducho preiterujete všetky objekty a spustíte na nich prekladovú funkciu.

Príklad na preklad tooltipov:

class GuiBuilder(gtk.Builder):
   """
   Fix for GTK builder and translation.
   Inspired by: http://old.nabble.com/gtk.Builder-and-translation-directory-td22351164.html
   """
   def translate(self):
     for obj in self.get_objects():
       # Translate tooltips
       try:
         if obj.get_has_tooltip():
          obj.set_tooltip_markup(_(obj.get_tooltip_markup()))
       except:
         pass

V kóde potom načítavanie GUI vyzerá nasledovne:

import GuiBuilder
wt = GuiBuilder()
#wt.set_translation_domain(domain = AppName)
wt.add_from_file(gui)
wt.connect_signals(self)
wt.translate()

A dôležitá informácia na záver. Na stránkach PyGTK nájdete len verziu 2.12 pre Windows, pričom pre Linux sa používa 2.16. Novší build pre Windows je tu: OptionExplicit.be

18. November 2009

Premena nápadov na skutočne fungujúce riešenie

Dobrý nápad ešte nič neznamená. Ak by ste potrebovali, mám takých na sklade asi 50. Dodám, s množstevnou zľavou. K desiatim kusom pridám jeden zdarma.

Ako vidíte, nápady sú devalovaný tovar. Je ich veľa a skoro nič nestoja. Dokonca aj v trafike vám dajú nejaký nápad zadarmo.

Na to, aby sa z nápadu stala skutočne fungujúca vec, musíte spraviť krok. Nie jeden. To dokáže každý. Ale postupne ďalší a ďalší. Budete musieť prehodnotiť to, kam kráčate. Skontrolovať mapu. A občas budete potrebovať inšpiráciu -- ako ďalej.

Presne tento typ myslenia sa skrýva za sériou video materiálov: The Course in Mastery.

Tu je prvý diel série.

Ďalšie nájdete na Youtube.com alebo priamo na Mastery TV.

PS: Ak viete o nejakom inom programe tohoto druhu, dajte vedieť. 😉

6. November 2009

Debian problém – dpkg dependtry

Tak si inštalujem balíček a aha ho koťuhu. Dpkg mi začalo nepekne nadávať v jazyku C:

dpkg: ../../src/packages.c:221: process_queue: Assertion `dependtry <= 4' failed.

Ej veru. Nejakú chvíľku som sa s problémom trápil. Skúšal som ručne odstrániť balíky, potom ich zase pridať. Presne tak ako to tvrdilo veľa užitočných príspevkov vo fórách. No a hádajte ako to dopadlo? Nepomohlo to.

Pozrel som sa teda na archív balíčkov. Vravím si, skúsim upgrade dpkg.

wget http://ftp.cz.debian.org/debian/pool/main/d/dpkg/dpkg_1.15.4.1_i386.deb
dpkg -i dpkg_1.15.4.1_i386.deb
dpkg --configure -a

Zabralo. Pravdepodobne to bola chyba v implementácii dpkg.

6. November 2009

Konečne viac plôch na Windows a funguje to!

V článku o pomalom štarte Windows, som sa posťažoval, že vo Windows trpím klaustrofóbiou. Jedna pracovná plocha proste nestačí. Linux mám bežne skonfigurovaný tak, že mám 10 pracovných plôch, každú určenú na špecifické aplikácie.

Pár krát som sa pokúšal rozbehnúť aplikácie, ktoré podporovali viacero pracovných plôch. Napríklad projekt Blackbox. Minimalistický window manager, fungoval pekne, ale mal pár problémov. Skúšal som ešte pár. Niektoré boli fajn, ale 4 pracovné plochy sú proste stále málo. To je rovnaký pocit, ako keby mal človek topánky o dve čísla menšie topánky.

VirtualWin ma veľmi prekvapil. Jednoduchá konfigurácia klávesových skratiek. Jednoduché fungovanie. Naviac je možné definovať rozloženie pracovných plôch nie len horizontálne, ale aj vertikálne. Program stojí za vyskúšanie a je free.

virtualwin-configuration

Neskonalá vďaka NUTovi, za parádny odkaz.

4. November 2009

Guy Kawasaki – Ako zmeniť svet

Titulok blogu How to change the world, nie je vôbec prehnaný. Guy Kasawaki si tento titulok určite môže dovoliť. Prečo? Pretože sa mu to podarilo.

Podieľal sa napríklad na úspechu Applu. Jedným z konceptov, ktorý sa mu podarilo zaviesť je product evangelism. Jedná sa vytvorenie skupiny nadšených používateľov produktu, ktorý produkt obhajujú a odporúčajú ďalej.

Tento koncept je dnes bežný. Veľké firmy by sa bez neho nezaobišli. Napríklad Adobe má v Českej republike vynikajúceho evangelistu a ním nie je nikto iný než Tomáš Krcha.

Na Youtube je možné nájsť niekoľko zaujímavých video záznamov s Kawasakim.

Pokiaľ máte len pár minút času, určite si pozrite:

Make Meaning in You Company

Na prednášku Art of Start budete potrebovať 40 minút. Nájdite si 40 minút. Bude to jedna z najlepších investícii vášho času. Myslím to vážne. Prednáška je vtipná. Bola by veľká škoda plytvať vašim časom pri čítaním ďalšieho textu. Tu je video:

Art of Start 1/4

Art of Start 2/4

Art of Start 3/4

Art of Start 4/4

Tak čo? Stálo to za to? 😉

3. November 2009

Otesánok – druhé meno pre vašu PHP aplikáciu?

PHP aplikácii, pluginov, rozšírení a iných skriptov, sa nám dnes po svete potuluje viac než dosť. Autor dostane nápad, napíše kód a hurá. Pekne mu funguje na jeho notebooku s 1 GB RAM a php.ini memory limitom zdvihnutým na 128 MB.

Milý autor si ani nevšimne, ako mu aplikácia rastie, kysne a žerie drahocenné kilobajty pamäte. Problém nastane, keď sa jeho Otesánok vyberie do sveta. Najskôr ho autor veľmi jemne a decentne zavestí na nejaký webhosting.

Lenže tu nastane problém. Server má povolených len 25 MB na skript. Otesánok dostane bolesti brucha a odmieta spustiť čokoľvek. Ešte horší prípad však nastane, keď sa takýchto Otesánkov zíde viac. Systémový administrátor rozverne povolil 128 MB RAM a Otesánkovia chrochtajú blahom. Vždy sa jeden zobudí, vygeneruje stránku a ide spať.

Lenže tu nastane druhý problém. Do serveru sa oprú roboti. Google, Yahoo, Microsoft a im podobná robotická zberba. Treba predsa zvyšovať SEO. Neštastníci. Oni zobudia všetkých Otesánkov naraz. Začne vojna o zdroje. Apache nestíha Otesánkov upratovať na swap. Zo swapu sa mu neustále vracajú a dožadujú sa ďalšej a ďalšej pamäte. Hrôza, des, zmar a load average 78.

Veď je to tak jednoduché zístiť, koľko vaša aplikácia spotrebuje pamäte:

echo memory_get_usage() . "\n";

Dokonca PHP prináša so sebou sledovanie celého priebehu vykonávania skriptu a môžete si vypísať, aké bolo maximum v spotrebe bajtov počas behu skriptu:

echo memory_get_peak_usage() . "\n";

Jednoduché, účinné. Monitorujte stav pamäte a nenechajte, aby sa vaša aplikácia zmenila na Otesánka.

Dokumentácia memory_get_usage, memory_get_peak_usage

2. November 2009

Flot. Grafy na webe? Nič jednoduchšie.

Chceli by ste si na web dať nejaký pekný graf? Mal by načítavať dáta zo serveru a zobrazovať ich? Aké sú možnosti?

Mizerné.

Toto platilo aspoň donedávna. Na slušnejšie interaktívne grafy bolo možné použiť jedine Adobe Flex s komponentou iLog Elixir. Druhá major verzia tohoto produktu je skutočne vychytaná a vie robiť veľmi pekné wow efekty.

Keď som však videl Flot (MIT licenica). Tak mi spadla sánka. Z jednoduchosti použitia Flotu až marzí na chrbte. Žiadne kompilátory, nič. Proste našpecifikujú sa dáta a tradááá…

Graf

Stačilo do mojej stránky vložiť nasledujpúci kúsok kódu.

<script language="javascript" type="text/javascript" src="/wp-content/flot/jquery.js"></script>
 <script language="javascript" type="text/javascript" src="/wp-content/flot/jquery.flot.js"></script>
<div id="placeholder" style="width:450px;height:250px;"></div>

<script id="source" language="javascript" type="text/javascript">
$(function () {
 var d1 = [];
 for (var i = 0; i < 14; i += 0.5)
 d1.push([i, Math.sin(i)]);

 var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];

 // a null signifies separate line segments
 var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];

 $.plot($("#placeholder"), [ d1, d2, d3 ]);
});

Nejaké ďalšie príklady? Ale samozrejme! Myslím, že viac už nie je potrebné písať. Projekt nájdete na adrese: http://code.google.com/p/flot/

  • Where’s the fish?

  • Translations

  • Further info

  • Twitter

    Follow @jurajmichalek on twitter.

  • Comments

  • Tags

  • Topics