Organize your daily Schedule - To get more productive (June 2014)

For so many years I am following a rigid schedule for my self. Primarily it is all about waking up early, I have always been early riser and do important things in the morning. I have tried in the past to work/study late but that never really worked out for me. In fact I can hardly do any productive work after 5 PM.

Here is my schedule that I am following these days. I made little change in it, instead of 4 AM I am going to wake up at 3 AM. I really need an extra hour to finish never ending tasks.

  • 3:00 AM - 6:00 AM: Do the most important thing to survive
  • 6:00 AM - 7:00 AM: Go to gym
  • 7:00 AM - 8:00 AM: Breakfast and get ready
  • 8:00 AM - 9:00 AM: Go to office
  • 9:00 AM - 1:00 PM: Primary Work of the day
  • 1:00 PM - 2:00 PM: Lunch & rest
  • 2:00 PM - 4:00 PM: Secondary Work of the day
  • 4:00 PM - 5:30 PM : Miscellaneous tasks
  • 5:30 PM - 7:00 PM: Go back home & rest
  • 7:00 PM - 8:00 PM: Social media promotion & dinner
  • 8:00 PM - 8:30PM: Sleep

I follow this routine everyday, except Sundays when I don't work or work very less. For rest of the days I follow it religiously. Also it is not possible to stick to the schedule all the time, sometimes I have to meet people, travel, but otherwise I don't make any excuses.

Why such a tough schedule?
First of all this is not difficult at all. I realized over the years trying lot of methods to being productive and everytime I came to know that there is no secret method for being productive, except working hard. I remember the time when I was in school, kids have fixed schedule and they follow it continuously for so many years, then in college our way of study changes a little bit, we can bunk classes and also have liberty to "not follow" the schedule.

When we enter professional world, things get worse. We are totally free to choose our schedule. That is why most companies have fixed timings for employees. I believe it is not bad actually you need someone to force you to work hard, of course to some extent only.

Now working in a startup is totally different, you will always have a passion and strong desire to achieve something big, but as a human being we tend to fall for various distractions. Everyone around you will be enjoying life (or they seem to) where as you are working. Your friends will be posting pictures of rafting in Rishikesh and you are busy compiling sass files.

Life is not easy for guys like us, so what do we do.

I am just extra strict with myself, I allow no space to get distracted, I follow a schedule and try to balance work-life so I don't feel exhausted. In my schedule I have 1 hour of time for gym.

I walk to my office, which is like 1.25 Kms from my place, so walk atleast 3 Kms everyday minimum.

I allow myself to check facebook and twitter feeds too.

I do most of my productive, important work early in the morning.

I use tools to manage my tasks
For keeping track of enormous to-do activities I use org-mode, it is by far the most powerful tool and take my word it is the best way to manage not only your to-do but as they say "your whole life".

For all official work we use JIRA, and I can tell you 100 reasons why your company should be using it

For you guys if you really want to get more productive, there is on book that you just can not afford to miss.

The Power of Full Engagement by Jim Loehr

Power of Full Engagement

(This is my affiliate link)

This is one book that you should be reading, it has lot of interesting use case (yeah we IT guys use this term a lot) rather stories of people struggling to manage their work and feeling burned out. After reading the book you will realize how important it is to maintain a balance of work with other activities.

Following a schedule and staying disciplined is most important.

Graceful restart of Apache Server - No downtime, Happy Clients

Graceful Restart Apache

I have been using webfaction for so many years and it is definitely one of the best shared hosting service I have ever used but since last year I felt the need to host sites on a VPS, there are certain things that you can only do when you have full control of the server. The problem with shared hosting is that you can't just do everything (but in most cases they are good enough). Also they RAM they offer is not enough sometimes.

Also our tech savvy clients want to use VPS and good that they are willing to pay for it too :) so that's why we started using VPS last year. When I researched about VPS hosting I narrowed down linode, it is not only affordable but also there support is good, they also have lot of online guides.

Apart from client websites we also use couple of linode machines for hosting our JIRA instance and our internal projects.

Earlier I used Ubuntu which is the most common choice of people but my lack of experience on Ubuntu and my personal love for Fedora and Cent OS forced me to select Cent OS. Also good thing about linode is that they upgrade your machines from time to time. Just recently they upgraded the RAM to 2GB on their basic plan. It is awesome now, especially our JIRA instance is running smooth without downtime.

Managing VPS is not for everyone. I have years of experience working on linux but when it comes to managing a server that will host your client's site, you just can't do thing you usually do on your linux machine locally. For instance you have to manage the memory, make sure there are no unnecessary processes running and you should be able to look into log files.

Most importantly you just can't afford to have downtimes. Clients don't like it and asking them for a downtime is embarrassing for us too.

I am not really an expert on managing Apache but this what I use for reloading the apache on cent OS. Apache needs to be reloaded whenever you do any changes in the httpd.conf or your vhost.conf files or you add a new site.

This command will apply the configuration changes.

/etc/init.d/httpd reload

You can also do.

/etc/init.d/httpd graceful

Both reload and graceful will apply the changes in the configuration without terminating / interrupting any connections. Simple the Apache will first process the request, complete it and then restart, so server will eventually restart but users should not see downtime. Well so far it serves our purpose but there could be a better way.

In any case this is better than full restart, ever since I moved to VPS, we have more power but more tensions too :) though it is good that we learn new things. Hopefully one day when our company Sparxsys grows we will hire an experience server administrator, till then I will have to learn more and manage the servers myself. Why not? An additional role for me.

That is the challenge and fun working in a startup, you wear multiple hats and manage tons of different things.

The problem with this command is that it will immediately terminate all the request currently handled by Apache.

Run Xamp or Wamp on Windows 8.1 by Disabling port 80 PID: 4

Yes the first thing you would say that "Are you using windows?" and the answer is yes I do use windows 8.1 and I am not ashamed of it. I have some convincing reasons to use Windows which I am listing below.

  • I use Corel Draw
  • I really want google drive to sync files on my machine. There is no good free linux alternative for that
  • I use MS Office a lot, especially Excel
  • My new laptop has UEFI boot and I can't install fedora on it, I tried and it didn't work
  • I provide trainings on Drupal and JIRA. In my experience in such cases using a Windows based machine is always better, because in most companies people use Windows for their work and people can easily follow me during the training

BTW I still work on fedora which is installed on my netbook, which I carry with me all the time, taking notes, doing light weight work while I am meeting clients and traveling. At home I have latest Dec 2012 model iMac which I use for video editing mostly.

So my primary machine these days for major work is HP Laptop running on Windows 8.1. Just recently I have taken up development activities in my company and for that I need Wampserver or XAMP running on my computer but I realized that port 80 is blocked. The obvious thing I did was to change the Skype port which uses port 80 by default but that didn't solve the issue. So I searched on the internet and found one thread on Superuser.com and that worked for me.

1. Search for the processes that are using port 80 using the following command.

netstat -nao | find ":80"

2. Then disable HTTP.sys driver by modifying registry values. Follow the steps below.

  • Launch RegEdit.
  • Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
  • Change the value of "start" to 4, which means disabled.
  • Reboot your computer.

That's it.

It really solved my issue. Now I can use port 80, yeah! I could have changed the port in Apache configuration but that is not the geek's way to solve issues. The root cause need to be solved.

This solution worked for me and making changes in the windows registry is not recommened, as it may do some unwanted damage to the system. So be careful before applying this dirty fix.

Duplicating a git repository to another repository - Bitbucket

Duplicating a git repository to another repository - Bitbucket
I always used SVN for managing my projects, that was the case till last year. Though Drupal.org moved to GIT too few years back, I did not completely move to GIT. The main reason was the comfort level. Of course GIT offer plenty of good features but SVN was also not bad, and most importantly I was the only developer on those projects.

Since last year our team has grown and we now use Bitbucket only for managing our code on git repositories. At Sparxsys we offer Drupal development at really competitive prices and our main USP is to deliver fast. Some of the projects have common functionality so we re-use the code of other projects. This may not be true for big complex projects but if we get a requirement for a relatively simple site with standard dynamic features for managing the content, forums, blogs, news, slideshows then we prefer to re-use the code.

For the past 1 year I was mostly involved in managing clients, sales, branding and non-technical activities but since last few weeks I have decided to get involved more deeply in the projects. So my role is now more of developer where I actually build websites, write modules and do lot of designing using Omega4 theme in SASS.

Here I am sharing very simple instructions to duplicate/mirror a git repository.

First create a bare clone of the old GIT repository on your local

git clone --bare https://username@bitbucket.org/username/OLD-PROJECT.git

# Make a bare clone of the repository

You may want to do this in the folder other than your DocumentRoot that contains the folders of your other projects. Just to avoid confusion.

Now move into the directory

cd OLD-PROJECT.git

Push the code into the new repository

Of course you should create this empty repository before running this command.

git push --mirror https://username@bitbucket.org/username/NEW-PROJECT.git

# Mirror-push to the new repository

Finally you may want to delete the old directory

cd ..
rm -rf OLD-PROJECT.git

# Remove our temporary local repository

And it is done. Easy no?

JIRA Training at Cognizant Chennai by Ravi Sagar / Slashnode.in / Sparxsys.com

Few days back I had a great experience of organizing JIRA Training in Cognizant Chennai. It was a 2 day training program which I conducted in their training center.

Cognizant has several offices in Chennai but they have this particular building where all the trainings are organized.

Cognizant Training Center Building in Chennai

I could not get the picture of all the participants but here are some of them. Most of them were experienced developers with 3+ years of experience.

JIRA Training Participants

The main objective of the training was to make them comfortable with JIRA so they can install, customize it as per their requirements.

There was even one participant from US who attended the session online and he was some senior guy who is responsible for managing big JIRA instance with more than 1 lakh users.

Apart from the standing JIRA Training content, the developers had some specific questions on the following topics which we covered in detail.

  • How to customize JIRA Template files
  • Common issues while upgrading your JIRA instance
  • Best practices to follow before making changes in the configurations
  • Issues with the Re-indexing
  • How to upgrade JIRA from version 3.x to version 6.x

It was enriching experience for me as well as I got the opportunity to train really smart developers.

These days there is lot of requirement in the market for JIRA Training and I usually get 3-4 calls from companies and consultants from all over India.

If you are looking for training your employees on JIRA or you want me to help you in implementing JIRA in your company then do give me call @ 9811787069

Pages

Subscribe to Ravi Sagar RSS