Blip technicznie, czyli inżynieria uzależnień...
-
Upload
bootstrap -
Category
Technology
-
view
4.035 -
download
0
description
Transcript of Blip technicznie, czyli inżynieria uzależnień...
![Page 1: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/1.jpg)
Blip technicznie, czyliInżynieria uzależnień
![Page 2: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/2.jpg)
Co to jest ten blip?
![Page 3: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/3.jpg)
blog na spidzie?
![Page 4: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/4.jpg)
IRC 2.0?
![Page 5: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/5.jpg)
kolejna FaJnA StRonKa?
![Page 6: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/6.jpg)
Tak na początku myśląnowi użytkownicy.
![Page 7: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/7.jpg)
A programiści,zwykle mówią...
![Page 8: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/8.jpg)
![Page 9: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/9.jpg)
Mylą się jednak srodze.Bo blip, to też:
![Page 10: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/10.jpg)
Mylą się jednak srodze.
• SMS
• MMS
• GaduGadu
• Jabber (GTalk, SPIK, inne)
• API
• Widget
• naGłos
• naprawdę dynamiczne WWW
Bo blip, to też:
![Page 11: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/11.jpg)
42%
24%
22%
2%10%
WWW GG Jabber SMS/MMS API
WWW to nie wszystko
![Page 12: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/12.jpg)
Zacznijmy od nowa.
![Page 13: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/13.jpg)
Programowanie w czasach zarazy.
![Page 14: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/14.jpg)
Programowanie w czasach zarazy.
Osoby wrażliwe na piękno koduprosimy o zamknięcie oczu.
![Page 15: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/15.jpg)
LAMP? nie, dziękuję.
![Page 16: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/16.jpg)
• FreeBSD
• Lighttpd
• PostgreSQL (+Slony-I)
• Ruby + Rails
• one more thing..
LAMP? nie, dziękuję.
![Page 17: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/17.jpg)
Python + ekg!
![Page 18: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/18.jpg)
Twitter nie dawał rady, więc..
![Page 19: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/19.jpg)
Użyliśmy ANSI C!
![Page 20: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/20.jpg)
Maszyneria
![Page 21: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/21.jpg)
Maszyneria
• “zapomniany” pecet, webrick:3000
• hetzner.de
• pożyczone maszyny z rsync’em
• nokia 6310 na strychu
![Page 22: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/22.jpg)
A potem wszystko zaoraliśmy.no, prawie wszystko.
![Page 23: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/23.jpg)
Architektura jest banalna.
![Page 24: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/24.jpg)
DarklordWłada nami ciemny demon
![Page 25: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/25.jpg)
Transporty to oddzielne wątki~# darklord_ctl list_services--- mms_transport: :thread_state: "#<Thread:0x2ba46d51fd78 sleep>" :uptime: 26h 55m 23sgadu_gadu_transport: :thread_state: "#<Thread:0x2ba46d591978 sleep>" :uptime: 26h 55m 23sjabber_transport: :thread_state: "#<Thread:0x2ba46d520520 sleep>" :uptime: 26h 55m 23ssms_transport: :thread_state: "#<Thread:0x2ba46d591298 sleep>" :uptime: 26h 55m 23sweb_service: :thread_state: nil :uptime: 26h 55m 23s
![Page 26: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/26.jpg)
zarządzalne w biegu# darklord_ctl commands
commands
debug_start
debug_stop
list_services
service_restart
service_start
service_stop
stats
stop
![Page 27: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/27.jpg)
raportujące usłużnie# darklord_ctl stats gadu_gadu_transport
--- !map:Statistics
:last_incoming_message_received: 1197378880
:inbound_messages_received: 1168
:event_disconnect_count: 4
:inbound_messages_flood_protected: 17
:updates_handled: 1148
:outbound_messages_handled: 12386
:verifications_handled: 20
:inbound_messages_handled: 1168
:last_outgoing_message_sent: 2007-12-11 14:14:53
:outbound_messages_failures: 1
:event_conn_failed_count: 653
![Page 28: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/28.jpg)
MMS
![Page 29: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/29.jpg)
MMS•Użytkownik wysyła na e-mail ([email protected])•Wiadomość trafia na serwer SMTP•DarkLord pobiera za pomocą POP3•E-mail jest oczyszczany za pomocą MMS2R (do którego wykonaliśmy kontrybucję!)•Odczytujemy wysyłający numer, szukamy u nas•Wysyłamy przez API żądanie POST razem z załącznikami•Potwierdzamy przyjęcie MMSa SMSem i...
![Page 30: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/30.jpg)
Donos trafia na blipa!
![Page 31: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/31.jpg)
SMS
![Page 32: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/32.jpg)
SMS
•Użytkownik wysyła SMS na nasz numer
•SMS trafia do modemu GSM
•Gammu w trybie SMSD spięte z MySQLem
•SMSowy sługa DarkLorda pobiera i..
![Page 33: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/33.jpg)
Informacja z ulicy trafia prosto na blipa!
![Page 34: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/34.jpg)
Jabber
![Page 35: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/35.jpg)
Jabber
•Własny serwer ejabberd (niezależność, SRV)
•Biblioteka: xmpp4r
•Wątek jabber_transport działa jako klient
![Page 36: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/36.jpg)
Gadu naGłos
![Page 37: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/37.jpg)
Gadu naGłos
•Użytkownik dzwoni z telefonu lub Gadu
•WS z nagłosu pyta o to, czy chcemy słuchać?
•DarkLord decyduje czy ma czas na audiencję
•WS notyfikuje o nowej, pachnącej mp3
•DarkLord pobiera mp3 i przekazuje przez API
do Rails..
![Page 38: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/38.jpg)
Wracam po szkolei dzwonię na blipa!
![Page 39: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/39.jpg)
Jak to się robi?
![Page 40: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/40.jpg)
Ruby + Rails
![Page 41: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/41.jpg)
nginx
![Page 42: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/42.jpg)
Czemu nginx?
![Page 43: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/43.jpg)
Czemu nginx?
•Bardzo mały
•Duże możliwości konfiguracyjne
•Nieco szybszy niż Lighttpd
•Lepsze możliwości rewrite’owania URLi
•Stabilny, nie cieknie, świetny jako reverse-proxy
![Page 44: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/44.jpg)
GlusterFS
![Page 45: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/45.jpg)
Czemu GlusterFS?
![Page 46: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/46.jpg)
Czemu GlusterFS?•Część GNU Clustering Platform (FS, HPC, EP)
•Agregacja wielu źródeł danych w jeden FS
•“Skalowalność ponad Petabajty”
•Różne schedulery, brak metadanych, moduły!
•Niezależny od sprzętu i systemu.
•Prosta konfiguracja
•FUSE
![Page 47: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/47.jpg)
CruiseControl.rb
![Page 48: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/48.jpg)
![Page 49: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/49.jpg)
RCov - badanie pokrycie kodu testami
![Page 50: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/50.jpg)
BDD - specyfikacja zamiast testów
User- should add http:// to url when missing- should not add http:// to url when already present- should find users from GaduGadu contact list- should not track anyone through im when no im configuration- should send email invitations
![Page 51: Blip technicznie, czyli inżynieria uzależnień...](https://reader034.fdocument.pub/reader034/viewer/2022051609/5467169aaf7959df038b4cfa/html5/thumbnails/51.jpg)
PYTANIA?