Showing posts with label fun. Show all posts
Showing posts with label fun. Show all posts

3 October 2023

I find your lack of tests disturbing

I Find Your Lack Of Tests DisturbingClassics never get old. Like with Shut up and Write a Test, I am reposting an old meme about lack of tests, see its preview on the right. Lack of tests is a direct result of not following the prior advice when to write tests. ;-) In many coaching discussions I need to fall back to the fundamental basics and I cannot allow such a gem to vanish. Usually I find the lack of tests in my client's code base disturbing.

Origin
The image was posted on rubystammtisch.at, a site which ceased to exist long time ago. I downloaded it at the 25th of March 2009 for a presentation held at the local user group. The meme is a variation of Darth Vader's "I find your lack of faith disturbing", used as a phrasal template where "faith" is swapped with other words. Now that I have researched the origin of the image, I could re-create it using Meme generators. I will not, a classic is a classic. (And again, during writing a blog post, the process of writing is valuable and I learn on the way by organising and structuring the material. That is why I recommend writing as a learning and teaching activity at the same time.) Unfortunately the original image is only 400 pixel width, printed versions will be fuzzy. It might use it on my upcoming Code Cop Veto Cards, similar to my Achievement Appreciation Cards, as cards require smaller images with less detail.

I find a lack of tests disturbing.

12 December 2017

Code Cop Knit Doll

Sometimes I present books to individual developers. On one side I am thanking them for "listening" to me - that is the good collaboration and supporting me - and on the other side I want to push them more into reading mandatory books. In preparation for Christmas I gave away a few pieces of Bad Tests, Good Tests by my friend Tomek Kaczanowski. Now imagine how surprised I was when Corinna repayed me with a Code Cop knit doll:
Code Cop Doll (click for high resolution image)
This is amazing. I love the number of detail she put on it:
  • I am obviously a cop with both gun (on my right side) and handcuffs (on my left side). The doll is also showing my age, especially the wild hair, grey beard and round belly. ;-)
  • There is the Ruby Logo on my police cap and chest. I did not know how much I evangelise the use of Ruby. It is true, Ruby is my favourite programming languages, although I am not using it that often any more.
  • I am going nowhere without my own keyboard, so there has to be a Das Keyboard in front of me at all times.
  • One of my mantras in trainings is to "Refactor Mercilessly". It seems I am using that one a lot.
Merry Xmas Everybody!

21 May 2012

GeeCON 2012

Poznan Old CityLast week one of my favourite Java conferences GeeCON took place in Poznan, Poland. I was there before and liked it a lot. Despite that it took me 13 hours train travel to Poznan, it was a very good conference. The organisers were caring for everything (even free beer ;-), the presentations were interesting and some of the attendees were really passionate about our craft.

I am too lazy to write a full round-up of all sessions that I attended, but at least I will give you a list of my favourite sentences heard during the sessions:
  • Maintenance starts with the first check-in. (Thomas Sundberg)
  • 40 errors, 38 warnings. That looks bad. Let's commit that. ;-) (Thomas Sundberg)
  • object null extends Nothing() (Ceylon Language)
  • Threads do not work. (Bruce Eckel)
  • It's not getting easier being a developer. [... because there is more and more we need to know.] (Ivar Jacobson)
  • An architecture without executable code is a hallucination, but code without architecture is shit. (Ivar Jacobson)
  • ... f*cking ... f*cking ... f*ck ... [He really does not like Java any more ;-)] (Gavin King)
  • I write crap on daily basis. ;-) (Tomek Kaczanowski)
  • @Seed("deadbeef") [This is a valid hex number.] (Dawid Weiss)
  • Every time you write a for loop, god kills a kitten. (Keith Braithwaite)
  • Simple design is for simple systems. [... making fun of overly complex solutions.] (Thomas Sundberg)
  • The more green it is, the more green it is. [... the build.] (Wojciech Seliga)
  • Heal or Kill. [... these flaky tests.] (Wojciech Seliga)
  • ... 50.000 LoC. - That are five operating systems. Does it do that much? (Kevlin Henney)
Thank you all for the great show!

2 January 2012

Code Cop goes Blue

It has been six months since I went "blue". After having some minor problems in the beginning I have settled down. Recently I completed the second learning plan on how to become a true IBMer, so I feel like changing my Code Cop character a little ;-)

Code Cop

16 June 2011

Headhunter Fail

Recently I was called by a headhunter. I don't mind being contacted by them if they do their research properly and have interesting things to say. But it wasn't the case this time...

Head huntingThe Call
I don't know why these people (headhunters) always need to call. I personally would prefer an email. I will read it when it suits me. But being soft-skilled, they have to talk (i.e. call). Talk if you have to, but please research and find the proper phone number! This poor fool called the company's main number and my boss was the one to pick it up. This was quite an embarrassment.

She (the headhunter) told me about a position I might be interested in. Well, I don't have time to talk, but send me some details, would you. You know my email address? Yes, of course you do, in contrary to my mobile phone number. So what's the point in calling me anyway? Is there a checkbox on your form to make sure the candidate is able to cope with embarrassing phone calls? But I'm repeating myself. Just don't call me.

The E-mail
Finally I had some hard information in my mailbox.
  • Who she was.
  • Company she was working for. (I had not known it before.)
  • Web page of the headhunting company. (I checked it out and it did not impress me at all.)
  • and the offer.
The Job Offer
And the offer really made me laugh. Here is a rough translation (Google translate rules ;-):
Our client is a reputable company in the high-tech
industry and international leader in its niche.
Wow! It's a reputable and internationally known company. Who cares, but what's the niche? What is it doing? Is it producing stuff or just selling things? How big is it?
Your tasks:
* Analysis and development of existing systems
* Creation of software applications
* Testing of applications
* Implementation
* Fixing bugs in existing applications
Aha, my task is to develop software. That's expected from an offer for a Java software developer. Not much to see here. I would like to know what kind of applications, how the testing is done etc.
Your profile:
* Some kind of technical education
* Experience in software development in Java
* Experience with XML
* Understanding of development processes
* Dynamic personality
* Fluent in English
So one should have experience in developing software with Java. At least here is some information: The company which is hiring is using Java and XML (somehow). They have some kind of development processes. Or they want to have one. But what kind of process, e.g. waterfall or agile? Or do they just want people to be aware of documentation and testing. Is there any Java developer out from school that would not match this profile?

I'm not interested at all
The offer was poor and boring, I didn't even bother to answer it. But still I'm asking myself how the headhunter-researcher could think that this a position I might be interested in.

21 January 2011

For You Scala Enthusiasts

On my way to a Jelly at sector 5 I walked past several streets which I had never seen before and stumbled upon a Scalagasse (Scalaalley or Scalalane):

Scalagasse in Wien MargaretenI didn't know that Martin had already whole streets dedicated to his golden egg :-)

(In fact the alley is named after the Viennese priest Johann Scala (1816–1888), who was a member of the district council.)

14 October 2010

Digressions

Two months ago I got a brand new Android phone from my employer. I asked for it to play around and get used to Android development and bingo - it was here :-) This is a major event compared to my prior experiences with employers. But I'm digressing.

A Resolution for 2009So I've been using it for two months. I'm still not sure if it's good for people that just want to talk or text, but it's definitely great to access the internet on the go. So I started catching up with my backlog of articles in Google Reader. Currently I'm back in January 2010, so there is hope that the folder with articles to read will be empty some day. (Alas, it's just one of four, so it looks like I will stay busy for some more months.)

Today I came across Ted Neward's Predictions. I like to read Ted's posts because he doesn't take himself too serious. I especially enjoyed his busy Java developer's guide to Scala two years ago, but I'm digressing again. In his predictions he talked about different technologies and some well known companies. I will not repost his post, but he made some quite sarcastic and funny remarks that I need to share.
  • "Cloud" will become the next "ESB" or "SOA", in that it will be something that everybody will talk about, but few will understand and even fewer will do anything with. --- Well another one in the list of useless buzzwords that lacks a clear definition. Last year I was working on some enterprise integration project and the Czech bank was using AquaLogic ESB. I asked our rock star enterprise architects what exactly defines an ESB. They were not able to give a proper answer. According to the German Wikipedia the term ESB was defined by Gartner in 2002. So it's no wonder that ESB is not proper defined.

  • Being "REST"ful will equate to "I did it myself!"

  • Agile has become another adjective meaning "best practices", and as such, has essentially lost its meaning. --- What does best practice mean anyway? Most likely it is a cookbook and a collection of things that work. According to Andy Hunt best practices are for people that need guidelines. But these guidelines never capture the whole context of the problem. And Ted really hates best practices.

  • Try this: walk into a functional language forum, and ask what a monad is. Nobody yet has been able to produce an answer that doesn't involve math theory, or that does involve a practical domain-object-based example. In fact, nobody has really said why (or if) monads are even still useful. --- When diving into Scala two years ago, I tried to figure out monads. James Iry did a decent job explaining what they do, but I still have no idea what they are or why I should use them. (But probably that's different for pure languages like Haskell.)
How true. Ted, you are great.

6 May 2010

Umlaut Fail

I enjoy reading while commuting, so I am able to make good use of this time by reading a lot. I save web pages to my phone, print articles or carry magazines around. Yesterday I read an issue of IEEE Computer (March 2009). It was quite good, but I spotted a mistake on the very first page.

Advertisement for Thinking on the Web: Berners-Lee, Gödel and Turing
Well, who is Gdel supposed to be? Come on IEEE, who is supposed to get this encoding stuff right if you guys can't! ;-)

9 November 2009

Java is So Old-School

This is going to earn me some flames - but wait for my explanation. The demise of Java has been discussed again and again since some time and here is its proof: Yesterday I visited a jumble market organised by the local Scout group. They offered many things for charity and had them well sorted. When browsing through their stock of cups, I found this little one:

Java Cup bought at jumble sale
Well, Java really has to be old-school if its cups are sold on jumble markets ;-)

3 November 2009

I am 1337!

Yesterday Andreas mailed me this screen shot from my Stack Overflow profile:

1337
together with this explanation "elite => eleet => e1337 => 1337". Aha, this proves that I'm elite. Well - maybe - I don't know. But nevertheless thank you Andreas for feeding my delusions of grandeur. ;-)

6 October 2009

Coder's Dread

Bug of the DayYesterday I found a bug.
I tried to fix it but got stuck.
A pointer had gone completely mad,
had lost its reference, really bad.

Such problems are hard to track,
so many things one has to check.
I read the code, each single line.
A cold shiver ran up my spine.

A particular piece of code was really old,
not changed for years, truth (to) be told.
Its layout was a mess indeed.
"Code Format" was what I need(ed).

I looked a little bit around
and finally the bug was found:
Inside a method called "has Lock"
- an evil empty catch block.

Having found the cause of trouble,
I removed this piece of rubble,
extinguished every tainted line.
It had no chance, victory was mine.

2 May 2009

Fragments of cool code

From time to time I stumble over a piece of code, that just looks "cool". For example date literals in Ruby:
class Fixnum
def /(part)
[self, part]
end
end

class Array
def /(final_part)
Time.mktime(final_part, self[1], self[0])
end
end

13/11/2008 # => Thu Nov 13 00:00:00 +0100 2008
or a proper name for a throw:
catch (Exception up) {
// log the error
throw up;
}
The best name for a JUnit 4 test fixture (free to choose) I ever saw was in a presentation given by Peter Petrov:
@Before
public void doBeforeEachTest() {
A good name for a Ruby binding was
module Regenerated
Inside = binding
end
eval(script, Regenerated::Inside) where the evaluation is done within the scope of another module Regenerated which acts as a namespace.

4 September 2007

I could disable Macker-check

Do you know Macker by Paul Cantrell? It's a build-time architectural rule checking utility for Java developers. Quite old, but we have been using it for years and it still works great for us.

As I am the code cop here, I tend to torture colleagues with forbidden references ;-) So one made this little modification to a comic from xkcd by Randall Munroe. I came across it recently while organising some project folders... So here it is:

I could disable Macker-check instead
How bad can it be?