Let’s start!

“Daj Się Poznać 2017” ruszyło, więc pora zacząć spisywać swoje przemyślenia, doświadczenia i pomysły.

O czym będzie ten blog ? Przede wszystkim o szeroko rozumianym software developmencie. Będę dzielił się swoimi doświadczeniami z początków w branży. Pokazywał błędy które popełniłem, może inni ich nie powtórzą? 😀 Czasami zajawię coś fajnego, nowego, czasami pochylę się na podstawami codziennej pracy.

Dlaczego udział w konkursie ? Nie mogłem zmotywować się do działania. W trakcie studiów zacząłem sporo “bawić się” elektroniką. Najpierw na tapecie były ośmiobitowce Atmela. Zaczęło się od obowiązkowych laborek na uczelni. Ale szybko poczułem że to za mało i przesiadłem sie na ARM’y. Eksperymentowałem z różnymi platformami, aż do czasu premiery malinki (Raspberry PI), która deklasyfikowała konkurencję w stosunku cena/jakość. I tak powstał pierwszy poważniejszy projekt. Pseudo “inteligentny” dom. Dlaczego pseudo ? Bo nie było tam żadnej inteligencji, zdefiniowane algorytmy które sterowały zestawem oświetlenia, rolet, alarmem itd. Dodatkowo prosty klient na androida z sterowaniem głosowym i klient na desktopa. Jak przystało na studenta zrobiłem spory monolit który w pewnym momencie miał opóźnienia w reakcji po kilka sekund. W międzyczasie zacząłem pracować w branży i przez rosnącą świadomość popełnionych błędów projekt trafił do szafy. Próbowałem kilkukrotnie reanimować pomysł, ale… nie wyszło 😉

Tym razem będzie inaczej…

Zaczynam od zera, platforma sprzętowa pozostaje, sporo rzeczy nadaje się do wykorzystania ponownie(stopniowo będę opisywał elementy zrobione samodzielnie), ale oprogramowanie zaczynam od zera.  Założenie jest proste: ma być szybko, wydajnie a przy okazji pasuje się nauczyć czegoś nowego, tfu popełnić nowe błędy(wiadomo, na błędach, szczególnie własnych człowiek uczy się najwięcej).  Docelowo chciałbym aby powstała paczka którą każdy będzie mógł wrzucić na swoją malinkę, podpiąć trochę własnego I/O i móc samodzielnie skonfigurować/przystosować system do własnych potrzeb.

Aplikacja ma działać w oparciu o zdarzenia. Co to znaczy? Użytkownik będzie mógł zdefiniować własne zdarzenie(event) np. “włącznik w gabinecie został naciśnięty”, w reakcji (również zdefiniowanej) system bazując na aktualnym czasie, włączy oświetlenie, opuści rolety w oknie, lub uzbroi alarm. Nielogiczne? Może i tak, ale idea jest aby wszystko było konfigurowalne i dostosowane do potrzeb użytkownika. Na początku to dalej będą zdefiniowane algorytmy działania ale z czasem może jakieś AI się pojawi…

 

To by było na tyle 😉 pora zacząć kodować. Zapytacie o technologie ? Dużo tego będzie, na pewno skupione wokół JVM, co dokładnie ? “to się okaże”;)

 

Leave a Reply

Your email address will not be published. Required fields are marked *