RSS

Category Archives: Misc

Geecon 2017 Kraków: Day Three

Episode 73

Two weeks ago we have covered first day of Geecon 2017 Kraków conference, day two was week ago. Now it’s time to take a closer look at third and final day. I’ve managed to participate in five talks this time.

Market_square_Krakow_900px.jpg

Henning Schwentner: Value types – the next big Java Thing.

“Codes like a class, works like an int” is the idea behind project Valhala – value types, the next big thing planned for Java after lambdas and modules. Objects have variable state and reside on heap, while values are immutable and reside on stack. The main benefit is ability to create rich domain models while retaining the high performance of primitives. Value types definition will be Read the rest of this entry »

 
Leave a comment

Posted by on June 8, 2017 in Misc, News, Technology

 

Tags: , , ,

Geecon 2017 Kraków: Day Two

Episode 72

Last week went through stuff from the first day of Geeon 2017 conference, which took place between 17th to 19th May in Kraków. Today we will continue and cover seven talks I’ve been to on day two. There will be a lot of reactiveness, events, architecture, APIs, security and some pretty low level topics.

686586676_002d6111b5_b.jpg

Jakub Pilimon: Event Sourcing

Command query responsibility segregation, event sourcing and event driven architectures are typical buzzwords on conferences nowadays. Jakub introduced the idea and confronted the approach with relaying on object-relational mapping to do the job. There was quite a lot of live code and Hibernate guts debugging. We heard stories on how Twitter almost collapsed in 2012 due to using the same models for writing and reading data and how to lose a girlfriend due to different projections of event log in the relationship. Read the rest of this entry »

 
1 Comment

Posted by on June 1, 2017 in Misc, News, Technology

 

Tags: , , ,

Geecon 2017 Kraków: Day One

Episode 71

As I’ve mentioned in the previous episode, I was attending a conference. Geecon 2017 took place between 17th to 19th May in Kraków. There were four tracks without explicit categorization, roughly 80 talks and 1200 people. The focus was mostly on Java with a pinch of soft topics, agile and similar stuff. It was the ninth edition, which took place at cinema complex about 5 kilometers from the city center.

geecon_logo

I’m a car person. Apparently, I have a train curse. Whenever I take a train, it is either significantly delayed, or breaks down in the middle of nowhere (hi Pyrkon 2013…). I was a bit hesitant to test the curse, and it still works to full extent, but more on that later. Let’s get down to business and review what I was able to grab from the event.

Talks

On day one, I’ve attended seven and a quarter of talks. A quarter, because one was so weak, that I’ve left after 15 minutes and started to wander mindlessly in the sea of conference sponsors. Let’s skip that one and see what good was out there. This will be a content-dense ride.

David Moore: Wrestling the Monolith

“Software is not done until last user is dead” – was the takeaway I liked the most in the keynote from Read the rest of this entry »

 
3 Comments

Posted by on May 25, 2017 in Misc, News, Technology

 

Tags: , , ,

Windows Subsystem for Linux

Episode 69

Last five weeks we focused on Amazon Web Services, let’s have a short break from that. Recently I’m working in a project where majority people works on Mac (why… ) or Linux (why… ) while I’m definitely a Windows user due of numerous reasons I’m not going elaborate on in this article. Honestly I’m still startled, since I was never in an environment where more than 10% of developers used anything else than Windows on their work stations (I’m not talking servers), and I was in quite a few environments. Anyway, unfortunately, OS agnosticism is a distant value to some people, so I was often finding myself in a situation where I need to either convert stuff to be OS independent or to run on Windows. At some point I grew tired of that and looked for a ways to run Linux shell scripts on my machine.

penguin_by_forrestimel-d5htxg3.png

There are quite a few, and one of them will be our topic today. Windows Subsystem for Linux, also known as WSL, Bash on Ubuntu on Windows, or just Bash on Windows gives us the Ubuntu shell build into Windows 10. You can run Linux commands, download and install programs and access files on Windows partitions. It’s still an experimental feature, but works very well for my needs.

There is a Penguin on my Window!

It’s not a virtual machine, it’s not a Docker container, It’s not a library nor an emulator. It’s a new kernel layer, more or less, based on Microsoft’s Astoria Project that was meant for Read the rest of this entry »

 
Leave a comment

Posted by on May 11, 2017 in Misc, Technology

 

Tags: , , , ,

Software Gardening: Beyond Craftsmanship

Episode 55

In the past I wrote quite a lot about the nature of software developer. There was a comparison to scientist, then engineer, martial artist and finally to something based on medieval craftsman, who combines all three to an extent. However, some time ago I’ve encountered yet another metaphor for our profession that felt quite appealing.

little_gardener_by_irina_ponochevnaya-d9qc7m0

It’s the Software Gardener. The person that works not on an inanimate object, but on living, organic ecosystem that is constantly changing in unpredictable ways, and depends greatly on environmental factors. Let’s see what it’s all about.

Birds Are Chirping About the Gardener

The metaphor is not that common. I sit quite a lot on LinkedIn (probably more than typical software developer does and should) and I recall only one person that called herself that. Google finds about 5k results on “software gardener”, not much compared to 159k on “software craftsman”, 33M on “software developer” or 44M on “software engineer”. While the parallel to software craftsmanship was first drawn in 1992 by Jack Reeves, the parallel to gardening is not that young either. Read the rest of this entry »

 
Leave a comment

Posted by on February 2, 2017 in Misc

 

Tags: ,

Seniority in Programming: Part Two

Episode 44

Last week, in part one of this article, I was pondering about levels of competence in general and in software development. I looked at mainstream naming schemas, recalled metaphor to medieval craftsmanship, described ranks in Japanese martial arts, presented SFIA skill framework and finally ability’s dots in role-playing game system. Now, let’s try to do something with it. How much levels do we actually want? Well, let’s have four.

junior.jpgApprentice

  • HR would call it junior developer
  • Sensei would call it 5th to 4rd kyu
  • SFIA would call it level 2 to 3, the one who assists and applies
  • VtM handbook would call it 2 dots, the practitioner

We all have to start somewhere. I’m assuming that this is how we should call a person that begins professional career in software development, and has knowledge usually associated with at least bachelor degree in computer science or closely related field. Apprentice has some theoretical grasp and academic experience, but not much, if any, with commercial projects. Why skip 1st level of SFIA and 1st dot in VtM handbook? Because to be employed as junior developer, you have to know quite a lot. It’s not like random person from the street can get the job and do well after some on-site training. It’s not a damn factory. One need to understand some basics of computer science, and be able to code something. I’m not saying academic degree is a must, because many prominent programmers don’t have one, but some knowledge in the field is a Read the rest of this entry »

 
2 Comments

Posted by on November 17, 2016 in Misc, Recruitment

 

Tags: , , , ,

A Brief History of Java and Vampires

Episode 42

As you may have noticed, my focus in this blog is shifting away from Java itself to more general topics related to software development, despite having “Java” word in the blog name. Well, two months ago I even changed the name from JEE to Java, because I felt JEE was too specific. Let’s get back to roots and explore a bit of history of the Java platform.

As a Halloween guest stars, the article will feature the story of creatures of the darkness, as portrayed in role-playing game Vampire the Masquerade. Lets look at their hierarchy, from oldest to youngest.

Antediluvians4262393-dracula-untold-master-vampire

Said to be vampires of incalculable power, each of whom survived the Biblical Deluge. Considered to be the founders of the thirteen clans and members of the third generation.

1990 – In December, Patrick Naughton starts the Stealth Project which will later become what we now know as Java. The aim is to create a platform that will speed up software development and render C++ language and its tools obsolete.

1991 – The Green Project is the new name of the platform, James Gosling and Mike Sheridan are also on the team, which now consist of 13 people in total. Gosling starts the work on the core platform language, then called the Oak.

1992 – First internal demonstration of the platform. Duke, the future Java mascot makes first appearance. Read the rest of this entry »

 
2 Comments

Posted by on October 31, 2016 in Misc, Technology

 

Tags: , ,

Why work for a software company?

Episode 37

When I was looking for a new job recently, I had a strong resolution, that I’m going to work for a company that is doing software. Not telecommunication equipment that requires software. Not financial products that require software. Not trucks that require software. I wanted a company, that does the damn software for a living. And I will tell you why.

Case one: Technology Corporation

800px-base_transceiver_stationIt’s not bad, could be worse. Companies that focus on technology usually have some kind of understanding for engineers. Usually. There is the corporate aspect though with all the bureaucratic nonsense. The bigger the company is the more problematic the aspect of scale becomes. Some people are allergic to presence of nonsense, and probability dictates, that with scale, at some point you will encounter the nonsense and might get frustrated.

The urban legend says, there is a quarter million Euro device rusting on the shelf in a lab. It’s needed, but no one knows how to turn it on. The one competent guy who knew left the company because he was unable to get a hundred Euro rise. We can’t rehire him for a year because of policy. Meanwhile new people straight from university are paid more than that  competent guy who left, because Read the rest of this entry »

 
6 Comments

Posted by on September 29, 2016 in Misc, Recruitment

 

Tags: ,

Good commit message

Episode 36

Last time we talked about version control, so let’s elaborate a bit on that. One of the aspects of using version control is the possibility of commenting on changes you do in the code. Actually, it shouldn’t be only the possibility, it should be a necessity.

The Template

Git documentation provides a standard template and guidelines for commit message, let’s have a look.

Capitalized, short (50 chars or less) summary

More detailed explanatory text, if necessary.  Wrap it to about 72 characters or so.  In some contexts, the first line is treated as the subject of an email and the rest of the text as the body.  The blank line separating the summary from the body is critical (unless you omit the body entirely); tools like rebase can get confused if you run thetwo together.

Write your commit message in the imperative: “Fix bug” and not “Fixed bug” or “Fixes bug.”  This convention matches up with commit messages generated by commands like git merge and git revert.

Further paragraphs come after blank lines.

– Bullet points are okay, too

– Typically a hyphen or asterisk is used for the bullet, followed by a single space, with blank lines in between, but conventions vary here

The News

The most important question to be answered by the commit message, is Read the rest of this entry »

 
1 Comment

Posted by on September 22, 2016 in Misc, Technology

 

Tags: , , ,

The Pomodoro Technique

Episode 32

          I was recently attending a talk about planning stuff, and one of the aspects of it was an introduction to time management method called The Pomodoro Technique.  I’ve decide to try it myself and share some insights here.

The Idea

                The idea is simple and involves a timer and some discipline.

pomodoro

  • Decide what should be done.
  • Set the timer to 25 minutes, the interval is called a Pomodoro.
  • Work on the task until the timer rings. If you get distracted, just write it down, but get back to the task at hand immediately. Try to shield yourself from any possible distractions as much as possible.
  • Take a short break (3-5 minutes), stand up, walk, get something to drink, do a quick exercise. Anything that is not related to the task and will help you clear your mind. Go to next Pomodoro. Repeat.
  • If you complete four cycles, take a longer break (15-30 min) instead short one. Repeat.

The Execution

                It requires some time to get used to. Especially if you find it difficult to focus on one task and constantly think about dozens different interesting things to do, like me. Before I stumbled upon the Pomodoro, I tried to work in 45-minute focus and 10 min break cycles. Like in school, more or less. However, it actually seems that 25/5 cycle is better for me. I’ve noticed that after longer cycles, I tend to drift away much more, especially towards the end. Also, school is over.

                20160823_161540Besides timing, there is an issue of shielding from distractions. I’m trying to shut down email, social media, phone and all that stuff, put headphones on. What to do if someone comes to your desk in the middle of Pomodoro? Well, it’s up to you.

                As a tool, I’m using tomato-timer. It’s simple and got all that’s needed. There are plenty other pages and a lot of mobile apps, some with fancy statistics, but I didn’t research them. It’s just a damn timer. When I get up from my desk I usually leave my phone, and I haven’t used a wristwatch since high school, so I usually mess the break timing. Before I leave though, I start the break timer on my computer. If it’s still on when I come back, I just mindlessly browse cats or something in the internet or play with radio controlled Lego excavator I keep on my desk. If I come back too late, well… I just hop onto another Pomodoro (shame… shame… shame…).

                Using timer has also an additional advantage. You don’t have to check the time periodically and think about whether you should take a break or not, asses your mental fatigue level, decide if you are in a good place to pause and all that stuff. When you hear the Pomodoro rings, just finish your current thought, line of code, sentence, or whatever you got there, set a break timer and get up. Or just leave everything and get up immediately if it works for you.

                In typical office conditions it might be difficult to sustain perfect cycles. There are irregular meetings, there are people that want to ask something in person, there are delivery guys that won’t show up at exact hours. There is The Flow. There are fuckups on production… Just don’t try too hard, remember it’s a tool to help you, not to restrain you.

                Some mentally old people might have objections that the Labor Code (at least in Poland) states that you should work 55 min and then you got 5 min break. Yeah, that might apply to a factory, not to software development. If your manager would make you fuss about that, tell him he should manage factory workers not programmers. Any smart company would understand that it’s just a number on a paper that HR has to keep signed in a binder, and we are here to get the shit done efficiently, not to sit at the desk for a given number of minutes a day. And, remind me, why would you want to work for a dumb company?

The Retrospective

                stay_focusedPomodoro works for me. Perhaps, to some extent, it’s a placebo to help you focus. You might think somewhere around “Damn I’m using a legitimate time management technique that has a name, so I should ignore this Facebook notification and keep working until the timer tells me to stop”. Intervals? People are different, some can focus for more than 40 minutes, but most probably can’t. Where is the efficiency threshold? I guess it requires some experimenting and might be difficult to measure. 25 minutes seems fine. Go ahead, try the Pomodoro. It’s healthy.

toothless-wallpaper-25

 
3 Comments

Posted by on August 25, 2016 in Misc

 

Tags: ,