Django 1.0
Nie tak dawno pojawiła się kolejna wersja Zend Framework (1.6) a tu proszę kolejne wydanie. Tym razem zapewne dużo bardziej wyczekiwane.
Po 3 latach prac pojawiła się wreszcie wersja 1.0 frameworku Django. Bardzo to radosna wiadomość. Można mieć nadzieję, że nie będzie już znaczących rewolucji w API a jedynie zmiany ewolucyjne.
djangowy wykład
Wykład na temat django przebiegł zgodnie z planem. Nawet kodowanie na żywo przebiegło bez większych problemów, a przy okazji powstała aplikacja w postaci twittera. Wniosek jeden, kodowanie na żywo jest o wiele przyjemniejsze od prezentacji slajdów.
A już za dwa tygodnie prawdopodobnie kolejne kodowanie, tym razem nie moje, coś o ASP.NET i seria się właściwie skończy. Przydałoby się coś o RoR, ale jakoś nikt z członków koła nie bawił się tym. Może długi wolny tydzień coś zmieni w tej materii ;]
Im łatwiej tym lepiej... pyphpbb
Od jakiegoś czasu na naszym forum jest sobie akcja zbierania pieniędzy w ramach pajacyk.pl. Co tu dużo mówić nabijacz postów i tyle. No ale cel jakiś taki słuszny można powiedzieć. Słuszny nie słuszny, nie bardzo chciało mi się klikać codziennie, a tym bardziej pisać posta z nową kwotą (te posty mają podobno mobilizować (; ). Od razu jak ruszył temat, powstał pomysł jakiegoś skryptu który by robił to za nas. Widocznie nie tylko ja jestem tak cholernie leniwy. Skrypt jakoś nie powstawał, aż powstała sesja. Okres bardzo produktywny w życiu większości studentów. To wtedy robi się wszystko oprócz przyswajania wiedzy na egzaminy.
Wreszcie wersja beta sms2.0
W końcu udało mi się przepisać do końca całą usługę która od jakiegoś czasu prowadzę. Mowa o wysyłaniu różnych informacji, do znajomych, via sms.
Do niedawna była to prognoza pogody na dzień dzisiejszy, prognoza na jutro, aktualne imieniny. Do co niektórych użytkowników wysyłam kurs walut, kurs akcji. Dodatkowo działało proste przypomnienie. Wszystko to działa na... skryptach basha ;) które uruchomione są na screenie. Nawet ładnie działało, ale dodanie informacji o kursie walut dla wszystkich użytkowników byłoby już dość trudne. Postanowiłem więc to przepisać od nowa, przy okazji poznać coś nowego. Panel był bardzo prosty i nie pozwalał na większą konfiguracji, w dodatku napisany z użyciem PHP.
Zacząłem jeszcze przed wakacjami pisać zaczątki nowej wersji systemu. Zacząłem w nieszczęsnym PHP, którego nie cierpię i nadal nie umiem na tyle by się nie irytować każdym błędem. Na szczęście na jogu Jarka Zgody zauważyłem znaczek Django. Pythonowy web framework w którym tworzenie to przyjemność. Zresztą jak każde kodowanie w pythonie. Panel administracyjny razem z całą stroną napędza django, sam backend napisany jest w pythonie. Chyba udało mi się maksymalnie zmodularyzować budowę. Usługi są w formie wtyczek, konfiguracja usług znajduje się w bazie. Na razie wszystko działa, choć można powiedzieć, że jest to wczesna beta.
Obecnie oprócz pogody dla dowolnego zdefiniowanego miasta, imienin działa jeszcze Kurs Akcji, Kurs Walut i Przypomnienia. Prawie gotowa jest wtyczka o powiadomieniach o nowych mailach.
Czego ciekawego się nauczyłem. Zgłębiłem jeszcze bardziej python. Poznałem django i... HTMLParser. W końcu jakoś trzeba było sobie radzić bez shellowego seda, grepa i lynxa.
Jak na razie DEBUG ustawiony na True, ciekawe ile błędów jeszcze wyłapie..
Nie cierpię
Jak ja nie znoszę dłubać w CSS/HTML. Skończyłem budować mała aplikacje www z użyciem django. Samo django full wypas. Miałem trochę niestandardowe życzenia co do tego frameworku, ale udało się go przystosować. Jeszcze jest zbyt sztywno napisany, z drugiej strony większa elastyczność mogłaby go skomplikować. I tak myślę, że zaoszczędziłem mnóstwo czasu na zabawę z php. Tak jak CSS/HTML tak i PHP również nie cierpię, toporne to wszystko jakieś takie. O nie cierpię jeszcze C, za niskopoziomowy dla mnie. Nie pozwala na myślenie o całości zagadnienia, trzeba się babrać ze wskaźnikami, pamięcią. To nie dla mnie. Tak żaden ze mnie haker, przyznaje się bez bicia. Nie wiem jak ludzie mogą dłubać w assemblerze.
louie
wynalazłem cuś tak fajnego jak louie. Moduł/biblioteka do Pythona dająca możliwość komunikacji między obiektami. Fajna sprawa i łatwa w użyciu.
ROX dziwnie działa
menda ROX 2.3 nie lubi HOME_ETC, konfigi trzyma w jakiś głupich nazwach. Z HOME_ETC już sobie poradziłe, ale nadal moich starych konfigów nie czyta. Czyżby zmiana formatu, blee..., i nie pamiętam czy defaultowo w PLD HOME_ETC wskazuje na HOME czy też nie ma w ogóle takiej zmiennej...
spać spać spać
głupie sprawozdanie, się okazało że pomiary źle porobiliśmy, trzeba będzie spisać od kogoś, bo nijak nie mają się do obliczonych wartości a w jednym przypadku obliczenia nie mają się do rzeczywistości
zagadka, po co mi umiejętność tworzenia takich bzdur, pojęcia nie mam.
warsztaty z Pythona nawet ciekawe, choć mogłoby być coś bardziej skomplikowanego jeśli chodzi o GUI, ale cóż tam czas nie zmarnowany, przyda się (-:
Zbiorcza notka mi wyszła z tego, ehmm wszystko przez to, że ktoś tu chory jest :(
szybkiego powrotu do zdrowia!
Server svn
Tia zamiast się uczyć na jutro na fize, zrobiłem postawiłem dzięki mimooh'owi svn server.
teodor's svn :-). Może teraz ktoś
miły przyjrzy się temu mp3kat i znajdzie bug'a związanego z idiotycznym UnicodeDecodeError który mnie wyprowadza z równowagi, o którym napisane jest tutaj: Do I hate Unicode or do I hate ASCII
a teraz zabieram się za fizyke, w końcu jutro może coś być a nie musi...
Updajet:
bardzo woolnoo działa z powodu łącza
przeboje z gtk, part2
Okey ostatni problem rozwiązany, nie przypuszczałem, że dwie linijki i będzie po sprawie. Gorzej, że głowa pracuje, choć późna pora i wymyśla kolejne problemy, czas na pop-up menu nad elementem już wybranym... to czytam dalej takie cóś
przeboje z gtk, part 1
Postanowiłe stworzyć coś z GUI, oczywiście w pythonie, wybór padł na GTK. Ładnie stworzyłem interfejs, zajął mi 100 linii kodu (ciekawe dlaczego tak dużo), dzisiaj odchudziłem go o 30 linijek, wygląda troche smaczniej. Brak mi już sił natomiast na dalsze działanie, od 2h próbuje zmusić ten cały UI do tego, aby po wybraniu elementu, zwracał wartość do funkcji. W kodzie ten cały graficzny element wygląda tak:
liststore = gtk.ListStore(str)
table = gtk.TreeView(liststore)
file_column = gtk.TreeViewColumn('path')
table.append_column(file_column)
cell = gtk.CellRendererText()
file_column.pack_start(cell, True)
file_column.set_attributes(cell, text=0)
to jest upakowane w scrolledwindow, wypełniane dokładniej
ścieżkami do plików za pomocą innej funkcji, w trakcie działania
programu. Ni w ząb nie mogę z dokumentacji stworzyć jakiegoś
sensownego rozwiązania.