RSSAmplifier

Blog

(untitled)

Recent content on

/RSS feed ↗105 posts

Latest posts

Thoughts on Remote Work After 10 Years

I’ve been working remotely for five companies over the last 10 years. Because its popularity has declined again, I want to shed some light on how I think it should be done. It’s not all sugar but it’s not that bitter either. Shall we?

Archeology in programming

Let’s talk about archeology. It feels like discovering the truth is scientifical but is it? And what does it have to do with programming?

I disappear on Fridays

I’ve always had a dream: to create stuff that is useful or fun. Computers help me doing that. Thus, since 2013 I work 4 days per week (or less). How did it happen?

I became a specialist, in a way

I never wanted to be a specialist as a programmer. I always strived for the “generalist programmer” title. Know it all and do it alone. No human dependencies. All questions answered internally. The all-seeing eye in the world of tech. And guess what, I think I didn’t fail too much on it. But hear me out.

👨‍💼 About me

My name is Kamil and I develop software. I enjoy working on everything that’s useful (or fun). I used to work on software and games. Some of my hobby projects and open source contributions can be found on GitHub. My journey on software development It started at school times when nobody could help me learn my future hobby. Back then, being 14 years old, it was impossible to find any material…

WebAssembly: C++ and WebGL for js13k game jam

Lately I had too much time and wanted to entertain myself by making a small game. Coincidentally, the js13k 2019 game jam was about to start. It’s themed around games made for popular web browsers that would fit in 13 kB (after compressing to .zip file). Since I am not a fan of JavaScript I decided to explore a topic I was interested in for a long time. WebAssembly . What’s the state…

Micro Continuous Deployment: nginx with auto-SSL vs GitHub Webhooks for your dockerized application

Let’s say you have a project hosted somewhere and want to publish it in a production manner. Meaning, it’s gonna get SSL. But, you also don’t want to modify your host server too much so you’d use the Docker for it, right? Aaand, want to have some mini continuous deployment where a merge action to default branch on GitHub would rebuild and restart the whole thing.…

Get Noticed 2017 - summary of 3-month long competition

In the “Get Noticed 2016 ” competition (original name in polish: Daj Się Poznać) I wanted to prove myself and people around that I can work hard for 3 months after hours. This year I started just because of desire to participate socially and meet people in the end of the competition. Also, this year I’ve gained a new perspective .

Serializing Java and the corner cases

Everytime you think of Java you may think about types as of classes and primitive types. Not many, right? Well, there’s a major difference between the thing and handling it. The latter brings a lot of corner cases . This is Serializing Java - a series about writing your own serializer in case you didn’t like other serializers.

Serializing Java: cyclic dependencies

Serializer can detect cyclic dependencies in two essential phases: inspection of data structure data serialization Let’s dig into both of them. This is Serializing Java - emerging series about writing your own serializer in case you didn’t like other serializers.

Binding with rivets.js - details and tricks

This is the 2nd part of knowledge about rivets.js - a small JS library that binds data in web. While the first one was an introduction, this one treats about the details. → Part 1: My small secret web weapon to bind things - rivets.js

My small secret web weapon to bind things - rivets.js

Hey, I need something. Uumm. Yeah, I need… JavaScript template engine! No? Something more? A small library that would bind data to existing DOM , locally! Yes! rivets.js - it’s not too popular but it works and it’s only 26 KB minified without gzipping (which would go to just 6 KB!). Let’s go through it’s features and see some snippets I’ve developed through few…

Exploring directions to fix game programming

Game development carries multiple issues about coding over all the years. I’ll cover some areas that game industry should explore to improve the craft.

Serializing Java: point at without pointers

A collection usually contains multiple elements. Let’s pick one element to observe it. What happens if it moves inside the collection? Or disappears from it? This is Serializing Java - emerging series about writing your own serializer in case you didn’t like other serializers.

Worked with Angular 2 for over a year, what bugs me about it?

I have stopped using Angular 2 in the beginning of this year - near before the Angular 4 release. I’m not trying to convince anyone about the future but I’d like to express my thoughts after gaining some experience. Not only about syntax and performance but about whole thing as a development tool.

Serializing Java: inspecting data structure

Every deserializer needs information about types - the data structure. In my serialization the deserializer can work behind network connection so it can’t count on Reflection mechanism. That’s why the serializer has to discover and serialize data structure that could be sent over the network and understood by deserializer. This is Serializing Java - emerging series about writing your…

Angular 2: my solution for dynamic tabs

I needed tabs that would not be destroyed by Angular. As powerful as if I would code a normal application for Windows in C#. Here’s my solution.

Be efficient, developer

Ideal programming language? What if we started from beginning having knowledge of current past? Throwing away “backwards-compability” to the furthest extends?

When management says "don't refactor now" and you see this

While coding we meet sometimes one of our deamons: should I refactor what I see? When the dilemma grows it goes into: develop as it is or completely “rewrite” it?

Operators in programming languages

Do operators have to be common between programming languages? Or do we even need symbols for adding numbers together? Let’s look at some weird differences!

Beating old browsers: Responsive Web with JavaScript

Forget Grid Layout , forget the Flexbox , remember old browsers. I’ll show an example for frontend-based relayouting. No more stupid IFs in backend templates!

Serializing Java: why I work on new serializer?

Why reinventing the wheel again? Why popular serializers are useless to my project - Entity Tracker ? This is Serializing Java - emerging series about writing your own serializer in case you didn’t like other serializers.

From Kotlin to Java: moving back seeing all the flaws

In previous week I had to resign from using Kotlin in one of my game projects. By porting the code manually I can point out what I didn’t like about Kotlin. Let’s see few differences between Kotlin and Java.

Serializing Java: treat all your fields

All your Java fields belong to us. Reflection is powerful but you have to remember a few rules before dealing with class fields . This is Serializing Java - emerging series about writing your own serializer in case you didn’t like other serializers.

Kotlin vs Object Pooling - nullify lateinit variable

Nullable type is a good thing. Until you prevent memory allocation to fight Garbage Collection pauses. I want to nullify lateinit variable - I can’t. Or can I?

Artemis Entity Tracker - inspecting your game state through network

Let me introduce you Artemis Entity Tracker - a tool to be used for game development in conjuction with artemis-odb (which covers architecture called Entity Component Systems ). Prototype version of Artemis Entity Tracker

Why Entity Component Systems matter?

Forget about Object-Oriented Programming. Look at this flat world built of small data chunks and separated logic. A world easy to refactor. Meet Entity Component Systems .

Interesting projects in Get Noticed 2016

Need an inspiration for Get Noticed 2017 ? In my humbly-technical opinion there were few interesting projects in the previous edition of Get Noticed. In 2016 there were 296 projects registered , 70 of them were supposed to be finished but only few of them surprised me.

KrakJam 2017 - making game in 48hrs

In January 20-22 I decided to attend Global Game Jam 2017 . Among few other cities I choosed Kraków. The local event was named KrakJam 2017 . 7th edition but my first attendance. Looks like I know how to pick events because this was another great one. I’ll cover the project, theme and my feelings around me being there, people and organization.

Rzethon 2016 - hackathon by G2A

The weekend on 10-11 December this year was a blast. 30+ hours of no sleep, including 24 hours spent on project implementation. Had 3 teammates and lots of fun inbetween. Let’s dive in to my short post mortem about the first edition (hopefully, not last) of Rzethon!

Fancy reactive web solutions on counter example

Some people are fascinated about spreadsheets . This lovely type of software was offered in Apple II computer back in 1979. Every cell could contain either data (text, numbers) or formula. What’s so special about it? Formulas are reactive. And that introduces the idea of reactivity . Let’s have a look at few examples in some experimental technologies touching this idea.

Programistok 2016

Programistok was a small and short but very pleasure-providing conference. Giving a few words about it and some pictures taken. So what happened on 01/10 /2016 in Białystok ? a programmer’s basement Co robicie? Bo my knujemy w naszej piwniCZy! ;) pic.twitter.com/QOd6jxh86A — Programistok (@programistok) August 20, 2016

My thoughts on DevDay 2016

Kraków . There was a conference on 15-16 September - DevDay 2016 . And I was there! So (positively) tired of talking to people. Now I shut up for two days. Thanks! #abbdevday — Namek (@NamekDev) September 16, 2016 I sum up few thoughts from totally personal perspective . Feel welcomed, Explorer.

Load Boostrap 4 alpha into Vue.js project

Once upon a time one usually desires to add Bootstrap into one’s project. Adding support for Bootstrap might seem a little hard without understanding Webpack or even despite the understanding. I started working with Vue.js (by the way, it’s great!) using the official webpack template and indeed - I struggled for a few hours. Thus, I describe foreseen steps for the weary travelers who…

Selenium Server without X Window System - xvfb

For my acceptance tests configured in Jenkins I wanted to omit installing of any kind of X Window System . That’s pretty obvious when there is not enough RAM or we have to pay for every megs of it. But how a real browser like Firefox or Chrome would run without X servers? The answer is: X virtual buffer . Let’s configure Selenium Server on top of xvfb on Ubuntu.

Summary of #dajsiepoznac competition

The “Daj Się Poznać 2016” (in polish: Get Noticed 2016) competition have finally come to an end. Multiple finalists shared their summaries before The Final Gala . I decided to do this after the event. This post summarises whole event in a short manner. O The Console Kamil Dąbrowski #dajsiepoznac pic.twitter.com/ZfdKYjJpf5 — Maciej Aniserowicz💻 (@maniserowicz) June 18, 2016

Cygwin Bash as a REPL inside The Console

In previous blogposts I discussed scripting custom REPLs for The Console . This time the custom will be just a good ol’ Unix shell called bash .

Scriptable REPL in The Console

As I stated some time ago , I desired to have a scriptable Read-Eval-Print Loop in The Console . Now, as I made it, I’m going to briefly describe how to use it.

What are those features in Xtend lang!?

As nature of a programmer calls I need to express myself about Xtend . During development of The Console I have almost smashed my face a few times by gesture flying straight from internal cent****re of disbeliefs .

Argument completion for commands in The Console

Argument completion should improve developer’s everyday life. Everywhere. That’s why I decided to have argument completion in The Console . To have the best thing - I want scriptable argument completion with already built-in filesystem paths completion. Giving a few words about the process between hitting a TAB key and performing the magic.

Java: enforce a single instance of an app

The Console is an app which typical usecase fits within running a single instance. That’s by design. However, we sometimes forget to check whether some the app is waiting for us in the background and try to launch them. That’s when disaster happens. Two consoles placed on top of window and reacting to same hotkey? Cannot be! Here’s a short story about preventing from having…

JavaFX: Prevent TextField auto-selection on refocus

JavaFX punched me in the face with a feature which I consider as a kind of general over-assumption and as a bug in The Console. When TextField is refocused through other event than click then it auto selects it’s whole content. I want my previous selection or caret position. A workaround/hack/fix is introduced in this post. Oh, by the way, there’s a bug report .

Angular Universal inside Nashorn?

The Console works on top of Java Nashorn API which brings in a whole JavaScript environment. On ng-conf 2016 I saw this slide from Brad Green talking about Angular 2 inside of Nashorn: Just what a thought could come up to my mind?

babun + gitk

When I use git VCS , I simply work in a shell. Even more complicated branching can be resolved using git show-branch command. But this time I wanted to compare that again with gitk . Since I work on Windows I use babun which is based on Cygwin . And we know that Cygwin can actually launch gitk properly, right? Well, yes - when you configure it.

Modules in The Console - filesystem module as an example

This time I present a filesystem module which mimics the simplest cases of shell commands: ls, pwd, cd, cat. The module showcases module commands, scoping, Storage and onload/onunload events.

Refactoring TheConsole with help of ObjectAid and PlantText

Last time on The Console : Few things don’t make much sense, despite an attempt to press ahead without refactoring. Next post is going to treat about efforts on this little refactor. … while those efforts were all about Class Diagrams ! (pictures included)

Modules in The Console - Take Two: Reload

The Console supports script prototyping which means you can edit a script and it will be automatically reloaded in The Console at the moment. But modules are different than single-file scripts. And this impacts script reloading, or rather module reloading . Read on, GIFs included !

Modules in The Console - Take One

In previous posts (linked in the Summary) I discussed a topic of implementing modules in The Console. This time I’m going to describe my first step in this direction. Currently The Console supports simple scripts - one .js file is one script, i.e. scripts/info/currency.js is just a currency command. But that’s not enough. I want the modules, too . Here’s how I make them real.

Check exchange rates using The Console

The Console started as a small side project that was supposed to automatically perform things I do often manually. Checking exchange rates of currencies is one of amongst those repeated actions.

Build Runnable JAR of Xtend + JavaFX project in Maven

After a long research I’ve found a site that helps with compiling Xtend ** **using Maven - http://www.eclipse.org/xtend/download.html - pretty straightforward, isn’t it? However, it lacks a few more things. My goal was to compile and package Java 8 project together with JavaFX , written mostly in Xtend (in place of Java) with unpacked libraries into one Runnable JAR . In the end…