Amsterdam Node meetup group

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.

Bottlenose 2012

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.com

Bottlenose = Node.js = #winning

Malmberg: E-Publishing platform

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 individual youngster.

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.

Bottlenose closed Beta

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 friends." (Bottleno.se)

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. For this challenge it helps a lot to be part of a highly skilled javascript team, who are 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.

Bottleno.se

Bottlenose = Node.js = #winning

Skylines 1.0

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 backend.

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.

Skylines.net

Just checkout skylines.net and download the app from the app store.

BeatleTech generated with Jekyll

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, and uses Disqus for showing a dynamic javascript blog. Generating a static 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.

Cake and Emacs: cake-swank

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 called elein 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)
        (found nil)
        (max 10))
    (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)))
       (if ,dir
         (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."
  (interactive)
  (if (slime-connected-p)
      (slime-disconnect))
  (let ((buffer (get-buffer-create "*cake-swank*")))
    (flet ((display-buffer 
             (buffer-or-name &optional not-this-window frame) nil))
      (bury-buffer buffer)
      (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.

BeatleTech online

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 serendipity events.

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!