Professional Responsibility and Ethics

I would have spent hundreds of hours talking, about professional responsibility, craftsmanship and ethics, to my team. What you would read below, is a summarised version of the same.

If I sign up for something (a job, a project or something else), I am going to do it with responsibility. If I develop disliking for job/project at any point of time, I am going to:

  • reflect (validate, find causes/solutions)
  • communicate promptly and proactively all the times
  • challenge myself to keep myself motivated
  • try changing things around for better
  • find responsible exit strategy, if there is no hope

We live in free country, there is no reason to do wrong, like:

  • being dishonest with myself and others
  • doing anything (moonlighting, sharing confidential information, etc.)
  • being irresponsible towards my work, hence often repeat mistakes which cause loss to my employer/customer
  • being irresponsible towards, in general

Let me give some examples of wrong-doings, based on my experiences:

  • I lie (wrong reasons) while quitting the job
  • I do something, which I agreed not to do, for the sake of extra money
  • I don't spend enough time figuring out solutions of problem, instead I start running away from problems.
  • I don't communicate properly
  • I assume and judge based on rumours/gossips/assumptions
  • I quit without giving any notice and expect my employer to give me all certificates and positive reference
  • I request to be relieved from my duties without serving a required notice period. I promise buy out (i.e. pay money back to company/customer), which I never do
  • I take some days off from work but I never return back to work; I don't communicate and keep my employer posted on status
  • Above all, my actions are irresponsible, unprofessional and unethical

We all make mistakes. If I made one (wrong-doing) intentionally, it's not good. If I made one unintentionally, later realized it as a mistake, however, I keep repeating, what could be worse than this?

No one is perfect in this world, neither is the company/customer I work with nor I am. However, we can work together despite all these imperfections without doing anything wrong (ethically, professionally). There is always a right option, thankfully.

Good communication, at all the times, always help us doing things right and avoiding wrong ones.

I am not sure, if I could express what I want to say; I hope you can understand what I mean.

Please leave your comment and feel free to correct me, if I am wrong somewhere. I am always open to learn about different perspectives and improve myself.

Adobe MAX 2010

Adobe MAX 2010 is indeed one of the best MAX events, I have noticed. I am probably the last one to write anything about this event, but couldn’t resist; Better late than never.

I am excited about upcoming Flash Player, which would have many things along with 3D API (GPU supported).

Adobe, it’s partners (device companies) and developer-community (pre-release, public) have worked hard to make sure Adobe AIR works smoothly across different devices (pc, mobile, tablet and even a TV).

Everyone has been talking about great stuff in HTML5 and CSS3 for last couple of years; It looks like, Adobe has also been doing a lot of work to bring tools and productivity for HTML5/CSS3 developers.

I am still checking out, what has happened during last two days and what is happening right this moment. However, I found following links very useful. Like me, if you missed being there (at MAX 2010), check out:

BTW! Don’t forget to watch the keynotes, I just finished watching Day-1 keynote (by Kevin Lynch), it’s awesome.

I consider myself as an optimist, I hope, I am going to be there next year :-)

Entrepreneurship session at IIT Kanpur

Entrepreneurship Cell (E-Cell) team at IIT Kanpur invited me to talk about “idea to business-plan” to some students (budding entrepreneurs). I ended up speaking about different things, hopefully I covered what they were looking for.

I mostly iterated what successful leaders, entrepreneurs and businessman have shared over the years.

A very brief and high level outline of my talk:

  • started session with Derek Sivers‘ Ted talk “How to start a movement
    • an entrepreneur is seen as half-naked guy who is dancing alone, different from crowd, in Indian society.
    • it takes courage to start something while you have choice to work for the best companies
    • there would be skeptics but don’t worry about that.
  • what it takes to be an entrepreneur?
    • get going and get your feet wet, enjoy challenges, trust your instincts, get a good mentor, learn from experiences, learn from others)
    • be prepared for uncertainty, rapid growth, quick and drastic changes, limited resources and resource conservation
    • respect time, short cycles and more results
  • some stories
  • YouTube: first in solving problem but very late in figuring out business-model
  • Flickr: their idea and usefulness
  • Bulkr: how Prakaz came up with a useful product, while he is/was in job. Build something that you would use
  • Directi: about two brothers who have built a great company with little or no funding
  • Allies: why we got started, how we do some things, some pains and gains
  • some books
    • Blink: instinct and intuition. what customers do? how they do? avoiding asking what they want because human preferences are unstable
    • The Tipping Point: why certain ideas tip
    • ReWork: a new way of thinking business
    • Freemium: business model. why freemium works? examples: google-apps, e-books, etc.
  • some of my experiences
    • funding: bootstrap on your own, if you can. or take as less as you can from outside. retain control and ownership. go to someone who can not only give you money but also be your mentor
    • hiring: difficult to attract smart folks. share your ideas/vision. give equity instead of high salaries
    • operations: equally important. be ready to take care of things so that your team can execute your ideas
    • challenges: getting ideas executed, getting customers, getting a good team, getting a good accountant, etc.
    • sales/marketing: various market-places, complicated tender process, social-media, word-of-mouth, freemium
    • retaining customers: commitment, think of them before your own personal gains, good process, good support
  • importance of connections
    • keep in touch with everyone you know or would know
    • go and enjoy parties (twitter, linkedin, facebook)
    • follow gurus and interact with them over social-networks (twitter, facebook, linkedin)
    • go out, help others and get helped

After session, couple of teams discussed their ideas with me and wanted my thoughts. I shared what I knew, hope I could be of some help.

Thanks to entire IITK E-Cell team for inviting and giving me an opportunity to share some of things I know. It feels great to give back.

I already know, I need to get better speaking on stage. With every opportunity and effort, I am getting better. Hopefully, I can engage audience and be entertaining in coming years.

I would hopefully elaborate some these items, when I feel like. I am posted these as a record/note to myself, before I forget what I talked about :-)

Ideas: FlashDevelop on OSX and GNU/Linux

FlashDevelop is an open-source IDE for Flash Platform development (ActionScript, MXML, HAXE, etc.) on Windows platform. I have extensively used it in past, and still, painfully, use it via windows virtual-machine on OSX host.

Couple of years back, I looked at FlashDevelop code to figure out, if we can port it for other operating-systems, such as Mac OSX and GNU/Linux.

I posted on Flash Develop forum about my experiments:

I have been trying to run FlashDevelop under OSX. In last couple of years, whenever I got sometime, I tried these:-

  1. Run FlashDeveloper with DotGNU: FlashDevelop was running but due to a lot of native (Win32) API calls, lots of components were failing (screenshot: http://pic.im/5Xk)
  2. Run Flash Developer with Mono: I tried to compile FlashDevelop using MonoDevelop and run using Mono for OSX. Most of the problems is one component/library i.e. DockPanelSuite (http://sourceforge.net/projects/dockpanelsuite/), an opensource code that uses a lot of PInvoke calls (Win32 API).

I am really excited about the possibilities, if we can port this one library we can get very closer to run FlashDevelop on OSX using Mono.

Note: pics.im seems to be dead, so I have uploaded new screen-shots
Flash Develop on OSX - ScreenshotFlash Develop on OSX

Some Ideas:

MonoDevelop is good enough and works well on OSX, I guess also GNU/Linux. However, I am yet to look at licensing and possibilities of forking the project (MonoDevelop)?

BTW! I have been lazy to write about such experiments on the blog, but while commenting on Jesse Warden’s post, I thought, it makes sense to post it here, so it lives.

Please let me know, if you have any ideas about making this happen? I would be happy to collaborate, contribute and donate in whatever capacity I can.

Adobe Flash Platform Summit 2010

One more day to go for Adobe Flash Platform Summit 2010, I am very excited about this event because of so many good sessions and my team has been busy building some cool stuff using web-standards and lamp-stack.

If you are going to be around, let’s catch up.

List of Indian Online Shopping Websites (Stores)

Everyday I come to know about a new online shopping website (store) from/for India. I have been using some sites from following list:

  • Infibeam

    book store, electronic, toys, computers, lcd monitors (benq, acer), mobile phones, music, movies and gifts.

  • FlipKart

    book store, mobile phones, music, movies and gift vouchers.

  • ITDepot

    computers, laptops, electronic, accessories, computer hardware, laptop bags, etc. It also hosts stores for Belkin, Logitech, etc.

  • Gadgets.in

    computer, electronic, laptop, wires, connectors, cables, laptop accessories, etc.

  • Pringoo

    t-shirts, mugs, stickers, custom printing and corporate gifts.

  • InkFruit

    t-shirts and mugs.

  • 20North

    imported consumer items. This site would calculate custom duty and shipping cost. If you want convenience of getting things (electronic, computer and other things) from USA and don't want to deal with custom and shipping.

  • Rediff

    One of the oldest online stores in India, it hosts stores for different brands. You can pretty much get most of things (books, electronics, movies, computer hardware and accessories) here.

I would keep updating this post to include more stores, as and when I use or get to know any. BTW! Infibeam accepts Paypal, so that's one of the reasons, it's at top of my list .

Disclaimer: I have only used Infibeam, FlipKart, Pringoo, Gadgets.in and Rediff (long time back). Please understand things before you use any of these sites and please don't blame me, if something goes wrong :-)

Eclipse Plugins

Some Eclipse plugins, I use (with Eclipse Classic SDK), are:

There are bunch of plugins for network monitoring and debugging, don’t remember their names. BTW! I have got two separate installations (32bit Carbon and 64bit Cocoa) of Eclipse. I hope, Adobe would port Flex/Flash Builder to work with 64bit and Cocoa.

Beautiful Plogger

Plogger is an open-source photo gallery system built using PHP. It successfully maintains the simplicity while providing so many features, it’s just beautiful piece of work.

Withing five minutes, I got Plogger running on my machine. In another hour, I created a new theme with different visualization (CoverFlow) to display thumbnails.

Having worked many different photo gallery management software/scripts, I find, Plogger is the most beautiful. I might be ignorant about other better systems, please share if you know.

I bet, web designers would find it very handy because they can easily customize and deliver solutions without dealing with complex programming required behind file upload/management.

Where is Adobe Store for India?

Adobe is yet to launch online store for India. More than four years back, I wrote about this issue..

I have changed my work-flow to introduce more and more open-source tools. However, sometimes I have to use Adobe Flash Authoring tool and Flash Builder for some projects.

I hope, Adobe would soon figure out a way to launch an online store in India. I am yet to understand what has been holding Adobe from doing that, I am assuming something with taxes or government policies, if not Adobe’s intentions?

BTW! Some face problems in USA also, check out what Tariq has gone through today, while buying something from Adobe Store.

Flex 4 In Action – Early Access Available

Last year, I posted about Flex 3 In Action, a book by Tariq Ahmed,  Jon Hirschi and Faisal Abid. Not many people know, I was also among authors but couldn’t contribute beyond one chapter due to personal priorities, hence opted out. Thanks to Tariq for trusting me and providing an opportunity.

Tariq has again teamed up with different some smart guys (Dan Orlando, John C. Bland II, and Joel Hooks) this time, and all of them are working on Flex 4 In Action.

All authors have a lot of experience and are great at what they do. I always prefer to read a book written by someone who has done the stuff, instead of someone who has just theoretical knowledge.

I am yet to start reading draft version of the book, however, I am sure this book is going to be one of the best. To believe me, you need to check out authors’ profiles/websites and you would realize it yourself.

Sign up with Manning’s early access program (MEAP) and start reading chapters (completed as well as drafts).

Reliable and Fast VPS Hosting in India

Web Hosting in India (with VSNL, Tata, etc) has not been affordable for most of us (startups, bloggers, small-medium-enterprises).  Hence, for years, we have been hosting our data and application on shared and dedicated servers outside of India for different reasons (cost, availability, uptime, etc), but at the cost of higher latency (slow speed/performance).

Fortunately, E2E Networks, a startup by Tarun Dua provides very reliable, fast and less expensive hosting (VPS and Dedicated Servers) services in India. All your data/applications is hosted securely in India and you get unbelievable low latency.

Check out some of the sites, which are running on E2ENetworks:

Check out various plans/packages and you would be impressed with the pricing, it’s really affordable.

Disclaimer: Tarun Dua is a friend of mine and ex-colleague (Mixercast and Yahoo!). He is known for his knowledge and experience in data-centre, bandwidth, performance, scalability and servers. Whatever, I have written above is completely my own view based on my experience with E2E Networks. My company is planning to use E2E Networks’ services for our Indian customers.

Going Paperless – Document Management System

I have been looking document management system (DMS) so that we can go paperless, as much as we can. We have to use paper, considering our goverment and various other complainces require us to maintain document in paper form. I am currently evaluating following DMS:

These are opensource and stable products. However, it takes little effort to install and customize both of these for following reasons:-

  • both of these are based on java
  • both of these are made for large enterprises?

Once I implement one of these successfully, I would post details. Meanwhile, we have done following to reduce paper usage:

  • HRM system – employees' and their employment data is maintained and managed using HRM system (OrangeHRM – another opensource product). We scan paper documents and put it on HRM, so next time we don't have to make copies of original paper and carry around. One can directly see scanned documents.
  • Google Docs – we have started it, a lot lately, to maintain and share documents (which are not very sensitive – I am little skeptical about data on cloud)
  • MediaWiki – Our intranet/wiki is based on wiki, we use it extensively. Everyone can see and contribute, so no need to carry printed paper around.

With these small changes, we are already seeing benefits. With DMS, I can imagine life would be lot easier when it comes to maintaing, reviewing and sharing the documents. Please share your experiences, perhaps there is a better system I can implement easily.

Mac OSX: Leopard to Snow Leopard Upgrade

Snow Leopard Installer DVD was delivered in our office on Saturday and I couldn’t wait to upgrade to Snow Leopard (10.6.x). I could have upgraded earlier, if Apple had enough stores and better reseller network in India.

Anyway, upgrade was smoother  compared with Tiger(10.4.x) to Leopard (10.5.x) upgrade. Installer UI has around 4-5 steps and none of steps mention “upgrade” word. Installer is smart enough to detect existing installations, figure out which printer drivers to keep or install. However, it chooses all languages (translation) to install even when you didn’t have those in Leopard.

Within fourty mintues, upgrade was completed and I was back in action.

However, In my case, I have to spend some more time to setup/fix things which were broken, such as:-

  1. Reinstalled MacPort using installer for snow-leopard and upgraded some of packages (libiconv, jpeg, libpng, libmycrypt, openssl, gettext, freetype, openssl, curl) and their dependencies for 64bit compatibilities (+universal, +variants)
  2. Compiled Apache, MySQL and PHP for 64 bit
  3. Reinstalled Remote Desktop Connection using latest installer to fix crash issue on Snow Leopard

If you don’t want to use MacPorts, you can download source of these libraries separately, compile and install. These would be installed in /usr/local unless you change the prefix.

Installing 64 bit version of Apache, MySQL and PHP took around two-three hours because of some issues related to libiconv.2.dylib. Apache would compile but fail to run, reporting incorrect version of libiconv. I downloaded libiconv source, compiled and installed it in /usr/lib (instead of /usr/local/lib). Apache started working but  vim, make, other unix programs (chmod, etc) failed to run using latest libiconv.2.dylib.

I tweaked the setting in /usr/sbin/envvars to use following:-

DYLD_LIBRARY_PATH="/usr/lib:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH
export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib:/opt/local/lib:/sw/lib

Basically, added a fallback path so if library is not found in /usr/lib, it would look into other directors, as specified.  After doing this, Apache (64bit) and vim, make, chmod, etc started working.

MySQL compilation was straight forward with following command, thanks to this link, I just added CFLAGS=”-arch x86_64″  while compiling to make sure mysql is compiled for 64 bit. Moved data directory back to new mysql installation directory.

Compiling php 5.2.13 resulted into some errors related to iconv, hash and gd. After spending sometime, I decided to compile without these extensions with following commands:

MACOSX_DEPLOYMENT_TARGET=10.6
CFLAGS="-arch x86_64 -g -Os -pipe -no-cpp-precomp"
CCFLAGS="-arch x86_64 -g -Os -pipe"
CXXFLAGS="-arch x86_64 -g -Os -pipe"
LDFLAGS="-arch x86_64 -bind_at_load"
export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET
./configure --prefix=/usr/local/php5 --exec-prefix=/usr/local/php5 --disable-dependency-tracking --sysconfdir=/private/etc --with-apxs2=/usr/sbin/apxs --enable-cli --with-config-file-path=/etc --with-libxml-dir=/usr --with-openssl=/usr --with-kerberos=/usr --with-zlib=/usr --enable-bcmath --with-bz2=/usr --enable-calendar --with-curl=/usr --enable-exif --enable-ftp --without-gd --with-jpeg-dir=/opt/local/lib --with-png-dir=/usr/local/lib --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6 --with-ldap=/usr --with-ldap-sasl=/usr --enable-mbstring --enable-mbregex --with-mysql=mysqlnd --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-iodbc=/usr --enable-shmop --with-snmp=/usr --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --without-xmlrpc --without-iconv --with-xsl=/usr

#if everything goes well
make

#if everything goes above, install php5 in /usr/local/php5
sudo make install

I checked (php -m) some extensions (xdebug, etc) were not loading, so I updated those individually, specially iconv, xmlrpc and gd. Compiling an extension is generally four step process. For example, if you want to compile iconv, you can do the following:

$ cd /php-source/ext/iconv
$ phpize
$ ./configure --with-iconv=/usr
$ make
$ sudo make install

It all worked fine, apache was loading php fine and all my websites and applications work fine.

Cities and Ambition – My Experience

Paul Graham wrote a nice essay titled “Cities and Ambition”. When I read it, I had already returned to Kanpur (my hometown), I took the essay in slightly different manner i.e. I challenged it and motivated myself by thinking, I can do great stuff from this city.

Just after one year or little more, I am in agreement with that essay. I realize, how a good city (and people there) matter in whatever you do.

At work, I ended spending most of time dealing with personnel issues and trying to mentor about obvious things (in development and programming).

Outside of work, I don’t feel like going out anywhere, not even walking on streets. I just don’t like the attitude, psyche and habits of people here. I have, slowly, stopped doing all activities – photography, bike-rides, blogging, participation-in-events, exercising, etc. I am trying to understand the reason, I imagine it could be because of lack of motivation or I am too busy trying to do a few things.

Another important thing, it doesn’t matter, who is holding what position, or how much rich one is, or what is someone’s background – most of them don’t know the basic etiquette and manners (traffic, talking, respecting, eating, etc). Everyone appears to be selfish, who just cares about himself and his things (house, car, job, etc). No one bothers to care about other people and city.

I don’t know, I can change others but I have kept myself the way I have been i.e. I still avoid throwing garbage on streets, spitting anywhere and doing other bad things, so common here in Kanpur.

Unfortunately, children inherit these bad habits/values from their elders, and are not able to figure out that most of inherited values are not good.

The worst thing in this city is the kind of attention a girl/woman gets from males (from 7 yrs to 80+ yrs). It’s weird to see the bad treatment given by males to females almost anywhere (roads, shops, cafe, etc). One could easily notice these things. Hard to imagine, how much a female-of-kanpur has to go through and tolerate.

It’s sad, but true, today whatever Kanpur is because of it’s people. I am not complaining here; I am just writing what I notice – Kanpur is not a good city. It could have been better or remained better (as it was some decades back), if people were better. We (Kanpurites) deserve whatever (bad culture, bad public infrastructure, etc) we have now.

The day, we start changing our attitude and habits, we would see the change.

Meanwhile, I am going to work hard to be what I am, if I can’t get better. Things said above, are trying hard to change me, directly and indirectly. Each and every moment of the day remind me of my ambition and vision, I would not let anything stop me from doing it. If It takes me to move out of the city, I am now ready to do that too.

How to improve Flash 10.1 and AIR 2.0?

There are many who complain about missing features and existing bugs in Adobe Flash Runtimes – Flash Player and AIR. But some choose to use their energy in improving the platform by using it and providing feedback.

If you believe in bringing the change:

Our feedback matters, as it has always.

As soon as I read, Ted Patrick’s post, I started writing this post.  Please spread the word by writing on your blog and retweating the following text:-

Improve Flash 10.1 & AIR 2.0 via Beta 2 http://bit.ly/cty7Nm READ & RT #Flash #AIR #QUALITY