1 Lutego 2010 jest początkiem końca Javy, OpenOffice i paru innych?

Ciekawe kto zauważył, że wchodząc na stronę główną Suna zostaje się przekierowany na stronę główną Oracla.

Oracle postąpił nieco brutalnie wycinając z sieci starą domenę i usuwając stare logo jakby nie byłoby nic a nic rozpoznawalne.

Zastanawia mnie jaki będzie stosunek do projektów SUN’a open source o które pod swoją pieczą posiadał. Jasne, że otwartego kodu nie można znowu zamknąć (na prawie się nie znam, ale licencja GNU GPL przewidziała taki scenariusz). Moim zdaniem wystarczyło by odciąć fundusze i taki projekt by padł dosyć szybko, jeśli by nie padł to pracy zostały by spowolnione.

Moim zdaniem jutro nie zostanie zamknięty żaden projekt, ale za pół roku/rok kiedy to Larry Ellison znudzony kupowaniem kolejnych odrzutowców, sprawdzi sprawozdanie finansowe firmy i zobaczy że na open source nie zarabiają wystarczająco pieniędzy aby mógł kupić nowe buty do nowego Rollsa. To nie będzie się długo wahać i naciśnie czerwony guzik usuwając projekt zanim zdążyłeś zrobić lokalną kopię zapasową swojego ulubionego programu.

Firma SUN była ‘przyjazną’ dla open source, jako że otwierała co rusz nowe projekty. Mogło to wynikać z oczywistego faktu przejęcia lub bankructwa firmy. Tak, prezesi chcieli zostawić firmowe legacy (w po polsku nie to słowo nie ma takiej mocy).

Moje przewidywania są takie projekt Java będzie dalej szedł naprzód z nadzieją, że przyszła wersja będzie tak dobra jak .NET (Java to idiotyczny język programowania na dzisiejsze czasy, ale sama maszyna JVM posiada wiele mocy i może nie co zamieszać).

A OpenOffice padnie dlatego, że:

  • Kolejne wersje programu muszą dodawać nowe funkcję
  • …a już mają nieźle zaśmiecone UI
  • …a coś takiego jak wstążki wymyślili chłopaki z Redmont
  • …a użycie ich w swoim produkcie spowoduje śmiech na sali (ja będę się śmiał najgłośniej)
  • Szary użytkownik mając do wyboru pracę z MS Office a OpenOffice wybierze to pierwsze, zawsze.

Zostaje mieć nadzieję że VirtualBox’owi, Oracle nie obierze daty eksterminacji.

Szary człowiek i Open Source: Znajdź i pobierz źródła

Witajcie, dziś przedstawię jak znaleźć i pobrać źródła programu napisanego w licencji Open Source.

Używam systemu Linux, dystrybucja openSUSE 11.2 zainstalowana na maszynie wirtualnej VirtualBox na systemie Windows.

Zakładam, że w systemie masz zainstalowane całe oprogramowanie które skompiluje  wybrany przez Ciebie program z źródeł.

Jako program, który nad którym będę się znęcał będzie popularny program GNU Grep (program grep posiada tysiące odmian, dlatego podkreślam że to ma być ‘odmiana’ GNU).

Jako, że grep jest jednym z programów podstawowych dla każdej dystrybucji Linuksa można popaść w kłopot, bo gdzie mogą się znajdować najbardziej aktualne źródła programu.

Otóż grep został stworzony przez Stallman & spółka™ to źródła znajdują się na stronie http://savannah.gnu.org oficjalnej stronie hostującej programu GNU. Tu też parę kliknięć do strony projektu grep.

Gdy tam już jesteśmy można wybrać pomiędzy pobraniem paczki formie tar.gz (zakładka Download) czy też ściągnąć źródła z systemów kontroli wersji takich jak GIT czy CVS (zakładka Source Code).

Ja wybrałem opcję drugą i po uruchomieniu:

1
git clone git://git.savannah.gnu.org/grep.git

w katalogu grep miałem ściągnięte źródła. Wchodzimy do katalogu i dalej trzeba uruchomić ./bootstrap (nie w każdych źródłach to występuje), następnie ‘./configure’ i ‘make’

Jeżeli nie wykonamy ‘make install’ to skompilowany przez nas program nie zastąpi tego którego mamy już zainstalowanego. Alternatywą jest użycie ./configure –program-prefix=PREFIX wtedy program będzie się nazywał PREFIXgrep. (za PREFIX można dać co się chce na przykład nasz nick).

‘Ludzki’ przykład Assemblera

Widziałem w życiu wiele przykładów, lepszych i gorszych.

Asembler jest trudny z natury, bo instrukcji dla procesora nie wymyślano aby było łatwo. Wymyślano by było.

Osoby chętne do nauki Asemblera wpisują w wyszukiwarkę “Asembler hello world” i trafiają na przykład który po przez przerwanie procesorowe (zgodne dla DOS’a) wyświetlają napis zakończony znakiem dolara ‘$’.

Problem w tym, że nie ma informacji jak cyfrę wyświetlić, lub też ciąg znaków wygenerowany podczas trwania programu bądź jak wyświetlić znak dolara.

Stwierdziłem, że:
Znajdę taki przykład, w którym proste operacje będą proste.

I oto on:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
format PE console
entry start
 
include 'include\win32a.inc'
 
section '.code' code readable executable
start:
 
        cinvoke printf, print_str,hello_msg
        cinvoke printf, print_int,dword [_var1]
        mov eax, -5
        sub eax, 4
        cinvoke printf, print_int,eax
        cinvoke getchar
 
        invoke ExitProcess, 0
 
section '.data' data readable writeable
hello_msg db 'Hello, world!',0
_var1 dq 65
 
print_str db "%s",13,10,0
print_int db "%d",13,10,0
 
section '.idata' import data readable
 
library kernel,'kernel32.dll',\
        msvcrt,'msvcrt.dll',\
        user,'USER32.DLL',\
        kbase,'kbase.dll'
 
import kernel,\
       ExitProcess,'ExitProcess'
 
import msvcrt,\
       printf,'printf',\
       getchar,'_fgetchar'
 
import user,\
        wsprintf,'wsprintfA'

Przykład jest pod Windows opiera się na kompilatorze FASM (flat assembler), a z forum FASM pochodzi ten przykład. Tak, zmieniłem go trochę.

Assembler jest trudny, jeśli chcesz go się uczyć to nie zatrzymuj się na Hello world, bo skompilować gotowca to potrafi nawet chomik. Poważnie.

Ostanie nowości ważne dla programistów

Ostatnio został wydany, a raczej zaktualizowany MinGW port gcc na Windows. Do tej pory można było korzystać z gcc-3.4.5 więc skok w numerkach jest duży.

Dlaczego uważam to za ważne? Ułatwi to portowanie aplikacji pomiędzy Windows/Linux/Mac OS X w łatwiejszy sposób.

Do tego można korzystać już z ‘nowego’ słowa kluczowego auto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40278
#undef __STRICT_ANSI__
#include <iostream>
#include <vector>
using namespace std;
 
int main() {
    const vector<int> x = {1, 2, 3, 4, 5};
    for (auto i = x.begin(); i != x.end(); ++i) {
        cout << *i << "\n";
    }
}
 
// g++ -Wall -Wextra vector.cc -o vector -O3 -s -std=c++0x

A wczoraj został wydany Eclipse Galileo. Wielkie, kolosalnych rozmiarów IDE które potrafi tyle co Emacs. Z setkami pluginów i różnych odmian jak Zend Studio czy Aptana, staje się jasne że Eclipse zostaje ciągle wybierany jako środowisko programistyczne.

Sam korzystam z Aptany do spraw typu HTML/CSS/JS/PHP i powiem, że jest to narzędzie cudowne.

Fragment z dobreprogramy.pl:

Galileo przynosi szereg zmian względem poprzedniej wersji środowiska, wydanej niespełna rok temu. Użytkowników systemu MacOS X ucieszy fakt przepisania interfejsu Cocoa. Programistom, którzy piszą w Javie udostępnione zostało narzędzie Memory Analyzer, które ułatwi śledzenie wycieków pamięci aplikacji. PHP Development Tools jest pierwszym stabilnym rozwiązaniem na rynku w pełni wspierającym PHP 5.3. Narzędzie Mylyn, integrujące środowisko z bugtrackerami Bugzilla, Trac czy JIRA, obsługuje format WikiText. Dodano również narzędzie do obsługi formatu styli XSL, framework uruchomieniowy Swordfish oraz narzędzie Xtext do obsługi DSL (Domain Specific Languages).

EDIT: Przepraszam za błędy językowe. Pisałem szybko aby chęć nie odeszła.

O tym jak trudno kupić klawiaturę.

Była sobie klawiatura. Klawiatura ciężka, z przeraźliwym klikiem (głośnia), klawisze ciężko chodziły a jak się je wdusiło do końca palec nie miał miękkiego zakończenia. Bolesne doznania. A do tego w białym kolorze nie pasującym do reszty sprzętu. Ale wszystko co złe się kończy po tym jak ’strzałka w dół’ postanowiła odpaść z gry. I powędrowała na podłogę

Każdy wie jak ważna jest klawiatura, najczęściej wykorzystane narzędzie wejścia. A dla osób związanych z pisaniem blogów czy też programowaniem można powiedzieć że klawiatura jest ważna.

Przed wybraniem się na zakupy trzeba wiedzieć czego szukać.

Moją listą życzeń to:

  • Układ z małym enterem (klawisz nad enterem ‘|’ i ‘\’ )
  • Mało klawiszy multimedialnych, nie mam zamiaru płacić za coś czego nie będę korzystał
  • Czarna
  • Klawisz nie jest na wysokim, wąskim słupku, przez to nie porusza się prawo lewo
  • Bez kliku
  • Miękka w dociskaniu i lekka
  • Z kablem
  • Nie wydać na nią za dużo

Uzbierało się tego trochę. Ale w nadziej, że coś znajdę udałem się do miejscowych sklepów z komputerami, sprzętem itd.

Pierwsza klawiaturę którą znalazłem była dosyć prosta, czarne z klawisze z paskudnym srebrnym wykończeniem powierzchni nie klawiszowej. Opada.
Idę dalej. Mijam klawiatury firmy Logitech, klawiatury, drogie z duża ilością klawiszy dodatkowych. Inne klawiatury mają układ według ich pomysłu. ‘Insert’ nie istnieje. Jego miejsce zajął duży ‘Delete’, co to ma być? Klawiatury z przyczepionymi ‘Insert’, ‘Home’ itd do Backspace, Entera i Shifta.

Lekko załamany, że nic ciekawego nie mogłem znaleźć, zostało szukanie w internecie. Wadą szukania klawiatury w internecie jest jaki że nie sprawdzisz jaka jest w dotyku, jak chodzą klawisze itd. Szukałem jakiś porady, polecenia jakieś firmy i tak dalej. Natrafiłem na rekomendacje klawiatury sygnowanej nazwą Microsoft. Poszedłem tym tropem.

Ze strony wybrałem dwie ciekawe klawiatury pierwszą Comfort Curve Keyboard 2000 oraz Natural® Ergonomic Keyboard 4000

Ostatecznie zdecydowałem się na pierwszą z nich. Nie byłem pewny jak pracuje się na ‘załamanej’ klawiaturze. Zamówiłem na Allegro i przyszła. Powiem że jestem zadowolony z użytkowania jej (piszę na niej od paru tygodni). Zaletą klawiatury są dwa klawisze dodatkowe, wyciszanie dźwięku i przycisk uruchamiający kalkulator. Wadami strzałki które są dziwnie uformowane, jakoś mało miło się z nich korzysta oraz klawisz ‘A’ który jest głośniejszy od reszty.

Tworzenie własnych kontrolek w WFA. Tworzenie Label’ki z pamięcią.

Przykład jest banalny. Chce pokazać, że da się coś takiego zrobić. Łatwo.

Jak piszę na stronie MSDN: Klasę Label można dziedziczyć (w deklaracji nie ma słowa-klucz sealed).

Pamięcią kontrolki będzie tablica stringów zawierająca 10 poprzednich ustawień tekstu które zostały przypisane do kontrolki.

Definicja własnej kontrolki.

?View Code CSHARP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class LabelWithMemory : Label
{
    private string[] memory = new String[10];
 
    public string this[int index]
    {
        get
        {
            if (index >= 0 && index < 10)
                return memory[index];
            else
                return "";
        }
        set
        {
            if (index >= 0 && index > 10)
                memory[index] = value;
        }
    }
}

Dostęp do kolejnych komórek pamięci jest przez nazwę naszej labelki i indeks.

Jak to już mamy, pojawił się nowy element w Toolboksie, nasza nowa kontrolka

.Kontrolka w Toolbox

W trybie Design przeciągamy ją w wybrane miejsce.

Krok dalej…

Tak wygląda aplikacja na której wykorzystamy wykonaną przez nas lablekę.

okno programu

W przypadku jak ktoś naciśnie na przycisk zmiany tekstu, to obecny jest zapisany w nazwa labeli oraz w pamięci stringów. Tekst jest pobierany z tekstboksa

?View Code CSHARP
1
2
3
4
5
6
7
8
9
private void btnTextChange_Click(object sender, EventArgs e)
{
    lbMemo.Text = tbTextChange.Text;
    for (int i = 9; i > 0; i--)
    {
       lbMemo[i] = lbMemo[i-1];
    }
    lbMemo[0] = lbMemo.Text;
}

Jeżeli nastąpi zmiana tekstu, to wszystkie poprzednie zostają ‘zepchnięte’ o jeden indeks niżej. Pierwszy indeks przechowuje obecną, najnowszy tekst.

Klawisze od 1-8 korzystają z wspólnej funkcji.

?View Code CSHARP
1
2
3
4
5
6
7
private void NumberButton_Click(object sender, EventArgs e)
{
    Button btnNumer = (Button)sender;
    int index = int.Parse(btnNumer.Text);
 
    lbMemo.Text = lbMemo[index];
}

Funkcja ściąga tekst z klawisza i parsuje go jako cyfrę tak powstaje indeks z którego trzeba ściągnąć tekst.
I tak doszliśmy do końca
Jeśli chciałbyś kod źródłowy to nie krępuj się, prześlij e-mail do mnie(soltys z dopiskiem uznam.org).

Lataj, niszcz, zarabiaj, ulepszaj | Gra flash: Space Pips

lecimy i niszczymy

Space Pips to kolejna gra flash która pożera czas. Prosta i dająca mnóstwo frajdy z grania.

Latasz stateczkiem (ten biały na screenie) i niszczysz inne. Z zniszczonych statków kosmicznych wypadają małe kolorowe kulki które są pieniądzem w grze, gdy zbierzemy ich wystarczająco dużo możemy kupić ulepszenie broni, odnowę życia czy pomagające statki w walce z przeciwnikami.

Sterowanie statkiem to klasyczny WASD lub strzałki (wariant dla leworęcznych). Celowanie i strzelanie myszą, a gdy sytuacja stanie się nieciekawa można użyć Bomb, spacją (bomby można kupić także w sklepie). A do Sklepu wchodzi się klawiszem Q lub ESC.

Ocena: 9/10

Recenzja książki: Programowanie C# wyd. O’Reilly/Helion

Maryśka! Przygotuj strzelby

Ostatnio kupiłem książkę Programowanie C# wydawnictwa O’Reilly/Polska Helion. Autora Jesse Liberty.

Krótko:

Książka jest zła, źle napisana, droga,wiele błędów, długa i nudna.

Długo:

Zazwyczaj gdy kupowałem książkę wydawnictwa O’Reilly wiedziałem, że nie wydam pieniędzy w błoto. Tutaj ta zasada nie obowiązuje.

Autor rozpisuje się w łatwych tematach a skąpi wyjaśnienia przy zagwozdkach. Wiem, że od podstaw to ‘Wprowadzenie C#’ Okej, okej, ale nie potrzebuje tłumaczenia typu ‘jak działa switch’ wolałbym kompletne wytłumaczenie elementów które nie występują w C++ a są C#.

Totalny chaos jeśli chodzi Rozdział i temat. Wprowadza 5 nowych rzeczy a potem mówi że to opisze 200 stron dalej. CHAOS. Użycie stickerów ratuje.

Część I książki to przelot przed język dając trochę miejsca interfejsom oraz delegatom. A reszta to dotknięte (nawet nie ruszone tematy), które zaczynają się w sposób ‘kup tą książkę’, ‘kup tą książkę mojego autorstwa’… Nie oczekuje że opiszę się każdy z C# język ale można mniej a dokładnej.

Pierwszy raz zauważyłem aby książka miała tyle błędów. Ortografy czy błędy stylistyczne wybaczę, ale nie błędy w kodzie, czy też nie uważne tłumaczenie itp.

Moim zdaniem Autor nie zna tematu.

Co najwyżej dotknął temat patykiem. Złość mnie zbiera, że ta pozycja będzie sąsiadować z Wyrażenia regularne Autor: Jeffrey E. F. Friedl. O to książka techniczna. Wzór nie do pobicia.

Wstydź się Jesse Liberty, że taką książkę opublikowałeś. Ocena 4/10.

Jajka i spam tutaj: jliberty@microsoft.com

Znasz książkę godną polecenia? Napisz w komentarzu!

Dlaczego skrobie programy w C#/CSharp/.NET

Zamiast ’skrobie’ może być ‘piszę’ dla tych którym to przeszkadza: sed s/skrobie/pisze

Ostatnio Ci którzy obserwują mnie na Blipie zauważyli, że przeważą wpisy z tagiem ‘csharp‘ nic dziwnego bo ten język od Microsoftu pochłoną mnie w całości. I nie widzę świata poza nim.

Ale jak to się zaczęło.

W szkole pisałem program, grę Pong (Dwie paletki i jedna piłka). Pierwszy program w C++ do którego podszedłem w sposób obiektowy. Jednak nie było czegoś co by wmuszało ciągłe myślenie obiektowe jak, śmierć z kosą, aby nie dać się pokusie tworzenia wszystkiego strukturalnie, a wiem, że złe podjęcie problemu na początku powoduje nie potrzebny nakład pracy.
C++ wydaje mi się bardzo zgrzybiały, nie nowoczesny. Tak że postanowiłem go porzucić i szukać czegoś nowego.

Ruby, Python, PHP

Ruby - czytałem 0,5 godziny jakąś książkę o tym języku i byłem zachwycony jak prosty jest ten język. Wręcz można powiedz że piszesz program hasłami po angielsku a Ruby robi to tak jak napisałeś. Nie trzeba pisać ogromnych programów po setki linijek, a wystarczą małe kilka, kilkanaście linijek.

Wtedy zapaliła się czerwona lampka, dla mnie – małe programy == mało pisania == zero komentarzy.

Osobiście wole się męczyć i klepać wielkie ilości kodu i mieć kod samo komentujący się, niż do którego trzeba się dodatkowo wysilać. Odpowiednio dobrane nazwy wystarczą, aby nie trzeba było dodawać bilionów linijek komentarzy, a bardzo mądre słowa napisał Jeff Atwood ( a co, cytujmy znanych).

Szybkość programowania dla mnie nie jest najważniejsza jeśli była wyważona pomiędzy masochizmem a lenistwem, było wszystko OK.  Lubię szukać metody na przyspieszenia działania fragmentu kodu.

Python - rozwija obecnie 2-3 wersje 2.5/2.6/3.0 a użytkownik Linuksa posiada dodatkowe biblioteki dla każdej wersji. Koszmar. Wydanie wersji 3.0 zapewne spowolni rozwój.

PHP - Taaaa.

A może JAVA?

Początkowo powiedziałem nie chce kawy i że nie chce tam wyjeżdżać.

Pierwszy kontakt z nowym językiem jest na płaszczyźnie ‘umożliwi kompilacje “Hello World”‘. Pociągnąłem JRE (Java Runtime Environment) oraz JDK (Java Development Kit). Okey do wszczęcia potrzebuje jeszcze jakiegoś IDE, NetBeans czy Eclipse.
Na pierwszy ogień leci NetBeans. Uruchamiam (długo, myślę pierwsze uruchomienie to dlatego). Tworzę nowy, pusty projekt. I przepisuje z zapałem Hello World:

1
2
3
4
5
6
7
public class HelloWorld
{
    public static void main(String args[])
    {
        System.out.println ("Hello, World!");
    }
}

Wszystko było słodko dopóki nie doszedłem do linijki ‘System.’ wtedy NetBeans zabrał się z zapałem do pomagania mi w pracy, tyle że to pomaganie trwało tyle że zaparzyłem herbatę. Okej okej miałem parę programów włączonych, wyłączyłem je i przy ‘System.out.’ miałem tylko czas aby się upewnić czy woda się gotuje. Spojrzałem na jak Java zjada mi zasoby zarządza pamięcią. Na ‘Zaćmienie’ nie miałem czasu i sił witalnych.
Nie przypominam sobie abym korzystał z aplikacji napisanych w Javie (czyli jednak coś Javą jest nie tak). Do tego słyszałem nie niepokojące głosy odnoście Sun’a i JavaFX (że traci dochody a drugi, że się spóźnia).

Czas na C#/CSharp

C#,C#,CSharp skąd ja to znam… Czyżby to produkt ‘mikro-oprogramowania’

Wielu narzeka narzeka na Vistę, jednak Microsoft posiada kilka całkiem, całkiem fajnych produktów jakich jak Office 2007, Notatnik [1] i Visual Studio. Zdecydowanie sądzę że Visual Studio wyszedł im bardzo dobrze. Co więcej opublikowali go w częściach za darmo( wersje są nieco okrojone ). Do tej pory chwaliłem sobie (natywny) kompilator C++ w Visual C++

[1] Dobrze przeczytałeś Notatnik – jest prosty i szybki, używam go codziennie. Polecam ustawić czcionkę ‘Consolas’ i skorzystać z zaawansowanych funkcji i nie mów, że korzystasz z Notepad++,  Lamer.

Identyczny pierwszy styk jak z Javą ‘umożliwi kompilacje “Hello World”‘ pobieram instalator, 2 sekundy i instalator się ściągnął. Mnie nie oszukasz, czuję jakiś kant i rzeczywiście był. Instalator mały bo on służył do ściągania, reszty. Coś takiego ma służyć rozłożeniu obciążeniu łączą? Tak czy siak. Instalator ściąga co tam potrzebuje. Czas na kolejną herbatę/kawę. Na koniec Pan Instalator powiedział że powinienem w ciągu 30 dni zarejestrować kopię. PO CO? Już się przecież męczyłem przy sumiennym wypełnianiu ankiety przy Visual C++, a teraz to samo przy Visual C#. Myślałem, że Microsoft zaraz dostanie informacje że mieszkam w Nigerii ::Zły śmiech::. Loguje się na stronie z Live ID i co ? Mam wszystko wypełnione po ostatnim rejestrowaniu. Szybki zjazd w dół, kilk ‘Register’ i mam klucz który wklejam i tak jestem posiadaczem dożywotniej(?) licencji.

Hello World w C#:

?View Code CSHARP
1
2
3
4
5
6
public class Hello1
{
   public static void Main()
   {
      System.Console.WriteLine("Hello, World!");
   }

Uruchamiam i działa. YES. Proste.

MSDN to rzecz przez którą pokochałem C# jako język programowania. Co nie wpiszesz, dostaniesz podpowiedz jak masz zadanie zrobić. A poza tym wiecie. Coś zaiskrzyło….

Niedługo dowiecie co jeszcze spowodowało że mogę śpiewać to:

Wpis nie jest sponsorowany przez Microsoft. Muszę kończyć Steve dzwoni…

Oprogramowanie na Sylwester Winamp i Mp3tag

Zostałem poproszony abym odpowiadał za muzykę na sylwestrze 2008 – 2009. Nigdy się w takie rzeczy nie bawiłem, także nie miałem muzyki odpowiedniej na sylwester i a wiadomość, że będę za to odpowiedzialny dostałem z opóźnieniem (1-2 przed sylwestrem). Nie bawiłem się w miksowanie, zadaniem moim było dobieranie kolejnych piosenek, aby się nie powtarzały, ani nie były monotonne.

Winamp – Powszechnie znany odtwarzacz Mp3 i innych formatów za pomocą wtyczek. Kluczowym dla mnie była możliwość zgrania płyt od innych uczestników imprezy. Ripowanie płyt do mp3 jest tylko w wersji PRO (za którą ofc trzeba płacić). Wyjściem z sytuacji, bez okradania twórców Wiampa jest skorzystanie z pluginu do ripowania w format ogg. Całe szczęście, że Winamp nie problemu z odtwarzaniem otwartego formatu nie tak jak Windows Media Player. Powodami przez które wybrałem Winamp do zgrywania a nie inny program były:

  • O jeden program mniej w systemie
  • Po zgraniu płyty CD mam piosenki w dostępne w Bibliotece Mediów

Oczywiście z wybraniem Winampa kryło się większe prawdopodobieństwo, że program odmówi posłuszeństwa i będę klops. Na cała szczęście przez całą noc Winamp spisał się na 5+.

Mp3tag – Program tak świetny, że postanowiłem przekazać datek na rozwój [1]. Program stał się niesamowicie przydatny przy masowej zmianie wykonawcy, wtedy kiedy dostawałem płytę z składanką. Szybciej rozpoznaje się utwory po tytule niż po wykonawcy. Poza tym możliwość pobierania inforamcji do tagów z internetu. Ogólnie miodzio program.
[1] – Przekaże jak będę miał konto na PayPalu