Cutting down on email overload

Time is very scarce and especially when you have a two year old kid who is vying for all your attention. Over the past few months it has been very hectic both at work and home. A direct consequence of this is a huge premium on my time (not that it was cheap earlier). On my quest to better manage myself and my time, I am constantly on the lookout for some practical solutions. One of them being optimizing email.

Read on →

DNS not resolving

Recently I moved ramjeeganti.com to this current place on s3. In an earlier post I mentioned about moving my site to amazon-s3 and octopress. Shortly after the movement, I found that the domain “ramjeeganti.com” was not at all resolving. Shortly there after I found that my google apps has not updated the mails for over a da, though it was allowing me to send mails. This made me suspicious and finally figured out that the dns nameserver entries had to updated.

Read on →

Git Cheat Sheet

A few months back we migrated from svn to git at office. If there is one thing I regret in my work at Justeat.in, it is why did I not move to git earlier. The move significantly reduced our time to resolve conflicts and release code to production. I will talk about my experiences with git in a different post. I have commited most used commands to memory. In here, I am documenting some of the other commands which I keep looking up once in a while.

Read on →


ramjeeganti.com now on octopress/amazon-s3

This domain ramjeeganti.com has been defunct for more than an year now. I was hosting it with a friends and server and did not bother to move it when he shutdown the hosting service. Recently I decided to revive my writing and a no brainer was to revive my domain ramjeeganti.com

Read on →

Things to do

It has been a long long time to be precise just more than an year since any kind of activity on this blog. I take the blame. Partly due to laziness , partly due to writers block, and a lot due to lack of focus.

Now I am on the way to resurrect some of the things. The following is the list of items I want to post about/work on and this blog will be the place for realizing them. In no particular order let me dive in to what all I want to do

Read on →

WAW Bangalore: Update

It is about three weeks since we met for WAW Bangalore. What a terrific meet it was. For those of you who were not present let me give a brief recount of that evening.

Myself, Jaisri Chety and Sarvanann were there a little before 5:00 Pm. We were slated to start off at 5:30 Pm. Slowly people started coming in and by 5:30 we were about 20. We waited for a few minutes for more folks to turn up before we kick started.

Read on →

Web Analytics Wednesday Bangalore, August 2009

I am off radar of any kind of social events for some time. I am now back with helping the organization of Web Analytics Wednesday Bangalore, August 2009. The event is on 12th August at Indiranagar Club.

Data Speak is the theme of the blog, and you have not seen much happen over here in the one month of existence of this blog. I will take this event to kick start my blogging efforts over here. So keep coming in to see what to make out of all the data you have.

For now check the details of the event at the WAW (Web Analytics Wednesday) Bangalore site. You might also want to check out Web analytics Demystified for the origins of WAW

If you have anything to do with Web Analytics and you are in Bangalore, this is the event for you. Drop by and we will have some great discussions.

The original post was salvaged from Way Back Machine.


Welcome to world of blogging

I have been blogging at So-did-i and a few other places for about 4 years. It was high time that I got my own domain and host the blog. This blog “Data Speak“ as the name suggests is mostly about data and how it affects our ability to make decisions. Initially I will concentrate on Web Analytics.

For the uninitiated, Web Analytics deals with the analysis of data measured on a web site for the purpose of understanding and optimizing the sites usage. At this juncture Web Analytics is also closely associated with Web Measurement, though I am sure in future once the technlogy behind measurement is matured, these both will be two distinct but dependent fields.

I leave you here, with some food for thought. Complete the series 1,1,2,3,5,8,?.

The original post was salvaged from Way Back Machine.


Inserting elements into a page

The following code snippet is to help insert a code snippet into a page without using document.write.

Insert element without document.write
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function insert() {
  var insertElement = getNewElement('div','ElementID', 'ElementName');
  var targetElement = document.getElementById('targetId');
  insertAfter(insertElement , targetElement);
}

/* insert a new element after the targetelement*/
function insertAfter(newElement, targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
      parent.appendChild(newElement);
  }
  else {
      parent.insertBefore(newElement, targetElement.nextSibling);
  }
}

/* Get new element of 1/1 pixel size*/
function getNewElement(elementTag,elementID,elementName) {
  var newElement = document.createElement(elementTag);
  newElement.id = elementID;
  newElement.name = elementName;
  newElement.width = '1';
  newElement.height = '1';
  newElement.frameborder = '1';
  newElement.marginwidth = '1';
  newElement.marginheight = '1';
  newElement.vspace = '1';
  newElement.hspace = '1';
  newElement.alltransparency = 'true';

  return newElement;
}

As a side we can also get the insert scripts by figuring out the script source:

Get the last script tag in javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function getLastScriptElement(url) {
  var scripts = document.getElementsByTagName('script');
  var matchUrl = 'js/sample.js'.toLowerCase();
  for (var i = 0; i < scripts.length; i++) {
      var srcUrl = scripts[i].src.toLowerCase();
      var match = srcUrl.match(matchUrl);
      //if (scripts[i].src.toLowerCase() == url.toLowerCase() + 'js/sample.js'.toLowerCase())
      if (null != match) {
          break;
      }
  }
  if (undefined == scripts[i + 1]) {
      return scripts[i];
  } else {
      return scripts[i +1];
  }
}

This post was recyled from Art of Software, Craft of Hardware.