Delegate Carefully

While running a business or teams, we delegate a lot of responsibilities to individuals in our company. Over delegation can be counter productive and stressful if not managed carefully.

While management gurus suggest to delegate almost everything, I differ and don’t recommend that to technical entrepreneurs/leaders. We need to be in shape (technology, hands on skills) by doing tech stuff while we have to wear another hats (management, operations, etc.)

I delegate enough to empower my team to do things better than I can. I never delegate everything; I try to be an active participant instead of one on sidelines reading only mails/reports.

What I am up to?

This is how my 2014 passed, or what I am up to:

  • riding my motorcycle a lot
  • hacking electronics and IoT using OSHW
  • dockerising things (apps, services)
  • playing with Apache Mesos, and ecosystem around it
  • hacking projects using Javascript (framework, toolchain, node.js, ES6 way of doing things) and web-standards (HTML5, CSS3, components, etc)
  • got Google’s Widevine certification (as required in one of projects). Personally, I like non DRM’d content :-)
  • built a Chromecast app using dash.js, modular Widevine DRM with node.js based proxy service for licensing, and Java for content encryption and packaging
  • been reading a lot of stuff through hackernews
  • helped and built stuff: QRizq, Diziana, 99doodles, IndieReign and other projects
  • not having meetings (waste of time)
  • not interviewing candidates who are not worth anyone’s time. [should do another post: sad and bad state of technical education in India]
  • bunch of other things I can’t recall

Did you notice that I have been mostly playing (or having fun)? On other side of it, I have also been thinking what’s nex; I think, I have figured that out.

At present, I am still involved with couple of projects mentioned above. I have also taken up a couple of interesting consulting assignments around technologies mentioned above along-with my old love (flash/actionscript).

MOOCs: Massive Open Online Courses

MOOC is known to everyone these days. I am enrolled in some of the courses on Coursera, Edx, Udacity, Stanford, and others most of the time. I sometimes look at Khan Academy’s lessons/courses as well. We are living in a time which has made learning things so much easier compared to what we have a decade back or earlier.

Anyway this post of mine is not about reiterating facts and benefits of MOOCs. I rather want to talk about an idea which I found in my notes written many years back.

Yesterday, I found an old note (written during Feb/Mar 2006) on my Yahoo! Notepad. I think, I wanted to present this idea in an upcoming BarCamp Bangalore. I couldn’t give my talk because I fell sick on the day BarCamp happened.

Following is what I found:

While I was sleeping, I dreamt about my school days and I woke up suddenly in the middle of night. I started thinking, how cool those days were.

Since I was also thinking about some idea for BarCamp before sleeping, something struck my mind…
How podcasting/videocasting can be used in education (school, colleges, training institutes etc) combined with the philosophy of open-source, knowledge-sharing.

For example, in a school a teacher is teaching Maths/Physics…if the entire session is recorded (audio/video) and uploaded to some site (like Yahoo! Podcasts, Odeo, YouTube etc)…Not only students from the same class, who were present or absent but also students from other schools, students from remote villages/small-towns with decent internet connectivity can benefit…

This requires, schools to be more open and willing to share the knowledge and adopt the technology in this fashion. Technically, it is quite feasible, my prototype requires following:-

* Broadband connection
* Account on YouTube!, Y! Podcast or on Odeo account
* An high-res webcam and a microphone..
* A web application written in Macromedia Flash/Flash Media server to do the entire recording, locally…

What I expect that someone comes with a Web 2.0 app like Odeo, where you can do publishing with their API in real-time as well as should be able to upload pre-recorded content. At present, Odeo, Y! Podcast etc lack publishing API…which is I think is important…

I like the idea of Odeo channels, if it’s little more improved it can be like a TV channel…

I think, such things have great importance and we should really start thinking that how can we improve society, education and system with the best use of technology….

HTML5 and CSS3 Resources

It is an age of information overload, it is very hard to keep myself focused while searching and learning about anything. I am often lost in jungle of thousands of links/pages talking about same thing.

Following is a list, which I refer when I am reading about HTML5/CSS3:

Invalidating Preferences Cache in Mavericks (OS X 10.9.x)

I recently set up a fresh install of Mavericks (OS X 10.9), and copied over some of preferences (plist) files from old installation to new box ( (~/Library/Preferences).

I noticed, applications failed to use (manually copied) preferences files, instead kept throwing errors (like one shown below):

cfprefsd[xxxx]: CFPreferences: error renaming file /Users/username/Library/Preferences/com.codeux.irc.textual.plist.bPsEnTV to /Users/username/Library/Preferences/com.codeux.irc.textual.plist

Unlike previous versions of OS X, Mavericks (OS X 10.9) caches preferences files. That means, if we edit or overwrite a preferences (plist) file, we need to invalidate the cache so that applications can see the changes, and start using this updated preferences file.

I didn’t want to set up everything from scratch, in this case all IRC servers, nodes and chatrooms. It is not fun editing binary plist files, even with the help of XCode :-)

To fix this problem, we need to run this from terminal:

defaults read ~/Library/Preferences/com.codeux.irc.textual

We also need to make sure preferences file has correct permission. In my case, permissions were messed up because I copied file from different disk (installation).

Permission should look like following (i.e. owner can at least read/write; umask 077):

-rw-------

I would suggest restarting the respective application, if it is already running.

Amazon Cloudfront – Video Streaming (rtmp) Issue?

Are you using Amazon Cloudfront for public/private video streaming over rtmp? Having trouble to figure out why some of your videos fail to stream (over rtmp) and throw ‘Stream not found’  flash/actionscript client side errors?

I have figured out:

  • Videos with invalid chapter markers would not stream over rtmp (Adobe Flash Media Server) or via Cloudfront.
  • Adobe’s FLVCheck utility suggests our videos have invalid chapter markers. I am not sure, if chapter markers in our videos are invalid or Adobe Media Server expect those to be in different format.
  • Same set of videos play fine with Quicktime/VLC player, Adobe Flash Player (over http progressive download) and html5 player (chrome or others which support H.264 videos)

I am disappointed with the fact – Adobe Media Server ceases to play (core feature) a video because of (optional feature?) chapter marker(s) which can be ignored if it is corrupt or invalid.

Thanks to AWS engineers who confirmed the case, and provided more details.

Update: Thanks to Justin Riley for sharing a solution (in comments below). He suggested to use ‘-map_chapters -1′ to get rid of this issue. It works for me.

We’re Hiring Developers!

We have been working on bunch of products (indiereign.com, and others) for sometime. To take these products to next level, quickly and elegantly, we have recently started expanding our team.

We are starting our new development centre in Noida. We want to connect, talk to and hire smart and passionate developers (hackers) who love to work on products in a small company or a startup (like ours).

We are looking for:

  • bright and smart guys
  • one who can fit in our (small team/company/startup) culture, and becomes a great team player
  • can learn, adapt and use cutting/bleeding edge technologies
  • can inspire and mentor others
  • importantly, loves building cool, useful and scalable products/services

Experience, we would like to see:

  • Application Developer
    • Proficiency with web standards and frontend (HTML5, CSS3, JavaScript, etc.) development
    • proficiency with one ore more languages (Python, Ruby, PHP, Scala, etc.)
    • proficiency with analytical approach to problem solving
    • has worked or very interested to work on other frameworks (Django, Rails, Symfony, etc.)
  • Mobile Application Developer (iOS or Android or both) – apps/games development;

Details description can be found at http://jobs.hasgeek.com/at/allies.co.in

We are not rigid about number of years (of experience). We think experience comes out of depth, challenges one has taken, and how many great problems one has solved over the time. If someone has all that, we are happy to talk to him/her.

If you are interested or know someone who is good fit; I would appreciate, if you can connect with me (aqabiz at allies.co.in) and share details.

Installing NumPy and SciPy on Mac OSX 10.8 (Mountain Lion)

I am playing with ExpEyes, which is awesome tool for anyone who wants to learn electronics (and physics).

ExpEyes comes with software (written in python) for GNU/Linux and Windows. I intend to run it on Mac OSX, because it can (provided all dependencies are met).

It is generally easy to install python packages on OSX using easy_install or pip, however, installing NumPy and SciPy turned out to be pain on OSX (10.8.2, latest version the time of posting).

In my case, I am using python binary installed via homebrew, so I can’t take advantage of numpy (which comes installed with mountain-lion).

I have XCode 6 installed, which comes with gcc-4.2.1 (llvm build). I figured out, I can build numpy and scipy from source.

Following is what I did to build numpy and scipy. SciPy requires gfortran, so that has to be installed (I used homebrew to do that):

$ git clone https://github.com/numpy/numpy.git
$ git clone https://github.com/scipy/scipy.git
$ cd numpy
$ python setup.py build && python setup.py install
$ brew install gfortran
$ cd ../scipy
$ python setup.py build && python setup.py install

BTW! In case, you are wondering, why didn’t I use Scipy Superpack script, which indeed makes job easier?

I didn’t, because I want to install gnu/unix packages using homebrew, and I already have git and other things. Super Spicypack downloads (gfortran, etc.), builds and installs packages directly to system, making it harder to remove those later? Homebrew makes job easier.

IndieReign – Discover a world of independent film and have fun doing it

My team and I have been working on bunch of products/services for last 3-4 years.


IndieReign is the one, we have been mostly focused on, and took care entire engineering and technical architecture.

It is a platform for indie filmmakers to promote, distribute and monetize content. It is actually more than that.

IndieReign runs on open-source software stack (for everything including video transcoding) with exception of Adobe Flash Player (used for video playback), and Amazon’s cloud.

Please share your feedback.

Update: Whereabouts

Just in case, you still follow this blog and wondering about me? I thought, it would be fair to leave some details on that.

  • In Kanpur (my hometown)
  • spending most of time on (or around) IndieReign,
  • learning electronics and trying to build something,
  • yet to grow to team, because it is hard to find and get right ones :-)
  • still does ActionScript, mostly for fun stuff,
  • might start blogging again; got so much to talk about, and share.

Mac OSX (10.8) Mountain Lion: Fixing Apache, PHP, Subversion, User Sites, Virtual Hosts Directories

While Mountain Lion (OSX 10.8) has brought many enhancements and fixes (mostly performance), it has also caused frustration to old users.

You might have noticed following issues in Mountain Lion:

  1. Web Sharing Preferences Panel has been removed, i.e. you need to launch apache manually or write some launch-agent script or hack to bring web-sharing preferences panel back
  2. User Sites (per-user web directories) is disabled, i.e. http://localhost/~username doesn’t work by default, and you need to modify apache config file to enable it
  3. PHP extension for Apache is disabled by default i.e. you need to enable it by modified apache config (httpd.conf)
  4. Subversion is not installed by default, either you can install using homebrew or by install XCode command line tools

You can fix these issues (1-4) by following these two links:

Whenever I upgrade to newer version of OSX, I end up with broken development-setup i.e. custom permissions on directories are messed up, configuration files are overwritten/removed, etc.

I think, I have found a way to keep default directory permissions, so future upgrades don’t break things.

My development setup requires my virtual hosts to use directories within my home-directory (and outside of ~/Sites or /Library/WebServer/Documents directories).

I am using following technique to setup my virtual-hosts:

  • Enable User Sites  (i.e. fix #2 problem above)
  • Create symbolic-links(symlinks) of your project folder(s) inside ~/Sites directory
  • Enable FollowSymLinks and SymLinksIfOwnerMatch options in virtual-host configuration.

In my case, I have a project inside ~/projects/myproject . I create a symlink of this directory inside ~/Sites, like this using Terminal (command-prompt)

$ ln -s ~/projects/myproject ~/Sites/myproject

I have following virtual-host configuration for this project:

<VirtualHost *:80>
 DocumentRoot "/Users/myusername/Sites/myproject/trunk/web"
 ServerName  myproject
 ServerAdmin myusername@localhost
 Options Indexes MultiViews Includes +FollowSymlinks +SymLinksIfOwnerMatch
 CustomLog "/private/var/log/apache2/myproject_access.log" common
 ErrorLog "/private/var/log/apache2/myproject_error.log"
</VirtualHost>

I use it on my development machine (i.e. my laptop), so I don’t really bother about security at Apache level, and I take care of security at firewall/other levels.

If you are going to use above technique/configuration, please understand everything (by reading documentation) before you use it.

This set up works for me and solves some problems for me – I don’t have to change default directory permissions, and I don’t have to keep my projects within ~/Sites or /Library/WebServer/Documents directory.

RIP, Kenneth Gonsalves “KG” (1953 — 2012)

Kenneth Gonsalves(Image Courtesy: Linux Bangalore (foss.in))

Kenneth Gonsalves, a champion in Indian (NRC)FOSS, Python and Django community passed away on August 3, 2012. Kenneth’s presence would be hugely missed in the community.

In 2008, Tarun Dua introduced me to Kenneth. I interacted with him at various occasions about NRCFOSS and general stuff. I was very inspired to see his contributions, specially some of his open-source projects.

While checking out NRCFOSS website today, I came to know about this sad news.

May his soul rest in peace.

RIP Dennis Ritchie (DMR), 1941 — 2011

Dennis Ritchie - Creator of C programming-language, and co-inventor of UNIX(Image Courtesy: WikiMedia)

Dennis Ritchie passed away couple of days back (on October 8, 2011).

As Tim Bray has written summerised, this world would have been different, if Dennis Ritchie had not created ‘C’ and helped inventing UNIX.

I don’t know, if I would be what I am today without ‘C’ programming-language — the first programming language I learnt, used to solve problems, and wrote programs.

These days, I don’t write pure’C’ code except when I am debugging something or in need to write some utility executables. But UNIX (in some-form) is part of my day to day life.

Thanks to you, Dennis Ritchie Sir. May your soul rest in peace.

I regret for not thanking you when you were alive. Why we don’t do that when people are alive?

Steve Jobs, 1955 – 2011


Image Courtesy: WikiMedia

When I woke up earlier today, my wife told me about Steve Jobs‘ death (on October 5, 2011). I was speechless and really didn’t know what just happened. I am still thinking about Steve Jobs, and whatever he has said (quotes) I remember.

Steve Jobs’ influence and contribution is not limited to Apple Computers and competitors, it goes beyond — design, technology, product development and many other communities/disciplines.

He showed a different way to design and build products.

He has inspired me everyday of my life since I came to know him, probably some years before I started using Apple computers. I have repeatadly read and watched him talking/saying/presenting.

I have told his story to many folks over the years, and every-time I was motivated (by just talking about him).

Steve Jobs is an idea. He would always be with us.