Mar 9, 2010
Voucher template
I have had a issue with vouchers in the past - they are generally very cumbersome. They waste your time and are badly designed from a user experience point of view. One of the companies I worked at, Talisma, had a great travel expense report template. Years later, when I started my firm, my CA asked me to get vouchers printed. Working in an IT environment, obviously I rebelled at the idea. I took the travel expense report template which we used in Talisma and modified it to make a voucher template which we use currently at Cheese.
Badly designed administrative tools act as a morale dampner. In a startup you have things more important to do than to convert numbers to figures.
I hope you would find this voucher easy to use. You can easily customize it to suit your needs. In the attached template, I have shown how you can add custom categories to track categories relevant to your need. Only cells B3 to Q36 should be edited. The entire template is designed in such a way that it can be printed in one sheet of paper for upto 26 expense items. Go save some trees!
Note: To download the xls version, please click here.
Voucher
Mar 3, 2010
The Client is NOT Always Right
The path that the decision makers choose depends solely on their “ideals”. One person might value his design etiquettes above everything and would not listen to any crappy suggestions from the clients. Doing this might assure a perfect product but the client would get an impression that the service provider is adamant and rude. This would be dangerous for the firm’s reputation and might lead to market contraction for them. Those who realize this, follow the flipside approach of agreeing to all that the client says. They just keep doing things as he wants them to be done. After all, it is he who is going to suffer if the product is delivered with loopholes he himself contributed. Why risk displeasing the client when we can compromise on our principles to suit his needs. This approach, I guess, might appear healthier to many although it is as erroneous as the former. Feb 27, 2010
Make a search with multiple input fields using PHP, Mysql
I was trying to fix the issue of "or" and "and" condition holder based on uncertain inputs by users. I wrote this and it works great for me.
below image shows the form.


In this form keyword input should match with all the available column in tables
if(isset($_POST['search'])) // Check whether form is submitted
{ if(isset($_POST['key'])) // Checks the field is set(present) or not
$key = is_not_null($_POST['key'])?$_POST['key']:false; // Set the value if user enters in input field if(isset($_POST['domain']))
$domain = is_not_null($_POST['domain'])?$_POST['domain']:false;
if(isset($_POST['course']))
$course = is_not_null($_POST['course'])?$_POST['course']:false;
if(isset($_POST['subdomain']))
$subdomain = is_not_null($_POST['subdomain'])?$_POST['subdomain']:false;
if(isset($_POST['duration']))
$duration = is_not_null($_POST['duration'])?$_POST['duration']:false;
if(isset($_POST['projectid']))
$projectid = is_not_null($_POST['projectid'])?$_POST['projectid']:false;
if(isset($_POST['addedby']))
$addedby = is_not_null($_POST['addedby'])?$_POST['addedby']:false;
$param=""; // Start a variable to use as conditional parameter in mysql query
$finalQuery = ""; // Start a variable to use as final parameter in mysql query
$kewQuery = ""; // Start a variable to use as keyword parameter in mysql query
$queryKeyCount = 0; // Start a variable to use in variable place to put "or" and "and" in mysql query
$query = DB_query("select * from ".TABLE_PROJECT_DETAILS.""); // select query to get columns of table $fieldName = mysql_field_array($query);
for($i=0;$i
$kewQuery .= " ".$fieldName[$i]." like '%".$key."%' or" ; // put "or" condition for keyword
else $kewQuery .= " ".$fieldName[$i]." like '%".$key."%'" ; // last "or" should not be here
}
foreach($_POST as $name => $value) { // this loop to match all the post value
$value = is_not_null($value)?$value:false; // set the value if it filled by user
if($value) // checks if value is filled
{
if($name != "search") // check the submit button value it should not increase the count
$queryKeyCount = $queryKeyCount + 1; // increase the count if any input is made by user
if ($queryKeyCount>1 && $name != "search" && $name != "sortProj") // check all the button and unwanted input
fields, it should be used to avoid adding unwanted "and" condition in query
$finalQuery .= " and ";
if($name == "key") // check if keyword is filled by user, if so then query should add above key query to final query $finalQuery .= " (".$kewQuery.") ";
if($name == "course")
$finalQuery .= "aca_project_suitable_for ='".$course."'"; // add the conditions according to requirements
if($name == "domain")
$finalQuery .= "aca_project_domain ='".$domain."'";
if($name == "subdomain")
$finalQuery .= "aca_project_subdomain ='".$subdomain."'";
if($name == "duration")
$finalQuery .= "aca_project_suggested_duration ='".$duration."'";
if($name == "projectid")
$finalQuery .= "aca_project_id = '".$projectid."'";
if($name == "addedby")
$finalQuery .= "aca_user_type ='".$addedby."'"; } }
if($queryKeyCount>0) // check whether user is made input in any field
$param .= "where "; // based on condition set the "where" clause in query
$param .= $finalQuery; // finally put the final query to go with the query
$sortByQuery = "";
if(isset($_POST['sortProj'])) // check if sort is choosen
{
$sortBy = $_POST['sortProj'];
if($sortBy == "sortByRate") // match the sore value
$sortByQuery = "order by aca_project_star DESC, aca_project_create_date DESC, aca_acadinnet_rate DESC, aca_project_total_workgroup DESC, aca_project_name"; // add sorting condition for the query
else if($sortBy == "sortByAcaRate")
$sortByQuery = "order by aca_acadinnet_rate DESC, aca_project_create_date DESC, aca_project_star DESC, aca_project_total_workgroup DESC, aca_project_name";
else if($sortBy == "sortByWorkgroup")
$sortByQuery = "order by aca_project_total_workgroup DESC, aca_project_create_date DESC, aca_acadinnet_rate DESC, aca_project_star DESC, aca_project_name";
else
$sortByQuery = "order by aca_project_create_date DESC, aca_project_star DESC, aca_acadinnet_rate DESC, aca_project_total_workgroup DESC, aca_project_name"; }
else {
$sortByQuery = "order by aca_project_create_date DESC, aca_project_star DESC, aca_acadinnet_rate DESC, aca_project_total_workgroup DESC, aca_project_name"; }
$param .= $sortByQuery;
$get_proj_query = DB_query("select aca_project_id as id from " . TABLE_PROJECT_DETAILS . " ".$param); $fav_proj_ids = get_fav_projects_id($_SESSION['']);
while($get_proj = DB_fetch_array($get_proj_query)) {
if(is_array($fav_proj_ids))
$fav = in_array($get_proj['id'],$fav_proj_ids)?true:false; echo draw_full_proj($get_proj['id'],$fav);
} }
Finally got a great output in any condition. Hope it will help you to find solutions for your search form development.
Comment if any doubt or suggestion.
Feb 23, 2010
Feb 17, 2010
"Watch" That Design!!
Tokyo Flash Zero G Watch
Feb 10, 2010
UI Design Tips
- clear understanding of the users' expectations
- innovative solutions for easy use of interface items
- excellent graphical elements to improve visual experience.
- Remove irrelevant information: It is important to consider the importance of any information placed on the interface to the user. Sometimes, showing too much information is not required when minimum details might be sufficient. We can always allow the user to 'See More' if he needs to.
- Minimize the number of steps: It is not a good idea to make the user do a lot of work. For example, if the user has to go through a lot of pages and a lot of steps to complete what she is trying to do, she might get frustrated and leave. At times, it is important to have numerous steps. Let the user know in advance in such a situation, so that the expectation is set correctly in the beginning of the interaction itself.
- Differentiate information from actions: It is always good to visually separate information from the actions. You would not like people to try and find out where to click. The actions should be differentiated in a particular style so that the user always knows where to click and where to read.
- Do not clutter the page with advertisements: People today know what looks like an advertisement. If you fill up your pages with advertisements, people tend to loose credibility on your website. Advertisements wherever need, should be accounted for separately and neatly, so that the user does not feel that he is clicking on it by mistake or is being forced to click on it.
- Keep a dignified and uniform look and feel: It is advisable to have a visually connected look and feel for all the pages of the interface, for the purpose of building a unique identity. If every page of the website looks like an altogether new page, the user will never have an identity in mind for your brand.
- Analysis of primary activities the user is intended to perform
- Consideration of scenarios in which the user might need to use the interface
- Outline or wire-frame design of pages showing the information design
- Design of preliminary designs and integration with the product back-end
- Feedback gathering through sharing the interface with stakeholders and formal user testing
- Finalizing by incorporating changes based on the feedback
Feb 3, 2010
iPad Impressions
Last time there was this much excitement about a tablet, there were commandments written on it- WSJ
iPad has been announced and there is a general feeling of disappointment. Apple for the first time in a decade has not met or exceeded expectations.
But lets face it, with the hype around the event, anything short of a tablet which would replace netbooks,laptops,desktops,cell phones,ebook readers,music players,portable media players, digital photo frames, gaming consoles and coffee makers would have been classified as a letdown. Apple lost out to its own hype but then the launch of a its “latest creation” was seriously underwhelming.
Firstly, iPad? Seriously? Slate was taken up by HP and hence, iSlate was out. Maybe Apple wanted to go for a name that was not rumored earlier which cuts out iTablet etc. iPad is not the most awe-inspiring gadget name ever but neither was iPhone. Apple is counting on the product being cool enough to make people look beyond the name.
Secondly, iPad does not bring a new UI paradigm to the table. iPod revolutionized music players with its scroll wheel navigation. iPhone changed the way people interacted with their cell phones because of the multi touch navigation. iPad is more of the same. The fact that there are “75 million users who already use this technology” might actually curtail the sales of iPad.
No multitasking means no chatting while watching the latest episode of Supernaturals. Or working on a spreadsheet while googling for relevant info. However, Apple has not confirmed or denied the absence of multitasking.
No flash support which translates to Apple not giving a damn if your cows, crops etc die out in farmville.
No front facing camera. Hence, no skype video calls on the move or real time pictures for twitter or FB.
No USB. So no mouse or external HDD support. 16 GB space is a seriously limiting factor to iPad doubling up as a video player as it would need regular sync with a laptop to transfer movies and videos.
iPad does come with iBooks, Apple’s foray into eReaders. My personal experience with reading ebooks on a LCD screen has not been that great but Apple’s LCD and multitouch UI could make it work. Kindle for iPhone app will work on iPad unless Amazon pulls it out of app store. Kindle and other ebook readers are facing a very real threat from iPad.
Is iPad a “third category of products” as Mr Jobs claimed? It will not be able to replace netbooks/laptops as primary computers or cell phones as primary tool for communication. Primary users of iPad will be customers of ebook readers as they can use iPad for other tasks when they do not feel like reading. So yes, iPad is indeed a 3rd category of devices as the evolutionary next step to Kindle/Nook.
It is a sleek device with Apple logo at the back, sexy LCD in the front and more of the multitouch UI that people cannot get enough of. Steve Jobs’ guarantee of an experience like none other is good enough to sell millions of devices in the first year itself. But for the 1st time since iPod, Apple seems to have made a mistake. The opportunity to take on Apple and win the war of the tablets is there. There is a 60 day window for competitors to make their case before the iPad becomes available.
Will I get one? Not sure. I have a policy of not buying any 1st generation gadgets to avoid headache and stress. However, I do want an ebook reader with ePub/PDF capabilities. So it is wait and watch for me as more information and hands-on experiences become available.
Jan 31, 2010
GizaPage: Easing the Social Networking Process
Jan 27, 2010
How to make decisions in uncertainty? by Prof Saras Sarasvathy
The talk would greatly help those with entrepreneurial intent as it will change the way we approach problem solving and decision making related to starting and growing a venture.
Prof. Sarasvathy has initiated this research under the guidance of Nobel laureate Prof. Herbert Simon by studying expert entrepreneurs with companies with annual sales from $200 million to $ 6.5 billion. This research work is now gaining popularity world over as more and more researchers are now adding to the knowledge base. Drawing inspiration from her work, data is now available on the decision logic of novices, managers, organic growth leaders, angels, VCs and the early histories of entrepreneurial firms.
Jan 21, 2010
Fond of Fonts?
It is heartbreaking to note that fonts are one of the most erred aspects of website design, as postulated by this list. Not just the type of font, but sizes, spaces, colors and many other aspects have to be taken care of while using fonts. An interesting discussion on the font sizes can be found here.
- Headlines Font Size - 18-20 px or 24-26 px
- Body text- 13 px most popular
- Pure white background
- Heading to Body Font-Size Ratio - 1.96
- Line height (pixels) ÷ body copy font size (pixels) = 1.48
- Line length (pixels) ÷ line height (pixels) = 27.8
- Space between paragraphs (pixels) ÷ line height (pixels) = 0.754
- Characters per line - 73 and 90
- Left padding of on average 11.7 pixels

![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=a2a5a7db-d8f1-4643-bbdc-0ad4867050a0)









![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=6df2f10c-898f-44ef-b18c-80d636899657)


![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=2b67bd92-74c5-4fcc-98ee-45db8f2dd5ce)