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?
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 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.
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…
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…
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.…
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 .
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.
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.
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
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…
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.
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.
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.
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…
Ideal programming language? What if we started from beginning having knowledge of current past? Throwing away “backwards-compability” to the furthest extends?
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?
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!
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!
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.
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.
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.
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?
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
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 .
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.
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.
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!
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 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
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.
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…
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.
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
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.
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 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.
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 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 .
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?
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.
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.
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)
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 !
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.
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.
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…