Usprawnień w importowaniu muzyki c.d.

Poza zamianą nazw plików tak aby składały się tylko z samych małych liter była jeszcze jedna kwestia, którą niepotrzebnie robiłem ‘z palca’. iTunes ma to do siebie, że importuje albumy CD wg następującej konwencji:

|- artysta 1
|  |- nazwa albumu
|     |- 1-01 nazwa utworu.mp3
|     |- 1-02 nazwa utworu.mp3
|     |- 2-01 nazwa utworu.mp3
|- artysta 2
|  |- nazwa albumu
|     |- 1-03 nazwa utworu.mp3
|     |- 1-04 nazwa utworu.mp3
|     |- 2-02 nazwa utworu.mp3
|- artysta 3
|  |- nazwa albumu
|     |- 1-05 nazwa utworu.mp3
|     |- 2-03 nazwa utworu.mp3
|     |- 2-04 nazwa utworu.mp3

Natomiast moja konwencja jest następująca:

|- nazwa albumu
|  |- artysta1 – utwór1.mp3
|  |- artysta1 – utwór2.mp3
|  |- artysta2 – utwór3.mp3

Oto skrypt który konwertuje pliki zaimportowane z iTunes do ‘mojego formatu’ katalogowania i nazewnictwa plików:

_convert_mp3_filenames_imported_with_itunes.py

Fakt, że pierwsza wersja skryptu (druga również) nie za każdym razem działała tak jak tego oczekiwałem. Okazało się, że iTunes ma więcej niż jedną metodę nadawania nazw plikom. Musiałem poświęcić parę wieczorów na poprawki w celu dopracowania skryptu, ale zysk jest widoczny dla mnie gołym okiem. Wykorzystując powyższy skrypt mogę obecnie w tym samym czasie zaimportować 2-3 razy więcej albumów niż wcześniej. Jak to zwykle bywa, każde nowe rozwiązanie rodzi nowe problemy… Ciekawe jak szybko zostanę zmuszony do wymiany dysku na większy…

Jednocześnie stwierdzam, że Python coraz bardziej mi się podoba. Po pierwsze zarówno sam język jak i kolejne funkcjonalności/biblioteki, których potrzebowałem są bardzo łatwe i intuicyjne w wykorzystaniu. Po drugie, wolę nie myśleć ile kodu i czasu zajęłoby mi zrobienie tego samego przy użyciu Javy… Odnoszę wrażenie, że nauka tworzenia takich prostych narzędzi w tym języku jest okupione bardzo małym kosztem.

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop

Zamiana znaków nazwy pliku na małe litery

Porządkując swoją kolekcję muzyki często zdarza mi się, że muszę hurtowo zmieniać nazwy wielu plików audio. Mam taką konwencję nazewnictwa plików:

artysta lub zespol – nazwa utworu (jakis remix).rozszerzenie

Oto prosty skrypt w języku Python, który umożliwia zamianę dużych liter na małe w nazwach plików znajdujących się w bieżącym katalogu:

_filenames_to_lowercase.txt

W napisaniu skryptu pomógł wujek google.

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop

Bardzo prosty skrypt do robienia inkrementalnych kopii zapasowych

„Ludzie dzielą się na tych, którzy robią backupy i na tych, którzy będą je robić…”

Zdecydowanie wolę należeć do tej pierwszej grupy. W związku z tym przygotowałem bardzo prosty skrypt, który jednokierunkowo kopiuje pliki z jednego dysku/katalogu do drugiego (z lewej na prawą). Skrypt sprawdziłem i przetestowałem na własnej maszynie w systemie OSX, ale powinien z powodzeniem działać również na Linuksie.

Oto co robi skrypt:

  1. wyczyść konsolę
  2. wyświetl ścieżki
  3. wyświetl komunikat (tu można jeszcze przerwać skrypt)
  4. wyświetl godzinę rozpoczęcia
  5. skopiuj dane # polecenie: rsync -avp $left $right
  6. wyświetl godzinę zakończenia
  7. wyświetl komunikat pożegnalny

simpleBackup.txt

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop

Jak wrzucić pliki/muzykę z OSX na Galaxy S2 (GT-i9100)

Googlając nie znalazłem na pierwszej stronie odpowiednika tej instrukcji w języku polskim, więc może się komuś przyda.

1. Na telefonie wejdź kolejno w: Aplikacje : Ustawienia : Aplikacje :  Ustaw. developerskie
2. Zaznacz checkbox „Debugowanie USB”.
3. Podłącz kabel do komputera.
4. Podłącz kabel do telefonu.
5. W telefonie zauważysz na pasku powiadomień komunikat „Podłączono USB”.
6. Ściągnij belkę i wybierz „Podłączono USB”.
7. Zobaczysz ekran ze znajomym zielonym ludkiem, kliknij przycisk „Podłącz pamięc USB”.
8. Przerzuć pliki w wybrane miejsce w telefonie.
9. Po skończeniu wymontuj pamięć z komputera a na telefonie kliknij „Odłącz pamięć USB”.

PS: po wszystkim możecie z powrotem wyłączyć „Debugowanie USB”, ale nie wiem, czy ma to jakiś wpływ na wydajność pracy telefonu ;)

link1

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop

Change the default language in RAD/eclipse on Windows

Run RAD/Eclipse with the -nl argument followed by the language en_US, e.g.:

eclipse.exe -nl en_US

or add the variable

-Duser.language=en

at eclipse.ini file.

Both eclipse.exe and eclipse.ini are located in default IDE installation directory, .e.g.:

c:\Program Files\Eclipse
c:\Program Files\IBM\SDP

Solution founded here.

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop

Offline English Dictionary Application for Android

Today I had no electricity. Laptop is powered by embeded battery too,
but router & modem no… :/ From time to time I need an english dictionary.
Generally I use online dicts (such as google translate or dict.pl), but if
I didn’t have internet connection they’re useless… In order to avoid this
problem in future I founded offline dictionary for my Android Device.
Off course it doesn’t have translations to my native polish language, but it’s
better than none :)

The Advanced English Dictionary & Thesaurus

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop

Polskie ptaki – link do ilustracji

Może przydać się komuś, kto będzie nauczał dzieci w klasach 1-3.

http://ptaki.luzik.proste.pl/ilustracje-4

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop

Alert dialog problem

I can’t compile/run code below:

this.showAlert(„Alert Title”, 0, „Alert Content”, „Confirm Text”, false);

SOLUTION:

The solution is to use the following code in order to create alert dialog:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(„Alert Title”)
.setMessage(„Alert Content”)
.setCancelable(false)
.setPositiveButton(„Confirm Text”, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Action handling confirmation, in this case I simply  dismiss alert
dialog.dismiss();
}
});
builder.create().show();

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop

android:textAlign layout attribute problem

SOLUTION:

Use

android:layout_gravity

attribute instead of

android:textAlign

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop

DbVisualiser Shortcuts

SQL Editor

[CTRL]+[SHIFT]+R comment whole line
[CTRL]+[SHIFT]+F format sql
[CTRL]+T open new sql editor

Share this article

  • Blip
  • Delicious
  • Digg
  • Facebook
  • Grono
  • Kciuk
  • NK
  • Twitter
  • Wykop