27. 10. 2010

Javascript : for each...in vs for...in

I am new to javascript, so I just dig around, playing with jsfiddle.net, firebug, chrome developer tools, jQuery..etc. Recently I found out that there is for each (var value in object) statement. I only knew about for ( var value in object ) statement which I wrongly considered as a "true" foreach as I know it from Java or C# (C#'s foreach value in Iterableor Java's for value : Iterable). The difference is that for each in iterate over values of object properties (so it's like foreach in c# or for : in Java) when for in iterates only over property names (so it returns only String values and you can use this names to access property values this way var property_value = object [ property_name] ). Example:

var obj = {

function1: function() {},
function2: function() { return "return from function2"; },  
value1: "this is value1"
}

console.log("for each in:");
/* iterate over obj property values */  
for each (var value in obj) {
console.log(value);  
}
/* after this in your console (eg. in firebug) should be logged these:
function(), function(), "this is value1" - notice these are objects */ 

console.log("for in:");
/* iterate over property names in obj*/
for (var property in obj) { /* property variable is always String */
console.log(property); 
}
/* in your eg. firebug console there are logged these Strings: "function1", "function2", "value1" */




See: https://developer.mozilla.org/en/JavaScript/Reference/Statements/for_each...in

5. 7. 2010

gnu's man basics

man is manual page for *nix systems.
Syntax is man [command].

example:
man touch displays manual pages for "touch" command

Exiting
This is most tricky for *nix (or cygwin) newcomers. The very first thought which comes to my mind is to press ESC, but that leads to nowhere :)

to exit press x

Navigation
space - move to the next page
PageDown/PageUp - move to the next/previous page
home/end - the first/last page

Searching
When you are working with man in *nix/cygwin, sometimes you are in need to search some particular option/keyword.

1) man [command]
2) type /text_you_search_for (notice the slash on the begin)
3) found occurences are highlighted
4) type n for "find-next" idiom

Advanced searching
When searching inside man is not appropriate, you can redirect output to grep for example.
This is cool when you want to use regexp pattern to search.

This prints out line where "prune" word has been found + 2 lines Before and 2 lines After
man find | grep prune -A 2 -B 2

Do you know some more tricks?

3. 5. 2010

Windows 7 - problém s úvozovkami

Windows 7 používam chvíli.
Když jsem začal po reinstalaci programovat, začali taktéž moje problémy se psaním některých znaků. Například kdykoliv jsem chtěl napsat úvozovky (což je při programování docela často), tak jsem musel místo obvyklého jednoho stisknutí klavesy s úvozovkami, stisknout klávesu úvozovek dvakrat, což ale kromě otravného dalšího mačkání klavesy, vedlo navíc k napsání dvou úvozovek.

Problém je v tom, že jako defaultní anglická klávesnice je nainstalováno rozvžení "Anglické (Mezinárodní)", která umožňuje vkládat speciální národní znaky kombinací pravého ALTu a speciálními znaky mezi, kterými jsou právě úvozovky. Viz http://support.microsoft.com/kb/306560.

Pokud jste zvyklí na anglickou klávesnici tak jak byla ve Windows XP, nastavte si jako klávesnici "Anglické (Spojené státy)".
WIN+R -> intl.cpl enter -> záložka "Klávesnice a jazyky" -> Změnit klávesnice -> Přidat -> "Anglické (Spojené státy)" -> Odebrat "Anglické (Mezinárodní)" -> Potvrdit

29. 4. 2010

Windows 7 - první dojmy

V práci jsem reinstaloval počítač a při té příležitosti jsem přemigroval z Windows XP na Windows 7.

Dojmy mám zatim velmi pozitivní. Všechno nějak samo funguje. Síť, grafika, dva monitory, zvuk - vše řádně šlapalo hned po instalaci. Co si mi opravdu líbí je brutální rychlost startu, vypínaní, restartovaní, uspávání, probouzení.. prostě všeho, co nějak souvisí s ukončením respektive se započetím práce s počítačem. Zatímco v dva roky zachnívajících Windows XP jsem si během startu stihl v klidu uvařit čaj v naší pracovní "turbo" konvici, teď ani skoro nestihnu přemístit prst ze startovacího tlačítka mého PC zpět na levé tlačítko myši dřív než se Windows nastartují.

Další věc, která mě velmi potěšila je klavesová kombinace WIN + (SHIFT) + kurzorové šipky, které vam pomohou jednoduše dockovat okna na obrazovce nebo je přesouvat mezi monitory. O další přehmatávání mezi klávesnicí a myší méně. Hurá!

Jaké jsou vaše oblíbené vlastnosti?

Update 03.05.2010:
Problém s úvozovkami

24. 4. 2010

exit emacs + cygwin (windows) problem

I am playing with emacs editor in cygwin environment in my windows xp installation.

When you want to exit and save edited text, you've got two three possibilities (maybe there are more?):

1) From emacs manual : press C-x, C-c . Emacs manual convention says C means CTRL key and M means Meta key which depends on OS - in Windows it's ALT or ESC. So press Ctrl + X then Ctrl + C. Then question appears: Save file ?" y/n... so if you want to really save a file press "y" which means yes (or n as no which in fact act as cancel - emacs doesn't exit and stay opened, semantic no do by press "!" which exit emacs without saving).
But here is problem I was struggling with: when you press C-x C-c emacs print message "C-x C-g is undefined" like you was hitting CTRL+C, CTRL+G. Wtf? I am not exactly sure why, but this solve the problem: set the system environment variable CYGWIN to value "tty". You can do it inside cygwin by export CYGWIN="tty", but then when you exit emacs, cygwin stop echoing your keys so you don't see what you write. It's like when you typing password when using sudo command. When you set this environment variable before starting cygwin from windows everything is ok. You can set this variable in windows by SET CYGWIN="tty" in command shell (cmd.exe) or through System properties (WIN+PauseBreak).

2) M-x (ESC + X or ALT+X) to active command mode and write "save-buffers-kill-emacs" and then press "ENTER", save question appears, make choice. Note that command mode has auto complete on TAB key, so write just "sav" press TAB, emacs show all possible commands starting with "sav" or do auto complete if there is no ambiquity in names of commands.

3) C-x-s (this one I discovered just by luck when I wanted to originally press M-x and started typing "save" like in 2)

Sources:
http://www.gnu.org/software/emacs/manual/html_node/emacs/Exiting.html
http://www.emacswiki.org/emacs/SetTty
http://blog.arithm.com/2007/12/01/killing-cygwin-emacs/

3. 4. 2010

Efektivní práce s cmd.exe (příkazovou řádkou ve Windows)

Na Zive.cz se objevil clanek Zrychlete svou práci s příkazy Windows. Článek je krátky a doporučuji ho každému prolítnout jestli opravdu zná všechny možnosti. Znalost těchto triků může opravdu výrazně usnadnit práci.

Já jsem většinu triků znal, nicméně například o automatickém doplňování názvů souborů jsem řadu let nevědel a zjistil jsem, že něco takovýho existuje až nedávno, když jsem se rozplíval nad touto funkcí v terminálu (ubuntu) linuxu respektive v bashi a chtěl jsem zjistit zda něco takového není i ve windows. A bylo! Teda v okleštěné verzi. Zatímco v bashi automatické doplňování funguje nejenom pro názvy souborů, ale i pro příkazy, ve windowsáckém shellu jsou doplňovány jen názvy souborů respektive adresářů. Když jsem to ukazoval kolegům v práci, nikdo z nich to taky neznal. Takže trošku lituju, že se mi takový článek nedostal do rukou o pár let dříve...

Nakonci článku je pasáž o práci s historií přikazové řádky. Tuhle část jsem neznal a vlastně i proto vzniknul tenhle příspěvek.

Stiskem F7 otevřete historii příkazové řádky, kde můžete kurzorem vybrat příkaz z minulosti a klávesou enter ho spustit nebo šipkou doprava či doleva ho vložit do příkazové řádky bez spuštění (toto není v článku uvedeno a přitom je to dost užitečné právě ve chvilí, kdy chcete původní přikaz zeditovat). Čisté F8 vám vloží do příkazové řádky poslední spuštěný příkaz z historie. V kombinaci s textem funguje jako automatické doplňování s tím, že vám tam doplní nejpodobnější text z historie vašich příkazů. Takže pokud jste napsali například složitý příkaz v mavenu "mvn....", který skončil chybou třeba kvuli chybějící závislosti (dependency) napiště na příkazovou řádku "mvn" stiskněte F8 a voila! A nebo použijte zmiňované F7 - příkaz ručně vyberte v seznamu a stiskněte šipku doprava.

Like from Daily WTF : Oracle SQL Developer raviolli upgrade

This post is like from The Daily WTF page.
Recently I've found picture below somewhere on my disk. It's from some old version of Oracle's SQL Developer. This is the last screen of update process of SQLDeveloper. Click on image for detailed view.

Wtf? :)) How could this happen? Someone tried how to build treeview? Back then when I saw this first time I almost rolling on the floor laughing ;)

15. 2. 2010

NTK aneb Národní Technická Knihovna

Při příležitosti akce Sun Developer Day (mimochodem byly přidány slidy z prezentací a dle informací od paní z NTK byl pořizován i video záznam, tak snad se někde objeví), která se konala právě v NTK, jsem se stal hrdým majitelem karty zákazníka :)

Součástí této akce byla dobrovolná prohlídka knihovny s komentářem. Zaujalo mě jak je knihovna moderní. Celý proces půjčování a vracení knih je plně automatizovaný. Každá kniha má RFID čip a když si knihu chcete půjčit, jen si ji vezmete z regálu (pokud jste si jí nevypůjčili přes internet - pak je pro vás připravena v 1. patře u zákaznického pultu v átriu) a u výpůjčního pultu (počítač se čtečkou karty a RFID) si to projedete a vytisknete stvrzenku. Při vracení to zase naházíte do takového koše a ten to pomocí jezdícího pásu rozvozí do dalších košů, které pak snadno živé pracovnice knihovny rozmístí zpět do regálů.

Další věc je knižní fond. Nedávno jsem se rozhodoval zda si koupit e-book čtečku Amazon Kindle
a začít si kupovat knihy přes Amazon. Ačkoli o tom stále uvažuji svoje finální rozhodnutí jsem odložil na chvilku stranou, protože většinu knih, které jsem si chtěl přečíst si můžu pujčit zde. Wicket in Action, Version Control with Git, Javascript pro webové vývojáře od Nicholas Z. Zakase (v originále Professional JavaScript for Web Developers - kniha doporučovaná Johnem Resigem, jako must-read pro každého, kdo s js začíná - mimochodem moje první výpůjčka), Programming Scala, Pro WebSphere Application Server 7 Internals, Programátor pragmatik, Effective Java ... a takhle bych mohl pokračovat dál. Sami vidíte, že knihy jsou to zajímavé a hlavně nové a většinou v originálu.

Zbytek stručně:
  • klima v budově řízena počítačem - kombinace otevřených oken a podlahového topení (tohle topení má nějaký speciální název, který si už nepamatuji, ale prý bylo poprvé použito v obchodním domě kotva a ne moc úspěšně...
  • hašení pomocí vodní mlhy, aby nedošlo k poškození materiálů
  • všude wifi
  • podlaha hraje všema barvama - ve skutečnosti se jedná o grafickou reprezentaci zatížení podlahy
  • po celé budově jsem dostával od všeho rány od statické elektřiny... dveře na záchodě - první, druhý a pak znova, počítače, turniket.. děje se to i ostatním nebo to je mejma kosmickejma botama? :)
  • na stránkách NTK se přihlásítě, ale když chcete prolejzat knihovní fond, realizovat výpůjčky či rezervace musíte se přihlásit znova. Navíc ten systém (Aleph) je děsivě ugly a ne user-friendly - takže kandidát na ntk-wtf?


17. 1. 2010

CZJUG Leden 2010

Roman Pichlík alias Dagi poslal na CZJUG mailing list zprávu o chystaném lednovém CZJUG srazu (celé znění viz java.cz).

Konat se bude 25.1. od 19:00 v posluchárně S5 na Matematicko-fyzikální fakultě Karlovy Univerzity na Malostranském náměstí 25, Praha 1

Tentokrát bude variace témat docela pestrá, protože se bude (a pokud vím tak historický poprvé) přednášet stylem tzv. "lighting talks", coz jsou krátké prezentace na dané téma v rozsahu několik minut.

Zatím jsou oznámeny tyto témata:

  • Zajimavosti z Google Maps API
  • Closures v JDK 7
  • node.js - Evented I/O for V8 javascript
  • Stvorenie startupu za 7 dni. Od napadu po prveho zakaznika
  • JBoss Snowdrop - Snowdrop is a utility package that contains JBoss-specific extensions to the Spring Framework.

Pokud chcete sami přispět pošlete mail na czjug@java.cz. Těším se hlavně na "node.js" a "Zajímavosti z Google Maps API". Určitě stojí za to přijít. Já osobně začal chodit pravidelně zhruba od druhé poloviny roku 2009 a nelituju a jsem přesvědčen, že přidaná hodnota je vysoká. Kromě toho se na každém setkání pořádá soutěž (typu otázka do publika a správná odpověd = věcná cena) - já už takhle získal knihu nebo se možná sluší řict bibli o concurrent programování v jave - Java Concurrency in Practice od Briana Goetze (na setkání v 10.řijna 2009 - na stránkách CZJUGu jsou linky na prezentace a video z akce) . Ještě jednou zpětně díky Kelly Services za výbornej nápad vyměnit pizza-sponzoring za něco opravdu užitečného.

Takže uvidíme se tam.

15. 1. 2010

The Chemical Brothers favourite songs of 2009

On the The Chemical Brothers facebook fanpage recently appeared this post:
Greetings Chemical Brothers and Sisters!

Happy New Year from Chemicals HQ where the brothers are hard at work putting the finishing touches on their next sonic transmission!

We did however manage to distract them long enough to share some of their favorite stuff from 2009, so with love from Tom and Ed, here are their lists

What I've done is that I made this favorite list of Ed Simons and Tom Rowlands duo as a youtube.com and grooveshark.com playlists. On Youtube.com I found almost every listed song (15 songs from 19) and on the other hand on Grooveshark.com just a few (7 songs from 19). But the best source for those songs are myspace pages of listed music groups (myspace icon after each song in list lead you to their myspace page) - only a few songs aren't there.

Ed Simons

Girls : Hellhole Ratrace YouTube MySpace
Magik Johnson : Stand Up YouTube MySpace
Islands : Teardrops MySpace
M Ward : Hold Time YouTube MySpace
Kindness : Swinging Party MySpace
The Crepes : Cassette MySpace
Nite Jewel : Want You Back YouTube MySpace
Memory Tapes : Bicycle YouTube MySpace
Terrence Fixmer : Machine YouTube MySpace
Louisa Marks : All My Loving YouTube

YouTube.com playlist (direct link):



Grooveshark.com playlist: here

Tom Rowlands

Paul White : City Bright Lights YouTube MySpace
Flaming Lips : Embryonic YouTube MySpace
Animal Collective : My Girls YouTube MySpace
Kraftwerk Reissues Boxset : The Catalogue YouTube MySpace
Joker And Ginz : Purple City YouTube MySpace
Unknown/thriller : Swarm (What is this? Anyone found it? Maybe some joke? :))
Phoenix : Love Like A Sunset Prt2 YouTube MySpace
Twinkranes : Fizz Nor Feedback YouTube MySpace
Alice In Chains : Check My Brain (only first 30 seconds :) YouTube MySpace

YouTube.com playlist (direct link):


Grooveshark.com playlist: here

Tom mentioned Embryonic from The Flaming Lips. It seems that's not just name of a song but name for a whole album. Click here to album playlist on youtube.com.

Next there is a that Tom's favourite module stuff. I really don't understand this topic. Anyway I found two pretty cool videos on youtube.com for two of modules. Click on youtube icon next to module name.

modcan 65B dual frequency shifter
moonmodular m569
tiptop audio : z-dsp
chris muir's pendulum/ratchet