Monday, November 28, 2011

Kissing the (dead) hand.

Imagine you are in a horror game and your task is to kiss the hand of a nice lady. That is your job. Nothing else.

Let's see what happens. You reach nice lady's house. Ring. Nobody answers. You enter. Remember: you need to kiss her hand. You open the door to her room. Wow....she is dead, someone just killed her and her body parts are all over the room. The hand(s) are on the table, the head is on the floor, etc. Now you are shocked. Who killed her? Why? Are they in the house? Should I call the police? Should I run?

Now, in that very moment, you almost lost the game. Why?
BECAUSE YOUR JOB IS TO KISS HER HAND. Period. The games does not care if her hand is attaached to a living person.

The same problem I see in software development and that is trying to solve innexistent problems.

You have a feature to add, nothing more, nothing less. But instead of doing that you lose focus and start adding "not so important" feature and postpone or (worse) dump the feature you should implement. Wrong!

You have to add THAT feature and nothing else.

Monday, November 21, 2011

Git (read github) support added

Yes. Git support added for Diagramo - so if you are a git fanatic :) you can use your favorite tool.

I picked GitHub for ... isn't it obvious?

The main development is still on Mercurial/Bitbucket but I will mirror all the changes to bitbucket too.

Enjoy forking

Thursday, November 17, 2011

Sources and stuff back in

All the sources and other goodies are back on Diagramo.

As people asked and got worried about that here they are.

Warning: As I work on some features there are things broken on the sources.
I will try to do less damage with updates.

Monday, November 7, 2011

Diagramo 2.1

I needed to make plans for Diagramo 2.1.

I started to collect all the features I want to add when I realized that I can use Diagramo itself to make an agile plan.

As a picture make a thousand words here is what I have now:

The full link is present here

Now I can start enjoying Diagramo myself.

Friday, November 4, 2011

Self induced pain

No, it' not about physical pain.

It's about mental pain. Or software pain.

One of the problem I faced EVERY time I work a product I DEVELOP and USE (in the same time) is that I'm so eager to test the new version that I'm in a constant state of upgrading it to a point that I do not know if it's a stable stuff or beta.

As the result I end up reset the whole application to zero.

Diagramo makes no exception BUT there is hope.

With new online version I will be able to keep my diagrams and I will go with the official upgrades.

That is one of the reason online version was launched....less mental pain.

Wednesday, November 2, 2011

Diagramo 2.0.0

Yes, I did it. New release. Improved engine (but not visible)

What new and visible.
  • create online account
  • SVG export and preview made first class citizen
  • browse public diagrams (more to come)
Just make an account and try it.

Friday, October 28, 2011

Some people will make you sad - don't let them

I will write down this story so you will be protected from this....if it will happen to you.

There was a company - I will not reveal YET its name - that wanted to use the Diagramo engine in commercial purposes.

I said ok as long as they will pay the money and I will be able to fuel the Diagramo with more power (host, design, etc).

They start using the sources and finish what they needed, I helped them as much as I could.
The result? The money never arrived.

This kind of story makes you wonder if it worth to help people or do anything for free.

The biggest issue is that actually steal your desire to do continue.

Be aware, very aware.

Friday, July 29, 2011

Slides - OSCON - Bird of Feather Presentation

OSCON presentation was a delight.

I would like to thank all the STRONG geeks that were attended.

Also here are the slides of the presentation

Escape from Compatibility View

I was playing with IE9 "Browser Mode" and "Document Mode" for Diagramo

As things were not looking nice I added Diagramo (local development url) to "Compatibility View"
and forgot about it.

A few days after tried to play with html5 features again but could not get out of "Browser Mode" : IE9 Compatible .... for 1 hour (damn)....when I realized that the whole site was added to IE9 "Compatibility View" list.

Remove it from "Compatibility View" list

Simple. Go to Tools (if menu bar not present, go to title bar, right click and activate menu bar) --> Compatibility View Settings --> remove your site.

Wednesday, July 27, 2011

OSCON - Bird of Feather Presentation

I will make a presentation of Diagramo as real world example in OSCON 2011.

Here are the topics that I will cover:
  • How to build a JavaScript 2D engine.
  • How to export a canvas to SVG, PNG and JPG
  • How to integrate the engine into a real time UI
  • Who is using and extending the application
If you are interested to hear about this in detail come to listen to us Thursday, July 28 in room D136.

Monday, June 20, 2011

Old accounts moved

As we move to another architecture for Diagramo we will move whole old site to

All diagrams will be intact.

We need to move to new architecture to better scale and speed up development.

Thursday, May 26, 2011

Version 1.1 released

Finally :)

Release 1.1 is ready.

For those interested to see what has been done here is the link

Happy downloading :)

Thursday, May 5, 2011

Diagramo 1.0.1 - release candidate

We've published the release candidate of Diagramo 1.0.1 here:

Here are the list of stuff added

Please give feedback or report any bug.

Sunday, April 24, 2011

Diagramo - migrated to public repository. Plus Documentation pages

We migrated whole diagramo sources here:

Now you can download the sources, folk and contribute.

A new set of wiki pages was created here: It is for those interested in extending and developing Diagramo further.

Thursday, April 7, 2011

It is time for a new type of GPL license?

When GPL was created most of the programs were classic/desktop applications.

Once you got the application and the GPL license stick to it you were not able to make money out of it without making source public. Once sources made public other people would be able to create a new "build" out of all "money makers" were killed :)

In these days if you have a web application and make it GPL then someone could take it, not changing a single bit of it and make a service out of it - thus making money and not contributing to the sources.

So I think a lot of so called "web" integrators a laughing at GPL application authors.

It is time for a new type of GPL license?

Wednesday, March 16, 2011

A group to discuss about Diagramo

A group has been created to allow those interested in Diagramo technology to ask questions and get answers.

Here is the link:

For now only those that are member to the group can see what's in there.

If you want to join just use the contact form to ask for an invitation.

Download back

Download section back online.

Friday, March 11, 2011

Sources and download version temporarily not available

Due to huge demand on sources and downloads we temporarily suspended this service to restructure this part of the site and offer:

Better ways to:
  • get documentation
  • forum access
  • free license and commercial licenses
  • public API (similar to JavaDoc)
If you really need access to this (or beta preview) please use our contact page.

We will answer you.

Diagramo runs natively on IE9

I saw Microsoft offers the new IE9 to download as a RC and I said now it worth a try.
Ok, downloaded, installed and went to Diagramo to test it. It didn't work :(

But wait - that is because IE9 loads the page in quirks mode. So press F12 -this will trigger development tools - and select Internet Explorer 9 standards.

Now it's working.

Now there is a trick you can do to make IE9 switch to IE9 standards, just add

at the begining of your page :)

We will add this to diagramo too.

So simple.

Friday, February 25, 2011

Slow motion release

It's hard to ship a product. There are times when you go nuts of how slow things progress and how many things you have to take care of.

Did you have this problems with your projects?

One thing can keep your mental sanity and that is positive mind. Don't you belive me? Watch this.

Monday, February 21, 2011

JavaScript - Trim a string

I need to trim strings in JavaScript every day and everytime I forgot the code snippet that do that so here is

/**Trims a string
*@param {String} str - the string to trim
*@return {String} the trimmed string
function trim(str){
var res = str.replace(/^\s+/, '');
res = res.replace(/\s+$/, '');

return res;

Pfui, now it's here forever.

Sunday, February 20, 2011

JavaScript toString () method

One very nice feature toString() method from JavaScript has is the ability to get the binary representation of a number in just one line of code

var a = 5;

This will output:


You can give toString() a parameter which is the radix in which to output the number.

Of course you can use 8 to get octal version or 16 to get the hexa version of the number.

Very powerful and also very simple

Saturday, February 19, 2011

HTML5 score: Firefox 3.6.x vs. Internet Explorer 8.0.7

I'm using all os those browser every day to test JavaScript and HTML5 features for Diagramo
so I wanted to see how well supported are HTML features by each one of them.

One year ago this was a difficult task as there were not so many tools but right now this job is easier.
As my "daily" browsers are Firefox 3.6.x and Internet Explorer 8 here is the level of support for HTML5 each has (according to

Firefox 3.6.7 - Score 139

Internet Explorer 8 - Score 27

So, next time you find yourself cursing Internet Explorer remember its score :)

JediScript for Young Padawans

Yes, that is how the Profesional JavaScript for Web Developers 2nd edition - by Nicholas Zakas -book should be renamed to.

This book is amazing. It makes me think about stuff I never could imagine exists in JavaScript.

But the most important of all is that IT MAKES YOU UNDERSTAND JAVASCRIPT.

A lot of books onJavaScript tries to teach you :
  • like they do not believe JavaScript is a real language
  • try to make you understand the basic of programming in a very chaotic way
  • eagerly move to advances samples and snippets you should copy / paste into your code
So if you still think JavaScript is a easy and chaotical mix read this book and you will see that we were taught wrong by others.

Wednesday, February 2, 2011

Diagramo v1.0 is out

We are very happy to announce that version 1.0 of Diagramo is out.

Features added since beta
1. You can create an account or download it. Yes, download it and place it on your server.
2. Undo and redo were added
3. Grouping figures.
4. Export diagrams as SVG, PNG and JPEG
5. A lot of the engine was recreated and bug solved.

It's FREE - Totally free
Yes, you can even download it and tweak it to your own needs if do not plan to make money out of it. Here is our free license.

What happen with old (beta) diagrams ?
They are good and well at
Sorry, we had to move them there.

I am really sorry that the quality of the application is not Japanese quality.
I know a lot coders will curse me for that but so many people ask to make a release with those basic features ...that I decided to do it.
Feell free to throw potatos at me or give us a hand to make it better: bug reporting or code contribution.

Thank you.
Diagramo team.

Friday, January 28, 2011

Do not get depressed

It seems that getting depressed is the worse thing can happen to an entrepreneur.

Very few people understand how difficult is to create a new thing. Most of them hear success stories and think that all of those people were struck by a great luck.

I do not want to say luck is not important but most of them worked hard to acheive that success.
Also for 1 success there are other 20 failures (or even greater in IT).

Depression can appear as the result a few of reasons (list not complete):
  • people desert you when you most need them
  • none seems to understand you or share the vision with you
  • no investor seems a "deal" in you or your ideea
  • no one even ask you a question or leave a comment on your blog
  • you work too much
  • you did not allocate time for fun (or for youself)
  • the level of problems (read bugs if you are in IT) are so high that you ask yourself if you are producing bugs instead of code
All of those reasons might make you give up.

Don't do that!

Ancient christian monks described that state of mind as acedia. You can recognize it by the fact that you do not want anyhing. You are just bored and tired. You want to give up.

Don't do it!

Then is your time, then you can rise and yell (in your mind)


See this guy and think about your life.

HTML5 supported in NetBeans 7.0

Even if NetBeans 7.0 is in beta it offers HTML5 support.


We, at Diagramo, are using NetBeans from the first lines of code and we lacked that features.
Now it's there.

Thank you NetBeans team!

JavaScript and mental stack

I've been playing with heavy JavaScript - for Diagramo - for about an year by now.

There are things you can not realize instantly but you need time for your brain and body to realize.

What do I realized?
In JavaScript - for large programs - you have a heavy mental stack.
Let me explain a little bit.

By mental stack I mean all the things you have to load in your brain (code, exception, configs, etc) so that you can be productive.

JavaScript is a "script" language
Wow, that is fine...except for the case you have a large program. In Java you have strict types and it's medium difficul when you start a program but it keeps to be that way no matter how big the application grows.
In JavaScript it's super fast to make a prototype but it starts to be harder and harder to develop and maintain as the code grows.

JavaScript runs in a browser
Wow, that cool....but what if you need to write some test units? Or if you need to make other automated tasks?
You need tests and testing. You can not have a big application with a decent quality without some tests.
I have to use the Rhino implementation of JavaScript to run them in console.

But wait! How can you simulate a real browser enviroment in console? can not :(

Conclusion ?
I know you can organize your code better but that is what I felt while coding in JavaScript.

Here is what Cliff said about mental stack.