Monday, April 28, 2014

Abstractions & Duplication

This is a tweet from someone

Don't abstract too early. Duplication is far easier to deal with than the wrong abstraction. (OO version of YAGNI)

Thursday, April 24, 2014

Against the use of Frameworks (Javascript frameworks, ORMs etc)

Very good blogpost about  'No Frameworks' strategy. (Have to read the Comments section & follow-up bloposts as well)
http://codeofrob.com/entries/look-ma,-no-frameworks.html
Abstractions should be used because there is a pain that needs solving, whether that be because you're talking to third party code, or slow remote calls that need hiding during testing or because there is complexity that needs hiding. Putting abstractions in before we feel any of this pain just means more code to wade through when trying to get stuff done - no thanks.
This goes against current-popular-thinking as of today.

The strategy for No Frameworks would be -
We start off a project without a framework.
After a certain point, if the requirements start giving us 'pain', then we pull in a framework, whichever one is appropriate.
We'll have to refactor our existing code to use the framework.

A very important pre-requisite for the above strategy to work -
We need to know at least one or two frameworks, and know them pretty well, in order to know how they will benefit us. Otherwise, we will not know, at which point in the project, a framework could start being helpful.

Wednesday, April 16, 2014

Tools - Free tools for software teams

Except Digital Ocean, all of the below are Free, but some are freemium

Trello.com - for listing features/bugs

iDoneThis.com - for daily updates

HipChat  - Group Chat, IM - for staying in touch throughout the day
(free for teams upto 5 - https://www.hipchat.com/pricing)

Jing - quick video captures to report issues
(5min captures are free)

git & Github.com -  Source Code Management

Skype, Google Hangouts - Audio/Video calls

Skype, Teamviewer, Google Hangouts - for ScreenSharing

Teamviewer, Google Hangouts - for giving presentations to large group of people, Group Meetings

Teamviewer + Skype - Pair programming, Mob programming
(Teamviewer - in Meeting mode, we can give control to meeting-participants. This works in the free version also, so TeamViewer can be used for 'mob programming')

Digital Ocean - hosting, creating remote dev machines

Yammer.com - Enterprise Social Network

Balsamiq - Wireframing tool

Rails: start server using a port other than 3000

rails s -p 10524
This is useful when trying to run multiple rails applications during development.

Sunday, April 13, 2014

Azure - VM experiment (Ubuntu 12.04)

1. default username - azureuser  (password - what we specify while creating the VM)
2. Install Teamviewer
http://techs2resolve.blogspot.in/2013/12/how-to-install-teamviewer-9-in-ubuntu.html
3. See http://www.tonisoto.com/?p=215  for "Launching Teamviewer remotely through SSH"
teamviewer --info     -> should give the ID
and set the password using : teamviewer --passwd [PASSWD]
If not, see http://serverfault.com/questions/547206/how-to-find-my-teamviewer-id-on-ssh
To see all commands : teamviewer --help

Stuck - Not able to connect via Teamviewer

4. Alternate option to Teamviewer
http://blogs.technet.com/b/uktechnet/archive/2013/11/12/running-a-remote-desktop-on-a-windows-azure-linux-vm.aspx

Status - Able to connect via RDP, but nothing is visible on the screen


Saturday, April 12, 2014

Digital Ocean - VM experiment

Useful instructions here - http://10kb.nl/blog/setup-and-keep-up-with-the-latest-versions-of-a-complete-rails-dev-stack

0. Create droplet
0. tasksel  (and select Lubuntu )
1. Install Teamviewer
2. Add user 'sai' using 'adduser' command (because we cannot run browser as 'root')
add user sai
3. Give sudo privileges to 'sai'
 sudo usermod -a -G sudo sai
4. install Mysql (and mysql workbench)
5. install git
sudo apt-get install git-core
(https://www.digitalocean.com/community/articles/how-to-install-git-on-ubuntu-12-04)
6. install sublime text 2
https://www.digitalocean.com/community/articles/how-to-install-git-on-ubuntu-12-04

Status - Able to connect via Teamviewer; Have to install Ruby, RVM etc
Problems - LXTerminal is not working properly

To reboot - sudo reboot
To poweroff - sudo poweroff

Followers

Blog Archive