I’ve been meaning to do this for a long time and now the time has come: KeyboardPlaying has a new logo. Which means it will soon have a new website too.
You can find it on Github. Fork if you have any way to make it better (either better looking or just a better construction of the SVG).
Now, this lays the foundations of the future graphical style of the website. The colors were inspired from the Material Design Lite, which I’ll use for the next version of the homepage. It is also flat as I like the current trend to minimalism and flatness. I find it much more soothing than all the fashion of imitating reality, making things 3D like with shadows and so on (though I loved it in that time too, but I was a bit younger; time to be an adult… Or maybe not totally).
No, for the website, just a bit of patience, please.
I am a consultant developer. This means I move from client to client and share their time constraints. This includes deadlines, but also work time.
It so happens that some clients have a time clock, like in the old days.
My problem is: while most of my client’s employees can see what the clock stores, I, as an extern, cannot. I do not like to be blind, so each time I am in this situation, like many people I know, I make an Excel sheet where I log my check-ins and -outs.
Sharing my timesheet…
On my latest mission, we were several on the team from the same company. I spent some days without my usual timesheet and when I grew tired, I sent my first basic version, with some conditional formatting, to all members there.
Since they did not seem very interested if I asked whether something standard was available, I did not expect much. But instead, I quickly got some feedback: they asked new features, signalled some bugs, …
The team grew, the requests followed. The possibilities of the timesheet were ever greater, and therefore so was its complexity.
… with the whole world
Finally, using e-mails to track the feedback and release the changelog and user manual became too heavy. I thought of a bug tracker. This led me to create a Github repository. The wiki would come in handy for the user manual too.
Thus the work on version 2, which should make the sheet less specific to our context and more widely usable, began.
The first pre-stable version of my latest project crontab4j is now available.
What is it?
The name is plain enough: it allows you to schedule Java jobs using CRONs.
Before going further, keep in mind this version is a WIP. For instance, I heavily use regular expressions now (I love regexps), but I plan on moving to grammars to make things more scalable and easier to debug.
You said available?
Well, right. You can get the sources and compile it yourself, as any Maven project.
I might publish it to Maven later, when I get a stable 1.0.0 version. Until then, you will have to build by your own means.
Doesn’t it fit into the yet another category?
What does not, nowadays? Yes, I know of two other tools which can do the same.
Quartz is the well-known Java scheduling library. It is not CRON-centric, but it is powerful and integrates nicely inside a Spring context.
This is why I actually suggested, but my boss thought it might be too much for a simple job. So I took the challenge and wrote a simple parser for him. And made something more elaborate on the side.
So, is it really lighter? It does less things, so it better be! At the current time:
And this does not include the transitive dependencies: the goal was to get rid of everything useless. Quartz has been progressing on this aspect, but just before version 2, it had nine dependencies, not counting the transitives. Now it only has two. I must wait to have a stable version before bragging.
I did not know of cron4j before I looked to see if the name was already taken, which made me choose crontab4j to avoid confusion.
So, why did I persevere in making crontab4j? First, because I already had taken up the challenge. Second, because I keep in mind that most Java applications today use a Spring context, and therefore need compatible tools, which I aim to provide.