Blog» Technology

Show previous entries…


Meinen Rechner hab ich von mySN.de / Schenker Technologies gekauft. Es scheinte eine gute Idee zu sein. Was es aber gar nicht. Ich fühle micht von mySN betrogen und we Müll behandelt. Ihre Kundenservice ist voll unprofessionel, ihre Hardware ist Scheiße und sie scheinen sogar nicht zu wissen, was sie im Lager haben und wie viel ihre Teile kosten. Im Ernsts!

Das ist mein (verkürztes) Geschichte:

Continue reading…
(~3 min read)
A bittersweet ending of this story

I’ve bought my laptop from mySN.de / Schenker Technologies. It seemed like a good idea at the time. But it definitely was not. I feel scammed by them, I feel treated like trash by them. Their customer service is unprofessional, their hardware is crap and they don’t even seem to know what they have in storage and how much do their parts cost. Seriously!

Here’s my story in short:

Continue reading…
(~3 min read)
A bittersweet ending of this story

While working on Avris Forms v4.0, I’ve decided to migrate some code from CoffeScript with jQuery to Vanilla JS. And I guess it might be a good idea to share this transition 😉

Continue reading…
(~3 min read)

Keeping your classes immutable and stateless makes your code way less prone to bugs. Yet somehow this clean code rule isn’t as popular and as often invoked as SRP, YAGNI, DRY, KISS and others... Maybe it’s because of the lack of a catchy acronym?

Anyways, I’d like to take a look at two examples of when sticking to this rule could save your ass (or at least save you some time debugging).

Continue reading…
(~5 min read)
100% coverage - feels good!

Having 100% of LOC covered by unit tests certainly feels like a great achievement. But beware – that doesn’t necessarily mean your code is perfectly covered. Lines of code coverage is a really nice indicator of your app’s stability, but is can also hide some risks.

Continue reading…
(~6 min read)

Programming isn’t that hard. Really. With enough time and determination, almost everybody could write some useful code. The Internet is full of tutorials that teach you programming from scratch, full of people who faced the same problems you do, full of people who solved those problems and shared their solutions for you to use, and finally full of free libraries that you can just use. All you need to do is learn some tools, google your problems and put together pieces of code that you find.

But if it’s not a black magic, not a secret knowledge, then why are software developers so well paid?

Continue reading…
(~4 min read)

When I first heard the term “Autowiring”, I thought it sounds exciting. But when I learned more or less what is it about, I got pretty sceptical of the idea. Too much magic, too much implied information... However, when I finally used it for the first time... Gosh I wish I could never define services manually again!

Continue reading…
(~3 min read)

Putting emojis in your database should be a piece of cake, right? You’ve had enough trouble with encodings in your lifetime, and now that we have the blessing of UTF-8, you’re always so careful to use it everywhere, so you’d expect all the characters to just finally work out of the box, right?

Well, I did expect that. But I’ve recently realised I can only put some emojis (like “❤️”) in by blog posts. Most of them were just lost or replaced with “?” by MySQL... Oh, those damn encodings again!

But fortunately the solution is quite simple.

Continue reading…
(~2 min read)

I used to run a couple of Facebook fanpages. One of them was shut down three times, apparently for being homophobic. It was quite the opposite, actually. The name could be confusing, because it was a word play on the Polish word for “faggot” and a name of a Polish gossip portal. But the content was specifically anti-homophobic! It was a rainbow meme aggregator, basically a gay version of 9gag.

But the thing is, I can only assume why did people report my fanpage and why did moderators remove it. Did someone just assume it’s homophobic without actually checking it out? Or quite the opposite: did someone consider homosexuality an abomination and just reported everything that’s even remotely gay? I’ll never know. The only thing Facebook bothered to tell me is that “I’ve abused the Community Standards”. I’ve read them thoroughly and there was no abuse of them from my side.

Continue reading…
(~3 min read)

Finally. I got to work and rewrote the code of my sweet blog. Brand new design, new framework, Micrus, better support for language versions, a couple of new features in the admin panel, ditching custom comments for the awesomeness of Disqus, ditching TinyMCE for the beauty and simplicity of Markdown. It was a lot of work, but it was definitely worth it!

Hope you like it! :)

Wreszcie. Wziąłem się do roboty i przepisałem od zera kod mojego blogaska. Zupełnie nowy design, nowy framework, Micrus, lepsze wsparcie dla wersji językowych, parę nowych ficzerów w panelu administracyjnym, rzucenie własnego systemu komentarzy na rzecz zajebistości Disqusa, rzucenie TinyMCE dla piękna i prostoty Markdownu. Zajęło to sporo pracy, ale zdecydowanie było warto!

Mam nadzieję, że się spodoba! :)

I stumbled upon a company that rewards their developers for the number of committed lines of code, and generally for the number of commits. What an utterly idiotic idea!

Continue reading…

Spotify is so much better than Google Play Music! Whether it’s in the field of cool features (like using your smartphone to control the music on your computer) or just basic user experience (like ability to filter songs inside a playlist) – Spotify wins by far!

Continue reading…
(~2 min read)

Let’s encrypt jest projektem dążącym do maksymalizacji dostępności do certyfikatów SSL – i chyba najlepszą rzeczą, jaka mnie ostatnio spotkała.

Continue reading…
(~2 min read)

Proste zadanie: umieścić na stronie przycisk, który przekieruje nas do usuwania jakiegoś obiektu z bazy, ale zanim to zrobi, spyta, czy na pewno tego chcemy.

Standardowa część interfejsu, możliwa do zrealizowania w webie na wiele różnych sposobów. Najprostszym z nich jest zwykłe okienko confirm().

W wersji najbardziej prymitywnej wykonanie zadania wygląda mniej więcej tak:

Continue reading…
(~5 min read)

W pewnym projekcie operuję poprzez API na liście wydań produktu: zamykam wydania, których czas już minął, i tworzę nowe na osiem tygodni naprzód. Moimi punktami odniesienia w czasie są:

Continue reading…
(~2 min read)

Tworząc kiedyś stronę internetową, trzeba było się nieźle napracować, by na każdym komputerze wyglądała mniej więcej tak samo. Każda przeglądarka interpretowała sobie kod po swojemu. Teraz jednak, gdy wszystkie nowe wersje popularnych przeglądarek trzymają się standardów (a nawet mój ulubiony były klient, Santander, przerzucił się z dinozaurów na aktualne wydania), no a zdecydowaną większość pozostałych jeszcze różnic między przeglądarkami można zniwelować używając normalize.css oraz jQuery, mogę z całą stanowczością uznać przenośność za największą zaletę technologii webowych. Piszesz kod raz, a działa wszędzie.

Continue reading…
(~5 min read)

Może nie napiszę tu nic ciekawego, ale po prostu muszę się pochwalić :D Kupiłem sobie wirtualny serwer prywatny. Czyściutki Linux na nim, do zainstalowania i skonfigurowania wszystko: Apache, PHP, MySQL, SFTP, domeny, maile i cała masa innych pierdół. W wielu z nich grzebałem pierwszy raz w życiu. Ale chyba dogrzebałem się do wszystkiego co trzeba, bo wygląda na śmigające ślicznie.

Wreszcie mogę deployować po ludzku, z gitem i composerem, pisać w nowszej wersji PHP, skonfigurować sobie, co mi się tylko żywnie podoba, nie robić ręcznie eksportów rozkładu na Busa, któremu nie starczało pamięci na współdzielonym hostingu... Miodzio! :3

Książka Roberta C. Martina “Czysty kod” bije rekordy sprzedaży wśród pozycji dotyczących szeroko pojętej informatyki. Wstyd więc żebym jej nie przeczytał, no nie? I zdecydowanie polecam ją każdemu programiście, który chciałby być jak najlepszy w tym, co robi.

Chciałbym tutaj pokazać na konkretnym fragmencie kodu, jak wiele może zmienić stosowanie się do zasad przedstawionych przez Martina. Na przykładzie autoloadera.

Continue reading…
(~6 min read)