February 24, 2019

some forgotten tech

Been quite a long time since I wrote on my technical blog, and I can't put my finger on the reason quite easily.

Probably its because I am back to more coding than meeting/reviews/thinking per day. Even then the number of lines of code or complexity that I deal with daily isn't really substantial. There is nevertheless, quite more learning and re-learning these days.

Some of the topics I found myself scanning my own old code, man pages, stackoverflow and many other websites are C++11 features, memory management, signals and a bunch of other system calls.

When the regular work demands very little to no coding and still fills up almost the entire day, one lands up in situations where the technical practice is sustained only by faint memory and constant theory relearning. But none of it matches actual coding practice.

Even the language and concepts I just mentioned are quite archaic and are the verge of being replaced. So its really high time to equip myself with real practical experience with new tools, languages, design paradigms and architectures. Lots of reading and imagining happening, but until the itch of the fingers are satisfied by implementing, the yearning for learning remains unsatiated.


May 18, 2012

How do you solve your problems at work? - a small talk

As a programmer, as an analyst or a software engineer, I wish to place a question to you readers.

To solve the problems you face in your work do you read anything, be it technical, managerial or mid-way?


Well, I guess everyone reads only one thing - Google.

There is nothing bad about using Google to find answers to your queries, but when it turns out that you read only the first 5 result URLs and give up in about 5 tries for the same matter, you aren't doing enough.

I have seen some people give up in this fashion and revert to dirty and stupid workarounds for the problem at hand. Most of the time the fixes or changes are done without proper depth of knowledge or know-how of side effects.

This is the very point for which I am against depending on Google to solve all your problems.
Maybe as amateurs, everyone has the right to depend on the resources thrown at your disposal by Google. But as your own understanding and business needs start taking specific shapes, too much dependance on Google can adversely affect the quality and effectiveness of your own solutions.

And yeah, there are well research harmful side effects of Google in a person's everyday life. But I don't mean to touch upon that matter here.

So what is it that you need to do?

 a) Firstly. start thinking about your problems objectively and subjectively by yourselves.

b) Try discussing with peers.

c) Form a mental picture of the problem scenario.

d) Solve as much as possible by yourself. Take it as a challenge.  It will help in reinstating the passion for your job (presuming its existence at least  in the past).

e) Write/draw troublesome points and the entire problem statement if required. Also try tools like FreeMind or Mindmeister which help in doing this in digital format.

f) If you still feel a disconnect between the problem and solution, then TAKE A BREAK. Believe me. It helps in keeping up the motivation and creativity.


g) If you don't have a solution even now, you would be in a position where you can either Google away objectively, blame others or question the sanity of the use case you are trying. :P

Here are a few additional tips that I follow:-
a) Take extreme caution at stages where you commit things to external parties, especially when not connected directly in the hierarchy
b) Learn to estimate more, plan for unknowns
c) Be ready to burn the midnight oil for R&D, experiments etc which you help you catch up against your own lack of competence. The world can be unforgiving sometimes.
d) Read occasionally good articles about design principles, good practices of development (both technical and non-technical). Also more abstract topics like work attitudes specific to your discipline, psychology, statistics etc can come in handy

Last but the most important, "Learn to Work Hard, but Party Harder" and to Do what you love, and Love what you Do... ALWAYS

Signing off wishing happy careers...

February 14, 2012

Batteries - The Achille's heels of your laptop

Last friday night, I unplugged my laptop (Dell Studio 1555 -2 yrs old) to hand it over to my room-mate, and was shocked to see the laptop switch off immediately.

I was fairly amused as I was certain that the battery was fully charged. So I tried powering up the laptop, but it wouldn't. The LED indicator blinked red showing low battery. So I connected the AC adapter and powered it up again.

The LED was blinking red and white alternatively, and I received an error message that "The battery cannot be identified.The system will be unable to charge this battery." It is the first time that I had faced such an error message. Previously I had experienced error messages for incompatible AC adapters. But, this was nothing like it. The laptop would run purely on AC power only.

After an hour of frantic googling on scant network resources (that was the day we switched the internet provider, and were having problems connecting), I was convinced that my battery is dead and nothing could be done to salvage it. I found that there was a newer version of BIOS available for my laptop and hence installed that too. But still on removal of AC Adapter, the laptop switched off.

I was heart broken as this meant an unplanned expenditure of nearly 3k, and still people were pointing out that a new battery may not solve the problem. Anyway, I decided to stay put and postpone the purchase to when I go home. In the back of my mind, I cursed my rough usage of the laptop for extensive downloading and so on. This episode even cost Dell a prospective customer as my roomie who is considering to buy one soon got freaked out at this problem, and especially due the lack of warranty and the notoriety Dell's post warranty service has gained over the internet and among users.

Today I decided to satisfy my curiosity regarding laptop batteries, and had read up some manuals and articles online regarding its operations and maintenance. So, just after finishing my stuff on it and shutting it down, I played around with the batteries, removed them and observed all the readings and connectors inside. I compared my personal laptop's battery with that of my official one and just dusted up both and replaced. Just for curiosity sake I tried powering on my laptop without connecting AC adapter (after all what is there to lose once u are prepared to shell out some bucks). And lo, it booted perfectly. I am wonderstruck even now.

Maybe it was just some dust, or the firmware update combined with a re-attachment of the cells. I haven't figured it out yet. But I am glad that I don't have to shell out the money soon. But the problem of batteries if quite serious and is here to stay. I have to take care of my batteries from here onwards to prolong its life and get a good performance from my laptop. I am reminded at this point of a friend of mine who always advises to perceive laptop as a person and treat them likewise. He has a 7 year old laptop in very good working condition to prove his point.


Adios amigos. Take care of those aging batteries to avoid headaches later on. Happy computing.

December 23, 2011

Back to Unix

And finally, I have landed myself back into Unix/Linux domain.

All those stuff I had seen 2.5 years back have to be brushed up now and applied at a professional level.
Everything people speak around here sounds familiar but never quite strikes any place in my head.

That is the state one got to get out asap so that the  machinery gets into motion without any unfortunate events.

The state of lethargy and the bone chilling(relatively) climate of Bengaluru acts as resistant to such brave plans and as usual I get back on my plan to take over the world.. :P

Couldn't resist mentioning the jargon, this being a technical blog:-
Linux
Shell
Kernel
Patch
SVN
Scripts
Perl
Python
Module
Structures
Pointers
Memory :-)

so on and so off..


 

"A coward dies a thousand times, but a brave man dies only once"

May 01, 2011

Management Instincts Revisited

This is again about instincts in the software engineering industry.

Last time I vouched for trusting your test cases and what-if analysis rather than instincts.

But I missed upon a major point, that is the part that instinct plays in the overall process of software engineering.

You might have highly qualified engineers, architects, designers and so on employed to perform your tasks. They might be very well trained in the technologies and process also. But still there remains a scope for instinctive decision making and analysis.

These instincts are usually expected from the experienced ones. They would be able to instinctively capture missing parts of a system based on their past experiences and some pure gut feeling. But the gut feeling part is eased by the experience, and hence their suggestions and hints are considered as 'expert opinions'. Such people are also conducive to developing gut feelings among junior personnel.

But sometimes inexperienced personnel in charge of similar duties in the absence of the above mentioned qualified experienced personnel, get to experience such gut feelings. But more often it happens so that they are incapable of expressing the feelings into useful input for the team or getting it implemented in the right fashion. The reasons for these are partially individualistic and partially due to the organizational atmosphere.

Some people have the natural skill to reason logically and think deep into what-if cases, and some are good in providing a wide angle overall picture. If deployed in the right roles, such people can boost the productivity by a huge margin. But if they are deployed in completely unrelated roles or shifted around roles, the overall productivity from such individuals will go into the negative scale. This is something every resource manager has to take care of.

Overall, managing people in an organization is a tricky business involving lot of patience, detailed study of people, quite a lot of common sense and a bit of psychological motivation. And it would be good you have the instincts for it too :)

There is more to it than what I can summarize here. So watch out for more..

February 27, 2011

Time is Money

I was browsing through some sites, when I came upon this product called BRING TIM!. TIM stands for Time Is Money.


It seems like a very much required device for most of the organizations which spend a lot of time in meetings. If they can keep in mind how many dollars are spent in the meetings, it can help save a lot of time and hence money.

The problem of repetitive and often unproductive meetings is predominant in corporates, politics, government offices and such similar groups which need lots of brainstorming. If such devices are installed and utilized in those places, it will surely help in increasing their productivity. Afterall, how many really like to sit all day discussing the same things again and again, without much results?

It seems there is also a free online tool which does the same. Visit Meeting Ticker.

February 11, 2011

Instinctive Software Engineering

When I stepped into the profession of software engineering, a good 1.5 years back, I had a feeling that my habit of relying on gut feelings, trial-and-error and happy-go-lucky would help me excel in my job.

But after 1.7 years of working in different environments and with different people in the same organization, I feel that though I was not completely wrong, I was not completely right either.

Instincts and creative sparks help you in some tight spots or spur you to new domains. But more than those, it is the tried and tested principles of Software Engineering which will keep your ass away from the fire for a longer period of time.

Simple processes like always doubting every single piece of word in every document, every line of code and every test case, go a long way in keeping you on the safe side. Having said this, I can't still stop thinking about the amount of time 'wasted' on such processes in cases where you 'know' what has to be done.

But time and again, it has been proved to me that the benefits of such habits are valuable beyond what they are generally believed to be.

So my new mantra which I am trying to tell to myself and my colleagues is: "Trust your instincts, but trust your test cases more".

February 05, 2011

VLC Shuffled Off


I have been using VLC media player for Windows and Linux for over a year now.

Since then I have been plagued with various issues ranging from improper folder expansions, crashes etc.

Now, the lack of randomness in its 'Shuffle' feature has been a pain in the neck for me for the last one week. That became the last nail in its coffin.

There is no doubt that VLC is quite good in playing various file formats and provides a good UI. But randomness in my tracks is a must for me. Hence I decided to replace it with Winamp for playing my audio tracks. VLC still maintains its position as my favourite video player.

Winamp with its global hotkeys and awesome experience had been my favourite media player for Windows during college days. Now it is back to take its original place. I must add that Winamp for Windows 7 is quite intuitive and flexible for me. I am one satisfied music buff now.

On the other hand, I need to explore for VLC alternatives in Linux. I might opt for rhythmbox, which somehow resembles Winamp w.r.t the UI. Or there are tonnes of other players out there, from which I can take a pick.

Question: What would be my choice for Mac. Update: Received a tweet from Moosa to go for Itunes player in all three OSes. Will certainly give it a try.


January 22, 2011

Why Google Image Search is falling short

How do you assign thoughts, and ideas to images?

You all must have heard about a picture being equal to a thousand words.
If so, when Google Image search relies on just the keywords in the site for retrieving images, how accurate can it be? Though I am aware that some experiments are going on in the information retrieval community and search engine giants, for mapping common thoughts and ideas to images, I want a tool coming out of it soon.

The task of finding an image that matches the emotion in your mind, even though accurately mapped to English words, is quite tedious because not many think alike. And, Google uses a pagerank method for ranking, and the image you badly wanted could very well have been out of the index due to hundreds of reasons.

At this point, I am forced to learn graphics designing, explore myself for an artist within, and bring the idea into an image and upload for common use. Though that might sound like an excellent business/utilitarian initiative, the fact is that it is very tedious for a small spark of idea.

Having said all that, I am feeling more in need to pursue my Neural Network Mapping campaign I started in college. That would give me the position of being on top of the problem, rather than the problem being on my head. Here begins my reunion with the Information Retrieval side of Vivek. ( ah those days were so intellectually fulfilling )

December 20, 2010

Electron Monger Ants


It never occurred to me when ants were found in my roommate's laptop occasionally, that these little creatures have an attraction to electrical equipments.

Now I am facing issues with ants covering up my laptop charger node, even if there is no supply.
Also, some of the days I find ants crawling beneath my laptop, and going inside the case. These occurrences were too many that I finally decided to Google search this phenomenon.

After a couple of unsuccessful keywords, I got the answer from Wiki answers and Yahoo Answers that indeed some variety of ants are attracted to source of electricity. But it is in fact the magnetic fields surrounding these equipments that somehow simulate them.

The wiring in my building is not even earthed properly, so all devices connected to the power supply continuously emanate an AC charge, attracting huge crowds of ants to these power outlets, even when the plugs are switched off.

Now, I have no other go than cleaning up all devices before connecting to my laptop and regularly warding off the hordes of ants from my room. Sheesh, what a mess.

December 04, 2010

To Upgrade or Not to Upgrade

Nowadays Ubuntu is one of the most popular Linux Distros out there. It provides all kinds of features that Windows and Mac provide , free of cost. And, compared to other distros and early generation Linux, Ubuntu has taken the concept of hassle free OS to a new level.

They are forever catching up with the latest in technology and new designs by having a very fast and reliable release cycle of 6 months. That means, every 6 months, you get a newer version of Ubuntu, boasting new and improved features, UI and bug fixes. Exciting , isn’t it.

Unfortunately that also means that you might have to do a distro upgrade operation every 6 months or so. For some users, this can be very troublesome as they would have already installed a whole lots of apps and packages. For this reason, many users don’t opt for this change. But what if you desperately need that latest feature or compatibility woes trouble you in your current distro? Then you are forced to make that move.

There are two ways to make that upgrade. If you have good internet connection , you can opt to upgrade your distribution directly, without harming your data files. Another option is to buy/order or download a fresh iso image of the latest Ubuntu and install OVER your current installation. The latter is time consuming especially to restore your installed apps manually. But the former too is not such a great idea as per my personal experience.

Being Ubuntu, you would be having APT ( Advanced Packaging Tool ) installed in your machine. Use
apt-get dist-upgrade
to directly initiate the upgradation to a higher version of OS ( if available). Last time I did this, many of my application configurations got corrupted and crashed. There were some known dependency issues between consecutive versions, which are not visible to the user while initiating the upgrade. At the end, I had to opt for a fresh install. You can try out this for yourself. If it works fine, then its good. Else, read on.

If you want to do a fresh install , then there are a couple of steps to save your currently installed app list ( because remembering, choosing and installing them is the toughest phase ) to a file and automatically reinstall the same list after a fresh OS install. The following are the steps for it:

1) dpkg --get-selections > ./backup.log
2) Save the file to some other device
3) Do a fresh install of latest version of OS
4) dpkg –-set-selections < ./backup.log
5) dselect
6) Use “i” to install all the apps

November 20, 2010

Going through google labs...

I was just going through Google Labs looking out for any new additions in it.

I tried out the Image Swirl feature which is quite old now,but would be nice if implemented in the main Google Image search.

The next one which caught my attention was Indic Music Search which allows you to search and play Indian movie songs(currently only Hindi is supported) online. This again was released some time back,but I never remembered to actually try it out, until now.

There were loads of great looking apps,but all were for android, and as I don't own any android devices or haven't started developing in it, I skipped them. But the apps were innovative and made me wish I had an android phone to try it out. One of them is Google Goggles, which allows you to search using photos captured in your phone camera. It is available for IPhone4 and Android.It seemed quite similar to my classmate at MEC , Sandeep's academic project.


Afterwards, all the apps were quite old, heard of, or boring in nature. I just tried out one, named People Hopper, which basically is an app which shows the transformation path between the profile pics of any two friends, through your Orkut Account. It will be added as an app to your profile and you can drag and drop your friends (any 2 including urself) and the app will calculate and show the transformations that convert one photo to match the other. It was quite crappy for the pics I tried and looked surreal. Anyway nice concept..someone might believe its actually accurate.

Thats it for time being..will be back with more updates on my view of this myriad world of technologies..

November 09, 2010

Saving All Tabs in Firefox



Often while reading technical articles and solutions, we might end up opening lots of tabs.

Now, having lots of tabs open has its own downside , like slow loading.But a bigger problem is losing all these tabs data if your browser crashes for some reason( chances of crashing increase with increasing tab count and contents).

These tabs are not exactly 'Bookmarks', as in you don't want to bookmark all these sites forever, as they might only be for temporary reference. And you don't want to save one-by-one.
Instead, there is a nifty option in Firefox to save all tabs as bookmarks at one shot. Pressing ctrl+shift+D will prompt you to enter a bookmark location and folder name under which all your currently open tabs will be saved as bookmarks.

But I didn't find a way to load all these tabs back at once if required.

So I am still looking for a solution to this problem of mine. The TabSaver extension of Firefox also seems to address similar problems.

Will check it out and update back here.

In mean time if anyone has any suggestions/solutions, please add in comment.

September 08, 2010

Google Instant


So, its out.

Google releases a major change to the UI after the autocomplete and spell-suggest addons, which is called Google Instant. It supposedly borrows its name from the Instant Coffee ,which is quite popular in the corporate world and Instant Noodles, which is very popular in Japan and among couch potatoes/geeks/kids. Google's innovations are also like these - Fresh, fun-filled and utilitarian.

With the release of this change, you don't need to press the Search Button for any of your queries any more. Google will search while you type by combining an old technique called 'Incremental Search' designed by an engineer Amit Patel, and Google's now popular Autocomplete feature. When you start typing itself, Google predicts a list of possible queries and in addition, brings you the results of the top ranked query among that.

Its kinda weird after all these years of conventional search that we have been doing. But it helps out a lot when you are not so sure about the query that you need to give in , to get to the data you want. You can straight-away decide whether you need to type the whole story , or just the first few words are enough. This definitely is an improvement, and not a revolution, because all it does is add to the overall user experience and reduce search time.

I was just watching the Live Streaming of its release and talk by the famous Marissa Mayer (VP of Search ,Google) and the product managers and technical leads behind this quirky innovation, that is Google Instant. They showed some really cool search examples in the video, and I was excited to watch it all. But a tweeple friend of my Chetan Gole also tweeted out the additional capability of Google Instant to be morally conscious. It won't support any kind of swear words or profanities in its predictive real time searches. Wow!!

Currently, this feature is released on in the US version of the page, and will be rolled out for signed in users in other versions like Spain,Russia,UK, France and Italy. It will be available on the IE8,Firefox, Safari and of course Chrome.So keep your eyes peeled out for its release to Indian version and the default search page of your browser as well.

The new age of search is here...

September 02, 2010

Revisiting the wave


I was reminded of the Google service called 'Wave' when I saw the article: Joined the wave.
So I just went over there to see whether it looks any different from what it used to be. I had read some tweets and news about Google discontinuing the development on wave ,some time back.So, I wasn't really expecting anything above the slow and unresponsive windows and cluttered boxes which is my memory of Google Wave.

Though the activities and presence (or lack of) of online contacts in wave supported by expectations, the interface and its responsiveness looked better than it used to. Maybe if, initially itself, they had released it the way it is now, it wouldn't have had this sudden death. Considering the hype that surrounded it during its beta release time, it has been a real nail in the coffin for the internet giant, that is Google. With this and some more failures and partially successful ventures, Google has been gaining on the negative opinions scale, competing with the likes of Microsoft and Facebook.

Coming back to wave, the thing that caught my attention was the 6 boxes under "Start a New Wave", namely 'Blank Wave','Discussion','Task Tracking','Meeting','Document' and 'Brainstorming'. As there weren't any contacts online, I was not interested in any of these, except 'Task tracking' and 'Brainstorming'.

But, each of them turned out be something like a custom template from Google Docs.Brainstorming had this extra feature of flash component that allows drawing. So, for collaborative brainstorming, this might have been a good tool. I liked that.

Speaking of the task tracker, I being a person of low brain retentivity, tend to use task trackers and notes extensively. And hence, I find such tools very useful and amusing. Here also, the availability, of categorization of tasks based on priority caught my attention. Apart from that, it is not interesting at all. I would any day prefer a proper task planner software on my desktop, or for that matter, even gmail's task list over this.


Overall, I felt good that Google stopped wasting time on this. Maybe they will enhance something else worth using. It was rightly discontinued, as it is a big failure from Google. So waving goodbye to Google Wave again..adios

Echofon breaks in Linux

One fine day,when I logged onto my Ubuntu, and started firefox, I got a message box with no contents in it other than an OK button with the message box title reading 'Echofon'. As I couldn't figure out what was causing this error, I executed Firefox from the terminal in background mode. The error message that was printed on the terminal is :
"Can't get OAuth signer. Use Basic Auth instead. / Cc['@naan.net/twitterfox-sign;1']"

I googled this, and came to Echofon for Firefox, where many people have put their comments that Echofon is broken for Linux or has been discontinued for Linux from version 1.9.6.5 onwards.

Mine was that version, and so as per the suggestions in that page, I reverted back to version 1.9.6.4,and voila echofon is working fine.

Morever I saw that Twitter has sent me a mail regarding discontinuation of basic authentication and enforcement of "OAuth" authenatication method. This might prove useful in centrally controlling all applications which have access to twitter timeline.

But the news of rolling out of "t.co" url wrapping doesn't sound so good, in spite of their claims of providing protection from potentially malicious website and reducing obscurity in URLs provided over twitter.

With this in place, I wonder what would happen to services like bit.ly which provide realtime analytics for such shortened links. Anyway it will be deployed in a beta mode in a couple of weeks, and made mandatory by end of the year. So, have to wait and see what happens, and how tweeples react to these new regulations and rules in twitter,.

June 30, 2010

VLC 1.1 Crash on PC Lock

I noticed that my latest vlc(1.1) installed on Windows XP SP2 crashes whenever I lock the pc (win+L or auto-lock). This seems to be a known bug when I searched the net.

Hope they will fix this soon. I am fed up of this bug as I listen to long list of songs while at work, and hate to fill it up again due to the crash.

June 22, 2010

VLC 1.1 is here

The new and improved VLC 1.1 is here. Check out

Download

April 10, 2010

Importance of Logs and History


Something that is very important for administration of large systems and databases are logs.
Logs in the sense, log files as well as log of all transactions by maintaining history tables, in case of databases.

Why is it that logs are so important?

From the point of view of administrator of DB or any system, various logs allow him/her to monitor parameters, activities etc and trace back reasons for any errors/malicious activities.It also keeps the administrator safe from accusations, as he would have immediate proof of all activities.

In case of DBs, it helps capture historic data either for analysis at a later stage, or for the same reasons as mentioned above. It also gives indications when and why your application/system behave in ways it was not meant to.

It is an excellent guide for debugging, and sometimes the only resource in your disposal to identify and correct major issues. If you don't have a robust logging mechanism in place when disaster befalls your crucial data, you better start looking for a new job( or even worse ).

How and what to log

Now, w.r.t a system related more to users,files and devices, logs must be present to capture login, file related and device related data. All major changes to any of these must be recorded for maximum debugging and recovery ability. A standard Unix server which hosts files for multiple users and allows access to multiple devices is a an ideal place to learn about good administrative practices and policies. There will always be a competent administrator behind every well-administered Unix system.

But in case of Windows servers, I won't say that much. The minimal administrative tasks that are configurable will certainly allow the administrator to handle 80-90% of the scenarios smoothly. But for the remaining 10% , a call to Microsoft tech support might be required, which might only be 50% successful in resolving the issue. But they will 90% of the time be successful in closing the request you raise, irrespective of whether they solved your problem or not. Anyway, lets not stray from the topic( I just couldn't resist ).

In a production database handling millions of records with 100+ columns on an average in each table, database designers end up loading a huge amount of logic flows. In this scenario,if any one of these flows end up being wrong, and data has already gone into the DB, it is a hellish task to restore it without substantial downtime. This is where logging and history tables come into the picture.

There are many things that need logging which are dependent upon the business logic of the database. Excluding that, the other things that require logging are DB usage details, abnormal disk/memory usages, logins, transactions etc. Most of the databases have system tables to record almost all these information. But sometimes, the designer/administrator will have to incorporate additional logging tables to record some indirectly available data.

History tables are an excellent tool for debugging and analysis. But,they take up lots of disk space. Sometimes, it is acceptable to archive or purge historical data. In that case, regular maintenance tasks can be scheduled to trim the history tables. But in cases where data is required, we might have to think of extra storage facilities or mechanisms to automatically archive and restore data. Those solutions do have their own processing requirements and hence provide extra overhead, but sometimes are the only solutions suited to the business need.

So, whenever you design a database for transactions involving lots of data, design a robust history logging mechanism as well. You will not regret this decision. It helps in validating logic changes to procedures, migration packages, schema changes etc.

As an administrator or designer of either Operating systems, Web Servers or Databases , it is a very good policy to maintain proper logs/history tables and utilize them effectively to get the required information out of complex systems, and make your life easier. Don't end up giving yourself a nervous breakdown ;)

March 19, 2010

Now, That is Rude!


This is an error message I received for a mail I sent with a mistyped address.

Now thats really personal to say things like that.
The 'Mail Delivery Agent' even apologises that   'he' was not able to deliver my message.
But stating that he doesn't like my recipient IS rude. :D :D

I wonder what all such agents would end up doing if they showed their own tastes and preferences.

Happy Hacking