Monday, 16 April 2012
We (me and Dominiek ter Heide) started a new meetup group in Amsterdam
for anyone interested in Node.js. We had our first meetup 2 weeks ago,
where Dominiek gave a great introduction to Node, the guys from
Rockstart startup Wercker
(Continuous deployment made easy) gave a nice overview of all the Node
modules they use, and I gave a talk on when to use
Node and my lessons learned while using Node in my previously Y
combinator funded startup Newcope and in
my current job as Chief architect at Bottlenose.
We plan to have the Node meetup bi-monthly on the last Thursday of the
month, so the next meetup will be May 31th at 7:00PM. We
have some interesting speakers lined up so I hope to see you all at our
next or future meetups. You can follow any announcement on meetup.com of follow us on Twitter.
Node.js = #winning
And for those of you who love Clojure or like to know more about it,
check out the
Amsterdam Clojure meetup.
Wednesday, 04 January 2012
The past couple of months I have been busy working for Bottlenose, for which I did some work
before (earlier in 2011). As I wrote about Bottlenose in a previous
post, it is a really cool (American) tech startup partly based in the
Netherlands that is building a new social assistance application that
helps you make sense of all your social activity streams. It helps
navigate the depths of your networks and keep up with your social
streams so you can engage more intelligently.
I really enjoy working on all the technical challenges that we need to
tackle to create a smart and intelligent client. Challenges involving:
- Natural Language Processing (NLP)
- Interest and Topic extraction/clustering
- Interest (machine) learning
- High concurrency, handling millions of users
Most of 2011 Bottlenose operated in stealth mode, until we were ready
in December 2011 to launch the Beta version to the public. The launch
was a great success and we got loads of positive media coverage.
This year I will continue to work for Bottlenose as their chief architect and allround
(Node.js) developer. I love to see where we will get with Bottlenose in 2012.
Bottlenose = Node.js = #winning
Thursday, 28 July 2011
The past couple of months have been very busy. First off I was still working partime
for Skylines with which we made it
into Techcrunch Disrupt NY as a
finalist. Skylines was actually the first Dutch startup ever to become a
finalist of this highly rated conference competition. Great stuff,
showing that Amsterdam can be a great place too when it comes to
bootstrapping your global startup.
Next, starting in April, I was hired as a Rails developer by Ciber on a scrum
project for their client Malmberg,
an educational publisher, to work on the next iteration of their
e-publishing platform. The work consisted of a redesign of the old
platform, and developing a Rails 3 application on top of the existing
data models and MSSQL database (Rails 3 actually works perfectly fine with
other sql dbs besides Mysql and Postgres). The application allows for
teachers to manage their online courses, materials, exams and results,
where students have easy access to all of this. The system is actually
pretty smart in assigning followup courses based on your test scores,
but still gives teachers total control.
Unfortunately I can't show a link to the product or demo, as the
application is currently being tested by the client, and will be rolled
out for the new students in september. However I can say that I like
the end product.
I strongly believe we will see a lot more development in this
area of online learning platforms. Looking for instance at the Khan Academy or Studyflow we can see that the
landscape is changing. Also a word from my teacher friends tells me that the
Dutch curriculum on both primary and high schools is already filled with more and
more computer courses, that provide custom tailored education for each
I enjoyed my work at Ciber, working with a great team of skilled
developers, and I don't rule out that I in the foreseeable future will
be working on next generation learning platforms again.
Tuesday, 26 April 2011
I guess most of you have heared about "stealth" startup Bottlenose, which already got some great pre
release write-ups on Techcrunch and Mashable.
In case you haven't, Bottlenose describes itself as "a smarter way to surf the Stream. It's a new
personalization tool that helps the important information find you in
social networks like Twitter and Facebook. Use Bottlenose to track
your interests, visualize trends, and curate knowledge with your
The Netherlands doesn't feature that many high tech startups, so I was
happy to work together with cofounder Dominiek
ter Heide this month (who helped us out last year with our YC company Newcope).
Armed with Node.js my goal is to, where possible, make the tool even smarter than it already is.
pushing the boundaries forward. And besides being a cool high tech product
to work on, I also believe Bottlenose is a must needed solution for an
information overload problem that is getting bigger each day.
Bottlenose is currently in alpha, but you can sign up now on Bottleno.se, and hopefully be one
of the lucky ones for the closed beta to have early access to a tool that will enrich your
twitter and facebook experience.
Bottlenose = Node.js = #winning
Sunday, 27 March 2011
Skylines is a really cool iPhone app that helps you follow what you
like, based on realtime pictures, and for the last couple of weeks I
have been working with the skylines team to create a solid and scalable
Last week at the SXSW conference we had our 1.0 soft launch and the app is
now available in the app store. We are currently working hard on the
next 1.1 version, which will feature some great additional
options. In the meantime please try out the app, and follow your
interests in a realtime image stream.
Just checkout skylines.net and download
the app from the app store.
Monday, 03 January 2011
When I started with the creation of BeatleTech.com and blog, I didn't
want to rely on Wordpress (or others) as I wanted more flexibility and
control, and I definitely didn't want to separate the blog from the main site,
i.e. linking to a blog on Posterous.
So my initial plan was to build the site in clojure, given a nice
online clojure blog example, Brian Carper's Cow-blog.
However, shortly after having started, my friend Jeff Rose introduced
me to Jekyll, which is
a blog-aware, static site generator in Ruby. It allows for templating,
site allowed me to copy all the html files to my Transip webhosting
server, and thereby keeping it extremely low cost. Running a clojure
site on Google App Engine could have been a good alterative, but I
liked giving Jekyll a try. It turned out to be very easy and already has tons of
examples online to check out. I also put the source code of BeatleTech
on Github for sharing, and hope it could be of any use for you.
So if you are looking for a way to create your website-blog and
(just like me) already paid for webhosting, which sadly only allows you to do some php
wizardry, then rest assured as Jekyll can save your day.
Thursday, 23 December 2010
So far I have been using leiningen as my
standard build tool for Clojure, and together with a very nice Emacs package
I was able to run leiningen tasks from within emacs. The functions I use
most often are elein-swank and elein-reswank to (re)connect with slime.
Now this is all great, but lately an alternative build tool has catched my
eyes and is called cake. It features a
persistent JVM, which speeds up startup time tremendeously, and has an
easier way for setting up tasks similar to ruby rake
tasks. Now in order to make my swanking and reswanking work in emacs
with cake I thought of reusing the elein-swank code, but as it turns
out, in order to kill swank I had to kill cake and thereby killing the
persistent JVM (missing the whole purpose). So instead of doing that I
got the advice to just keep swank running, and only reload the
classpath. This resulted in me implementing the following elisp functions.
(defun cake-project-root ()
"Look for project.clj file to find project root."
(let ((cwd default-directory)
(while (and (not found) (> max 0))
(if (file-exists-p (concat cwd "project.clj"))
(setq found cwd)
(setq cwd (concat cwd "../") max (- max 1))))
(and found (expand-file-name found))))
(defmacro cake-in-project-root (body)
"Wrap BODY to make `default-directory' the project root."
(let ((dir (gensym)))
`(let ((,dir (cake-project-root)))
(let ((default-directory ,dir)) ,body)
(error "No cake project root found")))))
(defun cake-swank ()
"Connect or reconnect to swank while reloading cake class path files."
(let ((buffer (get-buffer-create "*cake-swank*")))
(buffer-or-name &optional not-this-window frame) nil))
(cake-in-project-root (shell-command "cake -r" buffer)))
(slime-connect "127.0.0.1" "4005")))
In order for this to work one needs to get the latest cake master
version, so you can reload class path files (cake -r). Additionally one has
to turn on swank autostart for cake. This can be done by adding the
line "swank.autostart = localhost:4005" to your .cake/config file.
So now you can easily switch to cake, keeping reswank in your toolset.
Tip: If you find yourself always getting the following mini-buffer
message when connecting with slime: "Versions differ: nil (slime)
vs. 20100404 (swank). Continue? (y or n)", then all you should do is
removing the slime.elc file in your .emacs.d/elpa/slime-X folder, and
consider it history.
Sunday, 19 December 2010
With BeatleTech life and kicking, I found it about time to add some blogging
functionality, and to start writing about my ongoing work, research and
In my ongoing work you will find me blogging about my emacs journey,
my clojure lessons, rails mambo, and basically any other technology I
will be working with. Further more in my research I will cover topics in
cognitive science, human perception and AI, but all in due time.
If you are in need for an architect, developer or advisor, then know that
BeatleTech is there for you, and Beatle is available for hire!