The Balsamiq Tech Blog

by Luis Arias

Video: A first look at Bazaar

by peldi. March 5th, 2010 under Videos2 Comments

Hi there. So Luis came to our office in Bologna for a couple of days, which was great.

We took the opportunity to take a look at Bazaar, the source-control system used by Ubuntu, mySQL, GNome.

Luis likes it more than Git, and we’ve been using SVN all this time, which I hear is “the old way” of working.

Anyways, we thought we’d record the session to share it with you…who knows, it may be useful if you’re like me and still don’t “get” these new ways of sharing your code…

Warning: the video is unedited and 48 minutes long.

In the end, I wasn’t totally convinced but I’m willing to give it a try. We’ll port our myBalsamiq code-base to Bazaar after our next beta refresh release and see how it feels.

What do you think? Will we ever go back to SVN?

Peldi

AddThis Social Bookmark Button2 Comments

 

 

 

Better Adobe AIR Beta 2 Package for Ubuntu 64-bit Jaunty

by Luis. February 22nd, 2010 under Flex/Air, Ubuntu1 Comment

We ran into a number of issues with installing Adobe AIR Beta 2 on our hosting infrastructure for myBalsamiq.com last week, so I wanted to share a trick I found that made the process a lot smoother and that hopefully is not too big of a hack while we wait for real 64-bit debian packages from Adobe.

So first of all a note of warning, the debian package that you can download here does not constitute a way to install a 64-bit package for Adobe AIR!  Adobe has announced an official 64-bit distribution but at least as concerns beta 2, we are still talking about using workarounds to get a 32-bit AIR to run on a 64-bit distribution through downloading and installing the appropriate 32-bit dependencies.

Our use case for installing Adobe AIR on some of our servers is a simple feature that was missing from previous myBalsamiq beta releases.  What happens is that when you upload a BMML file to a myBalsamiq project we call Balsamiq Mockups Desktop through the command line interface and produce a PNG of the uploaded mockup using the export command.  This allows us to create a new myBalsamiq Mockup page for the upload complete with a mockup image without having to launch the Mockups editor first.

Now Adobe has a very detailed procedure that is important to get acquainted with to install Adobe AIR 2 on 64-bit Ubuntu 9.04 because you still have to go through it, at least up to the step where it asks you to run AdobeAirInstaller.bin (which didn’t work for us at all). Actually, I found there was no need to extract libs from the two debs (steps 4 & 5) as everything was setup right by the ia32_libs package.  I also did have to run an extra getlibs to grab libxstl1.1 as follows

sudo getlibs -l libxslt.so.1

Now  once the official deb package installed, because of a current bug in apt referenced here on Launchpad and here on the debian bug tracker, installing an AIR app through the AIR App Installer would work, but would create a broken package for the app rendering apt unusable for further installations.

So…  now for the big hack which allowed us to both install Adobe AIR using a deb package and not break apt.  What I did was use the following steps to extract, amend, and repackage the official Adobe AIR deb package to produce a patched version that lies to apt by saying its a 64-bit package!

First I extracted the deb package contents and debian meta-data into a folder:

dpkg-deb -x adobeair-2.0.0.11670.deb adobeair-2.0.0.11670balsamiq1
dpkg-deb -e adobeair-2.0.0.11670.deb adobeair-2.0.0.11670balsamiq1/DEBIAN

Then I updated the DEBIAN/control file switching the i386 architecture to amd64 and the version to 2.0.0.11670balsamiq1.

I then rebuilt the package using:

dpkg -b adobeair-2.0.0.11670balsamiq1

which produced the adobeair-2.0.0.11670balsamiq1.deb package which you can download here.

Here’s a trace of installing it on one of our machines where you can see that aptitude picks up the presence of the adobe air package (which won’t work if you use the official one)

luis@mockupshq:~$ sudo dpkg -i adobeair-2.0.0.11670balsamiq1.deb
Selecting previously deselected package adobeair.
(Reading database ... 63964 files and directories currently installed.)
Unpacking adobeair (from adobeair-2.0.0.11670balsamiq1.deb) ...

Running 32-bit AIR on 64-bit systems has not been fully tested. However, 32-bit AIR is expected to run on 64-bit systems if they have the required 32-bit libraries and packages installed.
 The following links describe how to install or update AIR 2.0 on 64-bit versions of Ubuntu 9.04, Fedora 11 and OpenSuse 11.1.
 Installing Adobe AIR 2.0 on 64-bit Linux visit http://kb2.adobe.com/cps/521/cpsid_52132.html
 Updating to Adobe AIR 2.0 on 64-bit Linux visit http://kb2.adobe.com/cps/521/cpsid_52132.html
Setting up adobeair (2.0.0.11670balsamiq1) ...

luis@mockupshq:~$ aptitude show adobeair
Package: adobeair
New: yes
State: installed
Automatically installed: no
Version: 2.0.0.11670balsamiq1
Priority: extra
Section: Development
Maintainer: Adobe Systems, Incorporated
Uncompressed Size: 44.9M
Depends: libgtk2.0-0 (>= 2.4), libxslt1.1, libxml2
PreDepends: lzma
Conflicts: adobeair1.0
Description: Adobe AIR

Now remember, your mileage with our deb is not guaranteed (although I actually also use this package on my laptop which is running karmic 64-bit)! So please don’t get angry if something terrible happens with your installation, but I do encourage you to post your experience with it in the comments here, especially if something bad happens so that others may avoid going through your misery.

Oh and if you’re interested in our myBalsamiq webapp, then definitely check out Peldi’s awesome sneak peak screencast on the company blog.

AddThis Social Bookmark Button1 Comment

 

 

 

Error creating AIR file: Could not BER decode the CRL.

by peldi. February 9th, 2010 under Flex/Air3 Comments

Today, out of the blue, our Mockups for Desktop build started failing with the cryptic error above.

A Google search didn’t turn up much, while a Bing search returned this seemingly abandoned Flex bug (#FB-16236).

Signs pointed to an issue with our code signing certificate. I contacted the TC TrustCenter support (who issued the cert) via phone, which was totally useless. The guy didn’t even ask what happened, he just opened a ticket and 6 hours later I haven’t heard back.

Until we get this fixed we cannot ship updates to Mockups, so you can imagine how I felt all afternoon.

I posted on the Adobe Air pre-release forums but heard nothing there either.

I did eventually find a solution though: I went here: http://www.chosensecurity.com/adobe-air-certificates and since the links on the page were broken I reluctantly clicked on “Chat Now”, at least to tell them about their broken websites.

To my surprise, the person that answered my chat was extremely knowledgeable and was able to tell me exactly what the deal was.

So I’m sharing it now for those of you in the future who hit this rare issue. Do not panic, your pain is temporary.

So here’s the deal: when you sign your Air application with a certificate, it turns out that adt goes out to the interwebs and checks a Certificate Revocation List, i.e. a server that keeps a list of expired or blocked certificates.

Makes sense, except that today ChosenSecurity/TC TrustCenter has had an outage of some sorts that took down their CRL server. They’re working on it, and it should all go back to normal tomorrow.

In the meantime, a workaround is to DISCONNECT FROM THE INTERNET and sign your application then. In this case adt falls back to a cached version of the CRL, et voila’! I tried it and it works.

Hurray!

This reminds me of something my “Distributed Systems” professor taught us back in college: “a rigorous, well accepted definition of a distributed system is one in which someone, somewhere, does something…which prevents you from getting your work done“.

Yup, check! :)

Peldi

People from the future: If this article helped you, put a w00t in the comments! :)

AddThis Social Bookmark Button3 Comments

 

 

 

Once in a Lifetime

by Luis. January 25th, 2010 under Personal4 Comments

As a young man, I was fond of listening to a lot to Talking Heads, so although the song describes a character dealing with their mid-life crisis (of which I believe mine are (mostly) over), I felt no other title to this introductory post would best describe my feelings: I am overwhelmed by joining Peldi and the gang at Balsamiq to do what I believe will be some of the most fulfilling work to come in some twenty years in challenging startup environments.  The reason is that if Balsamiq with its good humour prides itself on “adding flavor”, the pun is not innocent in the sense that it takes the right combination of ingredients, process and intention (or vision) to bring a product like Balsamiq Mockups to the desktops and wikis of so many satisfied customers.

Entrepreneurship being above all a human endeavor, clearly the ingredients are there !  Not only is our small distributed team a joy to work with, but our  partners and customers provide a rich foundation for improvement and building the future through conversations taking place all around the clock whether they concern our products or are simply encouragements do do even better.  Our processes are agile and ruthlessly focused on bringing  value to our customers through new features, enhancements, bug fixes, and usability improvements.  Release cycles are short and feedback is only a tweet or a post on our community site at GetSatisfaction away.  Finally, it only takes briefly studying Balsamiq’s track record to understand that on top of all of this rich substrate of ingredients on which to build a successful business, we have in our founder Peldi, the rare quality of non compromising leadership based on values.

Now I know all of this through experience because among other business activities, I have been working with Peldi and Marco in stealth mode all of this past year on our our webapp project MyBalsamiq.  So I am thrilled to be able from now on to focus all of my time on MyBalsamiq and bring the product out the door so that our customers old and new will be in the position use  Mockups online with their customers and co-workers. Thank you Peldi for making this possible !

Finally, please note that this is a brand new blog at Balsamiq!  The Balsamiq Tech Blog will be a place for us to engage technical discussions focused on the tools, technology and processes that we use to build our products such as FlexGrails or agile software development.  This will also be the place for us to talk about the modules we release as open source. Hopefully all of this will be helpful to our customers and beyond, and the benefits of learning and improving software development skills with our readers will be mutual.

AddThis Social Bookmark Button4 Comments

 

 

 

Hi this is Luis from Balsamiq. This is where we share our open-source libraries, tips and tricks for programmers and lessons learned while building Mockups on all the different platforms we support.