Designing my ideal Note-taking application

 

Note app

Notetaking app design.

The need

I have recently discovered the need for a good note-taking application. I have tried Tomboy (and Gnote), RedNotebook, KeepNote, and a few others. None of these applications seemed to provide an experience I wanted: simple, easy to use, and did not get in my way.

Design guidelines

The main features of this application’s design are:

  • Sparse, simple layout.
  • Sits in the background and makes itself available anytime I need to create a note, or refer to an existing note.
  • Classification is purely via #hashtags in the note. No cumbersome creation of folders, and hierarchical tree layout. Instead rely on tag and metadata information, coupled with advanced search to help the user find any note easily.
  • Powerful and very fast search with tag filtering, and logical operators (ala Gmail). Preferably real-time like Google instant search.
  • Easy in and out note taking – never tries to gain attention of the user until called for, and even then, let the user go as quickly as possible.
  • Markup based – no rich editing. Notetaking is much faster if you don’t have to move between the mouse and  keyboard.
  • Quick note taking – for when you want to copy a URL, or a small snippet of code, or a quote you came across.

The Design

So I sat down and designed my ideal interface. See the complete 9-page design, created using the cool Evolus app. This borrows the utilitarian interface influence from web apps like Gmail and Google Reader, since notetaking is an activity that is a mix of the two.

So do you know of any (preferably free and open source) notetaking application that full-fills above criteria and design? If not, maybe it’s time to make one!

Thoughts on Startup Weekend Bangalore 2012

I attended the Startup Weekend Bangalore(SWB) over the last couple days. I built a prototype of an service, Newsline. Below are my thoughts on the event.

The premise

Startup Weekends (SWs) are globally conducted hackathons where entrepreneurs get together over a weekend, get creative, and build something. Bangalore SW saw over 70 folks come in, and hack away.

The good

The people! The selection of people in the room was brimming with entrepreneur spirit. From tackling pet projects, to solving problems of down-trodden, to ideas tackling niche problems.

And a good collection of applications were created. All of the teams are listed here. Some of my favourites:

  • Reporter source: An app that connects sources and experts with journalists. The idea seems simple enough, one that seems essential to how things work. But the team’s lead, a reporter himself, found no easy way to find experts on subjects, at least not locally. A group of savvy Android developers got together and built an easy to use app, that’s like an sms app, but allows an expert to post his or her expertise, and a reporter to post his needs. And they would be the middleman who’d connect them to each other. They did a demo for me in under 40 seconds, and I *got* it. Good stuff, and I hope they take this beyond the weekend.
  • Farm2Mom: An ambitious project to tackle the logistics of fruit and vegetable transport. Currently the price of food stuffs increases ~3 times in value from the farmer to the consumer, increasing in cost as it passes through 4 middlemen. Worse, the farmer makes the least money in the chain. F2M sought to remove the middlemen, and sought to deliver fresh vegetables directly from the farmer into the corporate parking lot. Consumers could enjoy a lower price, fresher goods, and order from the comfort of their couch. The biggest challenge: figuring out the logistics in the middle. A very hard problem, and if the team decides to take this up after the weekend, I wish time luck and success.
  • Passion Fund: A crowdsourcing project, which allows interested parties to microfund ideas. Think flattr meets kickstarter. If you were on a news website, and read an article about an indie filmmaker making a movie, with PF’s technology, you could do so right from that newspage. They had no demo/technology in place, but the idea is cool.

And of course that brings me to Newsline.

Newsline

My pitch was the creation of timeline on any topic. Think wikipedia meets rss feeds. Or github meets lists. Or just take a look at the prototype.

The prototype currently uses a large RSS feed from a news source (Deccan Herald) over a couple of weeks, and builds timelines out of them dynamically, given a topic. The idea for the full product is that each timeline would be user curated, and anything that could be tagged with a date (news article, blog post, twitter update, youtube video, etc) could be added to the timeline.

Feels good to have built that (and learnt some basic javascript/jquery overnight).

The Criticism

My only criticism of the entire experience was the selection criteria.

The idea as presented by BSW was this: Anyone can pitch an idea, and a vote occurs. The 15 highest voted pitches are selected for implementation, and their pitchers become de-facto CEOs. Other participants are asked to join one of these teams, work on the idea, and finally deliver a product.

What was initially asked for – that developers go and pitch their skills to the selected founders – reversed itself pretty much immediately; it was the founders seeking out developers and trying to recruit them. Oddly reminiscent of that facebook movie: “If you could have built facebook, you would have built facebook”.

The above selection criteria of voting on pitches, in my opinion, is a very bad idea on how to get startups going.

Going in, I expected to pitch ideas (and hear other pitches), find like-minded folks, and build something. What instead happened was my choice was restricted to one of 15, with my own idea being out of bounds. I joined one of the groups, Tourbox -  the winner of BSW, and incidentally, whose UI I helped envision – but immediately found myself pining to build my own thing.

I was prepared to work on Newsline even without the official status. Fortunately, a quick conversation with the BSW guys sorted this out. Adam, the CEO of SW, was present, and I pitched my idea to him, and asked if I would be allowed to be an official team. Adam agreed, as long as I had something built. And the rest, as they say, is a Special Mention for the Best Presented Startup.

This remains my only criticism of how BSW was conducted. Their rationale is this: from their experience, allowing laissez-faire building-of-teams-and-working-on-ideas leads to many single person teams, and many shy participants not being able to find people to collaborate with. This is a valid rationale, as one of SW’s goals is to help bring out the startup gene in people who are currently a cog in a behemoth. My gut however tells me laissez-faire is the way to go, as far as getting the best startup are concerned.

Overall impression

The quality of participants was excellent. Just networking with these folks was worth the price of admission. I would definitely participate in another SW. Props to the organisers on taking care of all needs. No complaints there.

And if you’re wondering if this could be an event for you: Are you a good hacker, looking to find others with complementary skills, to envision and build something cool? Then the answer is an unequivocal yes.

If you’re a non-technical person, looking to find someone to build your idea for you, this is an event for you if you have done your homework, are able to articulate it to others, and have a vision for the product. If you aren’t bring code, bring a heck of a lot of something else.

Another convert to Sublime Text 2

As someone who has used vim for a long time, I’ve been won over by Sublime Text 2.

Some of the things I cared about:

  • Looks good with small fonts, and uses screen estate sparsely – it looks beautiful.
  • It is written with a custom UI toolkit, and has excellent font and colour selections, which allows great customisation of how things look. I know this first hand via Trelby, which also has custom UI controls.
  • It is fast on my netbook, and seems to use no more memory.
  • Multi-platform – no more dropping into cygwin/vim or notepad++ when I work to Windows.
  • Large, growing repository of plugins, that is integrated into the editor. no more fiddling with tarballs and dotfiles.
  • The “Goto Anything” system is awesome, specially when dealing with large files, and you need to hunt down a particular piece of code.
  • Selecting something also highlights all other instances of it.

Here’s a couple of screenshots on a tiny screen (click to view full size):

Plenty of room to edit code.

Presenting Trelby (and it’s history)

Today we announce Trelby. This post documents how it came about, from my perspective.

The Backstory

Around mid-2011, when I decided to make a film, I went around searching for a simple, free, multiplatform screenwriting software. Note the three adjectives.

As an Ubuntu user, I needed something multiplatform. I did not want to switch my OS just to write a screenplay.

I needed a program that would be fast and easy to use. Hey, I like bells and whistles as much as the next person, but a screenwriter also needs to get out of your way and let you write.

And I’m an free software enthusiast. I like the freedom of being able to tinker with my software, of not having to wait for the BIGCORP, INC overlords to deign my feature request worthy of attention.

The Past

So, I went around on a google hunt. And the software that came the closest? Celtx.

Celtx is pretty good. It is multiplatform. It’s free, and it has a lot of bells and whistles.

It’s good enough that I wrote my first film with it.

But celtx was never simple. It had quirks. It did not look right. It provided limited configurablily of the interface. It called itself open source, but the build-sauce was difficult, and you needed to jump through hoops to work on it. It was tied to the company’s services. PDF functionality wasn’t built into the software! It was on a remote server, so you had to have an internet connection to generate a PDF.. I never understood that! And I could not disable the distracting bottom bar, that always showed the latest news update and things.

And it grew slooowww. Longer screenplays would start crawling. The editor would update in jerks, like you were magically typing words, and not letters. Granted I use a netbook, but a screenwriter is just a text editor! It should not require a supercomputer to run properly.

Being a little disappointed with this option, I searched for others.

There were none. Final Draft seemed to be the “standard” but  it cost  a lot. (And I mean a LOT).

The search did lead me to many tiny little gems. The most memorable one was called Pago. A vim script, that modified vim into a screenwriter. I now had fast and multiplatform. But not simple. Pago only had the (limited) intelligence to format the text to screenplay style, but that was it. However, it had one thing over Celtx – simple offline PDF generation. And I had settled on Pago for my then screenwriting needs.

So I forked a project on Github, and created a Pago repository. And while I was on github.. why not search for “screenwriting”. With the thousands of project on there, perhaps there would be some other Pago like tiny solutions.

And so I discovered Blyte. “Chanced” might be a better word. Talk about hitting gold.

Years ago Osku Salerma had entered the fray of  screenwriting software, creating a very well written piece of free, simple, multiplatform software. But it’s revenue stream did not justify the time spent on it, and it was killed. Thankfully, it was made open. Osku created the github repository, and pushed the code in. This code has since been in hibernation.

Blyte had not show up on my extensive google searches. I suspect it hadn’t in Kent Tessman’s searches either, who grew tired of the incumbent playing field as well, and set out to create Fade In Pro, which is multiplatform and simple, but not free!

The Present

In October, I started working on Blyte. It was written in python! I installed the wxpython libraries, and ran the program, wondering how a five year old codebase would’ve aged.

(beat)

It worked! the colors looked odd, the interface seemed a little clunky, and the ancient widget library did not look great on Ubuntu.

But it ran without issues. And it was good. It had full PDF support (including font embedding). It was lightning fast. It was configurable. It had a tiny little fancy features too.

And the big three-adjective hole in free software was filled. I got in touch with Osku, who had not looked at Blyte in years, but enthusiastically agreed to take up maintaining Blyte’s modern fork: Trelby. (it took a while to settle on a name!)

The Future

Trelby is polished Blyte, with many (many!) additional features, a clean uncluttered interface, ported to the current generation libraries.

In my initial discussions with Osku, here’s what he wrote about Blyte’s dormancy:

The main problem, I suppose, is that the intersection of “people who care about screenwriting programs” and “people who can code” is quite small, so the potential pool of developers is tiny.

I can attest to that statement. With all my frantic searching for a good alternative I ran across very few developers. By and large, screenwriters are Joe Consumers.

But to the people in that tiny intersection: Find a feature lacking in Trelby? Why not join the Trelby team, and help improve it?

About a film, and a couple of festivals

My first short film Dilemma has completed post-production and is currently available for preview! If you have followed the making of the film, watched the trailers, get in touch for access to the full film!

I’ll write at more length about the whole process another day. Today I want to unload my thoughts about a couple of festivals that just finished: Bangalore International Film Festival, and Stepping Stone Film Festival.

First of all.. wow! What a treat for local film buffs.

Stepping Stone Film Festival

This was held at Jaaga, a local hackerspace and culture hub. On the weekdays that I attedned, there were anywhere between 2-4 people at the screening. I was the only non-organizer then. I’m not sure about the reason behind this.. Jaaga is quite well recognised cultural hub, and the festival selection was pretty good.

For one, the screening schedule was being updated after the screenings. This perhaps put  people off. I just went in blind, taking everything in as a surprise. And attending on four days was well worth it just for a single short film: Proposals.

Proposals is a short comedy-drama about a couple that starts to fake engagements. As it builds, we delve deeper into the relationship, reach the core character conflict, leading to the beautifully crafted end. The actors have played their parts beautifully – I’d be on the lookout for future works by writer-director David Ehrlich, and the actor Sarah Kohl.

I just wished more people had seen this little gem. This film is not yet available on any of the alternative media download sites, or online video sites. I hope the filmmakers release it widely somewhere online.

Bangalore International Film Festival

A complete opposite to the former in terms of scale. Over 3000 delegates showed up. 4 films a day, 7 days, across 10 multiplexes/theatres. And the selection was fantastic. Jumping in quickly to my favourites:

When We Leave is a film about an muslim woman in Turkey who splits with her son from her abusive husband, and heads home to her family in Germany. Only to find herself constantly pressured by religious and societal types to head back to her master the husband. As her father says, “The hand that slaps, is the hand that sooths”. We cry with her, feel her pain, and question her loyalty to her family. All of this builds to an ending that left not many eyes dry. I distinctly remember the people who broke down a couple rows behind. And the confused looks on the faces of the audience of the next film as we exited the hall. This was my bet to win the Best Film. It ended up grabbing the best direction.

Lucky was the first film I saw at the festival. I walked in a tad bit late, but was immediately hooked. It’s a story based in South Africa about an old Indian woman who starts taking care of an African teen. It explores the themes of racism, poverty in Africa. A bitter sweet ending. This ended up winning the best film. I loved the chance to talk with it’s director Avie Luthra.

A Separation is a Iranian film that follows the course of the divorce of a couple, and their adolescent daughter. The daughter wants to stay with her father, but her mother wants to migrate to a different country and provide better opportunities to her child. Meanwhile, the father is accused of a crime, and as someone who works to set an example of honesty to his daughter, is put into a few dilemmas. This film showed me that the vision of Iran I have in my head was quite a bit off what I saw in the film.

Lebanon is something I loved as a concept film. The story is told completely from inside a tank, and the troubles of the soldiers manning it during the Lebanon war. We see some gruesome scenes from the eyes of a new soldier. The feeling of claustrophobia enhances the mood, leading to an end that surprised me. A beautifully handled film.

Nobel Chor won that best Indian film (or similar) award. I was disappointed with this one. They had such an amazing idea, but the script and execution left a lot to be desired.

The Tree Of Life deserves all of the praise it’s getting. Only thing that was off was the reaction by half of the audience that seemed unimpressed.

Interrogation was a surprise! A kafka-esque plot. If you get a chance, watch this classic.

A few I missed, but really want to watch: Bloody Boys, Air India 182 and Busong.

The other big thing at BIFFES was the film buffs. I had long conversations with other film buffes. Sometimes the knowledge that there are others out there who share your passion for cinema is invigorating. Handed out copies of Dilemma to a few filmmakers, and buffs.

It’s good to know that a film festival has arrived to Bangalore in a BIG way.

A trailer for my upcoming short film

A filmmaking, and interim update

A short film

This won’t be news if you are a contact on facebook. I’ve spent the last few months studying up and honing my skills as a filmmaker. I’ll be shooting my first short film Dilemma this weekend.

It’s been quite a ride!

When I moved on from Nexenta, I had a couple of options into the future. One continued my journey down the road to technological entrepreneurship. The other, filmmaking, required a jump into brand new territory. What made me decide on the latter? The realisation that there wasn’t going to be a better time to give it a shot.

Over the past few years, I have become a fan of cinematic TV. American cable networks, from HBO to FX to AMC, have stepped up the game over the past decade. And back home, the quality of TV and film content can best be classified as appalling. This signals an opportunity. A huge one. With a potential audience of a billion people, there is a market for enterprising individual who can create content with quality on par with global (and specially US cable) standards.

TV as a format has some advantages over feature films. It allows you to tell a story at a pace you choose, developing characters to a depth you want to. ‘The Wire‘ could never have been a movie.

The second big advantage is the reach. The TV set in these billion homes are a shared common window, that looks out onto a stage. And as a story-teller, you can get access to this stage.

I wrote my first script “Dilemma” in June, and shooting it soon. This is an intense drama with a runtime of around 25 minutes. In early September, we conducted auditions, and completed casting by the third week.

Over the course of this educational journey, I’ve gotten in touch with individuals from disparate fields of artistry. I’d like to give a virtual shout-out to Roy Sinai, who is also part of the Dilemma cast, for his help throughout.

That’s the quick update. I’m funding it via the crowd-sourcing site Indiegogo. Head over the Indiegogo page of Dilemma, and help fund the film! The writeup explains the film’s plot and themes, and my efforts in open collaboration, in more detail. Read through, please send me your feedback, if any.

Oh, and I’ll also be writing over at the Dilemma blog through the course of the film’s production and post-production.

Getting OpenChronos building on Ubuntu 11.04

Chronos

The Chronos kit

“.. and how to avoid the pain”

TI was running a deal, and I snagged myself a Chronos ez430. It’s an excellent low power dev. platform, and you can program your watch! How cool is that?

However, my enthusiasm was constantly battling the dismal state of information online on building OpenChronos (a fork of the official Chronos firmware, so you don’t have to use the restrictive and proprietary TI compilers, and stick with good ol’ gcc!).

mspgcc4, not mspgcc

These are two different projects. mspgcc4 is what you use to build OpenChronos. mspgcc will NOT work (unless you port the codebase. Update: done. see below!). mspgcc4 is also deprecated and no longer maintained. There are no official packages on Ubuntu. The source will not build on Ubuntu 11.04. There is no binary tarball (that i could find) anywhere. Long story short.. you really tear your hair trying to figure out a way to get OpenChronos to build.

I reached out to a bunch of folks who have forked OpenChronos on github,to see if any of them are on Ubuntu, and if they could share their compiler set. rdmiller3 responded, and I now have the pleasure of sharing this binary build widely.

Download msp430-gcc-4.4.5_gdb_7.2.tar.bz2 [mirror] for Ubuntu 11.04 -x86.

Building OpenChronos

It’s as simply as grabing the copy from github, make config, and make!

I have some ideas on how I want to change the firmware. I’ll hopefully get time to work on it.

Centralizing the Information

I’ve been considering throwing up a wiki to organize all the information there is on the platform, in one accessible place. If you are a Chronos developer what do you think?

[update] : dobfek successfully got mspgcc4 to build on Ubuntu 11.04, and sent across these instructions.

[update 2] : not 24 hours have passed, and i found out work was afoot to port to mspgcc. I’ve merged these changes into my github fork. Thanks to Angelo Arrifano. You can install the mspgcc package from this repository on Ubuntu 11.04.

[update 3] : All of us OpenChronos devs are rallying around at the google group. It’s the place to get answers or collaborate on Chronos development.The current effort is to make the code structure more modular, so you don’t have to edit a bunch of files to get your app in there. It’s shaping up well!

SSHplus: Even better sshmenu compatible appindicator

SSHplus Appindicator

SSHplus Appindicator

My previous little utility – sshlist – got quite some attention, and helped out a lot of folks who were missing sshmenu on Unity. You can read more about the intentions behind this utility in this entry. Benjamin Heil further modified it giving it a simple parsable configuration format, and supporting launching applications.

SSHplus builds on both of the above, adding one the most requested features : supporting sshmenu configuration. SSHplus adds simple identification of sshmenu configuration – it grabs the title, and ssh parameters and sets them up in the menu (as shown in screenshot). It does not yet recognize  other items like profile etc. If you need an entry with very specific formatting, you can simply add the right arguments in sshplus configuration.

Features

  • Launch SSH, rdesktop, etc.
  • Compatible with sshmenu configuration file
  • Launch any application – for ex. VLC hangs a lot on me, and I need a simple way to kill it (screenshot)
  • Supports nested folders (but not yet for sshmenu nested entries – coming soon)

Setting up SSHplus

  • Download the latest sshplus.py  file from the github repo.
  • Copy file  to /usr/local/bin
  • Edit file .sshplus in home directory using simple configuration (explained below).
  • Launch sshlist.py
  • Or better yet, add it to gnome startup programs list so it’s run on login.

Example Configuration  ~/.sshplus

# Application launchers in a folder
folder:Applications
Show top|gnome-terminal|-x top
Kill VLC|pkill| -9 vlc

#back to main folder
folder:
#sep adds a separator
sep

# label: adds labels to the menu
label:SSH connections

SSH server1|gnome-terminal|-x ssh root@google.com
SSH server2|gnome-terminal|-x ssh -p 456 server2
Find the source|gnome-terminal|-x ssh neo@theone.com

sep

# Use rdesktop to connect to Windows Servers
label:RDesktop connections
Win-Server 1|rdesktop|-T “Win-Server 1″ 1.2.3.4
Win-Server 3 (with many arguments)|rdesktop|-g 1320×680 -T “Win-Server 3″ -x l -P -r sound:local 1.2.3.6

sep
label:Putty Connections

# PuTTY
PuTTY-Session 1|putty|-load SavedSession1
PuTTY-Session 2|putty|-load SavedSession2

#If present SSHmenu connections will be automatically added

Thanks to the users and commenters on sshlist who provided feedback, and to Benjamin Heil and Fabio for their modifications. Feel free to fork the project on github.

sshlist – an appindicator/unity replacement for sshmenu

sshlist in action

sshlist in action

[Note: SSHlist has been deprecated,in favor of SSHplus. SSHlist will no longer be developed, but is still made available]

Since moving to Ubuntu Natty, I’ve missed the sshmenu applet a lot.

So I spent an hour to writeup a functionally equivalent appindicator menu. And so sshlist was born.

Using sshlist is simple. From the instructions:

  • Copy file sshlist.py (this file) to /usr/local/bin
  • Edit file .sshlist in home directory to add ssh host (one per line)
  • You can if you wish add additional ssh options. The line is appended to the ssh command
  • Launch sshlist.py
  • Or better yet, add it to gnome startup programs list so it’s run on login.

Of course, much of that could be automated, patched and/or packaged. For now simply head to the repository, click on “sshlist.py” and grab the raw file, and follow the above instructions.

Patches welcome.

Update: Benjamin Heil extended sshlish for simplestarter, which allows launch of multiple applications with various arguments. It might suit your needs.

Update 2: SSHplus is better! This version will no longer be maintained.