<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TF-1 :: Technology Blog</title>
	<atom:link href="http://www.taskforce-1.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.taskforce-1.com/blog</link>
	<description>TaskForce-1 Blog</description>
	<lastBuildDate>Tue, 18 Jun 2013 21:08:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to configure twitter module in Drupal?</title>
		<link>http://www.taskforce-1.com/blog/2013/06/18/how-to-configure-twitter-module-in-drupal/</link>
		<comments>http://www.taskforce-1.com/blog/2013/06/18/how-to-configure-twitter-module-in-drupal/#comments</comments>
		<pubDate>Tue, 18 Jun 2013 21:08:17 +0000</pubDate>
		<dc:creator>bill.yin</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Drupal CMS]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1545</guid>
		<description><![CDATA[Twitter is a popular information network tool. It connects you to the everything you find interesting. Most of websites use twitter and keep updating their real-time Tweets. This time, I am going to show you how to configure a twitter module in Drupal CMS. Before you start, make sure you installed OAuth and Twitter module [...]]]></description>
			<content:encoded><![CDATA[<p>Twitter is a popular information network tool. It connects you to the everything you find interesting. Most of websites use twitter and keep updating their real-time Tweets. This time, I am going to show you how to configure a twitter module in Drupal CMS.</p>
<p>Before you start, make sure you installed <a title="OAuth" href="https://drupal.org/project/oauth" target="_blank" rel="nofollow">OAuth</a> and <a title="Twitter" href="https://drupal.org/project/twitter" target="_blank" rel="nofollow">Twitter</a> module in your drupal site. Then you also need to sign in the twitter developers site to register your twitter application. It is very simple to create a twitter application. Just fill out your application details. When you finish it, you will find Consumer key and Consumer secret. Keep it and you will use it in your Drupal site.</p>
<p>Now, let us go module page and find twitter module. First step is configuring it. Go to  Configuration -&gt; Web services -&gt; Twitter -&gt; Setting.  In the &#8220;OAoth settings&#8221; section,  it says that &#8220;To enable OAuth based access for twitter, you must <a href="https://dev.twitter.com/apps/new" target="_blank" rel="nofollow">register your application</a> with Twitter and add the provided keys here.&#8221; Fill the Consumer key and Consumer secret there and go click the &#8220;Twitter&#8221; label on the top-right of page. In this page, you need to add &#8220;Twitter account name&#8221; information. If you add twitter account succeed, it will show on the list. The module allows you add multiple twitter account.</p>
<p>After configuring the twitter module, Drupal will create a view calls  &#8220;Tweets&#8221;. There are three items in this view, Tweets Raw, Block and Tweets. The last piece of the puzzle is working on those items for your site. You can add new items here as well.</p>
<p>Yeah!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/06/18/how-to-configure-twitter-module-in-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GMail Flat User Interface usability, affordability and discoverability</title>
		<link>http://www.taskforce-1.com/blog/2013/06/02/gmail-flat-user-interface-usability-affordability-and-discoverability/</link>
		<comments>http://www.taskforce-1.com/blog/2013/06/02/gmail-flat-user-interface-usability-affordability-and-discoverability/#comments</comments>
		<pubDate>Sun, 02 Jun 2013 17:23:56 +0000</pubDate>
		<dc:creator>slobodan.miskovic</dc:creator>
				<category><![CDATA[User Inteface]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1571</guid>
		<description><![CDATA[Note: As usual, this is most likely going to end up being quite tangential. Enjoy. Flat vs 3D Seems like the design world is pushing hard to give us the beauty and clutter free experience of flat user interfaces. From Windows Phone and Metro interfaces, to Google&#8217;s ever so slight gradients on button hover; we [...]]]></description>
			<content:encoded><![CDATA[<p><em>Note: As usual, this is most likely going to end up being quite tangential. Enjoy.</em></p>
<h2>Flat vs 3D</h2>
<p>Seems like the design world is pushing hard to give us the beauty and clutter free experience of flat user interfaces. From Windows Phone and Metro interfaces, to Google&#8217;s ever so slight gradients on button hover; we are simply waiting for Apple to wow us with their interpretation, and release us from the evil skeuomorphism. But, I have to admit, I have a very soft spot for hyperbolized 3D of yore.</p>
<div style="text-align: center;"><a href="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/windows-3.x-buttons.png"><img class="size-full wp-image-1573 alignnone" title="Windows 3.x Buttons" src="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/windows-3.x-buttons.png" alt="Windows 3.x Buttons" width="82" height="90" /></a><a href="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/windows-mobile-buttons.png"><img class="size-full wp-image-1592 alignnone" title="Windows Mobile Buttons" src="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/windows-mobile-buttons.png" alt="" width="148" height="90" /></a></div>
<p>This is not just nostalgia. There was something very comforting about knowing what areas of the screen are actionable, not to mention the great feeling of the button receding into the screen when mouse button is pushed down. Quite a tranquilizing experience; I spent many holding the mouse button down as I hovered the cursor over and then away from the button, not being able to get enough of that tactile feeling.</p>
<div style="text-align: center;"><a href="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Windows-3x-OK-Button-Pressed-Animation.gif"><img class="aligncenter size-full wp-image-1574" style="margin: 30px auto;" title="Windows-3x-OK-Button-Pressed-Animation" src="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Windows-3x-OK-Button-Pressed-Animation.gif" alt="Windows 3x OK Button Pressed Animation" width="83" height="30" /></a></div>
<h2>Skeuomorphism</h2>
<p>Now, skeuomorphism has been done wrong very many times &#8211; <a href="http://hallofshame.gp.co.at/" rel="nofollow">Interface Hall of Shame</a> has many examples of that and other snafus. Most recently I&#8217;ve been annoyed by iBooks&#8217; useless and fake pages that broder the content. If they were serving as indication of roughly how big the book is, and telling me how far along in the book I am &#8211; well, it would be a great feature! But as it is right now, it is but a failed opportunity. Worse, it has to be consciously ignored, as my real books don&#8217;t lie to me like that. Don&#8217;t get me wrong, I actually have nothing against simulated leather, cloth or paper backgrounds. I do like how they look, and think they can ofter be nicer than a plain colour that flat UI pushes on us; but that is just matter of personal taste so I wouldn&#8217;t proclaim that universally texture is better design than plain colour.</p>
<h2>Anecdotal GMail Usability Challenge</h2>
<p>What I think is a little bit more objective is the usability of flat UI. I think it is really hard problem to make the interface offer affordability and discoverability if you are trying really hard to make everything look &#8220;clean&#8221;. I&#8217;ll give example of what I mean by exploring the GMail interface.</p>
<p>Here&#8217;s a challenge: help your mother-in-law to send an email from her new Chromebook. She is a first time computer user, and you can only use phone to communicate (given how there is no remote assistance functionality in sight). Go!</p>
<p>First instinct is to let them know to look for a &#8220;Compose <strong>button</strong>&#8220;. But nothing in there looks like a button. Remember the 3D-ness of Windows 3.x buttons? Well, GMail Compose button is slightly more subtle.</p>
<div style="text-align: center;"><a href="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Gmail-Compose-Button-Animation.gif"><img class="aligncenter size-full wp-image-1580" title="Gmail-Compose-Button-Animation" src="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Gmail-Compose-Button-Animation.gif" alt="Gmail Compose Button Animation" width="116" height="31" /></a></div>
<p>Hm, it doesn&#8217;t really look like a button. Well, if you hover over it, and you have really sharp vision, you will notice a bit of drop shadow and a gradient appear, so it looks slightly more buttonish. So you change your strategy and tell your mother-in-law to look for &#8220;Compose in a biggish red rectangle in the top left of the screen&#8221;. Since there is so much text, and scanning the screen looking for rectangles isn&#8217;t really one of the skills people tend to hone, it takes a bit of effort:</p>
<blockquote>
<ul>
<li>Do you see the +Name in the top left?</li>
<li>&#8230; Yes</li>
<li>See &#8220;Google&#8221; below it?</li>
<li>.. Yes</li>
<li>Do you see &#8220;Gmail&#8221; below that?</li>
<li>. Yes</li>
<li>And right below is Compose!</li>
<li>Yes!</li>
</ul>
</blockquote>
<p>For sure, next time it will be much faster, but this wasn&#8217;t pleasant the first time. People have lots of experience looking at real buttons,  and if &#8220;compose&#8221; looked more like one, I propose that this would have been a simpler task.</p>
<p>But fun isn&#8217;t over quite yet. Now, what did the compose button, located in the<strong> top-left</strong> portion of the screen do exactly? Why, it opened up the new message box in the <strong>bottom-right</strong>, of course. Makes total sense. If at least it provided some animation of it popping out of the button so that while your attention is focused on the compose button, you can be made aware of what is happening. Tunnel vision is real, and another session of looking for the newly opened window and  blinking cursor therein begins&#8230;</p>
<h2>GMail Message Composer</h2>
<p>There are some problems with the new message box, too. While you are in recipients box, it actually says  To and has Cc and Bcc buttons on the far right of the entry line. The only indication that you can click the To or Cc and Bcc is if you hover over them; then you are greeted with and underline, a tooltip and a hand mouse cursor. But click out of the recipients box and you no longer see the To, Cc, or Bcc buttons. I was never a fan of disappearing UI elements, whether they are disabled or just currently not 100% relevant, i still like to have some indication where they are, maybe hide them behind ellipsis or something.</p>
<div style="text-align: center;"><a href="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Gmail-New-Message-Animation.gif"><img class="aligncenter size-full wp-image-1582" title="Gmail-New-Message-Animation" src="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Gmail-New-Message-Animation.gif" alt="Gmail New Message Animation" width="525" height="483" /></a></div>
<p>I mean, there is some logic and vague consistency behind the UI elements in Gmail:</p>
<ul>
<li>Actionable buttons are coloured rectangles. Except when they are just an icon.</li>
<li>Navigation and new dialogs are open by piece of text that underline on hover, or the cursor turns into hand, or both. Except for the Compose button, which simply opens a new window and neither changes the cursor nor it becomes underline.</li>
</ul>
<p>Given that pretty much everything drawn on screen can be interacted with in GMail, the challenge is pretty big on making it both look clean and be discoverable. But I think there is room for improvement that would help newbies and veterans alike get the most of the interface.</p>
<h2>Veterans need help?</h2>
<p>Ok, last rant, I promisse. After a short hiatus from GMail (I don&#8217;t use @gmail much these days) I was looking for my Google Contacts. I remember it being a link on the left side, so I started looking there. Please come along for the ride.</p>
<p><strong>Step 0</strong>: Look around. It&#8217;s not immediately visible:</p>
<p style="text-align: center;"><a href="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Contact-Search-Step-0.png"><img class="aligncenter  wp-image-1583" title="Contact Search - Step 0" src="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Contact-Search-Step-0.png" alt="" width="543" height="476" /></a></p>
<p><strong>Step 1</strong>: OK, I see the &#8220;More&#8221; with a downward triangle on the left side, how about there?</p>
<p style="text-align: center;"><a href="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Contact-Search-Step-1.png"><img class="aligncenter  wp-image-1584" title="Contact Search - Step 1" src="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Contact-Search-Step-1.png" alt="" width="543" height="476" /></a></p>
<p>Nope <img src='http://www.taskforce-1.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p><strong>Step 2</strong>: Hm, Google Contacts is a Google product. What if I click the More link in the nav bar?</p>
<p style="text-align: center;"><a href="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Contact-Search-Step-2.png"><img class="aligncenter  wp-image-1585" title="Contact Search - Step 2" src="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Contact-Search-Step-2.png" alt="" width="543" height="476" /></a></p>
<p>Nope. (Don&#8217;t bother clicking &#8220;Even More&#8221;, it&#8217;s a lie)</p>
<p><strong>Step 3</strong>: Heeey, there is a tiny arrow next to giant GMail text?</p>
<p style="text-align: center;"><a href="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Contact-Search-Success.png"><img class="aligncenter  wp-image-1586" title="Contact Search - Success" src="http://www.taskforce-1.com/blog/wp-content/uploads/2013/06/Contact-Search-Success.png" alt="" width="543" height="476" /></a></p>
<p>Success! I guess that technically it&#8217;s as easy as 1,2,3. Boy, do I ever feel stoopid for not figuring it out sooner&#8230;.</p>
<p>Joking aside, while I am able to just chalk it up to awkward UI and not beat myself over a little hide and seek game, beginner users are likely to think of themselves as not being capable to understand any UI at all, it and they may have less courage to explore all the features of a product.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/06/02/gmail-flat-user-interface-usability-affordability-and-discoverability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spam control modules</title>
		<link>http://www.taskforce-1.com/blog/2013/05/31/spam-control-modules/</link>
		<comments>http://www.taskforce-1.com/blog/2013/05/31/spam-control-modules/#comments</comments>
		<pubDate>Fri, 31 May 2013 01:20:12 +0000</pubDate>
		<dc:creator>brian.chen</dc:creator>
				<category><![CDATA[Drupal CMS]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1552</guid>
		<description><![CDATA[Having a headache with spam on your Drupal site? Allow me to introduce you to some of the the spam control modules in my recent research. Let me list them below. &#160; 1. Spambot &#8211; https://drupal.org/project/spambot How &#8211; Verifying registration attempts against the Stop Forum Spam (www.stopforumspam.com) online database. Pros &#8211; No annoying captcha to enter; [...]]]></description>
			<content:encoded><![CDATA[<p>Having a headache with spam on your Drupal site? Allow me to introduce you to some of the the spam control modules in my recent research.</p>
<p>Let me list them below.</p>
<p>&nbsp;</p>
<p>1. Spambot &#8211; <a href="https://drupal.org/project/spambot" rel="nofollow">https://drupal.org/project/spambot</a></p>
<p>How &#8211; Verifying registration attempts against the Stop Forum Spam (<a href="www.stopforumspam.com">www.stopforumspam.com</a>) online database.<br />
Pros &#8211; No annoying captcha to enter; free<br />
Cons &#8211; I think it only protects the user reg form, not good enough (?)<br />
2. Spamicide &#8211; <a href="https://drupal.org/project/spamicide" rel="nofollow">https://drupal.org/project/spamicide</a></p>
<p>How &#8211; Adds an input field to each form then hides it with css, when spam bots fill in the field the form is discarded<br />
Pro &#8211; no annoying captcha to enter; free<br />
Cons &#8211; The spam bots may learn this trick and avoid this field in future.<br />
Similar to this HoneyTrap idea: <a href="http://www.newblood.com/blog/drupal-customization-drastically-reducing-spambot-user-registration/" rel="nofollow">http://www.newblood.com/blog/drupal-customization-drastically-reducing-spambot-user-registration/</a></p>
<p>&nbsp;</p>
<p>3. Spam &#8211; <a href="https://drupal.org/project/spam" rel="nofollow">https://drupal.org/project/spam</a></p>
<p>How &#8211; By applying lots of filters to flight spams<br />
Pro &#8211; no annoying captcha to enter; free<br />
cons &#8211; lots of settings/filtering to do; lots of maintenance work</p>
<p>&nbsp;</p>
<p>4. AntiSpam &#8211; <a href="https://drupal.org/project/antispam" rel="nofollow">https://drupal.org/project/antispam</a> or Mollom &#8211; <a href="https://drupal.org/project/mollom" rel="nofollow">https://drupal.org/project/mollom</a></p>
<p>How &#8211; A web service that runs hundreds of tests on the comment and returns a thumbs up(ham) or thumbs down(spam)<br />
Pro &#8211; no annoying captcha to enter, good spam stop rate<br />
Cons &#8211; not free for large sites; you give out form data to third-party for review.</p>
<p>&nbsp;</p>
<p>5. reCAPTCHA &#8211; <a href="https://drupal.org/project/recaptcha" rel="nofollow">https://drupal.org/project/recaptcha</a></p>
<p>How &#8211; A website service from Google to ask user to enter text shown on image<br />
Pro &#8211; good spam stop rate; free; you can control to show recaptcha at any form (to apply or not)<br />
Cons &#8211; Sometimes the image is hard to read and that gives user troubles</p>
<p>&nbsp;</p>
<p>6. CAPTCHA &#8211; <a href="https://drupal.org/project/captcha" rel="nofollow">https://drupal.org/project/captcha</a></p>
<p>Pro &#8211; easy math questions or easy-to-read images<br />
Cons &#8211; too simple for good spam bots</p>
<p>&nbsp;</p>
<p>Personally, I would go for reCAPTCHA as it&#8217;s free from Google with good spam stop rate.</p>
<p>Although it&#8217;s annoying or sometimes hard to read, it provides an audio option to ease the process.</p>
<p>You can use multiple module combined, like reCAPTCHA and Spamicide together to achieve better rate.</p>
<p>&nbsp;</p>
<p>Hope this is somehow helpful to you, happy fighting~</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/05/31/spam-control-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript &#8211; iFrame &#8211; auto resize height</title>
		<link>http://www.taskforce-1.com/blog/2013/05/31/javascript-iframe-auto-resize-height/</link>
		<comments>http://www.taskforce-1.com/blog/2013/05/31/javascript-iframe-auto-resize-height/#comments</comments>
		<pubDate>Fri, 31 May 2013 01:19:17 +0000</pubDate>
		<dc:creator>brian.chen</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1547</guid>
		<description><![CDATA[During one project development, I encountered an iframe problem in which the height of iframe is variable. That means you will might have a very long scroll bar with lots of empty spaces because content is tiny in iframe. I think there must be a easy solution on Google; however, after trying several, most of [...]]]></description>
			<content:encoded><![CDATA[<p>During one project development, I encountered an iframe problem in which the height of iframe is variable.<br />
That means you will might have a very long scroll bar with lots of empty spaces because content is tiny in iframe.</p>
<p>I think there must be a easy solution on Google; however, after trying several, most of the codes only work when the content<br />
gets first loading.  After loading some other contents, the height is not auto-resizing.</p>
<p>&nbsp;</p>
<p>At the end, I came up with a very easy solution. In order to auto-resize the iframe, here is the idea:</p>
<h2>The iframe itself must report its PARENT window with a new height. So in PARENT window, we can reset the iframe height.</h2>
<p>Here is the code for the parent: (include in &lt;script&gt; or a .js file)</p>
<pre class="brush:js">function alertsize(pixels){
    pixels+=32;
    document.getElementById('iframe_id_here').style.height=pixels+"px";
}</pre>
<p>Please replace &#8220;iframe_id_here&#8221; with the iframe id that you assign to your iframe.</p>
<p>&nbsp;</p>
<p>Here is the HTML code for the iframe content.</p>
<p>One trick is to use &lt;div id=&#8221;iframe_div_wrapper&#8221;&gt;&lt;/div&gt; to wrap around your whole &lt;BODY&gt; content.</p>
<p>So when the content in your iframe is loaded, we use the height of this &lt;DIV&gt; to be the height of the new iframe.</p>
<p>&nbsp;</p>
<p>Here is the JS code for the iframe content:</p>
<pre class="brush:js">window.onload = function() {
	property_div = document.querySelector('div#iframe_div_wrapper');
	final_height = property_div.offsetHeight;
	parent.alertsize(final_height);
};</pre>
<p>&nbsp;</p>
<p>Another trick is the &#8220;parent.alertsize()&#8221;. We got the height of the DIV Wrapper and ask the iframe parent to resize this iframe.</p>
<p>&nbsp;</p>
<p>Nice and easy? I think this works in most of browsers. I have tried it on IE/FF/Chrome.</p>
<p>Hope it will work for you too <img src='http://www.taskforce-1.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/05/31/javascript-iframe-auto-resize-height/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Form &#8211; jQuery UI &amp; Chosen</title>
		<link>http://www.taskforce-1.com/blog/2013/05/27/form-jquery-ui-chosen/</link>
		<comments>http://www.taskforce-1.com/blog/2013/05/27/form-jquery-ui-chosen/#comments</comments>
		<pubDate>Mon, 27 May 2013 21:56:38 +0000</pubDate>
		<dc:creator>brian.chen</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1540</guid>
		<description><![CDATA[I believe you must have heard of jQuery if you are a web developer. If not, time to catch up with this powerful javascript library. In this post, I would like to introduce 2 simple  UI libraries based on jQuery which will make your form pretty and enhance its functionality. (Focused on Datepicker and Chosen UI) [...]]]></description>
			<content:encoded><![CDATA[<p>I believe you must have heard of jQuery if you are a web developer. If not, time to catch up with this <a href="http://jquery.com/" target="_blank" rel="nofollow">powerful javascript library</a>.</p>
<p>In this post, I would like to introduce 2 simple  UI libraries based on jQuery which will make your form pretty and enhance its functionality.</p>
<p>(Focused on Datepicker and Chosen UI)</p>
<p>&nbsp;</p>
<p>1. <a href="http://jqueryui.com/datepicker/" target="_blank" rel="nofollow">Datepicker</a>: Let your site visitor select a date with the ability to set minimum/maximum date and sorts of options</p>
<p>Have an input field with id = &#8216;datepicker&#8217;, and do this to initialize the datapicker:</p>
<pre class="brush:applescript">Date: &lt;input type="text" id="datepicker" /&gt;

 &lt;script&gt;
    $( "#datepicker" ).datepicker();
  &lt;/script&gt;</pre>
<p>&nbsp;</p>
<p>MinDate:</p>
<pre class="brush:js">$( "#datepicker" ).datepicker({ minDate: new Date(2007, 1, 1) });</pre>
<p>Remember to use &#8220;new Date&#8221; to insert a new javascript date object with preset date. Same for MaxDate.</p>
<p>&nbsp;</p>
<p>setDate:</p>
<pre class="brush:js">$( "#datepicker" ).datepicker( "setDate", new Date(2013, 1, 1) );</pre>
<div></div>
<p>Hide / Destory:</p>
<pre class="brush:js">$( "#datepicker" ).datepicker( "hide" );
$( "#datepicker" ).datepicker( "destroy" );</pre>
<p>&nbsp;</p>
<p>There are lots of methods and attributes to control your datepicker, and I will leave it for you to find out.<br />
Just in case, if you are wondering if there is a Timepicker which has similar  features of the Datepicker?</p>
<p>Yes, here you go: <a href="http://trentrichardson.com/examples/timepicker/" rel="nofollow">http://trentrichardson.com/examples/timepicker/</a></p>
<p>This author implements this Timepicker based on the jQuery UI Datepicker. You can even have a Datetimepicker!<br />
Feel free to take a look.</p>
<p>&nbsp;</p>
<p>2. <a href="http://harvesthq.github.io/chosen/" target="_blank" rel="nofollow">Chosen UI</a></p>
<p>Need not to say more after you visit the link! Just include this library and do this on your form object:</p>
<pre class="brush:js">$(".chzn-select").chosen();</pre>
<p>I really like the new multiple selection which won&#8217;t take up a huge space on UI and also<br />
allow user to deselect with ease.</p>
<p>&nbsp;</p>
<p>You can even dynamically update the list with jQuery and just remember to refresh the list by calling the &#8221;liszt:updated&#8221; event.</p>
<pre class="brush:js">$("#form_field").trigger("liszt:updated");</pre>
<p>&nbsp;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>If you have never used these javascript libraries before, you definitely have to try them out.<br />
Believe me, you will love them as I do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/05/27/form-jquery-ui-chosen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 PIE</title>
		<link>http://www.taskforce-1.com/blog/2013/05/23/css3-pie/</link>
		<comments>http://www.taskforce-1.com/blog/2013/05/23/css3-pie/#comments</comments>
		<pubDate>Thu, 23 May 2013 04:19:34 +0000</pubDate>
		<dc:creator>brian.chen</dc:creator>
				<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1528</guid>
		<description><![CDATA[Ever wonder how to make rounded buttons in IE 6~8? I believe CSS3 PIE is the solution for you. PIE currently adds the following CSS3 features to IE6~8: border-radius box-shadow border-image multiple background images linear-gradient as background image If you are interested, feel free to try it out! And you can see some demos here! [...]]]></description>
			<content:encoded><![CDATA[<p>Ever wonder how to make rounded buttons in IE 6~8? I believe <a href="http://css3pie.com/" target="_blank" rel="nofollow">CSS3 PIE</a> is the solution for you.<br />
PIE currently adds the following CSS3 features to IE6~8:</p>
<ul>
<li>border-radius</li>
<li>box-shadow</li>
<li>border-image</li>
<li>multiple background images</li>
<li>linear-gradient as background image</li>
</ul>
<p>If you are interested, feel free to <a href="http://css3pie.com/documentation/getting-started/" target="_blank" rel="nofollow">try it out</a>! And you can see some <a href="http://css3pie.com/demos/" target="_blank" rel="nofollow">demos here</a>!</p>
<p>However, during project development, I have encounter two errors with PIE.</p>
<ol>
<li><strong>Do not use jQuery.clone()</strong><br />
- With clone(), the unique pie ID which is attached to each image is also cloned to the new object. That causes the IDs not unique anymore and therefore,<br />
the PIE behaviour is not what we expected. Please find a workaround instead of using clone().</li>
<li><strong>Weird image floating around when doing button enable/disable or show/hide</strong><br />
-  I guess it&#8217;s pretty frequent that you need to disable or hide the button. But guess what?! The background of the rounded button is not hidden, and is floating somewhere.<br />
There&#8217;s an easy fix  to this problem. Create a wrapper to button and show/hide the wrapper. You can still disable the button itself.</p>
<p>For example:<br />
in HTML:</p>
<pre class="brush:xml">&lt;div id="button_wrapper"&gt;&lt;input type="submit" value="submit" name="submit_form"&gt;&lt;/div&gt;</pre>
<p>in jQuery:</p>
<pre class="brush:js">$("#button_wrapper).hide();</pre>
</li>
</ol>
<p>I hope this information is useful to you and save you some hours of work <img src='http://www.taskforce-1.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/05/23/css3-pie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to configure MyEmma mailing list in your Drupal site</title>
		<link>http://www.taskforce-1.com/blog/2013/05/23/how-to-configure-myemma-mailing-list-in-your-drupal-site/</link>
		<comments>http://www.taskforce-1.com/blog/2013/05/23/how-to-configure-myemma-mailing-list-in-your-drupal-site/#comments</comments>
		<pubDate>Thu, 23 May 2013 04:19:16 +0000</pubDate>
		<dc:creator>bill.yin</dc:creator>
				<category><![CDATA[Drupal CMS]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1532</guid>
		<description><![CDATA[MyEmma is a powerful tool with the most cost effective email marketing service on the internet. It easy to use and  enterprise wide use. Most websites provide newsletter function. It helps small and midsize businesses manage their email campaigns and online surveys. If you plan to build a Drupal site for your business, can you add [...]]]></description>
			<content:encoded><![CDATA[<p>MyEmma is a powerful tool with the most cost effective email marketing service on the internet. It easy to use and  enterprise wide use. Most websites provide newsletter function. It helps small and midsize businesses manage their email campaigns and online surveys.</p>
<p>If you plan to build a Drupal site for your business, can you add your MyEmma mailing list in your site? Yes, you can.</p>
<p>You can find and download Emma Block module <a href="http://drupal.org/project/emma_block" target="_blank" rel="nofollow">here</a>.  The module provides MyEmma.com mailing list registration via a content block and account registration.</p>
<p>After you install the module, the key job is how to configure it and make it works.</p>
<p>First, go to module page in your Drupal site. find  the  Emma Block module and click &#8220;Configure&#8221;.</p>
<p>In the &#8220;Setting&#8221; section, you can finish your general setting in this page. Include the URL for registration page, block title and so on.</p>
<p>Next step is add your mailing list. Go to &#8220;Add mailing list&#8221; section. In this section, you will fill your &#8220;List name&#8221;, &#8220;Emma account ID&#8221;, &#8220;Public API Key&#8221;, &#8220;Private API Key&#8221; and &#8220;Group ID&#8221;. Only the &#8220;List name&#8221; option you can fill anything there, the other options you will find all the information in your MyEmma account.</p>
<p>After you finish all the options, Emma Block will create a block calls &#8220;Emma Mailing List Block&#8221; in your Drupal site.</p>
<p>The last step is setting up &#8221;Emma Mailing List Block&#8221; in a page that you want and styling it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/05/23/how-to-configure-myemma-mailing-list-in-your-drupal-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BLOB</title>
		<link>http://www.taskforce-1.com/blog/2013/05/21/blob/</link>
		<comments>http://www.taskforce-1.com/blog/2013/05/21/blob/#comments</comments>
		<pubDate>Tue, 21 May 2013 15:04:43 +0000</pubDate>
		<dc:creator>Hossein Badakhshannoory</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[BLOB]]></category>
		<category><![CDATA[data type]]></category>
		<category><![CDATA[String data type]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1495</guid>
		<description><![CDATA[MySQL supports a range of different data types such as Numeric types, Date and Time types and String types. The Numeric data type include the exact numeric types such as INTEGER, DECIMAL and approximate numeric types such as FLOAT and REAL. The Data and Time types represent temporal values. Each temporal value has a range [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL supports a range of different data types such as Numeric types, Date and Time types and String types. The Numeric data type include the exact numeric types such as INTEGER, DECIMAL and approximate numeric types such as FLOAT and REAL. The Data and Time types represent temporal values. Each temporal value has a range of legal values which consists of a standard output format. String data types consist of a sequence of data units called characters. CHAR and VARCHAR are String data types that store a constant and variable sequence of characters respectively. BLOB on the other hand is a binary object that can hold a variable amount of data. There are four BLOB types: TINYBLOB, BLOB, MEDIUMBLOB and LONGBLOB that differ in the maximum length of the values they can hold. In contrast to data types such as CHAR, BLOB values are treated as binary (byte) strings. They have no character set and sorting and comparison of the variables of these types are performed based on numeric values of byes. TEXT data type is also another type of String data type that stores large sequences of data. TEXT values are treated as non-binary strings and they have character set and values are compared and sorted based on character set properties. There are also four TEXT data types called: TINYTEXT, TEXT, MEDIUMTEXT and LONGTEXT. These correspond to the four BLOB types and have the same maximum lengths and storage requirements. Each BLOB and TEXT variable is represented internally by a separately allocated object in contrast to all other data type, where storage is allocated once per column after the table is opened. In that sense TEXT and BLOB value is stored off the table with the table just having a pointer to the location of the actual storage in memory while other types such as VARCHAR is stored inline with the table. A BLOB column type can be used to store file contents such as images, pdfs, etc. However there are some issues with storing large files in the database. Database storage is usually more expensive than other storage such as file system. Also web servers need no special coding or processing to access image/files on their file system. The only time when it is useful to store images in a database table is when an image is required to be retrieved on several different web servers that share the same database which means there is transactional integrity required between image and metadata.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/05/21/blob/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drush and Features</title>
		<link>http://www.taskforce-1.com/blog/2013/05/17/drush-and-features/</link>
		<comments>http://www.taskforce-1.com/blog/2013/05/17/drush-and-features/#comments</comments>
		<pubDate>Fri, 17 May 2013 22:21:32 +0000</pubDate>
		<dc:creator>Hossein Badakhshannoory</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[drush]]></category>
		<category><![CDATA[Features]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1493</guid>
		<description><![CDATA[Drush is a command line scripting interface for Drupal that allows the developers and website administrators to perform different actions on the back-end of the website such as handling modules and changing configurations and settings. Features module manages different features in Drupal. A feature is collection of Drupal entities that together translate to a functionality [...]]]></description>
			<content:encoded><![CDATA[<p>Drush is a command line scripting interface for Drupal that allows the developers and website administrators to perform different actions on the back-end of the website such as handling modules and changing configurations and settings. Features module manages different features in Drupal. A feature is collection of Drupal entities that together translate to a functionality of the website. For example the combination of the Views module, a content type and a view created for the contents of that content type is a feature of the website. Features are a very strong tool for packing and transferring data between different installments of a website, e.g. development and production. Features module alone can be used to contain all the structure of a website. Using this functionality, one can use Features to update an instance of a website (production) from another instance (development) on a regular basis by transferring all the structure. Features contains a convenient interface in Drupal admin menus that allows the users to add any item they desire to the feature they are creating. Adding an item such a view means calculating all the dependencies of the that view, exporting them into PHP code and downloading them into the folder that contains files of the feature. This can be quite time consuming for large features that contain many items. In particular, when trying to include all the structure of a website into a single feature, clicking through all the exportable items will prove to be next to impossible. For this reason, the best solution is to use Drush command to perform those tasks. Fortunately there is a list of Drush commands that allow manipulation of new and already created features. These commands include:</p>
<p>Drush fl: list all available features for the site.<br />
Drush fc: list features components.<br />
Drush fe: export a feature from the site into a module.<br />
Drush fu: update a certain feature.<br />
Drush fr: revert a feature in the website that has been overridden.<br />
Drush fr-all or Drush fra: revert all enabled feature modules on the website.<br />
Drush fd: show a diff of a module. For example a module that has been overridden by the database. </p>
<p>For example the following command will export all the exportable components of a website into the foo feature:</p>
<p>Drush fe foo \*</p>
<p>Or the following command will export all the views into the foo feature:</p>
<p>Drush fe foo views_view</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/05/17/drush-and-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open a link in a new window in Drupal</title>
		<link>http://www.taskforce-1.com/blog/2013/05/13/open-a-link-in-a-new-window-in-drupal/</link>
		<comments>http://www.taskforce-1.com/blog/2013/05/13/open-a-link-in-a-new-window-in-drupal/#comments</comments>
		<pubDate>Mon, 13 May 2013 06:33:24 +0000</pubDate>
		<dc:creator>bill.yin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.taskforce-1.com/blog/?p=1509</guid>
		<description><![CDATA[The problem. Adding an option that user can use to control whether to open a clicked link in a new window. You may think it is really simple, just adding a &#8220;_blank&#8221; value inside the Target section in the view configuration. If you do this, all the links generated from this view will open a [...]]]></description>
			<content:encoded><![CDATA[<p>The problem. Adding an option that user can use to control whether to open a clicked link in a new window.</p>
<p>You may think it is really simple, just adding a &#8220;_blank&#8221; value inside the Target section in the view configuration. If you do this, all the links generated from this view will open a new window when you click it. The user cannot control it.</p>
<p>How to make it work?</p>
<p>Let&#8217;s start from the content type. When you create a new content type, add a new label that name could be &#8220;Open URL in new window&#8221;. It is does not matter what the name is.  Field type  is &#8220;Boolean&#8221; and widget is &#8220;Single on/off checkbox&#8221;. Setting up the &#8220;On value&#8221; is &#8220;_blank&#8221; and keeping &#8220;Off value&#8221; empty. You also can choose use field label instead of the &#8220;On value&#8221; as label. It is convenience to understand what the option is.</p>
<p>Then when you  add a new content by using the content type you just created, you will find a new option named  &#8220;Open URL in new window&#8221;. Select it, Drupal gains the &#8220;_blank&#8221; value.</p>
<p>Job is not done, now let&#8217;s create a content view. In order to make the link works well base on your control, add a content named &#8220;Open URL in new window&#8221; in the fields section. Select &#8220;Exclude from display&#8221; in the configure field box. Next you will add a link field, it could be content title, content body, images, nid and so on. Drupal does not care about what kind the element you choose as a link. The key is how to configure it.</p>
<p>In the configure field box, go to &#8220;Rewrite results&#8221; and choose &#8220;Output this field as  a link&#8221;. Set up the &#8220;Link path&#8221; section, usually, the value should be &#8220;[path]&#8220;. Open &#8220;Replacement patterns&#8221; section, there a tokens list. You could find a token calls [field_open_url_in_new_window] (depends on the name you gave it). Copy it and paste it in the &#8220;Target&#8221; section. Now Drupal will know what value you chose when you added the contents.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.taskforce-1.com/blog/2013/05/13/open-a-link-in-a-new-window-in-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
