22. 4. 2015

Samsung Galaxy S4 Mini and Rdio

Well if you suffer of "No free storage" all the time on your Samsung Galaxy S4 Mini with Rdio installed, the problem is that Rdio cannot save offline data on your sdcard without your help.

Short story:

1. Logout
2. On Login screen in the very bottom there is "Set custom storage location"
3. Custom - /storage/sdcard0 (in default file manager app called "My Files" you can find out that sdcard is /storage/extSdCard but it doesn't work)

Long story:

I really like Rdio, but I had issue on my Android phone Samsung Galaxy S4 Mini that it saved all offline music downloads to internal memory so I constantly battle with "No free storage".
Long time I cannot find out how to change it. Than I find this article, which I was trying to find a long time - http://help.rdio.com/customer/portal/articles/890607-changing-your-default-storage-location. In the article they say Rdio want to use external storage but can't find out automatically right sdcard location on some phones - like on my Samsung Galaxy S4 Mini (it seems that there is some concept of sdcard emulation in internal memory for some reason). The trick is that to access "change file download location" setting is only on login screen (what?) - so you have to logout! Ok I did it but there was second problem - what is right path to sdcard? I am lazy so I run default file manager called "My Files" where I found /storage/extSdCard but it won't work. So I installed Total Commander to see file system how it is. Then I found out that there is directory /storage/sdcard0 which looks like subset of /storage/extSdCard. I don't know what is this all about, but /storage/sdcard0 is real content of my sdcard so I tried it and it works. Finally!


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.