Top Banner
Blip technicznie, czyli Inżynieria uzależnień
52

Blip technicznie, czyli inżynieria uzależnień...

Nov 15, 2014

Download

Technology

Bootstrap

Prezentacja ze styczniowego Bootstrapa.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Blip technicznie, czyli inżynieria uzależnień...

Blip technicznie, czyliInżynieria uzależnień

Page 2: Blip technicznie, czyli inżynieria uzależnień...

Co to jest ten blip?

Page 3: Blip technicznie, czyli inżynieria uzależnień...

blog na spidzie?

Page 4: Blip technicznie, czyli inżynieria uzależnień...

IRC 2.0?

Page 5: Blip technicznie, czyli inżynieria uzależnień...

kolejna FaJnA StRonKa?

Page 6: Blip technicznie, czyli inżynieria uzależnień...

Tak na początku myśląnowi użytkownicy.

Page 7: Blip technicznie, czyli inżynieria uzależnień...

A programiści,zwykle mówią...

Page 8: Blip technicznie, czyli inżynieria uzależnień...
Page 9: Blip technicznie, czyli inżynieria uzależnień...

Mylą się jednak srodze.Bo blip, to też:

Page 10: Blip technicznie, czyli inżynieria uzależnień...

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ń...

42%

24%

22%

2%10%

WWW GG Jabber SMS/MMS API

WWW to nie wszystko

Page 12: Blip technicznie, czyli inżynieria uzależnień...

Zacznijmy od nowa.

Page 13: Blip technicznie, czyli inżynieria uzależnień...

Programowanie w czasach zarazy.

Page 14: Blip technicznie, czyli inżynieria uzależnień...

Programowanie w czasach zarazy.

Osoby wrażliwe na piękno koduprosimy o zamknięcie oczu.

Page 15: Blip technicznie, czyli inżynieria uzależnień...

LAMP? nie, dziękuję.

Page 16: Blip technicznie, czyli inżynieria uzależnień...

• FreeBSD

• Lighttpd

• PostgreSQL (+Slony-I)

• Ruby + Rails

• one more thing..

LAMP? nie, dziękuję.

Page 17: Blip technicznie, czyli inżynieria uzależnień...

Python + ekg!

Page 18: Blip technicznie, czyli inżynieria uzależnień...

Twitter nie dawał rady, więc..

Page 19: Blip technicznie, czyli inżynieria uzależnień...

Użyliśmy ANSI C!

Page 20: Blip technicznie, czyli inżynieria uzależnień...

Maszyneria

Page 21: Blip technicznie, czyli inżynieria uzależnień...

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ń...

A potem wszystko zaoraliśmy.no, prawie wszystko.

Page 23: Blip technicznie, czyli inżynieria uzależnień...

Architektura jest banalna.

Page 24: Blip technicznie, czyli inżynieria uzależnień...

DarklordWłada nami ciemny demon

Page 25: Blip technicznie, czyli inżynieria uzależnień...

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ń...

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ń...

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ń...

MMS

Page 29: Blip technicznie, czyli inżynieria uzależnień...

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ń...

Donos trafia na blipa!

Page 31: Blip technicznie, czyli inżynieria uzależnień...

SMS

Page 32: Blip technicznie, czyli inżynieria uzależnień...

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ń...

Informacja z ulicy trafia prosto na blipa!

Page 34: Blip technicznie, czyli inżynieria uzależnień...

Jabber

Page 35: Blip technicznie, czyli inżynieria uzależnień...

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ń...

Gadu naGłos

Page 37: Blip technicznie, czyli inżynieria uzależnień...

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ń...

Wracam po szkolei dzwonię na blipa!

Page 39: Blip technicznie, czyli inżynieria uzależnień...

Jak to się robi?

Page 40: Blip technicznie, czyli inżynieria uzależnień...

Ruby + Rails

Page 41: Blip technicznie, czyli inżynieria uzależnień...

nginx

Page 42: Blip technicznie, czyli inżynieria uzależnień...

Czemu nginx?

Page 43: Blip technicznie, czyli inżynieria uzależnień...

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ń...

GlusterFS

Page 45: Blip technicznie, czyli inżynieria uzależnień...

Czemu GlusterFS?

Page 46: Blip technicznie, czyli inżynieria uzależnień...

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ń...

CruiseControl.rb

Page 48: Blip technicznie, czyli inżynieria uzależnień...
Page 49: Blip technicznie, czyli inżynieria uzależnień...

RCov - badanie pokrycie kodu testami

Page 50: Blip technicznie, czyli inżynieria uzależnień...

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ń...

PYTANIA?