Przejdź do głównej zawartości

Posty

Wyświetlanie postów z 2010

Jak poznawać nowy język programowania? (w/g Rafała)

Często czytam wypowiedzi czy artykuły różnych programistów, stanowiące sprawozdania z procesu poznawania jakiegoś nowego dla nich języka programowania. Metody poznawcze bywają różne. Wielu programistów podchodzi do problemu analitycznie - wgłębiają się w każdy szczegół języka, analizują jego składnię, znajdują niedoróbki i niekonsekwencje, badają efektywność różnych konstrukcji, zastanawiają się nad ich przydatnością i tak dalej. I jest to podejście bardzo słuszne w swym założeniu, pozwalające na rzeczywiste zgłębienie języka. Ale nie sposób też nie zauważyć, że jest to podejście czasochłonne, a zwykle programiści - jeżeli poznawanie nowego języka nie jest ich zajęciem zasadniczym - cierpią na chroniczny brak czasu, ścigani przez terminy „na wczoraj”. Jedną z moich informatycznych myśli przewodnich jest „rozwój poprzez poznawanie jednego nowego języka programowania na rok”. Gdybym stosował metodę przedstawioną wcześniej, prawdopodobnie miałbym problemy z wyrobieniem się w czasie. Mój s

Krótkie podsumowanie, czyli "w odpowiedzi na komentarz..."

Przyzwyczaiłem się już do sytuacji, że pod moimi wpisami w blogach nie ma komentarzy. Wynika to albo z braku zainteresowania Internautów moimi wypocinami, albo z nikłej kontrowersyjności tekstów (nikogo nie wnerwiam). Stawiam na to pierwsze - przypomnina mi się koszulka z napisem: "Nobody reads your blog!" ;-) Jednak czasem komentarz się pojawia, a ja go całkowicie nie zauważam (patrz: pierwsze zdanie o przyzwyczajeniu). Muszę pogrzebać w konfiguracji bloga - może jest jakieś informowanie mailem, czy coś w tym rodzaju? Ostatnio odkryłem, że użytkownik demikaze napisał komentarz pod moim wpisem testowym, opublikowanym przez jedną z pierwszych wersji programu BlogTweetProject (był to jednocześnie mój pierwszy program napisany w Pythonie). demikaze zastanawiał się, jakie jest moje spojrzenie na Pythona, jeśli dotychczas programowałem w "klasycznych" językach, jak Java, C++ czy C#. Zastanawiał się też, od którego momentu można potraktować dany język programowania j

Ruby on Rails i klaster po indiańsku ;-)

Zacznę od tego, że winienem wszystkim, którzy czytali mój tutorial o początkach pracy z JRuby on Rails, kilka wyjaśnień. Trochę już napisałem we wcześniejszych postach, więc tutaj tematykę rozwinę (o ile mi się uda ją rozwinąć). Otóż zrezygnowałem z Ruby'ego implementowanego na platformie Java nie dlatego, że okazał się do bani , lecz z zupełnie innego powodu. Otóż pracując z JRuby on Rails niejednokrotnie borykałem się z problemem niekompatybilności różnych wersji gemów (głównie rack , ale i innych paczek) a to z potężnym Glassfishem, a to z jego wersją deweloperską, stworzoną specjalnie do pisania i testowania aplikacji JRoR ( glassfish-gem ). Pomijam oczywiście fakt, że musiałem ciągle używać JRE/JDK w wersji 1.6.0_17, podczas gdy mamy już 1.6.0_21... Ale na nowszych Glassfish 3.0 (takiego używałem) padał na kolana. Przynajmniej u mnie, ale z tego, co czytałem, nie byłem jedynym użytkownikiem z tym problemem. Wszystko to przekładało się na konieczność testowania każdej istniej

Ruby 1.9.2 i przygód kilka...

Ponieważ repozytoria Ubuntu 10.04 są dosyć biedne jeśli chodzi o świeże wersje różnych programów, czasem trzeba sięgnąć po źródła. Rozczarowany ograniczeniami Ruby 1.8.7 dostarczanego przez repozytoria Ubuntu usunąłem go wraz z całą "świtą" pakietów (bezustannie dziwię się, dlaczego wszystko jest tak rozdrobnione w repozytoriach, podczas gdy w źródłach mamy all-in-one ; czasem mam obawy, że wyrzucam coś, co może być gdzieś potrzebne), pobrałem sobie źródła wersji 1.9.2, przekompilowałem i szafa gra. Choć od razu pojawiły się problemy - o ile Rails 2.3.8 zostały poprawnie zainstalowane (plus jeszcze parę innych dodatków), mongrel wszedł jak nóż w masło, mongrel_cluster tak samo, o tyle okazało się, że ani sam mongrel , ani mongrel_cluster nie mogą pracować razem, ani też pod kontrolą Ruby 1.9 ... Już chciałem robić downgrade Ruby'ego, gdy znalazłem w serwisie github.com repozytoria źródeł nowych wersji obu wspomnianych pakietów. Po przebudowaniu "dżemów"

Pożegnanie z Glassfishem i JRuby on Rails

Tytuł straszny, ale nie jest tak źle. Po prostu wracam do Railsów bazujących na natywnym Ruby i do serwera Mongrel , tym bardziej, że do celów produkcyjnych można wykorzystać starego dobrego indianina. Wiem, że nie jest to odkrywcze, ale znalazłem bodaj jedyną sensowną metodę udostępniania aplikacji RoR poprzez właśnie serwer apache . Opis tej metody można znaleźć tutaj: Apache + JRuby + Rails + GlassFish = Easy Deployment! . Wcześniej żadna ze sztuczek nie skutkowała, ta zaś zaczyna działać w środowisku natywnym Ruby (trzeba ją troszkę doszlifować), mimo, że opis dotyczy JRoR . Poza tym - jak by nie było - apache jest dużo lżejszym serwerem, niż Glassfish , a instalowanie i obsługa tak potężnego narzędzia, jakim jest Glassfish , tylko po to, żeby serwować na nim aplikacje RoR jednak nie do końca ma sens. Chyba, że ktoś uruchamia jeszcze na nim javowskie aplikacje sieciowe. Kolejny powód rezygnacji z tego serwera, to wieczne problemy z kompatybilnością gemów i kolejnych wersji J2SE -

Rails 3.0 w świetle dziennym

No i nareszcie mamy Rails 3.0 ! Zapowiada się ciekawie, choć pojawił się problem. Otóż framework został w pewnym stopniu przebudowany (jeszcze dokładnie się z nową wersją nie zapoznałem - wykonałem tylko kilka prób), co powoduje, że działające aplikacje utworzone w wersji 2.x muszą zostać "odrobinę" przerobione. Niestety, w moim przypadku - o ile "stare" aplikacje mogą sobie spokojnie pracować w Railsach 2.x - nowa wersja frameworka pociąga za sobą zmiany w środowisku pracy, przede wszystkim upgrade NetBeans (używam wersji 6.8), a kto wie, czy nie musiałbym też dźwigać GlassFish'a. W sumie można by powiedzieć: w czym problem? A no w braku czasu - głównie poświęcić go trzeba na dopieszczanie środowiska po upgrade'ach . Inna rzecz, to świeżość Rails 3 - myślę, że nie będzie od rzeczy przeczekanie pierwszej fazy szału na nową wersję i zainteresowanie się np. wersją 3.0.1. Dla chcących migrować z Rails 2 na 3 dostępna jest ciekawa (jak mniemam) książka: Ra

Moving to Python

Mówi się, że prawdziwy informatyk powinien co roku poznawać nowy język programowania :-) Fajna sprawa, ale u mnie z tą częstotliwością bywało różnie. Zresztą między poznawaniem języka, a jego biegłym używaniem jest zasadnicza różnica. Poznałem na przestrzeni kilkunastu lat wiele języków programowania, jednak tak na prawdę programowałem i programuję tylko w trzech: C++ (w tym C++/CLI), C# i Java. Pozostałe, a było ich wiele - Forth, Lisp, wszelkie odmiany Basica, Perl, PHP (choć mocno go onegdaj używałem), Pascal, stary, dobry asembler i inne, których nazw już nawet nie pamiętam - gdzieś sobie zniknęły w czeluściach pamięci. Ostatnio nawet Ruby gdzieś mi zaczął umykać, ponieważ już dawno nie napisałem ani kawałka kodu... Jednak w tym przypadku sprawa jest ciągle otwarta - przymierzam się do pewnego projektu. Ostatnio przeczytałem początek cyklu artykułów autorstwa Łukasza Langi opublikowanych w SDJ , a traktujących o programowaniu w Pythonie. I mnie ruszyło. O Pythonie słyszałem od d

Dla chcących zgłębić C++

Często zarówno uczniowie, jak i inni adepci sztuki programowania pytają mnie o dobry podręcznik do C++. Szczerze powiedziawszy ciężko znaleźć naprawdę dobry podręcznik traktujący o referencyjnym (dla mnie przynajmniej) języku programowania, jakim właśnie jest C++, w sposób dogłębny, bez naleciałości rodem z Pascala (!) czy C (niestety, długo musiałem się tych naleciałości wyzbywać - teraz znowu mam inne "zboczenie": wszystko piszę jak w Javie...). Na szczęście przypomniało mi się, że jest w Internecie dostępny świetny kurs/niekurs języka C++ - może nie do końca dla początkujących (trzeba znać podstawy programowania) i może nie w 100% wyczerpujący, ale prezentujący (jak rzadko) PRAWIDŁOWY styl programowania w C++ (w zgodzie ze standardami). Gorąco polecam: " C++ bez cholesterolu " by Sektor van Skijlen

Z cyklu: źródła znalezione w starych archiwach - animacje siatkowe 3D w Javie

Szukałem i znalazłem! Parę lat temu, nudząc się okropnie postanowiłem przypomnieć sobie, jak to było w czasach, kiedy nie mieliśmy do dyspozycji OpenGL ani DirectX i wszelkie operacje trójwymiarowe trzeba było programować "z palca". Napisałem kilka programów, pokazujących nieskomplikowaną animację figur (sześcian, kula, pierścień) - w zasadzie wyłącznie przekształcenia afiniczne. Oczywiście wszystko zrobione jest jak w starym, dobrym asemblerze. Zapraszam do pobrania binarek oraz przejrzenia źródeł. Szczególnie polecam tym wszystkim, którzy pragną zacząć przygodę z grafiką komputerową. Zdaję sobie sprawę, że programy nie są mistrzostwem świata, ale - jak wspomniałem - powstały z nudów, a pisanie ich było zabawą :-) Do pobrania/przejrzenia: - Sześcian ( bin ) ( src ) ( doc ) - Kula ( bin ) ( src ) ( doc ) - tylko model punktowy; nie chciało mi się dorabiać siatki i tak już zostało... - Pierścień ( bin ) ( src ) ( doc ) Animacja w akcji:

Materiały dodatkowe do nauki Ruby on Rails

Mój tutorial nie jest wyczerpujący, to rzecz, którą można zauważyć na pierwszy rzut oka. Nie skupiałem się w nim na samym języku Ruby, ani też na szczegółach Rails. W związku z tym zamieszczam parę linków do stron, gdzie znaleźć można wiele ciekawych informacji, również dla początkujących: Tutoriale Ruby on Rails w środowisku aptana/radrails – nieco przestarzałe, ale pod względem jakości bardzo dobre. Polskie forum Ruby on Rails Railscasts – screencasty na temat RoR Wzorzec projektowy Model-View-Controller (wikipedia jako obszar startowy :-)) Wzorzec projektowy Active Record (j.w.) Z książek (drukowanych) na początek mógłbym polecić np.  B.A. Tate, C. Hibbs: Ruby on Rails. Wprowadzenie , Helion, 2007 ( drugie wydanie ). I oczywiście inne pozycje wydawnictwa Helion (moim zdaniem jest to wydawnictwo informatyczne nr 1 na naszym rynku, dlatego się nie rozdrabniam). O samym języku Ruby dowiemy się najwięcej rozglądając się po stronach oficjalnego serwisu . Mogę pole

Aneks (2) do tutoriala – Glassfih v3 + JRuby (on Rails) + MS SQL Server 2008

W artykułach: Nowa wersja activerecord-jdbc-adapter – 0.9.4 // usunięty // Problem z activerecord-jdbc-adapter w wersji 0.9.3 // usunięty // przedstawiłem problem, jaki wystąpił podczas próby wpisywania danych do tabel SQL Servera z poziomu aplikacji JRuby on Rails poprzez rdzenny activerecord-jdbc-adapter w wersjach 0.9.3 i 0.9.4, później również – o czym już nie pisałem – w wersji 0.9.5. W tym rozwiązaniu wykorzystywany był sterownik JDBC dla Microsoft SQL Servera 2008. Ostatnio znalazłem dedykowany adapter dla SQL Servera ( activerecord-jdbcmssql-adapter , w wersji 0.9.5). Postanowiłem go wypróbować. Okazało się, że działa! A ponadto nie jest już potrzebny osobny sterownik JDBC i proces tworzenia aplikacji za pomocą kreatora znacznie się uprościł. Aby skorzystać z dobrodziejstwa activerecord-jdbcmssql-adapter’a należy go oczywiście zainstalować (razem z innymi, ważnymi elementami – bodaj jeden dodatkowy pakiet oraz aktualizacja elementów activerecord ) i zmienić odrobinę us

Aneks do tutoriala – Glassfih v3 + JRuby (on Rails) + MS SQL Server 2008

W trzech częściach tutoriala na temat początków tworzenia i wdrażania aplikacji JRuby on Rails na platformie, w skład której wchodzą serwer aplikacyjny Glassfish v3 oraz serwer baz danych Microsoft SQL Server 2008, zabrakło informacji, jak przygotować niezależny od NetBeans serwer Glassfish do współpracy z produkcyjnym JRubym, a JRuby’ego do obsługi SQL Servera poprzez JDBC. Niniejszym nadrabiam zaległości. Najpierw musimy zainstalować (proces instalacji jest raczej intuicyjny i chyba nie wymaga opisu) i uruchomić niezależny serwer Glassfish, np. za pomocą polecenia (oczywiście polecenie do uruchomienia, nie instalacji :-)): asadmin start-domain Następnie w odpowiednim polu naszej ulubionej przeglądarki wpisujemy adres (numer portu według naszej konfiguracji, ustalonej w procesie instalacji – tutaj wartość domyślna): http://localhost:4848 Po udanym logowaniu do Konsoli Administratora (adres podany wyżej prowadzi właśnie do tej konsoli), udajemy się do podstrony Ruby Container : Na tej

JRuby on Rails + NetBeans + GlassFish +… Microsoft SQL Server 2008 (cz. 3)

To już ostatnia część tutoriala. W poprzednich częściach przygotowaliśmy środowisko pracy oraz utworzyliśmy bazy danych dla naszego projektu. Wykorzystując NetBeans wygenerowaliśmy również wstępną formę projektu aplikacji Rails i sprawdziliśmy z powodzeniem, czy jej uruchomienie jest możliwe. Teraz zajmiemy się rozbudową przykładowej aplikacji (nie ukrywam, że wygenerowany przez nas w części drugiej projekt był po prostu pusty…). Właściwie, to powinniśmy podejść do sprawy fachowo, czyli zaprojektować aplikację w oparciu o wzorzec MVC, jednak do naszych potrzeb użyjemy generatora rusztowań – będziemy po prostu “scaffoldowali” (scaffold – oznacza m. in. szkielet lub rusztować). Otwórzmy naszą aplikację-projekt Rails ( SimpleApp ) w środowisku NetBeans. Możemy jeszcze raz sprawdzić, czy wszystko gra (czyli działa). Jeśli tak, to kontynuujemy. W panelu Projects odnajdujemy nazwę naszego projektu ( SimpleApp ) i klikamy w nią prawym przyciskiem myszy. Z menu kontekstowego wybieramy opcję G

JRuby on Rails + NetBeans + GlassFish +… Microsoft SQL Server 2008 (cz.2)

W tej części tutoriala przygotujemy do pracy serwer baz danych, utworzymy w nim konto użytkownika, za pomocą którego wygenerujemy odpowiednie bazy danych - wykorzystamy je dalej przy tworzeniu przykładowej aplikacji Rails. Następnie "zmusimy" środowisko NetBeans do współpracy z SQL Serverem poprzez interfejs JDBC, wygenerujemy przykładową aplikację Rails i sprawdzimy, jak sobie radzi pod kontrolą serwera testowego GlassfishGem. Najpierw krótkie przypomnienie. Aplikacja railsowska potrzebuje trzech baz danych: trybu tworzenia aplikacji ( development ); trybu testowania aplikacji ( test ); trybu produkcyjnego (wersja końcowa -  production ) Pierwsza z nich przeznaczona jest do celów developerskich - cechują tę bazę częste zmiany, migracje i ich cofanie oraz przeładowywanie związanych z nią obiektów przy każdym odwołaniu do aplikacji. Druga, jak sama nazwa wskazuje, przeznaczona jest do testów aplikacji, natomiast trzecia wykorzystywana będzie w przypadku właściwego uruch

JRuby on Rails + NetBeans + GlassFish +… Microsoft SQL Server 2008 (cz.1)

Część pierwsza tutoriala o “mieszance wybuchowej”. Znalazłem wreszcie czas, żeby się za nią zabrać – temat jest interesujący i odrobinę intrygujący. Wszyscy, którzy próbują swych sił ze znakomitym frameworkiem Ruby on Rails zwykle korzystają z układu: Ruby + Rails, MySQL oraz serwer Webrick lub Mongrel . Ja mam propozycję inną. Na jednym ze spotkań Śląskiej Regionalnej Grupy Microsoft mój kolega Sebastian, podczas przerwy kawowej, słuchając moich wywodów na temat doskonałości Rails zaproponował mi zwrócenie uwagi na rozwiązanie o przewrotnej nazwie JRuby on Rails. Literka “J” przed nazwą jednego z coraz bardziej popularnych, interpretowanych języków programowania oznacza, że wersja ta została w całości napisana w  Javie (moim ulubionym języku programowania :-)). No więc się zainteresowałem. Dlaczego? Mam nadzieję, że ten tutorial udzieli odpowiedzi na to pytanie i przy okazji wiele wyjaśni. O czym będzie w tej części? Wstępniak drugi, czyli co mnie skłoniło ku takiemu rozwiązan