Monday, March 17, 2014

So, That's it!

2 months back
If you are like me, then there is a list prepared by your mother or wife sitting in your pocket reminding you to purchase some items on your way back home in the evening :) I slightly deviate from my regular walking route and reach the shop where I buy most of the household items. By the time I finish shopping and reach home I am almost dead tiered and never dare to imagine to sit and document how much money I spent few hours back.

1 month back
When Srushti's lab released a private beta version of Expense management application, ServeEase and suggested me to use. I am reluctant to use it until I explored the following feature.

Today
I always suggest my wife to include purchase items to "Expense" section of ServeEase. She does add items marking their price as zero.

So, everyday evening on my way back home, I make sure to check expense section on my mobile and get all items that are with zero price tag. That clearly hints me these are the items to be purchased for the day. As soon as I purchase them, track their cost whenever I find time (like..in the long wait for traffic signals or travelling by city bus) and that's it!


Once in two weeks, I navigate to "Accounts" and check reports section, that clearly present expense and current balance statement to me. End of the day I feel happy because that's all I wanted and ServeEase does it very nicely.

No doubt, it clearly helped me to analyze and control expenses. Saved time, saved some money!

Want to experience the ease of expense tracking? Start now, get it free! www.ServeEase.com

Wednesday, October 16, 2013

Windows forgets visual effects settings on log-out or reboot for non-administrator account

Steps given here worked for me with Windows 7 SP1. Hope you may find it useful.

  • Start -> Run-> cmd (press enter) -> type SystemPropertiesPerformance.exe
  • This gets you the "System Properties" window, go to  Advanced tab -> Performance Settings -> Visual Effects tab and choose "Adjust for best performance" and click OK.
Note: While doing all these UAC doesn't show-up as all changes you are doing will be saved in your logged-in profile account.
Feel free to comment your findings.

Wednesday, February 15, 2012

How it all happened? - The Real Story


Along with my nostalgia, In this post I take pleasure to talk about my college day pet project that helped solving a real-time problem, also a hearty gratitude to my real life Heros.

I studied Computer Science Bachelor degree in my home town Davangere and when I was studying, (not so long ago, but in the year 2003), my college (UBDT College of Engineering) university was putting huge effort in setting, generating and securing question papers for examinations.  

Problem
Every 6 months there are semester exams. At a time, students from 4 semesters (of one branch) has to attend it. Each semester had like 5 to 7 subjects, and there were 7 branches in my college, so university of our college had to prepare at-least 140 question papers! (4 sems X 5 subjects X 7 branches = 140) and another 140 in the 12th month (so per year at least 280 papers only for Engineering courses! and the  university was handling 57 other courses along the side!).  

Question paper setting for these examinations were happening through manual process!!! also the biggest risk university facing was securing question papers from exposures before exam date. The manual effort was huge and tedious. Some more details  here.

Solution
My respected Sir.Shreedhar (who guided me in all aspects of my learning during college days) gave me complete details of paper setting process and inspired me to build a software solution, that can store and manage questions-with-answer bank, allow setting any type of question paper format, generate question papers and secure from before exam exposure. 

The expected software solution should support network (LAN) environment, should run on any version of Microsoft Windows desktops.Also, the software had to address automating functional needs and as less possible training time. It took long time for me to study User Interface Principle for Windows 98/Me (OS at that time :). For networking I had to gain pragmatic understanding of RDBMS and Windows networking

After so many long readings, coding and testing, the software was ready. I installed on university (year 2003) computers and very soon university academic staff started building questions banks and prepared question papers.(in fact, during semester final exams, I had to answer question paper generated from my software! it was tough, damn! later we thought to introduce question complexity levels :)  One fine day I got this official thank you letter: http://srushti-soft.com/quickquest/story/certi_Registrar_view.jpg from university and that day, It was one of the happiest moments in my life!

'Quick Quest' emerged!
Going forward, many other institutions in India and abroad found this software very useful http://www.srushti-soft.com/QuickQuest/SuccessStory and started using. 
Not just that, when I was about to finish my 8th semester exams, got job offer from Starmark to work as Associate Software Engineer. The Vice President of Starmark, Arun Tumati used to visit our college to motivate and train students from technical and soft-skills and during his visit Shreedhar sir suggested me to demonstrate 'Quick Quest'
Today, after 8 years, the same 'Quick Quest' is helping me to start my own company. 

I just can't thank enough to Sir.Shreedhar and Arun Tumati. They are my continuous (on and off the scene) motivators and mentors. My professional existence wouldn't have happened like today if I had not met Sir.Shreedhar and Arun Tumati.

Unlike every man, I have two men behind all my success ;) [women, please excuse me!]

Sunday, February 12, 2012

Top 10 checks before buying question paper setting and generation software

When an educator start searching for question paper generation software, he/she will find plenty products claiming they are the best in automating paper setting and generation process. As the number of similar type of software is more, complexity to settle down to one product increases.

Let me put some helping points to simplify software selection process. 
  1. Software price tag is bit more expensive than your planned budget - but wait! Many of us feel that software price is fixed and not negotiable, In-fact, some companies do offer discounts if they are selling product under promotion period. so make sure you check with them regarding the discount. It's a customer right to negotiate, nothing bad about it!
  2. You checked features list, all competing software has all-most all features! Which one to pick for analysis? -Really, this is a puzzled situation. In that case, Look for the product screen shots or ask for a demo. Take a scenario, such as, how to compose a question paper pattern. Every software has its own way to set a question paper pattern prior to generate question paper. Poorly thought software design will offer you too many confusing options and rise a need of getting trained. Some old-fashioned software will have series of buttons lined up in the bottom or top of  screens and you have no clue what to press and when. Chose the one which is simple and require no or very less training to use. The better software solution should give you the feeling of simplicity and easiness.
  3. Check for online blog or documentation about the software -. Whether you read them or not! This is still an important aspect to look for (seriously, I never read windows help [which pops-up when you press F1 key] or windows product blog, in these 12 years of my time with windows computers!) Still you should look for it because, it defines 'on-line presence of the company' and its dynamics. This directly influence the product quality, future developments and companies sustained support for your current and future needs. You should be purchasing product from a dynamic company and not from the dull one. Isn't it?
  4. If software was built on or before year 2005, then wait! the internal design can't be well thought to support latest internal updates happening in Windows. In another 3 or so years, you will start using Windows 8 operating system and as you can read here. Microsoft's upcoming operating system Windows 8 with WinRT file system (now in developer preview edition) expected to break many traditional programming approaches like accessing database (this is where all your questions, answers..etc gets saved) and other application behaviour aspects. So the old-fashioned software you may wish to purchase for relatively less price may stop working at that time. So keep this in mind and look for software solutions built using latest technology from Microsoft or Sun/Oracle..etc.
  5. Look for the quality -. There is no different analogy than differentiating well branded cell phone (like iPhone, Nokia, Samsung..etc) with a local make (usually cost less) mobile phones. The evaluation of quality considers how does product look, function and your overall feeling after using it for some time. Following same analogy, download demo version of the software, check whether you are able to use it without much confusion, how easy to operate it? are screens good-looking? by the time work on all features in the demo software exploring yourself, you will definitely have firm opinion about overall quality of the product. Be cautious about average quality product, like local make mobile phones, they run good for 1 or 2 years and later break for operating system latest updates or fail to satisfy your varied needs.
  6. Is the software customizable enough to meet your current and future needs? - Let’s say you may want to allow space to write answers in the question paper itself or how the question entry area helps to enter a table data...try to remember your most rare need and figure out how software is providing solution to it. The most effective software does it in a simplistic manner and re-uses your existing knowledge of computers, instead telling its own way of doing it. Remember! if software is providing many options for setting many things, it will be a pain in the long run. You may either forget how to use all those or get confused after few months. Keep it simple, stupid yet effective.
  7. It is always good to move to cloud based computing compared to traditional private database server - Any software providing this feature out-of-the-box should be considered with high priority. Future of internet and computers going to change the way we are leading life now. You may go on vacation but wanted to tweak some questions in the middle, your cloud database will be available for you all the time anywhere in world.
  8. Is Software Company having open system to showcase how their future/updated version of software is coming along? It could be a forum like website or product features/defects tracking website. Whether you buy updated version of software or not. You need to check this to gauge many things like,
    1. It showcases company's commitment and quality of deliverables about the product. Remember any company working systematically will definitely provide an online system for you to review their product development progress. If there is no such system, there is some catch and you need make cautious move before progressing to purchase software.
    2. You can review forth coming product features beforehand.
    3. You can suggest or post your problems to the website and track its progress.
    4. It ultimately shows the company's technical competency and makes sure you are not confused by a middle-man who is pretending to be a real-software solution provider. Don't you like to buy product from best company? You will for sure!
  9. Think about security - Everybody look for user login accounts are allowed to create, subject wise restriction is possible or ability to track user activities. Not just this! Consider, if the software is providing export of complete question bank to a word or excel file or a user is allowed to take print out of all previously generated question papers and there is no way to restrict/lock it? In the beginning, some features may appear sensational, but they may be offering easy way to steal all your data at one shot! So look for usage wise security breaches and how they are tackled in the software.
  10. Compatibility and setup challenges - You may upgrade or degrade your operating system or may apply some service packs to the existing one. Is the software compatible to all those variations? if you prefer to test on different operating systems, you can download free virtual machine software (check link below ) and test on it. Check that data backup/restore and setup related activities are easy to do.
-----------------------------
Virtual machine free software for download: https://www.virtualbox.org

Windows 8 WinRT file System breaking changes and discussion: http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/380b4b7b-72e2-4435-b7f7-0d2afca4eac0

In the interest of guiding educators.

Thank you!

Visit our product page: Quick Quest - world's most advanced and easy to use question paper generation software for any sized institution.

Thursday, February 09, 2012

Is your Facebook account secured?

In our day-to-day social networking activities, we sometimes hear people saying about their Facebook account was compromised or hijacked.

Along with our common measures (having complex password, not clicking alien links..etc) to protect ourselves, I am sure, there is one more thing, which may be overlooked (at-least I did it :). Let me share that here.

1. Login to your facebook account. (I guess, you are already, if you have got this article link from Facebook :) 

2. Go to your 'Account Settings'












3. ..and then go to 'Apps' section situated in lefts-side menu bar,











Ideally, any secured Facebook account "App Settings" page should not list many many application entries. If so, you are royally welcoming the malicious service provider to screw your account :) 

So hurry up and remove those apps which you are not using and unknown to you and stay safe! Please keep in mind that some applications (like TweetDeck..etc) you might have allowed them to access intentionally. 

Did you see many unknown apps in your Facebook App Settings? Comment and share your thoughts here!

Monday, November 28, 2011

In This World - 17

"The true leadership is not given, it should be earned and consistently demonstrated."

"A true leader creates more leaders and feared ones create blind followers"

Friday, November 18, 2011

Hiring a Super Programmer?

When it comes to programming, I noticed most of the super programmers share similar attitude and thought process. I started identifying similarities whenever I took interviews.

After meeting 300+  potential candidates (thanks to all my previous companies choosing me as interviewer), I dared to have a quick points to spot a 'Super Programmer' from the pool of programmers.

When I shared these points with my colleagues, they found it useful during their interviews.

Please note

  • These points are strictly valid for 'Rock Star Programmers' only. If you apply these observations to a good programmer, you may loose him. 
  • I always don't follow these points very strictly in interviews as there will be many other aspects to consider, However these can just be used as indicative pointers if you feel good. 

So here it goes,
  • They may be little nervous in the beginning. When you ask them about their interesting project, their eyes glow and for a moment they just forget where they are and completely immerse in explaining the problem, how much they were amazed, their explorations and implementations.
  • They have habit of knowing all latest happenings in their interested technical area. That means they are closely following beta and release candidates as well.
  • They read lot of blog posts, tech articles and most of the time own a technical blog. They have good bunch of posts on technical articles or pointers in their blog.
  • Even if they don't know the answer, they logically think and almost get through the problem. Their hands don't shiver when writing code. No matter even if the syntax is wrong.
  • They always try to generalize the approach and try to make it reusable.
  • They are fanatic about browsing the project code-base and finding out what is best in it. If something is badly designed or written, it disturbs them and try to revamp/fix it if permitted. They will be proactive in doing it (provided such an opportunity is given).
  • They have earned good reputation points in technical forums. That is more important than having bunch of certifications.
  • Their resume contains bunch of memory profiling, performance profiling, code review tools and many popular open source frameworks used (like Caliburn..etc) in their project and few of those is introduced in the project because of them.
  • Ask which piece of code in their previous projects liked a lot and which was not. It indirectly tells us their level of understanding about technology.
  • Observe your conversation with them. As you know, the developers conversation context is bit different. Are they catching it quickly? your such conversation should go with them smoothly. For example, I usually ask what version of Dotnet you are using and many reply, its 2010 or 2008! First point, They are best Visual Studio.Net IDE users than Dotnet programmers. Second, they are not understanding the context. I have asked the version of Dotnet framework not the IDE. If you are explaining too many things during the discussion, then there is a problem.
  • When you give them a paper and pen and ask to write a program, check how much space they waste. 2 things to notice,
  1. If they fill A4 sheet page to write 2 small programs (reverse a string and looping through ArrayList having different type of objects) maintaining bigger inline space, then they can't think more on efficient usage of computing resources also. Even if they think, it may be their simple programming habit but not something coming out from geeky mind. This is more inspired from 'you will work the way you really are'.
  2. With minimum inline spacing, even if they fill A4 sheet writing lot of code (without striking unused ones) then, they are dangerous programmers. They can explain the logic on the same day when its  written and anytime in future you need to pray for God to know about the hidden logic.
  3. Why there should be a 3rd point when I said only 2.
  • Ask them very basic questions (If you have to implement AJAX response/request what objects do you use in Javascript) and see how detailed and thoughtful answer they give. Whats more interesting is how deep they delve and present different aspects of it.
  • They have either contributed to one of open source projects (on CodePlex, SourceForge,gitHub..etc) or have hosted their own.
  • They have published some articles on technical article sites (like CodeProject...etc)
  • Majority of their posts on twitter or facebook speaks about their serious technical explorations than 'I ate this', 'been here..' or sharing funny cat videos.
  • They have list of achievements in the resume and may not be a certified professional. 
No matter even if candidate don't stand true for all above points. Most of the time we believe our senses and take the decision (and that is usually proved right.)

Well, this is my list. Do you have some quick points? Feel free to share here.

Thanks for reading!



Saturday, November 12, 2011

Openness with Free Web Fonts

If you want to design a webpage with stylish font. There are few important things to consider before using graphical text images.
  • If you prefer search engines bring traffic to your web page, it has to be Search engine friendly, as of  now crawling engine ignore text written in images. (BTW, can search engines improve to extract text from image and index? like Quick Quest does ;)
  • The font should be rendered and displayed consistent across multiple browsers.
  • When viewed through mobile browser, it should wrap (as normal text do) to fit the small screen.

Its now old fashion to choose the most common font (either Times New Roman or Arial, that are for sure exist in users computer) and design the page accordingly to stay safe.

Things have changed, so the approaches.

To respect above points, HTML font embedding became essential need to design impressive web page (SrushtiSoft.com home page is using font embedding. Its live now!).

Back in 1997, Microsoft released Web Embedding Fonts Tool (WEFT) which allows to create font objects (.eot) file from our favorite True Type Font (TTF) and refer it in CSS. That's all! Any page viewed in Internet Explorer started rendering our favorite font even if it is not present in user's computer.

That's really cool.

As usual, Microsoft restricted this openness only to IE browsers and that made many web developers to ignore this effort silently. (However, Microsoft is still active on WEFT initiative and anytime may strike back)

So there comes Google with free open source Web Fonts! http://www.google.com/webfonts.

As of now there are 291 free open source fonts for embedding. With each font, Google provide a quick guidelines on how to use in a web page.

Your jaw drops when you see Google giving just 2 lines to integrate web fonts!

SrushtiSoft home page uses one very decent font out of 291 Google web fonts. We tested it over 100+ browsers on Linux, Windows and Android platforms and very few browsers failed to render.

I sense strong future of web fonts as they make web pages to render without mandating users to install required font. For a web developer, there is so much of relaxing factor in it. :)

Tuesday, October 05, 2010

In This World - 16

"Relationship shouldn't be complicated, if it so, then its time to look at it from a different perspective and attempt to resolve challenges, if that doesn't work at any cost, put a period and move on."

Well..I have one more view to share which may sound bit contradictory to what I expressed above, but its indeed an unarguable truth!

"Move on - is the simplest one to say and most difficult to go through!" :)

Sunday, September 26, 2010

Windows Service or Windows Task Scheduler?

Are you planning to create long running background process (in C#) and thinking to build a Windows service?

Then wait for a moment!


Windows Task scheduler (Start->Programs->Accessories-> System Tools-> Task Scheduler) can also be a decent choice!

"Windows Vista and higher windows (server) operating systems are offering matured Task scheduler with many advancements like Triggers, Actions, Conditions, failure recovery, email notifications, security and much more."

Its obvious that many programmers think Windows Service is easy to maintain and what it can do, task scheduler can’t. But now, it’s time to look at Windows Task Scheduler [also at Microsoft white paper] and see what great features it is offering.

When to go for Windows Service?
Okay, let me try to answer this popular question in one line. 


Windows Service is suitable for receiving service request 'anytime' and process 'instantly'.

Just think of anti-virus scanner, network port activity tracker, remote access connection manager, SQL Server database service, chat server..etc. all these need ‘long running process’ because they have to serve the service requests coming in ‘any time’.

Scheduled Processes
If  

your process wake up every few minutes, queries intended source (like database, Message Queue..etc), performs some operations and goes to sleep
And
Next time when it wakes up, has no interest in knowing what it did previously.
then 
consider leveraging Windows Task Scheduler. Write a console program (hide console window if you want) or WinForms program (with Form + Taskbar visibility false) and set it up with Task scheduler.

Benefits

  • No need to implement timer logic to keep process alive. Having programatic timer unnecessarily consume more CPU cycles because Windows has to create some more threads to keep timer run properly.
  • Avoids doing more R&D on finding and troubleshooting memory leak problems. Windows Scheduler gracefully terminate the windows process (on which our program is running) and creates new one for next run.
  • Don’t have to worry about automatic restart of your process when it crash or to perform multiple retries whenever it encountere problems.
Points to consider...
  • From support point of view, consider using logging component (like log4net) to log events to windows event viewer. Many monitoring systems mostly listen to event viewer and send notification emails to support team to flag about the problem.
  • When setting up your process with Task Scheduler, make sure to check option to run it  even when user is NOT logged into the system.
  • Make sure 'Task Scheduler' service (Start->Run->type 'services.msc' and check) is running on server operating system and set to 'Automatic' mode.
That's all for now. However choice between windows service and task scheduler is a design decision and depends on requirements. If something is tickling in your mind and want to express your thoguts as a comment, feel free to share here. Thanks!