AVR + Raspberry PI = ?

Grzebanie w starociach

Ostatnio przegrzebywałem się przez moje szuflady z elektroniką w poszukiwaniu cyny. Nie bawiłem się w lutowanie od czasów pierwszych lat studiów i technikum, ot takie porzucone hobby, nie hobby. Nagle w ręce wpadł mi scalak:

Po chwilę wpadło mi ręce jeszcze kilka podobnych, lecz niestety mój programator USB zaginął w akcji jakiś czas temu, Arduino nigdy nie posiadałem, a współczesne komputery nie mają już ani RS232 ani Centronics. Czytaj dalej AVR + Raspberry PI = ?

Nie taki znów zwykły SQL Server cz. 3 – Merge czyli po prostu UPSERT

Merge, upsert – o co chodzi ?

Merge ? Nigdy tego nie używałem, z tego w ogóle się korzysta ?! Mniej więcej, taka moja była pierwsza reakcja, kiedy napotkałem kod zawierający składnię owego wyrażenia. Otóż używa się i ma wiele zastosowań, gdyż potrafi czasem zastąpić aż trzy różne operacje INSERT, UPDATE, DELETE. Czy istnieje jakieś konkretny uniwersalny przypadek użycia dla MERGE ? Szczerze mówiąc ciężko mi takowy przytoczyć. Podobnie jak w przypadku wcześniej opisywanego WITH potrafi ułatwić rozwiązywanie pewnej klasy problemów, bez angażowania rozbudowanej procedury T-SQL lub języków programowania.

Składnia wyrażenia jest dość skomplikowana na pierwszy rzut oka, jednak po parokrotnym użyciu można szybko poczuć co można uzyskać korzystając z niego, a co jest niemożliwe. Najlepiej zresztą poczuć moc na przykładzie.

Czytaj dalej Nie taki znów zwykły SQL Server cz. 3 – Merge czyli po prostu UPSERT

WeeklyJavaSnippets#2 Singletons in Java

Singleton – wzorzec czy antywzorzec?

Wśród programistów, często spotykam się z opinią, że Singleton stanowi antywzorzec. Niestety, rzadko też słyszę dobre argumenty podpierające tą tezę. Fakt, jest on jednym z najpowszechniejszej stosowanych wzorców projektowych i jednym z pierwszych jaki poznaje każdy programista. Konsekwencjami tego jest olbrzymia ilość błędnych implementacji, które krążą po repozytoriach i potrafią przyprawić o prawdziwy zawrót głowy podczas czytania kodu i poszukiwania przyczyny problemów.

Czytaj dalej WeeklyJavaSnippets#2 Singletons in Java

Nie taki znowu zwykły SQL Server cz. 2 – CTE w modelach hierarchicznych cd.

Nadszedł czas na kontynuację naszej przygody z CTE. W poprzednim odcinku pokazałem jak bardzo wspólne wyrażenia tablicowe zbliżone są do podzapytań oraz jak można z nich korzystać. Wspomniałem też na samym początku, że pozwalają na obsługę modeli hierarchicznych z poziomu języka SQL, zatem postaram się nieco przybliżyć to zagadnienie.

Czym w ogóle jest model hierarchiczny ?

Czytaj dalej Nie taki znowu zwykły SQL Server cz. 2 – CTE w modelach hierarchicznych cd.

WeeklyJavaSnippets#1 Splitting and joining Strings in Java

Wpadłem na pomysł kolejnego cyklu, który mógłby się przewijać na tym blogu, stanowiącego zbiór krótkich kawałków kodu czasem oczywistych, czasem nie, które… robią swoją robotę. Czy kiedykolwiek czułeś, że wynajdujesz koło po raz n-ty? Czy pozornie prosta operacja to kolejne i kolejne linijki kodu? Wezwij Drużynę A… Wybaczcie zapędziłem się.  Po prostu zerknij na Java Snippets! A zatem nie przeciągając…

String – split i join

Założę się, że nie raz zazdrościliście Pythonowi:

Czytaj dalej WeeklyJavaSnippets#1 Splitting and joining Strings in Java

ZeroTurnaround cheatsheets – nie tylko dla Javowców

Zapewne większość z was kojarzy firmę ZeroTurnaround – to twórcy świetnego narzędzia JRebel, pozwalającego na przeładowywanie kodu w locie, co znacząco pomaga przy pracy z cięższymi projektami. W zasadzie największą wadą tego rozwiązania były koszty licencji, jednak kto pracował, ten miał okazję docenić, gdy nie musiał czekać X minut na cały redeploy aplikacji.. Ale nie o tym i nie jest wpis sponsorowany 🙂 Chłopaki i dziewczyny z ZT na swoim blogu wrzucają fajne skrótowe cheatsheety, które mogą przydać się każdemu z was:

To tyle 🙂 Wielkie dzięki ZeroTurnaround!

Widmo krąży po Javie… widmo boilerplate’u

Problem (?)

W zasadzie ktokolwiek zajmujący się Javą, a mający w swoim życiorysie romans z platformą .NET przyzna, że Java nie jest zwięzłym językiem. Już sam kod akcesorów, które trzeba tworzyć/generować za każdym razem potrafi doskonale zaciemnić nam obraz klasy. Dla przykładu znany z konkurencyjnej platformy mechanizm Properties doskonale adresuje ten problem, skracając boilerplate do minimum, jak i pozostawia programistę w pełnej kontroli:

Czytaj dalej Widmo krąży po Javie… widmo boilerplate’u

Nie taki znowu zwykły SQL Server cz. 1 – słów kilka o CTE

Niniejszym artykułem chciałbym rozpocząć cykl poświęcony przydatnym, ale rzadziej wykorzystywanym elementom języka SQL jak i samego MS SQL Server’a. Podstawowe operacje CRUD wykonujemy bez większych trudności już po krótkim szkoleniu, jednak niejednokrotnie brakuje narzędzia upraszczającego życie oraz lepiej pasującego do aktualnych okoliczności.

Czytaj dalej Nie taki znowu zwykły SQL Server cz. 1 – słów kilka o CTE