Thursday, December 29, 2011

Back after a long time

No idea why I stopped logging my learning activity here. Luckily, I didn't stop learning altogether. Over the last few months, 7 to be exact, I have worked on real Django, JavaScript applications, two routine webapps and a CMS. I have added a lot to my knowledge and I am sorry now that I didn't keep a record of what I have accumulated in my skill bank.

So, from today, I will be maintaining a developer dairy again. For the last 2 weeks, I have been working on the mobile version of a big website using django_mobile for detecting the user-agent and delivering the appropriate version. The good thing about this project is that I have also taken up the responsibility of styling the website. I am pretty satisfied with the way it is coming up.

Today, I have added PhotoSwipe, which is a good javascript library for showing neat slideshows on mobile devices. Just put your images in anchors and attach photoswipe to the selected anchors. I have fallen in love with LESS CSS. It would have been repeatedly frustrating had I not made the decision to switch to LESS early. Also read about cookies from quirksmode and used the scripts from there to get, set and delete cookies using JavaScript.

Saturday, January 29, 2011

Random reading. RSI threat. Should have short-term goals.

After spending 3 days making comps for a fun project, I was very tired and had to rest for a day. Then, I had spent the next 3 days reading without any short-term goal which is not a good idea. I spent the last 5 days reading random stuff about Git, Vim, AppEngine, Python, Bash, RSI , and whatnot. I know that it all helps, but I will like to be more focused and have specific goals for each week and (even better) for each day.

I got Git Community Book printed long ago. Reading that has helped me understand how Git stores the snapshots and commits etc. I got a github account recently and created my first public repository today. Generating SSH key and pushing code was a nice experience. gitimmersion was also useful to get a feel of the work-flow. Committing frequency is a personal preference, I guess.

I have been suffering from serious pain in my arm, shoulder and neck. Though I haven't found the best posture at home, I think the major reason is hunting and pecking with my right hand. I have to learn touch typing, seriously. As I type very fast already, forcing myself to touch-type hasn't been possible because it slows me down considerably. I need to get an ergonomic {chair, table, keyboard} when I move to a new place.

vim.wikia.com, Vimcasts are brilliant. I have learned some cool tricks and am already putting them to use. Learning vim scripting (with and w/o Python) is definitely on the list. I knew very little bash scripting, have read a basics tutorial and need to explore more. I understand that "regret for wasted time is more wasted time", but I couldn't help regretting having wasted all those days in college and after that. I could have learned and enjoyed so so much. It's never too late and those days are not going to come back anyway.

Monday, January 24, 2011

Realized the importance of tools

I was sad after spending three days on mocking up one of the simplest web pages possible. But, in retrospective, I am happy that I could learn some new things and understood the importance of a few widely used tools. Tools like Photoshop, firebug, jsfiddle are popular for a reason. They are designed to save you a lot of time and effort. Using them to do what they are best at doing can boost productivity greatly.

For a while, I was coding up a web page the very old way - going back and forth between vim and Firefox/Chrome. Vim is a great text editor, but not designed keeping front-end web development in mind. The words mockup, psd2html, photoshop appear all over web design blogs. Having a visual goal documented as a psd, before coding HTML and CSS, definitely helps. After the initial structure is decided upon, an in-place editor like firebug can save you a lot of window and context switches. Jsfiddle, some online css3 tools for gradients, border-radius etc. were helpful as well.

Monospace is good for programming, but it strains my eyes for some reason. After searching for a better alternative, I liked Droid Sans Mono. Its 0 and O look very similar, but the increased line-height improves readability. I haven't found a vim color scheme as likeable and currently switch between a lot of them. My hand has been hurting very badly and I code for longer periods. Learning to touch-type is very important, I understand now.

Sunday, January 16, 2011

I pick up speed but slow down again

I have spent some time on reading about decorators in Python. The name always sounded as if it was a novel concept and would take time for me to understand. But, it is just one of those obvious features in functional languages. Functions being first-class objects in Python, they can be passed to and returned by functions. I have found that looking at the docs before reading tutorials will help for understanding language features and syntax. We can't always say that for libraries though.

CSS3 for Web Designers is a well written, short, good book. I understood some terminology that appears on almost all design websites when they talk about css3. Transitions, transformations, multiple backgrounds, animations are all simple but powerful tools in any designer's arsenal. The way some powerful features like these silently seep into the current front-end technologies is what impresses me most in HTML5.

I suddenly find myself spending more time on front-end design and development. I haven't done a single photoshop mock-up yet. It depends on what you are going to make. I feel more comfortable marking up straight away, but I understand the importance of mock-ups in web design. It's time to start hustling.

Friday, January 14, 2011

Wheels in motion again. Back to snake wrangling

After the dull period of two weeks when everything was so confusing and frustrating, happiness arrived at last and it felt food when it finally did. It was definitely one of the darker times in life and thanks to all loved ones for bearing with me. I still don't know whether it was a feeling of uncertainty or lack of confidence or both, but I am happy that it's over now and happier for the transformations it brought with it.

I haven't stopped learning, reading, I pushed hard. Basic terminology in graph theory, traversal algorithms, basics of PyUnit(unittest) were all gulped down one day. os module took most of the next day when I finally grokked fork and exec. The next day was spent on reading about WSGI again. I feel lost when a framework abstracts away most of the things.

I am going to spend more time on Werkzeug, SQLAlchemy and Flask. I want to contribute to one of Pocoo's projects. Some time was spent on HTML5 and CSS3 too. I need to learn some bash scripting and have fun with some GNU utilities.

I am putting some effort into improving my vocabulary. My goal was to learn five new words and copying a well written paragraph into my notebook everyday. However, over the week, I could do one or two a day. This goal needs to pursued in earnest for it's worth every minute spent.

Sunday, January 9, 2011

The first hurdle

Two weeks ago, I just told myself to relax and take a short break. Short didn't stay short. It consumed 2 complete weeks and I couldn't figure out a way out of this rut. It was a forgettable period except for a few highlights. This has been the biggest problem I have faced in my sabbatical yet. It felt like I had hit a wall and couldn't get back to what I was doing. I was so depressed for some time about this. I hope and see signs that it has ended now.

It was not like I was not learning anything in this period. I was reading books on Algorithms, HTML5, CSS, jQuery. I was spending most of my time in front of my laptop reading books or blogs. What really depressed me was that I had consistently been haunted by a feeling that I was going no where. I was reading for the sake of reading. I was still reading because I was afraid of executing, using what I have learned. The continuous chatter inside my brain. Concentration and focus were elusive. I had this drive to create and execute ideas everyday, but never could I start and type one line of code. I should have blogged earlier. It would have helped.

Here is what I have spent the last two weeks on. I have read HTML5 for Web Designers by A Book Apart, 3 chapters from Python Algorithms, 2 chapters from jQuery in Action and a few blog posts about coding, technology and startups. I bought a copy of Don't Make Me Think. The book on HTML5 was good and I did some very simple experiments - audio, video elements etc.. From the algorithms book, I understood that algorithm analysis is not as tough as I thought it would be.

Reading Philosophy is one of my most favorite activities. Most treatments on History of Western Philosophy start with Socrates, Plato and Aristotle. So, I have been introduced to these three giants of Philosophy by different sources. Thanks to all. The Social Network gave me peace and impetus at the same time. Envy doesn't look bad when it is used rationally for the person's improvement. It can be a great driving force and also a reminder that there is no stopping in life, only being left behind.