Why we love Dojo at Memonic


From the beginning we have been using Dojo as our JavaScript framework of choice at Memonic. Why did we choose Dojo when everybody else seems to be going with jQuery nowadays?

My answer to the question is usually the Dojo build system. Let me show you how it works.

The Dojo build system

As a Dojo user I write the following JavaScript class:

This uses the Dojo functions dojo.provide to declare modules and dojo.require to import them. These dependencies get resolved by the client when loading the web site. All the modules are fetched from the server.

In this example that means that the browser will first fetch the mywidget.js file, then load the /dijit/_Widget.js file (which in turn has other dependencies) and only then actually execute the code inside mywidget.js.

In any real system there will be many more than those dependencies. That is of course a performance problem because users don’t want to be waiting for all of the HTTP requests to finish before they can use our web site. That’s where the Dojo build system comes in.

The build system – if run on this example code – will create a newmywidget.js file which includes all of the code from _Widget.js and all the other dependencies. So you end up with exactly one source file that is downloaded by the browser that contains your full application.

Unfortunately the build system is not very easy to use. But the tutorial on Creating Builds will get you going.

At Memonic we have completely automated this to build and compress the JavaScript code whenever we commit something. This way we always have the great modularized code to develop on and then on the test and live system it all gets packaged together in a few files. How we do that is described in the tutorial under the heading “Multiple Layer Files”.

By the way, the build system also optimizes CSS files. So liberally make use of @import statements in our CSS files without incurring the additional cost.

Other goodies

The build system was a huge reason for why we went with Dojo. But there’s more.

For example the internationalization support with dojo.i18n. That module provides great support for translating our application in various languages and also handles date, number and currency differences.

Then there is a huge number of libraries that can all be used simply be calling dojo.require. And generally those libraries are of good to great quality. There are three built-in modules which all provide many classes and helpers: dojo, dijit and dojox.

A personal favorite of mine is dojox.gfx, a cross-platform vector graphics API. We used that for the image annotation editor we released a few weeks ago.


Originally we almost went with jQuery instead of Dojo because of the code size. About two years ago Dojo was a lot bigger than jQuery (it was 80 KB vs. 56 KB back then). Funnily enough that gap has now closed with Dojo clocking in 89.6 KB and jQuery having ballooned to 89.5 KB.

I hope I was able to pique your interest in Dojo a bit and maybe with your next project you’ll try it out? But if you’re interested in a build system that you can use with jQuery you might want to look at RequireJS, it seems comparable to Dojo’s build system.


CEO Day in Bern


Every year once the Commission of Technology & Innovation (CTI) invites Switzerland’s startups to a so called CEO Day in Bern.

photo.JPGA great moment to meet a lot of like minded people from the still rather small Swiss startup scene around a cup of coffee and later in the day share experiences in a number of workshops and panels.


There are of course a number of other venues such as the great Web Mondays or Web Tuesdays but in such a compact manner you seldom get to see the future of Swiss entrepreneurship. Thanks to the organizers and partners of event.


Just a little side note: A little too many suits compared to Silicon Valley startup events ;-)


User power: Memonic API wrapper for Node.js


Do you have a brilliant idea how you could extend or integrate Memonic into another solution? No problem – we have a developer section explaining all you need to build on top of our platform. If you are skilled in programming, there’s no reason to not start today!

One of our users has done exactly that and wrote a Memonic API wrapper for Node.js. Since it was made open source, we want to share it with you: https://github.com/callin2/memonic

If you consider doing development with Memonic and seek help, don’t hesitate to get in touch with us! We are nosy to hear from you!


Convenient Blogging with the Memonic WordPress Plugin


Today we’re happy to present another goodie to help you with your information curation using Memonic. ‘You’ in this case is most appropriate if you’re a blogger and using WordPress to do so.

So let us introduce the WordPress Memonic plugin!
What does it do? First and foremost it makes writing articles much more convenient by giving you access to your collected wisdom in Memonic write at your fingertips. The plugin adds a Memonic box to your ‘Edit Post’ screen right below the editor area and lets you navigate your entire collection (yes, that’s including the notes in groups you have access to). Having access to your notes makes it extremely simple to insert quotes or references to sources you found during your research to the article your writing.

Screenshot of the WordPress 'Edit Post' screen with the Memonic collection shown

Memonic collection readily available on the 'Edit Post' screen

You may insert the excerpt of a note, the complete note or just links to either the source of the note or the note itself. And we didn’t stop there: to make it even easier for you to find the note you’d like to reference we added sorting to the list of notes. Hover over the note and the appropriate actions will pop up.

Screenshot of the options to define the Memonic Widget

Options for the Widget definition

If you like to integrate parts of your Memonic collection into your blog as is, the plugin features a WordPress widget to integrate the Memonic badge to your sidebar. Just choose the folder to display, edit the other options if you like – and presto!
You may define as many Memonic widgets as you like.

Installing the plugin is straight forward as the plugin is hosted on WordPress’ repository. Go to the plugin page of your WordPress installation, click ‘Install’ at the top of the page and then search for Memonic. Install the Memonic plugin right from the result list. Once you have activated the plugin, go to your user’s profile page and enter your Memonic credentials to allow access to your collection.

So, happy blogging and let us know about additional features you’d like to see!


Memonic Among The Top 100 Swiss Startups!


Although Switzerland is quite a small country with close to 8M inhabitants, it is a hub for many startups. Every year, the government registers more that 35,000 new companies with a trend to even more. A board of 100 experts has been asked to vote their most successful Swiss startups, and we feel especially honored to be voted among these top 100 startups out of a total of 200,000 startups founded since 2006.

The full article (in German) can be read here: http://www.venturelab.ch/index.cfm?CFID=92733805&CFTOKEN=61581865&page=118421&article_id=507

Thank you, dear Memonic users, for helping us making this a success!



Twitter Updates


Memonic Set by press

RSS Feed

memonic Photos

More memonic photos