If you’ve read my earlier blog post An Idea for Auto Deleted Temporary Posts, you would know that I believe it should be possible to periodically clean your twitter timeline by deleting your tweets.
Twitter is a good tool for pushing an update to all your followers. I don’t consider it a blog where you have to put great thought into it before publishing it and you’re prepared to keep it preserved till the end of times. For me twitter is a series of quick thoughts, opinions, status updates. These things are only relevant in given context and temporary. It doesn’t make sense to keep them there longer than needed. If the context is lost or the time has passed it can convey incorrect message. Read More...
When you’re writing code for fun you can break all the rules and make a barely functional, hard to maintain useless software. That’s fine. Your focus may be on learning a new technology or solving some problem not building a production software. Unfortunately that’s how most open source software are developed / evolved but that warrants its own blog post. Today we’re going to talk about best practices for building a production ready software that ‘has’ to be maintained over time. Read More...
It often baffles me why don’t people learn from success of others and apply those principles to their situation to solve the problem as opposed to being creative and making the mistakes that others have already made.
I’m not saying that we can just blindly copy someone else’s moves. But we can analyze the success of others and look at their history of mistakes and learn from them to avoid making the same mistakes. After all that’s what we do in real life. Someone touches a bare live wire by mistake, gets an electric shock and we trust that its absurd to touch bare wires. We all don’t touch bare wires to really believe that it will also harm us right? We trust that fire burns without trying it on ourselves right? Read More...
Its questions like these that just make me sad at times. Is software development really like preparing transcripts that you can in general estimate how many lines of code can be written in a day? I think main confusion to non programmer really is about the fact that programming is problem solving its not typing lines of code on keyboard. Line of code is a representation of solution. Time is spent in finding the solution, not typing it. You can’t ask how many hours it will take to build a 10 feet car. The dimensions of car tells you nothing about how complex the car’s internals are. Your time is not spent on making the car taller or longer. Your time is spent on figuring out the mechanics. Read More...
This blog post is more of an advice to fresh developers or even people from other professions like my younger brother who often gets worried about what he’ll do in life and how he’ll be successful.
The point of this post is really that your technical skills is not something you’re born with. Its not your DNA that you can not change. I would like to use the analogy of a body builder here. See no one is born with all the muscle mass on their body. In order to develop your body like a professional body builder you have to take special diet and do tough exercises. Its a consistent process of effort after which you reach a point where you can participate in a competition or just show off your muscles to your friends. Read More...
A friend at work made an interesting observation that its strange how @ sign has different meaning in different programming languages. Let’s review what it means in a couple of languages:
In ALGOL 68, the @ symbol is brief form of the at keyword; it is used to change the lower bound of an array. For example: arrayx[@88] now refers to an array starting at index 88. Read More...
In all programming languages there are a couple of constructs for looping like
while
do-while
for
for-each
I think do-while is completely redundant but that needs its own blog post. For now lets look at while and for loop.
Name of the while loop is quite intuitive. It makes it quite clear that you want the block of code repeated as long as some condition is true.
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
Console.WriteLine(line);
}
It almost reads like English and you don’t have to really know that while loop would generate jump statements in assembly or what not to achieve this looping. Read More...
So we’ve all heard of the prevailing shortage of smart engineers in the software industry. We all complain about it but very few of us really have a solution to this problem. Making more science fiction movies and showing students how programming is so fun is one way to go but there is another more effective route that we can take.
What usually happen is that students do not have experience of programming before they opt for computer science bachelors degree or they do not understand to the full degree how being a software engineer is going to be like. Often when they start studying the course; they realize this wasn’t really the best thing they could do. And we get mediocre-not-so-enthusiastic-barely-able-to-get-job-done engineers in the market. Read More...
10 year ago (2002) I was working part-time in an ISP called Hungama (company name was FutureConnect). I did wide variety of different programming tasks and I still feel it was one place where I learned quite a lot. I had access to different systems, including live database that contained accounts of all our dialup users. I was also asked often to pull out some report about users or usage by running queries. Also if some record had to be modified I would often do that too because at that time we didn’t have a billing system (which later I built). Read More...