Potyczki z kodem, czyli jak powstał supernotes.
W miniony piątek w Poznaniu odbył się maraton programistyczny hackfest. Nie przespałem blisko 36h, z czego 24h trwał sam maraton. Od godz 18 w piątek do 18 następnego dnia, należało stworzyć startup’owy projekt aplikacji webowej. Zespół mógł się składać maksymalnie z 3-ch osób. Ja mam to wielkie szczęście, że oprócz dobrego kolegi Mateusza Kuleszy, w zespole miałem żonę. Tego naprawdę można pozazdrościć.
A tak wracając do konkretów, oceną projektu zajmie się publika i zwycięzcą zostanie ten na kogo w ciągu 2 tyg. zagłosuje najwięcej osób. Jeśli chcesz zobaczyć co udało się nam stworzyć to zapraszam na http://supernotes.app.hackfest.pl.
A jak to wyglądało od środka ? Ohhh uwierz jest naprawdę co opowiadać. Na pomysł elektronicznych notatek wpadł Mati. Zaczęliśmy wstępne próby z domeną supernotes.pl. W planach początkowych było użycie frameworka Seagull, z którym jestem już od jakiegoś czasu “za pan brat”. Zrobiłem na nim już kilka działających rzeczy, wiec uznałem, że doświadczenie i znajomość architektury byłaby dużym atutem. Mati wystąpił z propozycją użycia CMS’a, bo tam już są gotowe rzeczy do konstrukcji stron przez użytkowników no i wiele innych udogodnień. Pamiętałem, że kiedyś sporo wspominał o tym CMS’ie, i mimo że bałem się ryzyka postanowiłem, że dobra skoro ma być łatwiej i szybciej to niech będzie ten CMS.
I co ? CMS, okazał się lekkim niewypałem i bardzo problematycznym narzędziem. To jednak nie wszystko. Same sprawy organizacyjne hackfest’u pozastawiały sporo do życzenia. Informacje o serwerach (SVN, mysql, etc) i dostępie do nich porozrzucane trochę w e-mailach trochę na stronie, innych rzeczy trzeba było się domyślić. Okazało się że jest uruchomiony mechanizm, automatycznego deploy’u aplikacji z SVN’a na serwer HTTP po commit’ach. Szybko zaszwankowało i dało się we znaki wszystkim uczestnikom. Brak dostępu poprzez FTP i jakiegokolwiek narzędzia umożliwiającego zmianę uprawnień w katalogach na serwerze sprawił, że wykonanie instalacji CMS’a, czy jakiegokolwiek frameworka stawało się niemożliwe. Ratunkiem okazał się mój domowy serwer, gdzie dokonaliśmy instalacji i gdzie trwały wszelkie prace rozwojowe. Regularnie trzeba było przenosić zmiany na serwer SVN’a hackfest’u. W dodatku na laptopie Mateusza posypał się klient SVN’a, więc w sumie, miałem pełne ręce dodatkowej roboty administracyjnej, merge’owanie wersji i wrzut do repozytorium. U mojej żonki klient SVN też na początku się trochę sypał, ale po wyłączeniu autodeploya na serwerze sprawy się unormowały.
Mamy więc tymczasowy, działający serwis u mnie na serwerze, aktualna wersja na serwerze hackfets’u i … no tak baza danych i konfiguracja CMS’a są tylko u mnie Całość niestety musi działać tam. Ta operacja migracji z jednej domeny na inną była naprawdę ciężka. Wymagała bardzo dużej uwagi, a przecież to już była prawie 30h bez snu. Koncentracja wyraźnie osłabiona, a każdy błąd mógł doprowadzić do ruiny cały projekt. Do końca pozostała już niespełna godzina. Projekt nie ma wielu założonych funkcjonalności z powodu nie przewidzianych problemów z CMS’em. Trzeba ostrożnie połączyć zmiany i przenieść je wszystkie do repozytorium i poczekać ok, 10 min na odświeżenie wersji na serwerze HTTP.
Przeniesienie bazy danych było o tyle ryzykowne, że mogliśmy potencjalnie utracić znaki narodowe lub w najgorszym wypadku aplikacja w ogóle mogła nie zadziałać. Obsługa UTF’a i w znaków narodowych w MySQL’u była różna w różnych jego wersjach. Stąd też problemy z migracjami. Najlepszym rozwiązaniem okazał się mysqlAdmin, zainstalowany na obydwu serwerach i operacje export/import. Na szczęście wszystko się powiodło i zostało tylko przekonfigurować CMS’a na serwerze hackfest’u. Serce zabiło mi, kiedy aplikacja nie zadziałała w pełni poprawnie. Pierwsza korekta, po 7 min brak efektu druga korekta, znowu czekać, i dalej nie działa. Była już godzina 18:15 (przedłużono ze względu na wcześniejsze problemy z serwerem SVN) a nasza aplikacja wciąż nie działa i trzeba czekać na następne odświeżenie. Nagle serwery padają. Brak SVN, brak HTTP. Ok. 18:28 po odświeżeniu przeglądarki, okazało się że aplikacja zadziałała prawidłowo.
Uff jaka ulga. Mimo że nie zrealizowaliśmy wielu elementów naszego projektu, to i tak jestem zadowolony z tego co powstało. Dziękuję całemu naszemu zespołowi za włożony wysiłek i poświęcenie.
pozdrawiam serdecznie i do usłyszenia
Najświeższe komentarze