<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DkYFRn4zfip7ImA9WhRbEUk.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512</id><updated>2012-02-01T19:55:17.086-05:00</updated><category term="mobile" /><category term="logging" /><category term="virtualization" /><category term="Visual Studio" /><category term="technology" /><category term="MVC" /><category term="javascript" /><category term="SQL" /><category term="restaurant" /><category term="web" /><category term="gadgets" /><category term="DIY" /><category term="materialism" /><category term="AJAX" /><category term="strategy" /><category term="Windows" /><category term="contentment" /><category term="Munchkin" /><category term="WebForm" /><category term="ASP.NET" /><category term="ribs" /><category term="CSLA" /><category term="Photoshop" /><category term="Boston" /><category term="JQuery" /><category term="Indonesia" /><category term="Canon" /><category term="Nikon" /><category term="Flip" /><category term="strobist" /><category term="family" /><category term="performance" /><category term="review" /><category term="Android" /><category term="hardware" /><category term="conviction" /><category term="humor" /><category term="LINQ" /><category term="VMWare" /><category term="seafood" /><category term="photography" /><category term="vacation" /><category term="WP7" /><category term="party" /><category term="games" /><category term="IIS" /><category term="Google" /><category term="trip" /><category term="ADO.NET" /><category term="C#" /><category term="jobs" /><category term="food" /><category term="Christianity" /><category term="IE" /><category term="Maine" /><category term="PERMIAS" /><category term="Jon" /><category term="Silverlight" /><title>Ranting and Dreaming ...</title><subtitle type="html">Technology, Photography, Family, Food, and Convictions</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://setiabud.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>113</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/RantingAndDreaming" /><feedburner:info uri="rantinganddreaming" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DU4GQns8fyp7ImA9WhRUFUQ.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-6978995514495968571</id><published>2012-01-24T21:38:00.000-05:00</published><updated>2012-01-26T12:12:03.577-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T12:12:03.577-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><title>Windows Phone vs. Android</title><content type="html">Android is the market share leader in the mobile space in US as of January 2012 with around 50% market share (according to &lt;a href="http://www.engadget.com/2011/12/14/shocker-android-grew-us-market-share-after-q2-ios-was-static/"&gt;NPD via Engadget&lt;/a&gt;). They are doing this by flooding the market with tons of phones, ranging from free, cheap phones, prepaids, and mid-range, and top of the line phones. People have plenty of options when getting an Android phone.&lt;br /&gt;
&lt;br /&gt;
The Nexus line/series is the bar that Google put out to showcase the new OS releases. Nexus One was release to showcase Froyo (version 2.2), Nexus S for Gingerbread (2.3.x), and Galaxy Nexus for Ice Cream Sandwich (4.0.x). &lt;br /&gt;
&lt;br /&gt;
I was an Android user, starting with the G1 (the original Android phone - back in 2008). When my wife's old Windows Mobile 6.1 phone died, I got her a G2 (also an Android phone). I recommended Android phones to many of my friends - and many of them did switched to Android (from Symbian, BlackBerry, Windows Mobile, etc). But late 2010, my love for Android grew weary and when Windows Phone came out, I jumped ship and I am happily recommend Windows Phone to anyone instead of Android. Why?&lt;br /&gt;
&lt;br /&gt;
This post is a part of a series titled "&lt;a href="http://setiabud.blogspot.com/2012/01/should-i-get-windows-phone.html"&gt;Should I Get a Windows Phone?&lt;/a&gt;":
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://setiabud.blogspot.com/2012/01/windows-phone-vs-blackberry.html"&gt;Windows Phone vs. BlackBerry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://setiabud.blogspot.com/2012/01/windows-phone-vs-android.html"&gt;Windows Phone vs. Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Windows Phone vs. iPhone&lt;/li&gt;
&lt;li&gt;Windows Phone vs. "the rest" (WinMo, Bada, Symbian, etc)&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="fullpost"&gt;
&lt;u&gt;&lt;b&gt;Why go with Windows Phone (vs. Android)?&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Windows Phone major releases are on time and you will get it within reasonable manner (usually within 1 month) after its release - for all devices. This means 1 year old Windows Phone will get update approximately the same time as a new Windows Phone that your friend just got last week. This also means that you are very likely to be running the latest, greatest features available in the Windows Phone OS at all times (instead of always a generation or two behind). With Android, your device may never get updated to the newest Android features. Unless you are always getting the Nexus series (which is around $299 with 2 year contract), the updates are really slow to get to your phone. This is caused by the fragmentation of the Android operating system itself by carriers and manufacturers in making it work with their devices and services. Although a &lt;a href="http://theunderstatement.com/post/11982112928/android-orphans-visualizing-a-sad-history-of-support"&gt;this article by Michael Degusta&lt;/a&gt; is about iOS and Android, it illustrates well about the fragmentation and lateness of Android updates, so if you get your Android phone now, most likely it will be a version behind in OS and will remain that way or worse (unless you are getting the Nexus series).&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Streamlined &amp;amp; consistent user interface. Windows Phones is consistent regardless of carriers or manufacturers. From using a Nokia, an HTC, a Samsung, etc they are all look similar and everything is where it's suppose to be. With Android, not only devices are in different OS versions (which introduce new things, changes, and adjustments), manufacturers also put a lot of stuff (HTC with "Sense", Motorola with "MotoBlur" etc). So your experience in using can be different (and sometimes radically). This is a big turn off for me. Although I consider myself as an informed Android user, but sometimes using my friend's HTC MyTouch 3G is quite a difficult adjustment. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Much more user-friendly interface. Android is much more well-known as a "power-user" phone. It provides a lot of opportunities for customizations, mods, etc. Compared to this, Windows Phone tiles &amp;amp; hub is just so much friendlier. It is also a fresh new look away from the "list of icons". I remember once teaching a friend to use her first Android device - where she basically told me to set it up for her. Months later, her setup was still the same, including the wallpaper, widgets, and shortcuts. I asked her about it and she said she was afraid to change anything and not sure how to get things back if something go wrong. In Windows Phone, to put a tile in the start screen is so easy: find the app you want, long-press it and select "pin to start". In Android (2.3.x or older): long-press empty space in home, select "shortcuts", select "applications", and select your app.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Windows Phone interface is fast &amp;amp; fluid (even without the dual-core). Although none of the 
current Windows Phone are running dual-core processor, but all of them 
are still running buttery smooth and fast. My HTC HD7 is a first 
generation Windows Phone device - and it's still running like a champ. 
Yes, it is slower compared to the second generation devices, but there 
is still no lag, or jerky movement, freezing, etc. Compared to my 
friends Android devices (most of them are newer than my Windows Phone), 
not only they are running 1 or 2 versions behind on OS, but they need to
 be rebooted regularly (once every 2 weeks, once a month, once a week, 
etc), or getting a lot of "force close" on basic apps (GMail, YouTube, 
etc), interface is getting jerky/lag, and other miscellaneous problems 
(speaker phone not working consistently, cannot answer phone sometimes, 
late notifications, etc). &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;In Windows Phone, you can uninstall "bloatwares". When you buy a phone from a carrier, usually they will include their apps in the phone. With Windows Phone, you can uninstall them easily: find it, long press &amp;amp; hit "Uninstall". With Android, 99% of the time you are stuck with it and cannot be uninstalled. One option is that you can "root" your phone (that is getting an administrative access to your phone) and then flash the ROM (that is installing the Android flavor of your choice). Although I am a pretty savvy user, but it seems unnecessary if I go with Windows Phone.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Live Tiles that just work vs Android clunky widgets. Widgets in Android are cool and I love them for like weather, calendar, email, etc. But they are clunky - sometimes they won't update, do a "force close" or just simply disappear. Some widgets are small, some are big, and some are bigger still. So my home screen ends up looking cluttered and messy. When the widget is running, it means the app is running (and draining battery). With Live Tiles, things are organized, neat, and they just work, plus the app itself is NOT running. I can get the information that I want in a flash and often without launching the app at all. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Windows Phone is cheaper. The top of the line Windows Phone is $199. The top of the line Android is $299 (both with 2 year contract). I would rather use my $100 saving toward something else. Plus, combined with the fragmentation, it is very likely that if I go with Android, my new $299 phone will be outdated (as far as OS goes) within several months and not getting updated for a year plus.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Much better battery life. I use my phone a lot: reading news, checking weather, replying to emails, playing games, as well as syncing 4 email address, Twitter, 2 calendars, and Foursquare.The only constant thing that I see my friends who carry Android device is chargers - even though they have more capacity in their battery (G2 - 1300 mAH, GS1 - 1500 mAH, GS2 - 1650 mAH, EVO 4G - 1750 mAH, etc) than mine. When they are at my house, they borrow my charger, charging in the car, charging while at a computer, at the coffee shop, etc. This especially true for phones running dual-core and with "4G". On the other hand, my HD7 (1230 mAH) only needs charging at over night. I unplugged my phone from the charger around 7am and plug it back before going to bed, around 11pm. I don't have any charger at the office nor in my car. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Better media/music player. Zune is an awesome music player. It's a native client, has millions of songs in the Marketplace, movies, etc. It is also gorgeous and non-intrusive. Zune's subscription based (like Spotify) gives you a lot of freedom instead of pay-per-download based fee. Google Music is a bit of pain-in-the-butt, while Zune just works. To get subscription based music, you will need to download Spotify (or others) in Android. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;XBOX Live integration. Windows Phone has Windows Live account integration just as Android has Google account integration. But, XBOX Live integration is a part of the Live service that is unique to Windows Phone. Gamer's score, points, avatar, etc are synced and customization in the console and the phone. Some games even allow game integration between the phone and the console. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Nokia hardware option. Although Nokia used to make outdated OS (Symbian), but their hardware is still sets the bar. Having the option of getting Nokia hardware running Windows Phone is just awesome. Nokia with its volume is also able to drive the price down in the market. The Nokia Lumia 710, which is a entry level Windows Phone device is being sold in US at $49 with 2 year contract, and the Lumia 800 is selling in Europe often for free. The rumor is that Nokia Lumia 900 (coming out March 2012) will be sold for $99 with 2 year contract. Wow!&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Better cloud integration with SkyDrive. With Windows Phone, you can 
have free 25 GB of storage. All your OneNotes will sync (no more need 
for EverNote), auto-upload options for photos, sharing folders and 
documents, etc. With MS Office, you can view, edit, and create documents
 on your phone and put them in SkyDrive. I don't know how many times I 
have used this feature to review documents or Power Point presentations 
and taking notes - certainly a very beneficial feature for me.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; Better voice control. MS TellMe is much better and easier to use than Google Voice Action. TellMe understands the non-western names in my contact list. It also works better in understanding me and some of my friends. Plus, it is a lot easier to access TellMe (long press on Start) vs Voice Action (launch an app). Granted that Siri (iOS 5) is still better than both. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Email reading, which I do lot of, is a lot better in Windows Phone - with the big clean text and previews. Combined with the panorama display in hubs, this makes categorizing, reading, and managing emails to be a lot easier in Windows Phone.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Twitter &amp;amp; Facebook integration. If you are into the social networking scene, this is a must. Instead of opening and closing apps, Windows Phone integrates Facebook &amp;amp; Twitter - so you can do all your social networking stuff without the hassle of opening and closing apps. I am an avid Twitter user (not so much on Facebook), so this is a big deal for me. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Much better Exchange integration. If you are an MS Exchange user, Windows Phone do this much much better than Android. Touchdown in Android helps, but it is costly ($19.99). I manage all my contacts and calendar in Exchange, so being able to sync (push) them into my phone is just a must. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
Better touch-screen keyboard - across any device. With Android, you get hit and miss.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Windows Phone has the best Foursquare app, called "&lt;a href="http://www.4thandmayor.com/"&gt;4th and Mayor&lt;/a&gt;". Much better than the official one, in any platform.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
 &lt;/li&gt;
&lt;/ol&gt;
&lt;u&gt;&lt;b&gt;Why go with Android?&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt; Excellent turn-by-turn navigation. I still envy the GPS feature that Android has - until now. This is simply awesome. With Windows Phone, we need 3rd party apps - or continue hoping that Nokia &amp;amp; Bing will one day provide this for all devices. Currently only Nokia devices get the Nokia Drive.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;More variety in the market. The cell-phone market is saturated with Android phones. There are probably around 30+ Android phones released every year. In comparison, Apple release 1 version of hardware every year or so and about 10 Windows Phone per year. So more choices for you if you go with Android. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;More apps. Android Market has more than 300,000 apps. Windows Phone Marketplace only has around 60,000 apps. Windows Phone still has a lot of catching up to do - but I find all the major apps that I need are already in Marketplace. Yes, there are the missing "tricorder" app that I "need", or the "battery saver" app etc. But with Windows Phone, there is already a native battery-saver feature under "settings" and for the "tricorder", I use the G2 for that, so I can use the tricorder while on the phone. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Most Android phones has dual-core processor. Although this translate very little improvement in daily use (in fact MS did a contest called "Smoked by Windows Phone" during CES, go &lt;a href="http://www.youtube.com/watch?v=kQjGe53zw6w"&gt;here&lt;/a&gt; for results &amp;amp; detail), but this still becomes a prevalent marketing strategy.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;If you use "WhatsApp" app, the Android version is still better than the Windows Phone one. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;No Skype, yet. Nothing much to say here ... 
&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
If there is no Windows Phone, I would probably stick with Android - and I used to be an Android lover. But time has changed and Windows Phone (especially Mango) just won me over. &lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-6978995514495968571?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/k7r7C3HwN92-HCcCRqaYczN-C6k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k7r7C3HwN92-HCcCRqaYczN-C6k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/k7r7C3HwN92-HCcCRqaYczN-C6k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k7r7C3HwN92-HCcCRqaYczN-C6k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/6978995514495968571/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=6978995514495968571" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6978995514495968571?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6978995514495968571?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/J7bJHD7i8e8/windows-phone-vs-android.html" title="Windows Phone vs. Android" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><georss:featurename>Columbus, OH 43220, USA</georss:featurename><georss:point>40.0506279 -83.0683519</georss:point><georss:box>40.0263184 -83.1078339 40.0749374 -83.02886989999999</georss:box><feedburner:origLink>http://setiabud.blogspot.com/2012/01/windows-phone-vs-android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4FRXg8fSp7ImA9WhRUFUQ.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-5018898836039510254</id><published>2012-01-18T23:47:00.000-05:00</published><updated>2012-01-26T12:11:54.675-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T12:11:54.675-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><title>Windows Phone vs. BlackBerry</title><content type="html">Should I get a BlackBerry? Or should I get a Windows Phone? What if you are coming from a different platform (i.e. from iOS or Android)? Or maybe from RIM/BB platform? There are values in both sides of the platform and I will discuss them to the best of my knowledge - and hopefully this will inform you to make your decision making easier.&lt;br /&gt;
&lt;br /&gt;
BB was the leading platform several years ago - conquering both in the consumer space and corporate space. Their push-email was revolutionary and BBM changed the way people connect to one another. Is it still an excellent platform of choice today?&lt;br /&gt;
&lt;br /&gt;
&lt;div class="fullpost"&gt;
This post is a part of a series titled "&lt;a href="http://setiabud.blogspot.com/2012/01/should-i-get-windows-phone.html"&gt;Should I Get a Windows Phone?&lt;/a&gt;":&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://setiabud.blogspot.com/2012/01/windows-phone-vs-blackberry.html"&gt;Windows Phone vs. BlackBerry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://setiabud.blogspot.com/2012/01/windows-phone-vs-android.html"&gt;Windows Phone vs. Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Windows Phone vs. iPhone&lt;/li&gt;
&lt;li&gt;Windows Phone vs. "the rest" (WinMo, Bada, Symbian, etc)&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Why go with BlackBerry?&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
The strongest reason to go with BlackBerry is the robust messaging platform that BB has - the BBM. Many of my friends have acquaintances and family members all over the world - and some of them use BB. BBM then becomes a essential communication hub for them.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
The second strongest reason to go with BB is the keyboard. BB makes awesome keyboard - probably the best in the industry. If vertical keyboard is your thing, then BB is your choice.&lt;br /&gt;
&lt;br /&gt;
If you are coming from BB platform and all your communications to your contacts have been via BBM and don't want to go away from that paradigm - or if this is your #1 need in getting a new smartphone, BB is the way to go. This works not only against Windows Phone, but also against any non-BB platform, since BBM is unique to BB platform.&lt;br /&gt;
&lt;br /&gt;
But there is actually a way to get around this "need" if you want to use a different platform ... please keep on reading. If you are very frugal in using data and want to keep your frugality, then BB is probably the platform of choice. Since most BB data is text, there is a very low data usage when using BB. This can also be caused by the lack of screen size in BB, where it discourages the users to resort in consuming large files or videos. &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Why NOT go with BlackBerry?&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;There are ways you can get around the BBM hurdle: other messaging platform. There are platform-agnostic messaging apps that will allow you to communicate with people with different platform, including BB. They pretty much work in relatively similar manner as BBM. For example:&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://m.kik.com/detect.php"&gt;Kik Messanger&lt;/a&gt; - messaging platform for Windows Phone, iOS, Android, Symbian, BB&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.whatsapp.com/download/"&gt;WhatsApp&lt;/a&gt; - messaging platform for Windows Phone, iOS, Android, Symbian, BB&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
The advantage of using these apps are actually much more than sticking with BBM. You can actually reach more people/friends/contacts and not be constraint to BB contacts only. Also, the interface for all these apps are much nicer in the non-BB platform, I kid you not.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;PIN/device identifier instead of user-based identifier. BB also uses PIN to connect a BB contact to another and the PIN is the main connector in BBM delivery. Unfortunately, the PIN is tied to a handset, NOT the user. So, if you choose to change your BB device to a newer or different BB device for some reason, you MUST tell all your BB contacts that your PIN has changed and they will need to update your information - or else BBM won't work.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Outdated OS. There has not been that much differences between BB OS 5 and BB OS 6 and now BB OS 7. Between OS 5 and OS 6, the are only a handful major differences: home screen organization, new OS 6 browser supporting tabs, touch interface support, and universal search. Between OS 6 to OS 7: bigger icons, voice-enabled search, NFC support, hardware accelerated graphics, and BlackBerry Balance Technology to separate between work and personal stuff. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Crappy hardware. Almost all of my friends who carry BB as their main device have it breaks down within a year or so. Broken battery cover, screen not working, buttons not registering, broken track-pad/ball etc. But the new Bold 9900 may change that - since it looks much better than its predecessor and feels solid. The 2.8" screen is ... small.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; Decreasing market share - and rumor has it that RIM is going to be sold. Most tech writers (Engadget, Gizmodo, BGR, The Verge etc) consider RIM to be irrelevant in the near future. So why invest your tech choices in something that most people believe to be going out the door?&lt;/li&gt;
&lt;/ol&gt;
Most of the things I mentioned above apply in general against BB, but not giving a lot of advantages for Windows Phone over other platform such as Android or iOS. In fact, I suggest that any platform other than BB is already a better platform. So if you are coming in from a non-BB background, reasons above should give you a considerable food for thought about whether you want to get into the BB camp for now. My suggestion: DO NOT.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Why Windows Phone?&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt; Better screen and touch interface. Much better. The screen for most BB are awful and the touch interface feels like a gimmick. Other than BB Torch series (which has touch screen and slide out keyboard), most BB has small screen (2.x inches). For example, Bold (the higher end series) has 2.8" screnn, with 640x480 px resolution. The lower end handset for Windows Phone has larger screen, much larger. Nokia Lumia 710 has 3.7" screen, with &lt;span class="st"&gt; 800×480 px resolution. It's a pain to do touch in BB, since most things are small (using the trackpad or uniball is more friendly for BB compared to touch). Windows Phone uses "tiles" - which begged to be touch. Bigger screen &amp;amp; much nicer touch interface for Windows Phone.&lt;br /&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Much more economical price. The newer lower end BB (the Curve 9360) is selling at $79 with 2 yr contract in T-Mobile. The higher end (the Bold 9780) will cost you $109. The newest 4G, Bold 9900 costs a whopping $299 with 2 yr contract (all T-Mobile price). In contrast, Nokia Lumia 710, an economic, newest, latest, 4G Windows Phone will only cost you $49 with 2 yr contract.In AT&amp;amp;T, the price is more comparable, where both Bold 9900 &amp;amp; HTC Titan is selling at $199.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Windows Phone is much more stable compared to BlackBerry. In a week, I don't think I have rebooted my Windows Phone. At the same time, I saw my friend rebooted his BB several times - locked up, froze, self-reboot, etc. Windows Phone is a very stable OS. Some Windows Phone do not even have battery covers, because rebooting your phone by taking out the battery is suppose to be something that you will never have to do. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Live Tiles. I cannot stress this enough - that Live Tiles is awesome. The ability to do a "glance and go" without even entering an app is extraordinarily handy. BB has notifications and will put a number (i.e. 4 new emails) in your app icon. But flipping animated Live Tiles is a different beast. Not only it does serve as a notification, but also able to display important information on the flip side of the tiles. Which means that often you don't have to open the app to view the information.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Apps in the Marketplace. Although BB App World has existed long before Windows Phone Marketplace, but App World is a stagnant ecosystem. ON the other hand, Marketplace is a thriving and growing ecosystem. Within a year, there are 50k +&amp;nbsp; apps in the Marketplace. It took App World 2 yr + to reach the same number of apps. Many of my friends who use BB usually not loading their BB with apps - and one reason why they don't is because the selection in the App World is kind of boring.&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Much better media device. Most BlackBerry user I know carry 2 devices, a phone and an media device (like an iPod Touch). Although BB can browse YouTube, play videos, and music - it is not becoming a device of choice to do all that media consumption activity. Windows Phone can do all the media in a single device with Zune and other apps. &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Awesome built-in &amp;amp; integrated apps. Windows Phone comes with XBOX Live integration. So if you game with XBOX
 already, this should come in handy - the ability to customize your 
avatar, check gamer score, compete with your friends, etc. Twitter and Facebook integration come in really handy. Combined all those things with Live Tiles - then you can have a solid social-network-charged device, without opening a single app. Windows Phone has other things that come out of the box that a BB does not have: Local Scouts, integrated Bing Search (vision, song, text-reader, etc), TellMe (superb voice command), Office hub, turn-by-turn navigation, SkyDrive integration, and many more.&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Windows Phone also boots much faster than BlackBerry. In some sense, this is largely irrelevant - but with the frequency of rebooting BlackBerry, this can be a factor. As a comparison, in a single BlackBerry Bold 9780 reboot, I can reboot my HTC HD7 4+ times. Not only that, it is probably much faster to do anything in Windows Phone compared to in BB. &amp;nbsp; &amp;nbsp; &lt;/li&gt;
&lt;/ol&gt;
I think BB is outdated and it is much better to use almost any platform other than BB - and the platform of choice for me is a Windows Phone.&amp;nbsp; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-5018898836039510254?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dhBadwLHb2SWEtkCmUgpL9O1_gk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dhBadwLHb2SWEtkCmUgpL9O1_gk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dhBadwLHb2SWEtkCmUgpL9O1_gk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dhBadwLHb2SWEtkCmUgpL9O1_gk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/5018898836039510254/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=5018898836039510254" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/5018898836039510254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/5018898836039510254?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/pnokX-7X-QE/windows-phone-vs-blackberry.html" title="Windows Phone vs. BlackBerry" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><georss:featurename>Columbus, OH 43220, USA</georss:featurename><georss:point>40.0506279 -83.0683519</georss:point><georss:box>40.0263184 -83.1078339 40.0749374 -83.02886989999999</georss:box><feedburner:origLink>http://setiabud.blogspot.com/2012/01/windows-phone-vs-blackberry.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4HSHc-eyp7ImA9WhRUFUQ.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-456724361668605281</id><published>2012-01-17T22:00:00.000-05:00</published><updated>2012-01-26T12:12:19.953-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T12:12:19.953-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><title>Should I get a Windows Phone?</title><content type="html">People asked me often - "My contract renewal is coming up and thinking about getting a new phone, so which one should I get?" I am going to do a blog series about smartphones comparing them to Windows Phone and hopefully this series can be a useful information to help us in making our decision. If you are reading this in the future, the content of this series may not apply, as smartphone technology changes pretty quickly, so there will be updates or sequel series in the future.Who knows, I might hate Windows Phone in the future!&lt;br /&gt;
&lt;br /&gt;
Secondly, I am not going to claim that I am a professional reviewer and I certainly have my bias. So keep that in mind when reading the series - but I will try to keep an objective or balanced aim and perspective. Please do not hesitate to chime in via the comments.&lt;br /&gt;
&lt;br /&gt;
In the series, I will do some comparisons between Windows Phone against other phones. Along with that, I will also include "what if you are coming from ____" section (i.e. "what if you are coming from RIM") in every post. So here we go:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://setiabud.blogspot.com/2012/01/windows-phone-vs-blackberry.html"&gt;Windows Phone vs. BlackBerry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://setiabud.blogspot.com/2012/01/windows-phone-vs-android.html"&gt;Windows Phone vs. Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Windows Phone vs. iPhone&lt;/li&gt;
&lt;li&gt;Windows Phone vs. "the rest" (WinMo, Bada, Symbian, etc)&lt;/li&gt;
&lt;/ol&gt;
&lt;span class="fullpost"&gt;
In general, my recommendation is to try it out. Some people often has dismissed Windows Phone without trying it - but most of the people who have tried it were pretty blown away by it, and ended up getting it. I am not particularly sure why people so quickly dismissed Windows Phone - but from some of the reasons are these:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Windows Phone resembles&amp;nbsp; Windows Mobile - so it sucks. This can not be further than the truth. Yes, WinMo sucks - big time. But Windows Phone is nothing like Windows Mobile at all. If this is something that you are unsure, please do try a Windows Phone. Go to a carrier store and try it out.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Windows Phone does not support dual-core processor (yet) - so it must be slow. Well, while it is true that Windows Phone Mango (the newest OS release up to this Jan 2012) does not support dual-core processor, but it is not slow at all. In fact, during CES 2012, there was a contest doing day-to-day tasks (posting to twitter, taking pictures, checking weather, etc) between Windows Phone vs 30+ phones (BBs, iPhones, Androids, etc), and Windows Phone won 85% of the time.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;It's expensive. Not sure where this is coming from, but just because it looks awesome and expensive does not mean that it is expensive. My friend bought a Nokia 710 for $50 on the first day it came out (with 2 yr contract). Nokia 710 is the latest Windows Phone coming via TMobile. The most expensive Windows Phone costs $199 - just like most smartphones out there - and most Windows Phone are actually cheaper than $199.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
Well, there you go - in the next post I will describe how Windows Phone stacks up against BlackBerry.
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-456724361668605281?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9jC6TvfY5__DpB4GqbL0C_R8Fls/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9jC6TvfY5__DpB4GqbL0C_R8Fls/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9jC6TvfY5__DpB4GqbL0C_R8Fls/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9jC6TvfY5__DpB4GqbL0C_R8Fls/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/456724361668605281/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=456724361668605281" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/456724361668605281?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/456724361668605281?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/EzgaW4szpZo/should-i-get-windows-phone.html" title="Should I get a Windows Phone?" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><georss:featurename>Columbus, OH 43220, USA</georss:featurename><georss:point>40.0506279 -83.0683519</georss:point><georss:box>40.0263184 -83.1078339 40.0749374 -83.02886989999999</georss:box><feedburner:origLink>http://setiabud.blogspot.com/2012/01/should-i-get-windows-phone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAMQnw4eyp7ImA9WhdaEU8.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-487162148574318610</id><published>2011-10-18T22:33:00.000-04:00</published><updated>2011-10-20T10:26:23.233-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-20T10:26:23.233-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><title>Windows Phone 7.5 Mango Review: Search</title><content type="html">In Windows Phone 7.5, there are a plethora of new features that are integrated into search. Previously, it only allows you to basically go to Bing! and enter your text or keyword into the search box. Now, the search is deeply integrated and can seamlessly jump into apps if necessary. Not only that, there are also Music Search, Bing Vision, and Voice (Search). &lt;br /&gt;&lt;br /&gt;

&lt;span class="fullpost"&gt;
&lt;b&gt;Voice (Search)&lt;/b&gt;&lt;br /&gt;
With the Voice update in Mango, now you can hold the Home button and say stuff like "Call John" or "Text Jack" or "Open Maps". Along with all that commands, it also allows you to do searches with Voice - so you can say "Find Pizza". &lt;br /&gt;&lt;br /&gt;

This is very helpful for searching during driving. I have used this feature several times and it works pretty well. Plus, it's easy to enable, just hold the "Home" button and speak. Also, if you receive an SMS, you can say "Reply" or "Read" to reply or read respectively - and then dictate your message to the phone. &lt;br /&gt;&lt;br /&gt;

Android has had this feature for a while, but the Froyo, Gingerbread, and Honeycomb versions that I have used (HTC G2, Samsung Galaxy S, Samsung Galaxy Tab) were not accurate and cannot recognize non-western names. Let's see whether Ice Cream Sandwich will bring improvement on this. I was expecting Mango to be the same way - but I was surprised that it actually recognizes most of my contacts, including the ones with non-western names. It is not as impressive as Siri in iOS5 (yet), but it's not bad, not bad at all.&lt;br /&gt;&lt;br /&gt;

&lt;b&gt;Music Search&lt;/b&gt;&lt;br /&gt;
Music Search is basically like running Shazam, but much better. There is no limit on searches, it also finds songs better by displaying artist, song title, and album, but also shows you where or how to play or buy it from the Marketplace.  &lt;br /&gt;&lt;br /&gt;

Previously I used Shazam - which works OK, but the free version only provides limited functionality and music searches. The Mango Music Search however, is very simple to use and unlimited in usage. I also found out that it is actually more accurate (at least in my experience). After searching for music and getting a result, I can go to the Marketplace - and then either purchase &amp; download or play the song. Since I have a Zune subscription, this works awesomely. The integration with the OS itself is also worth it - I do not have to open an app nor open the Marketplace separately.&lt;br /&gt;
Shazam is good, but the Music Search is better. &lt;br /&gt;&lt;br /&gt;

&lt;b&gt;Bing Vision&lt;/b&gt;&lt;br /&gt;
Bing Vision allows you to search using the phone camera. It can recognize text, Tag code, UPC code, QR code, etc and display the product information at an instant. It also can search based on book cover, CD/DVD covers, and game covers. Initially I thought this is just a novelty or to just making search easier. But, not only it does make search easier (e.g. capture the cover of the book vs typing the title), but it can also capture text (like document scanning). &lt;br /&gt;&lt;br /&gt;

&lt;b&gt;Search Result&lt;/b&gt;&lt;br /&gt;
Search result is now getting smarter. When I searched for "pizza", it automatically displayed the result in the "local" pivot area. I can swipe and go to the "web" area if I want, but the "local" area makes much more sense. Then if I select a search result from result, Mango brought me to the pivot card for the result (which is most likely a pizza restaurant) - which is filled with the contact information, hours, neighborhood, etc. I can swipe and see all the reviews aggregated for the restaurant. Another swipe got me to the "apps" pivot area - which enables me to launch related apps such as Foursquare or Twitter etc via App Connect. &lt;br /&gt;&lt;br /&gt;

When I searched for "moneyball", it displayed the result in the "web" area, with local showing cinemas on the top. I can that one of those if I want to watch the movie at the local theater which then - just like the restaurant - shows its own hub, with "about", "showtimes", and "apps". &lt;br /&gt;&lt;br /&gt;

&lt;b&gt;App Connect&lt;/b&gt;&lt;br /&gt;
App Connect is super useful. So basically instead of launching an app from the Start or Home screen, I can seamlessly launch relevant apps from connected apps/area. One of those connected area is the search result screen. So for example, if I want to watch the trailer for "Moneyball", after searching it on Bing, I can just go to the "apps" pivot area and tap on "Flixster" or "IMDB", which will launch directly to the the Moneyball page within the respective app. Previously before Mango - or on iOS or Android - I will have to go to "Home" and open up "Flixster" and navigate to the "Moneyball" page. &lt;br /&gt;&lt;br /&gt;

There is a video about App Connect in the Bing blog, you can watch it &lt;a href="http://www.bing.com/community/site_blogs/b/search/archive/2011/10/10/windows-phone-update-bing-o-on-mango.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;

So overall the search experience has tremendously improved. I am using search more and more on my phone now and looking for further future improvement in this area in the next Tango release. &lt;br /&gt;&lt;br /&gt;

&lt;b&gt;My other WP Mango Reviews:&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-part-1.html"&gt;Windows Phone 7.5 Mango Review: Update Process&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/10/windows-phone-75-mango-review-email.html"&gt;Windows Phone 7.5 Mango Review: Email &amp; Calendar&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-people-me.html"&gt;Windows Phone 7.5 Mango Review: People &amp; Me&lt;/a&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-487162148574318610?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YTjOFayXknSqnLTgpqz9I_VJOzE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YTjOFayXknSqnLTgpqz9I_VJOzE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YTjOFayXknSqnLTgpqz9I_VJOzE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YTjOFayXknSqnLTgpqz9I_VJOzE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/487162148574318610/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=487162148574318610" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/487162148574318610?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/487162148574318610?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/FEX2TftQfCM/windows-phone-75-mango-review-search.html" title="Windows Phone 7.5 Mango Review: Search" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><georss:featurename>Columbus, OH 43220, USA</georss:featurename><georss:point>40.0506279 -83.0683519</georss:point><georss:box>40.0263184 -83.1078339 40.0749374 -83.02886989999999</georss:box><feedburner:origLink>http://setiabud.blogspot.com/2011/10/windows-phone-75-mango-review-search.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MHQXYyeCp7ImA9WhdaEEg.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-7757200297981218912</id><published>2011-10-02T21:25:00.000-04:00</published><updated>2011-10-19T15:10:30.890-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-19T15:10:30.890-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><title>Windows Phone 7.5 Mango Review: Email &amp; Calendar</title><content type="html">This is the 3rd part of my Windows Phone 7.5 Mango reviews - which talks about Email. See previous reviews &lt;a href="http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-part-1.html"&gt;here&lt;/a&gt; and &lt;a href="http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-people-me.html"&gt;here&lt;/a&gt;. In the initial release of Windows Phone, email was already quite good. It syncs seamlessly with my Exchange account, Hotmail, GMail, etc. Each inbox will create a different "email app" and I can pin each one of those to the Home screen. &lt;br /&gt;&lt;br /&gt;

I can also be selective about how to sync the folders, how long should it went back to sync, etc. The interface was a delight to use - the typography was good, text and formatting are pleasing, attachment are supported, and the notifications of new emails on the Live Tiles are purely awesome. &lt;br /&gt;&lt;br /&gt;

Overall, it was a good and nice experience. So what did Mango bring to the table?&lt;br /&gt;&lt;br /&gt;

&lt;span class="fullpost"&gt;
&lt;b&gt;Email&lt;/b&gt;&lt;br /&gt;
Mango brought quite robust improvements for Email. First of all, email conversation is now threaded. This is a must have feature nowadays. The top email shows a bit summary of how many emails are in the thread and how many are unread. You can open/close the thread by tapping on the top email. For selecting the whole thread, you can select the top email (just like before) by tapping on the left of the email - or you can select individual emails within the thread. &lt;br /&gt;&lt;br /&gt;

Another new feature is now there is an option for combined/linked inbox. So instead of having separate "email app" for Outlook/Exchange, Hotmail and YahooMail and GMail etc, now you can linked them anyway you want. For me, I separate my work email (Exchange) and my personal emails (Hotmail &amp; GMail - into a linked inbox). So now, instead of having 3 Live Tiles on my Start/Home screen, I have 2 tiles. The linked inbox has a separate icon and you can name it what ever you want. &lt;br /&gt;&lt;br /&gt;

When composing a new email from a linked inbox, it will ask you which email account to use for sending the email. Another cool feature here is that now you can email to "Group". So instead of typing the recipients one by one, you can just email to "Family" group and Mango understands that and will insert the email for the people in the group. Very neat and certainly something that I will use a lot - since I do a lot of group emails (such as to family/church groups/work etc).&lt;br /&gt;&lt;br /&gt;

&lt;b&gt;Calendar&lt;/b&gt;&lt;br /&gt;
The Calendar has a subtle but awesome feature upgrades and additions, mainly multi-calendar support, Facebook calendar integration, and sync with Tasks/To-Do in Exchange. Multi- calendar support means you can view events from other calendars within the same calendar, filter them, color coded, etc. It also auto-sync with your Windows Live calendars, which include US Holiday calendar. When creating an event, you can specify which calendar the new event belongs and syncs to. If you are integrating your Facebook account, this will then include your Facebook events. &lt;br /&gt;&lt;br /&gt;

Mango also natively allows To-Do list or Task list, and if you put a due date, it will automatically put it in the calendar. If you are using Exchange, then there is an option to sync it with your Exchange Tasks. &lt;br /&gt;&lt;br /&gt;

There is also a new set of APIs that allows apps that take advantage of the built-in gyro, accelerometer, etc. to be able to communicate with the calendar.&lt;br /&gt;&lt;br /&gt;

Overall for Emails and Calendar, I was happy before - but now I am happier. There are several things that I found that I hope Microsoft will address or add in the future for Emails and Calendar, but the current Mango features really do provide the essence of what I need. &lt;br /&gt;&lt;br /&gt;

&lt;b&gt;My other WP Mango Reviews:&lt;/b&gt; &lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-part-1.html"&gt;Windows Phone 7.5 Mango Review: Update Process &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-people-me.html"&gt;Windows Phone 7.5 Mango Review: People &amp; Me&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/10/windows-phone-75-mango-review-search.html"&gt;Windows Phone 7.5 Mango Review: Search&lt;/a&gt; &lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-7757200297981218912?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7EKkRw1kizH3iGaGqxEcENKH6Gk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7EKkRw1kizH3iGaGqxEcENKH6Gk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7EKkRw1kizH3iGaGqxEcENKH6Gk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7EKkRw1kizH3iGaGqxEcENKH6Gk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/7757200297981218912/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=7757200297981218912" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/7757200297981218912?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/7757200297981218912?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/-GSmeJYYub8/windows-phone-75-mango-review-email.html" title="Windows Phone 7.5 Mango Review: Email &amp; Calendar" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><georss:featurename>Columbus, OH 43220, USA</georss:featurename><georss:point>40.0506279 -83.0683519</georss:point><georss:box>40.0263184 -83.1078339 40.0749374 -83.02886989999999</georss:box><feedburner:origLink>http://setiabud.blogspot.com/2011/10/windows-phone-75-mango-review-email.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MBRXkycSp7ImA9WhdaEEg.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-241350051576889006</id><published>2011-09-29T23:08:00.000-04:00</published><updated>2011-10-19T15:10:54.799-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-19T15:10:54.799-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><title>Windows Phone 7.5 Mango Review: People &amp; Me</title><content type="html">The "Me" tile was useless to me before Mango update. It had my picture and the word "Me". Clicking on it brought me to my personal information page. I had it for the first day after I bought the phone, but removed the tile the next day and never pinned it again until several days ago, after the Mango update. &lt;br /&gt;&lt;br /&gt;

The old "People" tile was basically like "Contacts", it stores all my contacts from Exchange/Outlook, Windows Live, GMail, Facebook, and other services that I included. The "What's New" area displayed all Facebook updates. So mainly, it does the basic stuff - and for me, since I don't usually connect my Facebook to my phone, my "What's New" is always empty, I also do not want to clutter my Contacts with my Facebook "friends", since there was no way to filter my Contacts before Mango. &lt;br /&gt;&lt;br /&gt;

So what does Mango bring to "Me" and "People" hub? A lot. &lt;br /&gt;&lt;br /&gt;

&lt;span class="fullpost"&gt;
&lt;b&gt;"Me" Tile&lt;/b&gt;&lt;br /&gt;
Mango brought Twitter &amp; Windows Live chat integration. So in the "Me" tile, I can change my chat status ("offline", "online", "busy", etc) - without opening an App. One of the most important feature in the "Me" tile now is "post a message" - which is a "status update" for either Twitter or Live chat. Since I tweet a lot, this then becomes one of the most frequently used feature for me - again, without opening any app. It also allows me to "check in" - a Facebook check-in integration (I wish it was a Foursquare one). From it you can choose a location or add new ones, and then add comments.&lt;br /&gt;&lt;br /&gt;

The Live Tile itself now displays how many new notifications I have. These notifications are derived from mentions in Twitter, Live chat from people, Facebook posts on your wall/conversations and mentions. This is truly adhere to the "Glance &amp; Go" concepts, where I can glance and see my notifications in one place, inside the "Me" tile - without the hassle of opening up each individual apps to see what's going on. &lt;br /&gt;&lt;br /&gt;

"What's New" now is filled with my Tweets or twitter posts, my Facebook posts, and Windows Live posts as well. This becomes like the "sent" folder of some kind. I don't find this that useful, although I can see some people may have more use for it. 

&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;"People" Hub&lt;/b&gt;&lt;br /&gt;
Now, "People" hub is much more than "Contacts". First of all, with the integration of Twitter, the Live Tile for "People" also displays avatars now. Same thing with people's Live Tile - it alternately display their avatar, Facebook photos, and their local avatar. Not only that the tile now also displays their latest status updates from Twitter or Facebook or Windows Live. It isn't just the place you look for a phone number or email, but much more - where you can find out what's going on with your friends via social network. This is pretty neat - I can view the status updates of the people I consider important (since I put them on my Home) without going into their "People" view or opening up an app! Truly in line with the "glance &amp; go" motto! &lt;br /&gt;&lt;br /&gt;

Windows Phone integrates and try to sync your contacts from all the services that you allow it to connect - for me this is Twitter, GMail, Windows Live, and Exchange. If somehow it does not find the connection between accounts, you can link them yourself and integrate the people's card into one. In my case, out of a couple hundred contacts, I only have to do this for less than a dozen contacts, and Windows Phone has done the rest - IMPRESSIVE! But that feature is pre-existing from pre-Mango - the new feature in this case is now I can filter my contacts and only display selective contact source in the "People" hub. This is a major feature for me - as I don't want my "not-in-Exchange" Twitter and Facebook friends to show up in my "People" hub. But they are still searchable and link-able! Yeay - so they are not cluttering my "People" hub, but they are still there and I can still interact with them through my phone. This sounds simple, but in practice this is truly brilliant and score an extra user-friendliness point from me.&lt;br /&gt;&lt;br /&gt;

The "People" hub has its own "What's New", which shows status updates and posts from the people. But now, you can filter them, just like contacts. You can choose to show all, or just twitter, or just Windows Live, Facebook, or any combination thereof. &lt;br /&gt;&lt;br /&gt;

In Mango, you can also create "Groups" of people or contacts (like "family" or "soccer guys" or "co-workers" etc). These "groups" show up in the "People" hub, and you can send emails, SMS to the group at once. This is very nice and very intuitive - the group name shows up during the auto-complete when you are filling in the recipient list for your email or SMS. The "Group" hub also has its own Live Tiles for each members and has a "What's New" screen, which shows status updates and posts from the people in the group. Just like regular contact, you can also pin the group to the Home screen - which creates its own Live Tile. I feel that this is pretty well thought out and designed - and since mostly I interact with people in groups, this feature is a killer for me, which really is easy to setup and gives a uber-nice experience and a delight to use. &lt;br /&gt;&lt;br /&gt;

Inside a particular contact panorama page, now there is a "history" pivot page. This gives you a running historical list of your interactions with this contact - from emails, phones, and SMS. You can filter it to display only "yesterday" or "last week", etc. &lt;br /&gt;&lt;br /&gt;

There you go - is it perfect? No. I have my wish list:&lt;br /&gt;
1. The notification list in the Me tile also includes SMS and phones.&lt;br /&gt;
2. History in People should include my Twitter &amp; Facebook interaction with the person.&lt;br /&gt;
3. Foursquare integration for check-ins.&lt;br /&gt;
4. Twitter multiple accounts support.&lt;br /&gt;&lt;br /&gt;

I would say in closing for this part of the review is that the updates to the "Me" and "People" hub are impressive. This makes using a Windows Phone such a joy, even without installing any apps. The concept of "glance &amp; go" is brilliant, so I can spend my time not in opening &amp; closing apps, but still able to take care what or who I consider important quickly.&lt;br /&gt;&lt;br /&gt;

&lt;b&gt;My other WP Mango Reviews:&lt;/b&gt; &lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-part-1.html"&gt;Windows Phone 7.5 Mango Review: Update Process &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/10/windows-phone-75-mango-review-email.html"&gt;Windows Phone 7.5 Mango Review: Email &amp; Calendar &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/10/windows-phone-75-mango-review-search.html"&gt;Windows Phone 7.5 Mango Review: Search&lt;/a&gt; &lt;br /&gt;

&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-241350051576889006?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vn6NXr1Swkdt8uJxt-5RXva7IF0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vn6NXr1Swkdt8uJxt-5RXva7IF0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vn6NXr1Swkdt8uJxt-5RXva7IF0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vn6NXr1Swkdt8uJxt-5RXva7IF0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/241350051576889006/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=241350051576889006" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/241350051576889006?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/241350051576889006?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/XyeCQZAbA4U/windows-phone-75-mango-review-people-me.html" title="Windows Phone 7.5 Mango Review: People &amp; Me" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><georss:featurename>Columbus, OH 43220, USA</georss:featurename><georss:point>40.0506279 -83.0683519</georss:point><georss:box>40.0263184 -83.1078339 40.0749374 -83.02886989999999</georss:box><feedburner:origLink>http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-people-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCQ348eyp7ImA9WhdaEEg.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-1233038766439106994</id><published>2011-09-28T18:00:00.000-04:00</published><updated>2011-10-19T15:11:02.073-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-19T15:11:02.073-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><title>Windows Phone 7.5 Mango Review: Update Process</title><content type="html">Windows Phone update, codename Mango (version 7.5) just got released on Tuesday, September 27th 2011 - it was highly anticipated and showcased repeatedly by Microsoft via numerous medias. With 500 or so new features, the Mango update is the push to get WP platform to be on the same competitive level as iPhone and Android. So finally it's here and I have installed my update and this is my review for the update and I will make this a series of reviews (instead of combining into a single bog post), starting with the update process itself.&lt;br /&gt;&lt;br /&gt; 

&lt;span class="fullpost"&gt;&lt;b&gt;UPDATE PROCESS: AWESOME&lt;/b&gt;&lt;br /&gt;
I was expecting it will be trickling slowly in US via carriers (like NoDo update) - mine would have been updated within 4-5 weeks after that date. But, it turns out that Microsoft really went above and beyond in making sure that the release process is unlike the NoDo update - I got my update right on that day and it seemed that everyone else was too. Overall the update process was smooth, although it was still via Zune instead of OTA. &lt;br /&gt;&lt;br /&gt;

Not only this is awesome compared to NoDo, but it is also awesome compared to Android updates. My HTC G2 just got updated to Gingerbread within the last 2 months and the Ice cream Sandwich update is going to be released within 2-3 months - so the lag is quite substantial. &lt;br /&gt;&lt;br /&gt;

All my apps and settings and data are all intact, and in fact the update process actually make a backup of my phone before executing the update, so in the case the update process fails or interrupted, it can restore the phone to the previous version. Once the update ran, all my apps that have not been updated to Mango were all working and everything is preserved. I need to no new device to experience the upgrade, my HTC HD7 runs just as smooth and awesome as before. The only thing that I will not be able to do with my HD7 is video-chat, since my phone does not have a front-facing camera.&lt;br /&gt;&lt;br /&gt;

This data and setting preservation is actually much better compared to the update process for iPhone. Going from iOS 3 to iOS 4 was a painful process, losing data and settings here and there. Most of the time, Apple requires you to get a new device to experience fully the new iOS functionality and performance. &lt;br /&gt;&lt;br /&gt;

For some of you who are still waiting, here is a trick you can use to force an update via Zune - &lt;a href="http://www.wpcentral.com/force-mango-update-early-through-zune-software"&gt;check it out here&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;

&lt;b&gt;My other WP Mango Reviews:&lt;/b&gt;  &lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-people-me.html"&gt;Windows Phone 7.5 Mango Review: People &amp; Me&lt;/a&gt; &lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/10/windows-phone-75-mango-review-email.html"&gt;Windows Phone 7.5 Mango Review: Email &amp; Calendar &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://setiabud.blogspot.com/2011/10/windows-phone-75-mango-review-search.html"&gt;Windows Phone 7.5 Mango Review: Search&lt;/a&gt; &lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-1233038766439106994?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oyQvaqMfctRc8qzUMTPiyh79JDI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oyQvaqMfctRc8qzUMTPiyh79JDI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oyQvaqMfctRc8qzUMTPiyh79JDI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oyQvaqMfctRc8qzUMTPiyh79JDI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/1233038766439106994/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=1233038766439106994" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/1233038766439106994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/1233038766439106994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/6YiRZnlX_Qw/windows-phone-75-mango-review-part-1.html" title="Windows Phone 7.5 Mango Review: Update Process" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><georss:featurename>Columbus, OH 43220, USA</georss:featurename><georss:point>40.0506279 -83.0683519</georss:point><georss:box>40.0263044 -83.1078339 40.0749514 -83.02886989999999</georss:box><feedburner:origLink>http://setiabud.blogspot.com/2011/09/windows-phone-75-mango-review-part-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QNRHc4fyp7ImA9WhdTE0Q.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-8279953204048873720</id><published>2011-07-10T09:21:00.006-04:00</published><updated>2011-07-11T10:43:15.937-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T10:43:15.937-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="contentment" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="hardware" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Samsung Galaxy Tab (10.1 Honeycomb) Experience</title><content type="html">I got my Galaxy Tab as a gift from attending Google I/O conference back in May 2011. I have been using it pretty much daily, brought it along on a family vacation with my family for a week - and my wife and son also have been using it to check emails, play games, browse around, etc. &lt;br /&gt;
&lt;br /&gt;
When the Tab was given to us by Google, it had Honeycomb 3.0 on it - since then it has been upgraded to Honeycomb 3.1. I won't bother you with detailed specs - you can see it &lt;a href="http://www.samsung.com/global/microsite/galaxytab/10.1/index.html"&gt;here&lt;/a&gt;, but I will write about my personal experience with it from the last 2 months. &lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;u&gt;&lt;b&gt;A little bit about my pre-Tab habits&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
Since this is my personal experience, I need to tell you a little bit about myself and my gadget-related habit/lifestyle: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;I am a software engineer, so I sit in front of a computer all day - with pretty much unlimited/unrestricted internet access. Of course, I have work to do and do not browse all day - but I do use the occasional time to go to the internet (both purposefully and just browsing around) from work (which is allowed). So basically I am not deprived of internet access while at work.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;I also own and use a smartphone - a Windows Phone device (HTC HD7). It has 3G broadband connectivity. So I have a mobile internet access.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;I also own multiple computers at home - one is dedicated for Media Center and another (desktop) for daily usage (with dual 24" monitors).&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;So, in my habit, I do most of my internet-related stuff with the opportunities above: I do my news reading mostly during lunch hours at work or from my cell phone. I do manage my banking online and try to automate things, mostly done from my home computer. I do occasionally watch YouTube or other online videos from any of those devices. Emails and twitter are pushed to my phone via respective services. So the point is that my internet-related needs are mostly done/completed with the above.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;My Personal Experience&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
When I get the tablet, I was excited *bright and shiny object*! But after the first week of trying to customize it, playing with it, downloading and installing apps and games, showing it to people - then I started to feel that although it's a cool gadget and all that but I kinda have no real need for it. I thought maybe it was just an initial boredom and I will get used to it and use it more after a while. But here I am 2 months a later - my conclusion is still the same - &lt;b&gt;I have very little real need for it. If I have to put money to get it / buy it - would I do that? No. If it's gone, would I miss it? I don't think so.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Just to be sure - it's not because the Tab is a broken device or anything like that. It's a beautiful device, works really well, ultra-long battery life, gorgeous screen, awesome OS and apps, etc. But the problem is that personally I have very little real use for it.&lt;br /&gt;
&lt;br /&gt;
Sure, there are some novelty use - like looking up twitter stream before going to bed (compared to using the phone), or looking at RedBox DVD availability, or playing Angry Bird. But these functions are trivial or novelty in nature - and they do not worth $500. &lt;br /&gt;
&lt;br /&gt;
On the other hand, there are also some good valuable and practical functions that I found in the last 2 months of using it - such as notes viewing (I am an Evernote user) and Kindle app is kind of nice (compared to phone, but a real Kindle device is still much much nicer). Since I do not have a laptop to be mobile with my notes, the Evernote app in Android is really helpful. I can view my notes in my phone, but having a larger screen is really nice - same thing with the Kindle. But, as you see, those valuable and practical functions are there because the Tab fills in the need that exists because of the lack of devices - in my case was a portable computer (or a Kindle).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Some concluding thoughts&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Depending on your habit and your gadget usage, a Tab may or may not be useful / worth it for you. In my case, if I would have had a netbook/laptop instead of a desktop, it can mean that I have even less need for the Tab.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;On the other hand, if you have a desktop and without a smartphone - the Tab is absolutely worth getting for mobility.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;For me, I have very little use for it other than the occasional reading on the Kindle app or some note reviews - again because my computing or gadget related needs/activities are already met by other means.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;So am I going to donate the device away because of my little use for it? Absolutely NOT. There are some nice little things that having a Tab provide you (they do not worth $500, but still nice to have):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Large GPS screen. Instead of using you Android phone, GPS with the Tab is kind of nice.&lt;/li&gt;
&lt;li&gt;Tank Hero is awesome using the Tab. Your hand is not in the way, so you can see better.&lt;/li&gt;
&lt;li&gt;Looking at your Google Calendar, email, etc is nicer on the Tab compared to a phone. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Some additional reviews from the web:&lt;br /&gt;
&lt;a href="http://www.engadget.com/2011/06/08/samsung-galaxy-tab-10-1-review/"&gt;Engadget&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://reviews.cnet.com/tablets/samsung-galaxy-tab-10/4505-3126_7-34505347.html"&gt;CNET&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-8279953204048873720?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/envqDBTdMPrULmz_1uuShUw6VLE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/envqDBTdMPrULmz_1uuShUw6VLE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/envqDBTdMPrULmz_1uuShUw6VLE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/envqDBTdMPrULmz_1uuShUw6VLE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/8279953204048873720/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=8279953204048873720" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/8279953204048873720?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/8279953204048873720?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/TuEATnaZi14/samsung-galaxy-tab-101-honeycomb.html" title="Samsung Galaxy Tab (10.1 Honeycomb) Experience" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/07/samsung-galaxy-tab-101-honeycomb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MBQXs_fip7ImA9WhdTE0Q.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-6907248040030378035</id><published>2011-06-19T21:40:00.012-04:00</published><updated>2011-07-11T10:44:10.546-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T10:44:10.546-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ADO.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="LINQ" /><title>Using Dapper.NET to Boost DAL Performance</title><content type="html">Lately, my focus has been to optimize and increase the performance of our web-application. This, of course, includes load time and speed - among other things. There are a lot of performance enhancements that we can do to speed up our load time, from the UI stack (javascript loading, CDN, minimization, etc), DB stack (indexing, query caching, stored procs, etc), application/biz layer stack (algorithm optimizations, data storage, caching, etc).&lt;br /&gt;
&lt;br /&gt;
Now, our web-app is using Linq-to-SQL as our DAL and since a year ago, we have been doing several things to speed up our DAL - by using compiled queries, creating stored procs, views, etc. One of the tools or library that I have been using to boost DAL performance is &lt;a href="http://code.google.com/p/dapper-dot-net/"&gt;Dapper.NET&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;Dapper is created by the Ninjas working in the Stack Overflow team - and although it is somewhat goes back into writing straight SQL queries again in your code, but the performance gain is quite significant. Yet, it also allows you to retain the object mapping like in Linq-to-SQL. &lt;br /&gt;
&lt;br /&gt;
I am not going to lay out all the functionality and the capability or the performance matrix of the Dapper.NET library. You can read them on your own &lt;a href="http://code.google.com/p/dapper-dot-net/"&gt;here&lt;/a&gt;. But, I will lay out some of the things that have been very very useful for our project. &lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Some of our queries requires some joins and doing the joins in LINQ is a bit slow compared to a simple join statement in the straight SQL. Sometimes we go all the way to make view for the join and encapsulate the call in a stored procedure, and then call it using Dapper.&lt;/li&gt;
&lt;li&gt;For any LINQ that uses "CONTAINS", we revert to Dapper (using "IN" in straight SQL).&lt;/li&gt;
&lt;li&gt; Multiple results query. This actually something that Dapper allows us to do. Previously we have to make several query calls to get multiple results. But with Dapper, we can make 1 call. &lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
Using Dapper.NET results in a lot of performance enhancements in our web-application. There was a page that now loads within 250 ms, which previously loaded in more than a second. So, we definitely see major improvement suggested by the SO team.&lt;br /&gt;
&lt;br /&gt;
If you have never tried Dapper.NET - I urge you to check it out. &lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;a href="http://code.google.com/p/dapper-dot-net/"&gt;Dapper.NET Code in Google Code&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://samsaffron.com/archive/2011/03/30/How+I+learned+to+stop+worrying+and+write+my+own+ORM"&gt;Sam Safron's Blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-6907248040030378035?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1mfl2NIy-WGSvJYmRoJaMaLMqd4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1mfl2NIy-WGSvJYmRoJaMaLMqd4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1mfl2NIy-WGSvJYmRoJaMaLMqd4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1mfl2NIy-WGSvJYmRoJaMaLMqd4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/6907248040030378035/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=6907248040030378035" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6907248040030378035?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6907248040030378035?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/dGpf9MSWYa4/using-dappernet-to-boost-dal.html" title="Using Dapper.NET to Boost DAL Performance" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/06/using-dappernet-to-boost-dal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MDRns9eSp7ImA9WhdTE0Q.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-3236357992259220115</id><published>2011-05-23T23:23:00.002-04:00</published><updated>2011-07-11T10:44:37.561-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T10:44:37.561-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Web Fonts - Why Haven't I Heard About This Before?</title><content type="html">Most of the web only uses selective number of fonts, such as: Arial, Verdana, Sans, Times New Romans. But, what if we want to display certain text with certain fonts other than those - to convey some emotion maybe, or to portray certain values, etc? Are we stuck with those selective fonts?&lt;br /&gt;
&lt;br /&gt;
It's true we can make the text to be bold, underlined, italics, etc. But I want to use "waiting for the sunrise" as my font type instead of "Verdana"! This is not easy to achieve because of several reasons:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;We are putting stuff on the web, so if the machine where the browser is running has the font that we want, it will display it. What if it doesn't? Then it will revert to the "default" font.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;All machines or computers have those basic selective fonts - that is why people are mostly sticking with them, so they can be sure that whatever they put on the web will be displayed as intended on the browser.&lt;/li&gt;
&lt;li&gt;So far people have been working around this by using images - so if I want a menu or a logo with some font type that is not among the standard, I can make it an image using my image editor and include that in my web site as an asset/image file. This then ensures that it will preserve my intended design of the logo or menu or whatever.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;But of course, making everything an image is a pain. It's hard to modify, it is not searchable by default, people cannot select/highlight from it, and it's bandwidth consuming. But we kinda stuck with it.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;Aren't there any other alternatives?&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;Yes, there is. Web Fonts enable us to use fonts that are not the standard web-safe fonts. In fact this technology is available since IE version 4 - back in late 90s! But only recently, Web Fonts starts gaining traction again, because of its adoption in CSS 3. So via CSS, you can make it download certain fonts and use it. But this is quite cumbersome - it makes your CSS file becomes so much complicated and mixed with code. Or what if the font you want to use is not free and licensed? Do you want to go through the hassle of reading all the EULA or the licensing? Probably not.&lt;br /&gt;
&lt;br /&gt;
Google released Google Web Fonts Beta last year and it has simplify the use of Web Fonts to basically 1 line of code and using your CSS just like before (clean and without all the code clutter). &lt;br /&gt;
&lt;br /&gt;
Here is an example:&lt;br /&gt;
&lt;span class="sunrise" style="font-size: 1.2em;"&gt;This text is not an image, but displayed using a free Web Font called "Waiting for the sunrise".&lt;/span&gt;&lt;br /&gt;
&lt;span class="sunrise" style="font-size: 2em;"&gt;I can also make it bigger using style.&lt;/span&gt;&lt;br /&gt;
&lt;span class="sunrise" style="font-size: 2em;"&gt;&lt;b&gt;I can also make bold.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, the sentence above remains as text, therefore it is searchable by default, it is also highlight-able, can be modified easily like any other text, its style can be customized easily in the CSS file, etc.&lt;br /&gt;
&lt;br /&gt;
So how did I do that? Easy:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Go to Google Web Fonts Beta - &lt;a href="http://www.google.com/webfonts"&gt;http://www.google.com/webfonts&lt;/a&gt; and pick your font, click it.&lt;/li&gt;
&lt;li&gt;Click on the "Use this font" tab&lt;/li&gt;
&lt;li&gt;You should see an HTML for linking a Google API call for the font. Copy that line and put it within your head tag/element.&lt;/li&gt;
&lt;li&gt;Modify your CSS file to use the font you pick. There is an example on how to do that within the same page.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;That's it. One line of code.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
Some additional readings about Web Fonts:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Web_typography"&gt;Web Typography&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com/events/io/2011/sessions/web-fonts-are-changing-the-web-learn-why.html"&gt;Google I/O 2011 Session about Web Fonts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-3236357992259220115?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HS2WncD0lRVujUsBf7mmvAkEmBk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HS2WncD0lRVujUsBf7mmvAkEmBk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HS2WncD0lRVujUsBf7mmvAkEmBk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HS2WncD0lRVujUsBf7mmvAkEmBk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/3236357992259220115/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=3236357992259220115" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/3236357992259220115?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/3236357992259220115?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/7RDo7NA1t-o/web-fonts-why-havent-i-heard-about-this.html" title="Web Fonts - Why Haven't I Heard About This Before?" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/05/web-fonts-why-havent-i-heard-about-this.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUCRH44fCp7ImA9WhZWGEw.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-82024805037918492</id><published>2011-05-18T22:07:00.007-04:00</published><updated>2011-05-19T10:11:05.034-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-19T10:11:05.034-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="strategy" /><category scheme="http://www.blogger.com/atom/ns#" term="contentment" /><category scheme="http://www.blogger.com/atom/ns#" term="jobs" /><category scheme="http://www.blogger.com/atom/ns#" term="conviction" /><title>Asking For Assistance While Minimizing Interruptions - How To Do It Well</title><content type="html">It is always somewhat a dilemma when you have to interrupt somebody to ask him/her to help you. There is always a tension between the pressure or desire to solve your problems/issues/bugs and complete your task AND the realization that everybody has their own set of tasks to complete and you are just about to interrupt &amp;amp; tell them to drop what they are doing and focus their attention to help you. &lt;br /&gt;
&lt;br /&gt;
Each person will have their own tendencies:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Some will just be too shy or reluctant to seek help and just keep banging their heads and hope miraculously or by luck that they will be able to resolve it. Therefore some issues can just linger in the bug list unresolved or taking longer than necessary to be closed.&lt;/li&gt;
&lt;li&gt;Yet a different group of people will ask, discuss, and talk about their emerging problems/issues/bugs all the time with their colleague - and creating noise, constant interruptions, and annoying.&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;We all know that the balance lies somewhere in between. We want to respect out friends/co-workers/colleague privacy, time, and work - while at the same time trying to find possible reasonable solutions or pointers in solving our issues.&lt;br /&gt;
&lt;br /&gt;
This blog post is not about how long should you wait before asking  question to others, but is about when you actually decided to ask  somebody about your problem - and how to do it well.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;One of the rule of thumb that I have heard and embrace is the 15 minutes rule - that if you encounter a problem and cannot solve it immediately, try to find some answers/pointers/hints on how to resolve it with all your might in approximately 15 minutes, and if you are still stuck, then get help from others. This works in theory but often what somebody does in that 15 minutes or so is just weird or not helpful at all. I have seen somebody basically just stare at their code up and down the screen and then declare a surrender. Or, hitting the same scenarios again and again, recompile, test with the same code again - which predictably yield the same errors/wrong results/problem as before. Some will Google their issue and read the search result and do nothing about what they read or just skim through the results. &lt;br /&gt;
&lt;br /&gt;
To be able to ask for help well, I recommend doing the following:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;It is important to know and understand the error message you are getting - if any. You should not go to somebody equipped with "it does not work". It is really bad when somebody comes to you and just say "it's broken" and when you ask "What's the error?" that person replies "don't know". &lt;/li&gt;
&lt;li&gt;Do your own homework and reasonable research first. The 15 minutes above should be counted toward this. Trying possible scenarios and fixes, what works, what does not, noting them down, etc. Then communicate this to the person that you are seeking help from - so they don't have to waste their time in trying what you ave tried again. Bring screen shots, print out, examples, etc.&lt;/li&gt;
&lt;li&gt;When you are about to interrupt people, I recommend asking whether the person has some time to spare or whether they are free at the moment. I know some of my friends to away from their desks during lunches precisely because of this reason - so they are not interrupted during lunch. It's a good practice to respect people's time and space - and asking beforehand whether they can be interrupted or not goes a long way. &lt;/li&gt;
&lt;li&gt;If the problem is not that urgent, try email. Of course describing your problem in an email may take more time (screen shots, etc etc) and some times it is just not possible. But this also an alternative to get help from others without pressuring them to drop everything on their plate and solve yours. &lt;/li&gt;
&lt;li&gt;When people allow you to interrupt them, then describe your context, settings, cases, and ask your question decisively and quickly. It's confusing when someone just storm to your cubicle and say "It's broken, does not work at all!". OK - so what do you want me to do?? Here is an example: "Bob, I have been getting some errors in ELMAH about 'null reference error'. From the trace, it seems to be coming from ProfileEdit.ascx - which uses a custom editor template for a textbox for a string value. If I use a regular textbox, it works fine, only when using the custom template then the error shows up. The custom template uses same validation rules - which I am not familiar with - and the calculated null values come from that line. Do you have any ideas or hints that will help me?"&lt;/li&gt;
&lt;li&gt;At this point, we have to give them the freedom whether they want to respond now or later. Your colleague may say "Hm, let me look into it, I will let you know" - then we ought to thank him/her and leave, go back to our desk and do something else or do some more research.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Also try to ask for help during non-peak time. I like to ask help early in the day or right after lunch, before my co-worker get into their working zone mode. Since he/she is not in their zone yet, then it becomes less of an interruption for my co-worker(s). &amp;nbsp; &lt;/li&gt;
&lt;li&gt;If you have additional suggestions/recommendations, please post them in the comments!&lt;/li&gt;
&lt;/ol&gt;I am not saying that I have been perfect in doing all these - far from it. So here are some of the mistakes or common error that I have done, or I have witnessed people did (if some of these describe you then You're Doing It Wrong!):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Send an email to co-worker about a partially described problem, then coming to that co-worker's cubicle/office and asking "Have you read my email? What do you think?". Why is this annoying? Because it's redundant and also pressuring the co-worker to immediately see/solve your problem. If you are going to send an email, send a intelligent and good description of the problem and your question. A good analogy is like creating a question/post on a forum (or &lt;a href="http://www.stackoverflow.com/"&gt;StackOverflow&lt;/a&gt;) and then wait! If it's urgent (which is usually not), then why send an email?&lt;/li&gt;
&lt;li&gt;Coming into co-worker's office/cubicle and saying "Can you come here real quick and check what I am doing wrong?" Why is this wrong in so many different levels? Because it shows an almost complete disrespect for the co-worker's attention/time/load - and expecting him/her to just drop whatever he/she is doing and solve my problem or help me. Plus, I am usually to lazy to do some research and try to articulate my problem to my co-worker  - so bringing him/her to my workstation is just so much easier.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Coming into&amp;nbsp;co-worker's office/cubicle, describing the problem and just stand there, fully expecting the other guy to help RIGHT NOW - even some times when he already said that "give me a minute". &lt;/li&gt;
&lt;li&gt;If you have additional scenarios, please post them in the comments!&lt;/li&gt;
&lt;/ul&gt;Now, even if you follow all these recommendations - that does not mean your co-workers won't be mad at you and always help you with super-eagerness and save your life - I know I don't some times. But, the bottom line is that when you respect your co-workers' time, space, and attention (by minimizing interruptions), most of them will be more likely to return the favor and more willing to help you.&lt;br /&gt;
&lt;br /&gt;
One exception to all of the above: if the issue at hand is URGENT (i.e. we pushing for production, crunch time, "server is down!", etc) - then all goes out the window and try to do whatever it takes to get the job done. But again, this is usually only occupies a small percentage of our work time and mostly preventable.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Now, stop interrupting me!&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-82024805037918492?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lRl-DnE7P9GwmyMjaSF1B3Tl85Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lRl-DnE7P9GwmyMjaSF1B3Tl85Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lRl-DnE7P9GwmyMjaSF1B3Tl85Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lRl-DnE7P9GwmyMjaSF1B3Tl85Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/82024805037918492/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=82024805037918492" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/82024805037918492?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/82024805037918492?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/-MjaMgdZcEk/asking-for-assistance-while-minimizing.html" title="Asking For Assistance While Minimizing Interruptions - How To Do It Well" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/05/asking-for-assistance-while-minimizing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IFSHY6fCp7ImA9WhdTE0Q.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-4297346418317776635</id><published>2011-04-19T01:03:00.005-04:00</published><updated>2011-07-11T10:45:19.814-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T10:45:19.814-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="JQuery" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Client-Side Validation with AJAX/Dynamic Form</title><content type="html">One of the thing in my to-do list for MVC is "figure out how to do client-side validation". Isn't that supplied out of the box since like ASP.NET MVC 2? Yes, it is - but it only work out of the box if the form is not dynamically fetched. &lt;br /&gt;
&lt;br /&gt;
In my projects, most of the form is a dynamic form - so user click an icon and then the form (empty or pre-filled) is fetched via AJAX and then displayed (some times in a jQuery dialog). This is a quite common scenario, for example: you are looking at your account profile screen and displayed there is a list of your phone numbers that you have registered. Let's say you then want to edit one of those since you changed your phone number. So you click the edit button/icon next to your phone number on the screen and a dialog box pops with the old phone number, you edit it, click "Save" and the list refreshes with your phone number. &lt;br /&gt;
&lt;br /&gt;
To simply enforcing a "required" field validation in this scenario was quite complicated. Especially when your AJAX submit handler is a custom handler (instead of using the stock ASP.NET MVC AJAX Helper). But now, by adding less than 10 lines of code, add 2 lines of configuration settings in the web.config and including less than 3 javascripts - it is all possible!&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
So let's say here is our original code - we have a form with 2 fields.&lt;br /&gt;
&lt;br /&gt;
The model:&lt;br /&gt;
&lt;pre class="brush:c#"&gt;public class Profile{
        [Required(ErrorMessage = "Name is required")]
        public string Name{ get; set; }

        [Required(ErrorMessage = "Email is required")]
        public string Email{ get; set; }
    }
&lt;/pre&gt;Our view:&lt;br /&gt;
&lt;pre class="brush:html"&gt;&amp;lt;div class="message"&amp;gt;&amp;lt;%:Html.ValidationSummary(true)%&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;% using (Html.BeginForm("/MyController/MyAction", FormMethod.Post, new { id = "MyForm", name = "MyForm" })) { %&amp;gt;
&amp;lt;table class="StripeTable"&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;%:Html.LabelFor(m =&amp;gt; m.Name)%&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;%:Html.EditorFor(m =&amp;gt; m.Name)%&amp;gt; &amp;lt;%:Html.ValidationMessageFor(m =&amp;gt; m.Name)%&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;%:Html.SmartLabelFor(m =&amp;gt; m.Email)%&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;%:Html.EditorFor(m =&amp;gt; m.Email)%&amp;gt; &amp;lt;%:Html.ValidationMessageFor(m =&amp;gt; m.Name)%&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;td colspan="2"&amp;gt;&amp;lt;input type="submit" value="Save" /&amp;gt;&amp;nbsp; &amp;lt;input type="button" value="Cancel" onclick="javascript:closeDialog();" /&amp;gt; &amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&lt;/pre&gt;Our jQuery submit handler:&lt;br /&gt;
&lt;pre class="brush:js"&gt;$(document).ready(function () {
        $("#MyForm").submit(function () {
            var f = $("#MyForm");
            var action = f.attr("action");
            var serializedForm = f.serialize();
            $.ajax({
                type: 'POST',
                url: action,
                data: serializedForm,
                error: function (request, textStatus, error) {
                    // do error handling
                },
                success: function (data, textStatus, request) {
                    // do whatever to continue
                }
            });
            return false;
        });
    });
&lt;/pre&gt;The controller action:&lt;br /&gt;
&lt;pre class="brush:c#"&gt;[HttpPost]
        public ActionResult MyAction(Profile profile) {
            if (ModelState.IsValid) {
                // save the record
                return null;
            } else {
                return View(profile);
            }
        }
&lt;/pre&gt;The client-validation does not work by default because the parsing is only done during the initial page load. So our form, which is dynamically loaded via AJAX is not parsed - therefore the client validators don't know about the new fields that need to be validated. Eventually this then result in the form being posted to the controller - and even though my business object is handling the validation as well, it would be nice if the client side is also preventing that - thus saving the round trip. &lt;br /&gt;
&lt;br /&gt;
So to enable the unobtrusive client-side validation, we need to enable it in our web.config (by default it is disabled to preserve compatibility with MVC2 and MVC1). &lt;br /&gt;
&lt;pre class="brush:html"&gt;&amp;lt;configuration&amp;gt;
    &amp;lt;appSettings&amp;gt;
        &amp;lt;add key="ClientValidationEnabled" value="true"/&amp;gt;
        &amp;lt;add key="UnobtrusiveJavaScriptEnabled" value="true"/&amp;gt;

    &amp;lt;/appSettings&amp;gt;
&amp;lt;/configuration&amp;gt;
&lt;/pre&gt;You can also do this through code.&lt;br /&gt;
&lt;pre class="brush:c#"&gt;HtmlHelper.ClientValidationEnabled = true;
HtmlHelper.UnobtrusiveJavaScriptEnabled = true;
&lt;/pre&gt;Now, the only other change is in our jQuery submit handler code. In it we need to force the parsing again - but since we don't want to parse the whole document again, so we want to limit it to the just the dynamic form. The new unobtrusive validation has a method we can call to do this: &lt;b&gt;$.validator.unobtrusive.parse();&lt;/b&gt;. We also need to handle the validity of the form on the client side - so after making those modifications, our code looks like this:&lt;br /&gt;
&lt;pre class="brush:js"&gt;$(document).ready(function () {
        $.validator.unobtrusive.parse($("#MyForm"));
        $("#MyForm").submit(function () {
            var f = $("#MyForm");
            var action = f.attr("action");
            var serializedForm = f.serialize();
            if (f.valid()) {
                $.ajax({
                    type: 'POST',
                    url: action,
                    data: serializedForm,
                    error: function (request, textStatus, error) {
                        // do error handling
                    },
                    success: function (data, textStatus, request) {
                        // do whatever to continue
                    }
                });
                return false;
            } else return false;
        });
    });
&lt;/pre&gt;That's it! &lt;br /&gt;
&lt;br /&gt;
Brad Wilson wrote an excellent &lt;a href="http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html"&gt;blog post about this feature (with a hint of the dynamic form)&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-4297346418317776635?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CIH3vusja6JPSOE3Yc8gc6Yg69o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CIH3vusja6JPSOE3Yc8gc6Yg69o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CIH3vusja6JPSOE3Yc8gc6Yg69o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CIH3vusja6JPSOE3Yc8gc6Yg69o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/4297346418317776635/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=4297346418317776635" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/4297346418317776635?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/4297346418317776635?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/oCDR5n0TR70/client-side-validation-with-ajaxdynamic.html" title="Client-Side Validation with AJAX/Dynamic Form" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/04/client-side-validation-with-ajaxdynamic.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGRX45fip7ImA9WhdTE0Q.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-4201625988952578442</id><published>2011-04-13T21:29:00.002-04:00</published><updated>2011-07-11T10:47:04.026-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T10:47:04.026-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="strategy" /><category scheme="http://www.blogger.com/atom/ns#" term="Munchkin" /><category scheme="http://www.blogger.com/atom/ns#" term="humor" /><category scheme="http://www.blogger.com/atom/ns#" term="contentment" /><category scheme="http://www.blogger.com/atom/ns#" term="family" /><title>Munchkin Strategy: Orc</title><content type="html">An Orc card says this: &lt;br /&gt;
&lt;blockquote&gt;An orc who is hit with a curse can always choose to ignore the curse and lose a level instead - unless he's already at level 1.&lt;br /&gt;
&lt;br /&gt;
When an orc fighting alone defeats a monster by more than 10, he goes up an extra level.&lt;/blockquote&gt;On the surface, these abilities seem to be superficial and not that powerful. Lose a level? What idiot prefers to do that instead of absorbing a curse? Extra level if defeating more than 10? Sounds either useless or extremely hard!&lt;br /&gt;
&lt;br /&gt;
But, to a skilled Munchkin player, becoming an orc can be a powerful strategy in both early and late game.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
So here are some basic strategy playing as Orc: &lt;br /&gt;
&lt;ol&gt;&lt;li&gt;During early games, be careful in putting down some of your powerful items to reduce chances of getting them cursed. Use your discretion. &lt;/li&gt;
&lt;li&gt;If you can go up a level (via GUAL or selling items or Looking For Trouble with low level monster), do it. This then gives you a buffer to be able to take Curses from people.&lt;/li&gt;
&lt;li&gt;Once you are at a level 3 or 4, then you can pretty much put down all your items. This just a good buffer that you have to be Cursed 3 times in a row to be a level 1 where you have to start applying Curses.&lt;/li&gt;
&lt;li&gt;When you are at a state where you have so many items, you pretty much want to refuse all Curses that remove your items (with some minor exceptions, depending on your&amp;nbsp; momentary strategy). An example will be that if you are have a Big item in play and you happen to be have another Big item in your hand and someone Curses you with "Lose Your Big Item", I would probably take the Curse and NOT lose a level. &lt;/li&gt;
&lt;li&gt;If you can, hold at least 1 GUAL card in your hand. So if you lose a level because of refusing a Curse, you can get it back immediately. If you get the Magnificent Hat or Sandals of Protection then you are pretty much golden as far as Curses go.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Because of this advantage, an Orc will usually accumulate lots of items and become powerful because of the bonuses, but with a weaker/weakest level. This allows the Orc player to get lots of charity cards and then he can gain levels by selling items that he does not need in the beginning of his turn.&lt;/li&gt;
&lt;li&gt;During the later stage of the game, a higher level Orc should keep a low level (like level 1 or 2) Monster in their hand. Once the Orc player is at level 8, if his combat strength is 10 or more beyond the monster, the Orc player can gain an extra level - which means that he can win the game. Doppelganger is a killer card to have at this stage. &lt;/li&gt;
&lt;li&gt;Race - Class combo: A wizard - orc is very potent! Not only you can refuse Curses, but you can Charm Monsters to get tons of Treasures! Bard is probably my second choice to get the selection of Treasures. &lt;/li&gt;
&lt;/ol&gt;So there you go, some basic Orc strategy. A smart Orc player can be very powerful early in the game and then later on switch to a different Race (like Gnome - using the illusion charm) to finish the game. Or be an Orc late in the game to utilize the extra level gained! Whichever your strategy is, being an Orc can be very very powerful if used smartly.&lt;br /&gt;
&lt;br /&gt;
Some threats:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt; An Orc is not immune to theft. So a thief in play can always try to steal the Orc's items. &lt;span class="fullpost"&gt;A low level thief will always try to steal your  items. Of course, if you have the Helmet of Peripheral, then you are  immune to their stealing and backstabbing attempts. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;The weakest point of an Orc is at the early game, when the player is at level 1. So if you are playing against an Orc player, curse him early!&lt;/li&gt;
&lt;li&gt; Hard to win, because an Orc player can be Cursed repeatedly and keep on losing a level (if he chooses). Refusing a Curse is not always worth it - so depending on your strategy, some times it is OK to take a Curse.&lt;/li&gt;
&lt;li&gt;Other player will usually try to kill an Orc - so the Orc player will lose all his items (death) and become significantly weak(er). Or use a Monster that has Bad Stuff to remove the Race. &lt;/li&gt;
&lt;/ol&gt;So there you have it - powerful race, an Orc is!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-4201625988952578442?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uXT5y4H8VFjL2bbffrmyoWazhgo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uXT5y4H8VFjL2bbffrmyoWazhgo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uXT5y4H8VFjL2bbffrmyoWazhgo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uXT5y4H8VFjL2bbffrmyoWazhgo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/4201625988952578442/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=4201625988952578442" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/4201625988952578442?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/4201625988952578442?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/s1U-gJoD1hY/munchkin-strategy-orc.html" title="Munchkin Strategy: Orc" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/04/munchkin-strategy-orc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IMRno7fSp7ImA9WhdTE0Q.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-6437434858077160801</id><published>2011-04-10T23:34:00.003-04:00</published><updated>2011-07-11T10:46:27.405-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T10:46:27.405-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Utilizing pass-by-ref Parameters</title><content type="html">I recently helped a friend of mine code an application and at some point I created a method using a pass-by-reference parameter. Apparently this is new to him. I asked several other programmer friends that I know and most of them either know about it but never use it or don't know about it. So - here is a post about it. &lt;br /&gt;
&lt;br /&gt;
To illustrate the usage of pass-by-reference, I will create to a simplistic example - where we want to calculate a loan amortization: with initial loan, interest rate, and loan period - and resulting in: monthly payment and total interest over loan term&lt;br /&gt;
&lt;br /&gt;
So in code, without the pass-by-reference, we have to do this somewhat in 2 steps/methods:&lt;br /&gt;
&lt;pre class="brush:c#"&gt;decimal monthlyPayment = CalculateMonthlyPayment(initialLoan, rate, period);
    decimal totalInterest = CalculateTotalInterest(initialLoan, rate, period);
&lt;/pre&gt;With the definitions:&lt;br /&gt;
&lt;pre class="brush:c#"&gt;public decimal CalculateMonthlyPayment(decimal initialLoan, double rate, int period) { 
        decimal result;

        // calculate monthly payment

        return result;
    }

    public decimal CalculateTotalInterest(decimal initialLoan, double rate, int period) { 
        decimal result;

        // calculate interest

        return result;
    }
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;While the 2 steps thing is OK, but we know that we can optimize that better since both methods use the same parameter and both methods have a lot of similarity in their calculation. So it would be better if we can combine both methods - how can can we get 2 results with 1 methods? Maybe we should return the results in an array or make a "MortgageAmortization" class? Both ideas are OK and no doubt are also easily doable. But, I think this is also the right place to use pass-by-reference parameter in simplifying and optimizing our methods. &lt;br /&gt;
&lt;br /&gt;
There are 2 ways to do pass-by-reference in C#: out or ref. The difference between them is small but important: argument passed to a ref parameter must be initialized - where out param does not have to be. You can read about ref and out further &lt;a href="http://msdn.microsoft.com/en-us/library/14akc2c7.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
So, using pass-by-reference, our code becomes something like this:&lt;br /&gt;
&lt;pre class="brush:c#"&gt;decimal monthlyPayment = 0;
    decimal totalInterest = 0;
    monthlyPayment = CalculateMortgage(initialLoan, rate, period, out totalInterest);
    // or you can use ref instead of out as long as the method signatures match
    // monthlyPayment = CalculateMortgage(initialLoan, rate, period, ref totalInterest);
&lt;/pre&gt;&lt;br /&gt;
&lt;pre class="brush:c#"&gt;public decimal CalculateMortgage(decimal initialLoan, double rate, int period, out totalInterest) { 
        decimal result;

        // calculate monthly payment

        // set total interest
        // totalInterest = 12500;

        return result;
    }
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-6437434858077160801?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AT4OWCQ3DtW6smEr1EzulEFxrVI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AT4OWCQ3DtW6smEr1EzulEFxrVI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AT4OWCQ3DtW6smEr1EzulEFxrVI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AT4OWCQ3DtW6smEr1EzulEFxrVI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/6437434858077160801/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=6437434858077160801" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6437434858077160801?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6437434858077160801?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/g99rVd2IQD8/utilizing-pass-by-ref-parameters.html" title="Utilizing pass-by-ref Parameters" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/04/utilizing-pass-by-ref-parameters.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUACQ3g5eCp7ImA9WhZREU0.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-5194992427079328152</id><published>2011-03-29T18:59:00.001-04:00</published><updated>2011-04-06T11:29:22.620-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-06T11:29:22.620-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="JQuery" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="IE" /><title>jQuery update for IE9</title><content type="html">When Internet Explorer was released, I downloaded it immediately and replaced my IE8. It works superbly except on a project that I was working on. For some reason, some javascripts are causing errors and won't work. I was using jQuery 1.4.x and jQuery UI 1.8.1. &lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;After some investigation, the existence of the meta-tag to force IE compatibility and the outdated jQuery scripts were causing all the errors. &lt;br /&gt;
&lt;br /&gt;
So I removed the meta-tag ("&amp;lt;meta http-equiv="x-ua-compatible" content="IE=8" /&amp;gt;") and updated the jQuery reference to the latest greatest (1.5.1 and UI 1.8.11) - and all are happy again.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-5194992427079328152?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1F0grDWp4-nQvQzGNfOlIhMNDmY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1F0grDWp4-nQvQzGNfOlIhMNDmY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1F0grDWp4-nQvQzGNfOlIhMNDmY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1F0grDWp4-nQvQzGNfOlIhMNDmY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/5194992427079328152/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=5194992427079328152" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/5194992427079328152?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/5194992427079328152?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/jthcvO4y_BQ/when-internet-explorer-was-released-i.html" title="jQuery update for IE9" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/03/when-internet-explorer-was-released-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EBRXw6eyp7ImA9WhdTE0Q.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-7343445090966716719</id><published>2011-03-07T21:30:00.009-05:00</published><updated>2011-07-11T10:47:34.213-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T10:47:34.213-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="strategy" /><category scheme="http://www.blogger.com/atom/ns#" term="Munchkin" /><category scheme="http://www.blogger.com/atom/ns#" term="games" /><category scheme="http://www.blogger.com/atom/ns#" term="humor" /><category scheme="http://www.blogger.com/atom/ns#" term="contentment" /><category scheme="http://www.blogger.com/atom/ns#" term="family" /><title>Munchkin Strategy: Wizard</title><content type="html">Munchkin is a card game, where you play a character in battling monsters in order to get to the winning level (level 10 for regular or 20 for EPIC). The game involves some luck (drawing cards), strategies, a good amount of persuasion, trash-talking, and bantering back-and-forth with other players. That combination makes the game a lot of fun, interactive, and can be played again and again without getting boring. &lt;br /&gt;
&lt;br /&gt;
For more information about Munchkin, you can read their website: &lt;a href="http://www.worldofmunchkin.com/"&gt;http://www.worldofmunchkin.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you are familiar with Dungeons &amp;amp; Dragons, then Munchkin should be somewhat familiar to you - a funny version of D&amp;amp;D. It has races &amp;amp; classes, curses, combat strength, charms, potions, etc. &lt;br /&gt;
&lt;br /&gt;
The rest of this post assumes that you are somewhat familiar with the game, basic rules, and its vocabularies - outlining a basic strategy to use if you are playing as a Wizard class. &lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
A Wizard card says this:&lt;br /&gt;
&lt;blockquote&gt;Flight Spell: You may discard up to 3 cards while Running Away; each one gives you a +1 bonus to flee.&lt;br /&gt;
&lt;br /&gt;
Charm Spell: You may discard your whole hand (min 3 cards) to charm a single Monster instead of fighting it. Discard the Monster and take its Treasure, but don't gain levels. If there are other monsters in the combat, fight them normally.&lt;/blockquote&gt;So here are some basic strategy when playing as a Wizard:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;When you are a lower level Wizard facing a lower level Monster - then just fight it normally.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Try to put down as many items as you can (carry them) even though you cannot use them all. For example: if I have an item that is "Not usable by Wizard" or "Usable by Cleric only" - I would still play/carry them (putting them down sideways in front of me) instead of keeping them in my hand.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;But make that you have at least 3 cards in your hand, no less.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Try to keep your hand to be as bad as possible. So if you have a level 1 or level 2 Monsters that you can fight alone, try to do that if possible in Looking For Trouble phase.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If you have a very high level Monster card in your hand with lots of Treasures and some Monster Enhancers, keep them in your hand.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;If then when you Kick Down the Door and get a Monster with 4 or 5 treasures (usually a high level monster level 14 or more), announce to the group that you can Defeat it. If you have more than 3 cards in your hand and one of them is a Monster Enhancer, play it against the Monster you are facing. For example: you are fighting a Plutonium Dragon (level 20, 2 levels up if killing, 5 Treasures) - and you play a +10 to Monster Enhancer, making the Monster a level 30, but adding 2 more Treasures totaling 7 Treasures.&lt;/li&gt;
&lt;li&gt;Discard your whole hand and Charm the Monster! At that point, no other player can play a card on the Monster (since it's vanished already) - BUT they can still play a Wondering Monster if they want. If they do, you will have to fight the Wondering Monster normally. If there is no Wondering Monster, then you are home free with lots of treasures!!&lt;/li&gt;
&lt;li&gt;If you can do that twice, you should be loaded with items and even though you are still a lower level player, but your combat strength gained from your items should help you tremendously. &lt;/li&gt;
&lt;li&gt;If you can, just keep doing the same thing over and over again. Obviously you will need to gain some cards to your hand (either by charity from other players or from the Door) in order to Charm a Monster.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;So how do you gain levels? Since you pick lots of Treasures, chances are that you got Go Up A Level cards. Or since you have so many items, you can sell them to go up a level. Only then at the winning level you will have to fight a Monster normally.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;What race to use when you are a Wizard class? If you are not immune to Curses, then Orc will be my choice - so you can lose a level instead of getting Cursed. Another option is a Halfling - so you can sell less items to gain more levels (by using Halfling ability to double the price of the 1st item). Dwarf is helpful if you have multiple Monster Enhancers. &lt;/li&gt;
&lt;/ul&gt;That is basically the gist of my strategy for using a Wizard - I have won many games with that strategy. Is it the ultimate strategy? I consider the Munchkin a pretty balance game. So other Races/Classes have good strategies too that can impede my Wizard strategy or for winning the game. Can you still lose using this strategy? Absolutely - but it is quite unlikely and it usually takes a significant effort to do that. &lt;br /&gt;
&lt;br /&gt;
I will try to outline the worst threat that other players can do to you as you are using this strategy:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Obviously, a "Change Your Class" curse or "Lose Your Class" curse will become a major drawback, since you will be losing your Wizard class.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If you are an Orc, go up to level 2 quickly so you can always ignore curses that impact your Wizard Charm ability and lose a level instead. In most cases, it is better to lose a level instead of losing your Wizard investment. &lt;/li&gt;
&lt;li&gt;Other player will usually always try to curse you. So if you have a Tinfoil Hat - you are in an excellent position. The only curse that can hit you is from the Door. Unless if you have the Magnificent Hat - in which you are golden as far as curses goes.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;A low level thief will always try to steal your items. Of course, if you have the Helmet of Peripheral, then you are immune to their stealing and backstabbing attempts. But then you will be exposed to curses, since you cannot wear Tinfoil Hat and Magnificent Hat and Helmet of Peripheral at the same time (they are all Headgear and you can only wear 1 Headgear). Having a "CHEAT" card certainly helps ...&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Now, let's Kill the Monsters, Steal the Treasures, and Stab your Buddy - Munchkinly!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-7343445090966716719?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_o4C6eo8Ben21agkVE4nvZiOUFQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_o4C6eo8Ben21agkVE4nvZiOUFQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_o4C6eo8Ben21agkVE4nvZiOUFQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_o4C6eo8Ben21agkVE4nvZiOUFQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/7343445090966716719/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=7343445090966716719" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/7343445090966716719?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/7343445090966716719?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/WOS12n-TsTM/munchkin-strategy-wizard.html" title="Munchkin Strategy: Wizard" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/03/munchkin-strategy-wizard.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEGSXo_eyp7ImA9Wx9aFUQ.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-5118368963970942190</id><published>2011-03-02T21:51:00.000-05:00</published><updated>2011-03-08T09:30:28.443-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-08T09:30:28.443-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="IIS" /><category scheme="http://www.blogger.com/atom/ns#" term="logging" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Integrating ELMAH into your ASP.NET MVC project</title><content type="html">What is ELMAH? ELMAH stands for Error Logging Modules and Handlers. So it does what it says, logging errors. It's a plug-able stand alone module that you can integrate with your project quite easily. &lt;br /&gt;
&lt;br /&gt;
From ELMAH's site: &lt;br /&gt;
Once ELMAH has been dropped into a running web application and configured appropriately, you get the following facilities without changing a single line of your code:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging of nearly all unhandled exceptions.&lt;/li&gt;
&lt;li&gt;A web page to remotely view the entire log of recoded exceptions.&lt;/li&gt;
&lt;li&gt;A web page to remotely view the full details of any one logged exception.&lt;/li&gt;
&lt;li&gt;In many cases, you can review the original yellow screen of death that ASP.NET generated for a given exception, even with customErrors mode turned off.&lt;/li&gt;
&lt;li&gt;An e-mail notification of each error at the time it occurs.&lt;/li&gt;
&lt;li&gt;An RSS feed of the last 15 errors from the log.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;Sounds awesome! Hell yes - beats writing your own any day! How do you integrate it with ASP.NET MVC project?&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;u&gt;&lt;b&gt; 1. Download ELMAH&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
You can get the compiled assemblies or the source files here: &lt;a href="http://code.google.com/p/elmah/"&gt;http://code.google.com/p/elmah/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;2. Reference ELMAH's assemblies&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
If you get the compiled assemblies, just make a reference to Elmah.dll. If you get the source, you will need to build it and then reference it (either by project or by binary).&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;3. Modify web.config&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;
Open your web.config and make these changes:&lt;br /&gt;
a. Add this "configSections" within "configuration"&lt;br /&gt;
&lt;pre class="brush:xml"&gt;&amp;lt;configSections&amp;gt;
        &amp;lt;sectionGroup name="elmah"&amp;gt;
            &amp;lt;section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/&amp;gt;
            &amp;lt;section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah"/&amp;gt;
            &amp;lt;section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah"/&amp;gt;
            &amp;lt;section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/&amp;gt;
        &amp;lt;/sectionGroup&amp;gt;
    &amp;lt;/configSections&amp;gt;
&lt;/pre&gt;b. Add this "elmah" section within "configuration" under the "configSections". This will enable ELMAH to save the error log to the database using "MyAppConnectionString" connection string. If you want to save the log into XML files on a local disk, you can uncomment the second line (and comment the 4th line) and specify the saving location under "logPath".&lt;br /&gt;
&lt;pre class="brush:xml"&gt;&amp;lt;elmah&amp;gt;
        &amp;lt;!--&amp;lt;errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data"/&amp;gt;--&amp;gt;
        &amp;lt;security allowRemoteAccess="1"/&amp;gt;
        &amp;lt;errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="MyAppConnectionString"/&amp;gt;
    &amp;lt;/elmah&amp;gt;
&lt;/pre&gt;c. Within "system.web" section, add these lines:&lt;br /&gt;
&lt;pre class="brush:xml"&gt;&amp;lt;httpHandlers&amp;gt;
            &amp;lt;add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/&amp;gt;
        &amp;lt;/httpHandlers&amp;gt;
        &amp;lt;httpModules&amp;gt;
            &amp;lt;add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/&amp;gt;
        &amp;lt;/httpModules&amp;gt;
&lt;/pre&gt;d. Within "configuration", configure the permission to see the log. Basically it will deny all users unless users are logged in and user name is listed in the "allow" list. Enable that by adding these lines:&lt;br /&gt;
&lt;pre class="brush:xml"&gt;&amp;lt;location path="elmah.axd"&amp;gt;
        &amp;lt;system.web&amp;gt;
            &amp;lt;authorization&amp;gt;
                &amp;lt;allow users="admin,joe,bob"/&amp;gt;
                &amp;lt;deny users="*"/&amp;gt;
            &amp;lt;/authorization&amp;gt;
        &amp;lt;/system.web&amp;gt;
    &amp;lt;/location&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;u&gt;&lt;b&gt;4. Modify global.asax&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;
Check in your global.asax whether this line exists:&lt;br /&gt;
&lt;pre class="brush:c#"&gt;routes.IgnoreRoute("{resource}.axd/{*pathInfo}");&lt;/pre&gt;If it is, then no more changes are needed in the global.asax.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;5. Preparing Database&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;
If you elect to store the log in the database, then some tables and stored procedures must be created before ELMAH can be functional. Get the script to create all those tables &amp;amp; stored procedures here: &lt;a href="http://code.google.com/p/elmah/wiki/Downloads?tm=2"&gt;http://code.google.com/p/elmah/wiki/Downloads?tm=2&lt;/a&gt; and run it. &lt;br /&gt;
&lt;br /&gt;
That should be it and ELMAH is ready to run - you can start accessing ELMAH under /elmah.axd from your root url. &lt;br /&gt;
&lt;br /&gt;
But I went a step further - I want all exception, including handled one to also be captured in ELMAH. ASP.NET MVC provides an filter-attribute called "HandleError" to handle/catch all errors/exceptions happening in the controller or bubble all the way to the controller. So instead of using that, I made my own HandleError attribute that will log to ELMAH - and replace the stock [HandleError] with my [ELMAHHandleError] attribute.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;6. Create [ELMAHHandleError] for all my controllers&lt;/b&gt;&lt;/u&gt;. &lt;br /&gt;
I took this code from NerdDinner example that ASP.NET team provides in CodePlex. &lt;br /&gt;
&lt;pre class="brush:c#"&gt;public class ELMAHHandleErrorAttribute : HandleErrorAttribute {
        public override void OnException(ExceptionContext context) {
            base.OnException(context);

            var e = context.Exception;
            if (!context.ExceptionHandled   // if unhandled, will be logged anyhow
                    || RaiseErrorSignal(e)      // prefer signaling, if possible
                    || IsFiltered(context))     // filtered?
                return;

            LogException(e);
        }

        private static bool RaiseErrorSignal(Exception e) {
            var context = HttpContext.Current;
            if (context == null)
                return false;
            var signal = ErrorSignal.FromContext(context);
            if (signal == null)
                return false;
            signal.Raise(e, context);
            return true;
        }

        private static bool IsFiltered(ExceptionContext context) {
            var config = context.HttpContext.GetSection("elmah/errorFilter") as ErrorFilterConfiguration;

            if (config == null) return false;

            var testContext = new ErrorFilterModule.AssertionHelperContext(context.Exception, HttpContext.Current);

            return config.Assertion.Test(testContext);
        }

        private static void LogException(Exception e) {
            var context = HttpContext.Current;
            ErrorLog.GetDefault(context).Log(new Error(e, context));
        }
    }
&lt;/pre&gt;&lt;br /&gt;
That's it!&lt;br /&gt;
&lt;br /&gt;
For further reading:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/aa479332.aspx"&gt;Using HTTP Modules and Handlers to Create Pluggable ASP.NET Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/elmah/wiki/DotNetSlackersArticle"&gt;&amp;nbsp;DotNetSlackersArticle in configuring ELMAH&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-5118368963970942190?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NpDWR2cN63bVNMpo8QgVeAXbw_g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NpDWR2cN63bVNMpo8QgVeAXbw_g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NpDWR2cN63bVNMpo8QgVeAXbw_g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NpDWR2cN63bVNMpo8QgVeAXbw_g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/5118368963970942190/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=5118368963970942190" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/5118368963970942190?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/5118368963970942190?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/rZdVpAauRL0/integrating-elmah-into-your-aspnet-mvc.html" title="Integrating ELMAH into your ASP.NET MVC project" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/02/integrating-elmah-into-your-aspnet-mvc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YMQXoycSp7ImA9Wx9UGUg.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-8606448207008821560</id><published>2011-02-17T11:11:00.002-05:00</published><updated>2011-02-17T11:13:00.499-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-17T11:13:00.499-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><title>Mowbol Weekly: Using Corona</title><content type="html">Mowbol.com (AWH's sister company), a company that focuses on mobile development recently did a series of videos about mobile platform. The last one was particularly interesting as it discussed using Corona to build a code once publish for both Android &amp; iOS. &lt;br /&gt;
&lt;br /&gt;
Chris Slee talks about Corona and the new Mowbol channel framework from &lt;a href="http://www.mowbol.com"&gt;mowbol.com&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;object width="506" height="304"&gt;&lt;param name="movie" value="http://www.youtube.com/v/iTagBDx8Ffo"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/iTagBDx8Ffo" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="506" height="304"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;So if you need to get into  the app store fast on Android phones and tablets, iPhones, iPads, we need to talk. &lt;br /&gt;
&lt;br /&gt;
You can go to mowbol's website here: &lt;a href="http://www.mowbol.com"&gt;http://www.mowbol.com&lt;/a&gt;&lt;br /&gt;
Mowbol also has a Youtube channel under mowboldotcom: &lt;a href="http://www.youtube.com/user/mowboldotcom"&gt;http://www.youtube.com/user/mowboldotcom&lt;/a&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-8606448207008821560?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fA5diI07wkJXEPdIV0zSXvwZFWI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fA5diI07wkJXEPdIV0zSXvwZFWI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fA5diI07wkJXEPdIV0zSXvwZFWI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fA5diI07wkJXEPdIV0zSXvwZFWI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/8606448207008821560/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=8606448207008821560" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/8606448207008821560?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/8606448207008821560?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/Fn4IgujxTyA/mowbol.html" title="Mowbol Weekly: Using Corona" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/02/mowbol.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AGQXs5cCp7ImA9WhdTE0Q.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-7760980399098453768</id><published>2011-02-08T22:09:00.001-05:00</published><updated>2011-07-11T10:48:40.528-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T10:48:40.528-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ADO.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="LINQ" /><title>Performance Tips (LINQ to SQL)</title><content type="html">One part of the application that I am working on is performing poorly. According to the performance measurement that I get from using &lt;a href="http://www.eqatec.com/tools/profiler/"&gt;EQATEC profiler&lt;/a&gt;, it takes 3-4 seconds to load this page.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;IIS / UI&amp;nbsp;&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;
Since this is a web application, so I made sure all the IIS/non-application performance enhancements are in place:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;IIS compression are turned on&lt;/li&gt;
&lt;li&gt;Javascript files are combined and compressed&lt;/li&gt;
&lt;li&gt;CSS files are combined and compressed&lt;/li&gt;
&lt;li&gt;Images, scripts, and CSS files are cached&lt;/li&gt;
&lt;li&gt;Conforming to YUI rules &amp;amp; Google PageSpeed performance rules&lt;/li&gt;
&lt;/ul&gt;Setting all those boost some performance in my application - not really that noticeable in normal usage. It cut down about 0.5 seconds or about 13% or my load time. So now we are in 2.8-3.5 seconds range. So what else?&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;u&gt;&lt;b&gt;DATA ACCESS LAYER&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
Since all those are set properly, so now I am tracing down into the application itself - and eventually narrowed it down to a database call that somehow is costing 85% or the load time. On the surface there seems to be nothing wrong with the query itself - it's just a regular select statement from some tables (joined) with some given criteria (where clause) - constructed in LINQ.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;DATABASE INDEXES / KEYS / STATS&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
So the next step was getting the correspondent SQL statement generated by the LINQ statement and run it through SQL query analyzer to make sure that the tables queried have proper keys, indexes, etc. Adding some indexes and stats really enhance the performance in table queries - which according to SQL DB Engine Tuning Advisor should give about 78% improvement. In real usage, it cut down about 1.5 second of load time. So now we are at 1.2-1.9 seconds range - which is not bad compared to the earlier measurement.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;LINQ COMPILED QUERIES&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
So now I tried to do some &lt;a href="http://www.davidhayden.com/blog/dave/archive/2008/02/19/HighPerformanceLINQToSQLCompiledQueriesORMappersEcommerceWebsites.aspx"&gt;compiled queries&lt;/a&gt; in my LINQ to SQL queries. That combined with data load options proof to be working better as far as performance. My load time goes down more to 0.8-1.4 seconds. So we are getting into the sub-seconds range now - coming down from 3-4 seconds. Major improvement!&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;PARALLEL LIBRARY&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
Some of my LINQ queries are LINQ to objects (instead of LINQ to SQL), so I try to put them into parallel mode when possible using &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163340.aspx"&gt;Parallel Library&lt;/a&gt;. There are several areas where I did this and it yields faster results (I am running a dual core machine, the production VM is also the same way). The average load time is now at 0.7-1.2 seconds. Small improvement (0.1 or 0.2 seconds - but it's 10% improvement!).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;STORED PROCEDURES&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
I am pretty much set and ready to commit my changes when I remember reading an article about stored procedures - which is still faster than LINQ to SQL or even compiled queries. So I have got to try that! So I commented out the call to my compiled queries and move the queries into stored procedure instead. Made some adjustments in my LINQ to SQL project and rebuilt. Unbelievable! My load time now is 0.6 to 0.9 seconds. It never even break 1 second.&lt;br /&gt;
&lt;br /&gt;
So there you have it. Some optimization tips. Just to recap:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Use a profiler to measure. For UI/CSS/Javascript etc you can use Firebug, Google PageSpeed. I use EQATEC profiler to do tracing and find bottlenecks in my applications.I blogged about EQATEC before &lt;a href="http://setiabud.blogspot.com/2009/04/eqatec-net-app-profiler.html"&gt;here&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;Check your queries - are they making unnecessary joins, missing where clauses, etc?&lt;/li&gt;
&lt;li&gt;DB indexes, keys, stats - are they set? &lt;/li&gt;
&lt;li&gt;Using compiled queries in LINQ does make a difference&lt;/li&gt;
&lt;li&gt;Make use of the Parallel Library if applicable&lt;/li&gt;
&lt;li&gt;Stored procedures still trumps everything else - use only when necessary to avoid code separation &lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-7760980399098453768?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8PaiQzezj5fPyiYfLd4HsATFvAs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8PaiQzezj5fPyiYfLd4HsATFvAs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8PaiQzezj5fPyiYfLd4HsATFvAs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8PaiQzezj5fPyiYfLd4HsATFvAs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/7760980399098453768/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=7760980399098453768" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/7760980399098453768?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/7760980399098453768?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/i5W6805NJZY/performance-tips-linq-to-sql.html" title="Performance Tips (LINQ to SQL)" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/02/performance-tips-linq-to-sql.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQFR34zeSp7ImA9Wx9VFUw.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-605381678138884547</id><published>2011-01-31T16:45:00.000-05:00</published><updated>2011-01-31T16:45:16.081-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-31T16:45:16.081-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="LINQ" /><title>Using Except() Method in LINQ</title><content type="html">There is a method that I rarely use in LINQ called "Except" - but it comes handy in my latest coding. So I thought I'd share how I use it. This method is for an IEnumerable and has multiple signatures: one that takes a second IEnumerable to exclude and the other one takes an IEnumerable and a comparer. You can read the spec in full &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.except.aspx"&gt;here&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
Here is an example:&lt;br /&gt;
&lt;pre class="brush:c#"&gt;int[] oneToTen = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int[] oneToTenEven = { 2, 4, 6, 8, 10 };
int[] oneToTenOdd;

// do some exclusion here
oneToTenOdd = oneToTen.Except(oneToTenEven);

// so that oneToTenOdd will have { 1, 3, 5, 7, 9 };
&lt;/pre&gt;&lt;span class="fullpost"&gt;OK - that looks simple. But what about when the IEnumerable is of type T or some other complex type? This is where the second signature comes in handy. In this scenario, we will have to make our own comparer class to specify how we want both list items to be compared against each other. &lt;br /&gt;
&lt;br /&gt;
Imagine this hypothetical situation where you are at a dealership and want to separate the cars that have been washed and ones that have not. Cars may have the same make, model, color, type, but each has different VIN number. &lt;br /&gt;
 &lt;br /&gt;
&lt;pre class="brush:c#"&gt;IEnumerable&amp;lt;Car&amp;gt; allCars = GetAllCars();
IEnumerable&amp;lt;Car&amp;gt; carAlreadyWashed = GetCarAlreadyWashed();
IEnumerable&amp;lt;Car&amp;gt; carNotWashed;

// do some exclusion here
carNotWashed = allCars.Except(carAlreadyWashed);

&lt;/pre&gt;The above code which will normally work for simple comparison, won't work because the run-time will have no idea that it has to compare based on VIN number. We have to tell it to use that field to do comparison. &lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:c#"&gt;public class CarComparer : IEqualityComparer&amp;lt;Car&amp;gt; {
    public bool Equals(Car x, Car y) {
        //Check whether the compared objects reference the same data.
        if (Object.ReferenceEquals(x, y)) return true;

        //Check whether any of the compared objects is null.
        if (Object.ReferenceEquals(x, null) || Object.ReferenceEquals(y, null))
            return false;

         //Check whether the Car' properties are equal.
        return x.VIN == y.VIN;
    }

    // If Equals() returns true for a pair of objects
    // then GetHashCode() must return the same value for these objects.
    public int GetHashCode(Car car) {
        //Check whether the object is null
        if (Object.ReferenceEquals(plan, null)) return 0;
        //Get hash code for the VIN field.
        int hashCarVIN = car.VIN.GetHashCode();
        return hashCarVIN;
    }
}
&lt;/pre&gt;Now then we can modify our code to be such as this:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:c#"&gt;IEnumerable&amp;lt;Car&amp;gt; allCars = GetAllCars();
IEnumerable&amp;lt;Car&amp;gt; carAlreadyWashed = GetCarAlreadyWashed();
IEnumerable&amp;lt;Car&amp;gt; carNotWashed;

// do some exclusion here
carNotWashed = allCars.Except(carAlreadyWashed, new CarComparer());

&lt;/pre&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-605381678138884547?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lMEXlLMbwEqjj0ksoOX0M9QuhMs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lMEXlLMbwEqjj0ksoOX0M9QuhMs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lMEXlLMbwEqjj0ksoOX0M9QuhMs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lMEXlLMbwEqjj0ksoOX0M9QuhMs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/605381678138884547/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=605381678138884547" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/605381678138884547?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/605381678138884547?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/si0V4tMf-bI/using-except-method-in-linq.html" title="Using Except() Method in LINQ" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/01/using-except-method-in-linq.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EMSXg4eCp7ImA9Wx9XFE8.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-5013934148615421298</id><published>2011-01-07T12:34:00.000-05:00</published><updated>2011-01-07T12:34:48.630-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-07T12:34:48.630-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ADO.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Microsoft Certification exams</title><content type="html">My employer (&lt;a href="http://www.awh.net"&gt;AWH - http://www.awh.net&lt;/a&gt;) encourages us (the employees) to take MS certifications. Not only this will benefit the company in maintaining our status as a Gold Partner, but also will benefit us as far as knowledge, new technology, etc. Plus the certifications are attached to the individual, so if you change jobs, those certifications certainly belong in your resume and can be leveraging points. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.awh.net"&gt;AWH&lt;/a&gt; will pay for the tests, including first failure. So if I take a test and fail, and then retake the test and pass, AWH will cover both exams. So I have to pass before the reimbursement can come through. &lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;Anyway, so last November, I saw a promotion on &lt;a href="http://prometric.com/Microsoft/default.htm"&gt;Prometric&lt;/a&gt;'s website for a 2/3/4/5 exam packets with discounted price and FREE retakes for each exams in the packet. With that good deal in mind, I decided that I will set a goal in this area: getting a MCPD - Microsoft Certified Professional Developer. This certification requires 4 exams:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;TS 70-515 - ASP.NET 4.0, Web Forms, MVC, IIS&lt;/li&gt;
&lt;li&gt;TS 70-516 - ADO.NET, LINQ, EF&lt;/li&gt;
&lt;li&gt;TS 70-513 - WCF&lt;/li&gt;
&lt;li&gt;TS 70-519 - Web application solution/architect&lt;/li&gt;
&lt;/ul&gt;I took the first test early in December and passed it quite easily. Since ASP.NET is what I use daily, most of the questions in the test are familiar to me and I can answer them correctly. &lt;br /&gt;
&lt;br /&gt;
I scheduled to take the ADO.NET test on Dec 23rd, but when I came to the facility, it was closed. I was not notified of any closing and Prometric also was not aware of the closing of the local facility (New Horizons). Prometric was able to reschedule me for Dec 27th at a different facility. I failed my ADO.NET test - probably by 2 or 3 questions, it was so close. Although I use ADO.NET stuff pretty much daily, but there are some things in there that are pretty new to me and I have not used them in production quality code - like Entity Framework. Those questions stumped me and resulting in a failing grade. Thank God for the free retake!&lt;br /&gt;
&lt;br /&gt;
So I studied more EF, practice making some projects with with etc and retake the test on December 29th. I passed.  &lt;br /&gt;
&lt;br /&gt;
So next up is WCF - scheduled for Jan 12th. Hopefully by end of Feb 2011, I will have become an MCPD.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-5013934148615421298?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/imkSSq-8wBuJgpUn7oFjzlkmv7o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/imkSSq-8wBuJgpUn7oFjzlkmv7o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/imkSSq-8wBuJgpUn7oFjzlkmv7o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/imkSSq-8wBuJgpUn7oFjzlkmv7o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/5013934148615421298/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=5013934148615421298" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/5013934148615421298?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/5013934148615421298?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/QTsrv3evX7I/microsoft-certification-exams.html" title="Microsoft Certification exams" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2011/01/microsoft-certification-exams.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AASXsyfSp7ImA9WhdTE0Q.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-6596957748998414783</id><published>2010-12-28T11:07:00.001-05:00</published><updated>2011-07-11T10:49:08.595-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T10:49:08.595-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="contentment" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><title>T-Mobile Customer Experience</title><content type="html">One of my personal conviction is generosity. So that conviction, combined with good service (especially paid ones) usually produce a desire to reward the service giver beyond the typical means. I personally don't think this is unique to me - for example in tipping your servers in a restaurant, when you are getting excellent service, some people will give more tip, etc. &lt;br /&gt;
&lt;br /&gt;
In this particular experience, I was getting superb service from T-Mobile and this blog post is a way of rewarding them of their excellent efforts to me as a customer.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
Why use T-Mobile in the first place?&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; Excellent price for my family voice plan. My voice plan (family plan, grandfathered) is 500 minutes for $49.99 with FULL upgrade eligibility every 2 years.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;No bundled text or data. My wife is using 300 SMS for $2.99 (she does not use data, only WiFi). My 5GB data plan is $24.99 (I don't use SMS). Hard to beat price, really - and 5GB (not 2GB).&lt;/li&gt;
&lt;li&gt;Plus T-Mobile lets me (and all of you I imagine) to keep my old-grandfathered plan. Some carriers forces you to change into newer more expensive plans/bundled/combo.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;All my friends use T-Mobile. Since T-Mobile to T-Mobile call is FREE, I virtually never use my minutes. With 5 people in my family plan with 500 minutes, we usually use around 350 - 400 minutes. With half of it probably my wife or me calling our home land-line.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;HSPA+. Some people call it 4G - but whatever it is, the network connection is FAST. T-Mobile has 2 HSPA+ phones now (G2 and myTouch 4G). It works great too where it matters the most for me (at home, at work, and my friends' places).&lt;/li&gt;
&lt;li&gt;Great phones (for the most part, there are some crappy ones too): Nexus One, Samsung Galaxy, Nexus S, HTC HD7, HTC HD2, G2. &lt;/li&gt;
&lt;li&gt;Excellent customer service - both in store and over the phone. This is mainly what this blog post is about.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;So overall I was pretty satisfied with T-Mobile and the recent experience with customer service just solidified my choice of carrier all the more. So without further ado, here are some of my recent experiences with T-Mobile's customer service:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;I recently added 3 lines into my family plan (maxing out my family plan allowance) - every single one went great without any problems. My voice plan is an old plan which is not offered anymore - so it's grandfathered. It's cheap and works for us - and obviously I don't want to upgrade this plan or change anything in it. I was afraid that I have to change my voice plan if I add new lines or get a new phone. But, none of that happened, and everything went smooth and I am happy. Awesome!&lt;/li&gt;
&lt;li&gt;One of my new lines is for a BB Bold 9700. But not a week after I got it, there is news that Bold 9780 is coming out within 3 weeks. T-Mobile has a 14 days return policy which I took advantage in this case and returned the Bold 9700. It took about 4 weeks for my account upgrade eligibility to be restored, but it was restored and my money got refunded without any problems.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;I added a new line into my family plan, getting the G2, and transferring an ATT number into that new line. The customer rep in the store pre-filled everything and assigned a temporary number until the old number was ported. Rebate form was pre-filled by the rep and all I need to do was just signed it.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;When I bought the G2, the rep was also well informed enough to understand my plan and actually suggested ways I can save more money (like student discount) instead of pushing more services or accessories (and try to take my money). She even recommend that I do not change my plan ever, since changing it will cost me more.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;I was also aiming for the Windows Phone 7 when it came out on November 8th. So on November 8th, I called 611 (Customer Care) and asked the rep on the phone to find me a store that have the newly released phone in stock in local stores in my area. No problem!&amp;nbsp;&lt;/li&gt;
&lt;li&gt;With the information of my local store, I went and got the phone using my upgrade eligibility without any hassle. Again, the rebate form was pre-filled, no need to cut out the box or anything like that.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;When the Bold 9780 came out, I went and got it for one of my lines. Again, without a glitch, everything when smooth. The only thing was that the store was a bit crowded, probably because of the timing (near Christmas).&amp;nbsp;&lt;/li&gt;
&lt;li&gt; I also ported a line from a pre-paid into my family plan. This line has no data, just voice and text. So since I added a line - I got a new free phone (non-data). Sweet!&lt;/li&gt;
&lt;/ol&gt;So all in all, with all the refund, new lines, porting, etc - my experience with T-Mobile and their customer service reps were great. Every time I call, I was never put on hold beyond about 3 minutes and I can always dial 0 to skip the computer and get to the line of human representative. Kudos to T-Mobile!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-6596957748998414783?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rZ-xqyqqPGTKacJMrvGDoVK1c9g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rZ-xqyqqPGTKacJMrvGDoVK1c9g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rZ-xqyqqPGTKacJMrvGDoVK1c9g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rZ-xqyqqPGTKacJMrvGDoVK1c9g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/6596957748998414783/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=6596957748998414783" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6596957748998414783?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6596957748998414783?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/NBx6A8SM9Zc/t-mobile-customer-experience.html" title="T-Mobile Customer Experience" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2010/12/t-mobile-customer-experience.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQFRnw9fCp7ImA9Wx9TFkw.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-1574392183025277142</id><published>2010-11-23T21:51:00.002-05:00</published><updated>2010-11-24T10:58:37.264-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-24T10:58:37.264-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="contentment" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="gadgets" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="WP7" /><title>Windows Phone 7 Experience</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_u--BEMmv89Q/TOvkjc2g0fI/AAAAAAAA3VY/wJbYaUXwzKk/s1600/SavedPicture.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_u--BEMmv89Q/TOvlHoQApSI/AAAAAAAA3Vc/XIvZxoDzEEA/s1600/SavedPicture_rotated.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="150" src="http://2.bp.blogspot.com/_u--BEMmv89Q/TOvlHoQApSI/AAAAAAAA3Vc/XIvZxoDzEEA/s200/SavedPicture_rotated.jpg" width="200" /&gt;&lt;/a&gt;About 2 weeks ago, I bought a new cell phone. I am a T-Mobile customer (T-Mo FTW!) so I renewed my contract and got the phone at a discounted price. My previous phone was a T-Mobile G1 (the 1st Google/Android phone) and I bought it used from a friend of mine. That device served me extremely well and it is still running well and my wife is using it. &lt;br /&gt;
&lt;br /&gt;
So for my new phone, I bought an HTC HD7, running the new Windows Phone 7. This blog post is about my experience with it so far - what I like about it, dislike, a little bit comparison to Android, etc. Nothing really scientific, but just sharing my experience, including an app development experience (since I am a software engineer). Obviously, my experience is a combined experience between the hardware (HTC HD7), the OS (WP7) - but when necessary I will mention the specifics.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;b&gt;What I REALLY Like&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;This is something that is hard to describe, but there is such a pleasant feeling in using the device with the WP7. Every scroll is buttery smooth, no lag, no stutter, snappy, and my user-experience for the 80% of my usage of the phone is superb (this includes making phone calls, receiving calls, speaker phone, contacts, searches, calendar, email syncs, twitter, browsing).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Panoramic view is totally awesome. It helps to go through things quickly, less click/swipe/back, etc. The panoramic background in some hubs are also contributing to increase the niceness and pleasant of using the device. All this being carried in a 4.3" screen - superb. iPhone 4 screen is better with the Retine Display, but HTC HD7's is bigger.&lt;/li&gt;
&lt;li&gt;The lock screen is also surprisingly well designed. I did not think about this before - but then I realized that showing all my notifications &amp;amp; next event on the lock screen is awesome! One of my cell-phone related habit is to look at my phone to see the time AND to see what is the next item in my calendar - which totally fits into the WP7 paradigm (and I have a feeling that I am not the only one with that habit).&lt;/li&gt;
&lt;li&gt;The email interface is awesome, every email is delineated well, clear text, eye-pleasing font, easy to use (virtual) keyboard, the sync is also fast, and does not lock the screen, excellent progress bar with the dots, etc. As far as email related experience, this is probably the best I have seen (compared to iPhone/iPod Touch, WinMo, BB, Android). &lt;/li&gt;
&lt;li&gt;The Calendar interface is also very robust and well done. It syncs seamless with my Exchange calendar, displays the next "event" on "Home" and "lock" screens, and for the extra kick, the calendar date "flips" when you scroll the events in the event list. Haha - I thought that was small but slick nonetheless.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The "Tile" or the "Metro" design. I though it is awesomely done and intuitive. I am a bit biased to big icons - so the tile suits me well. Some also animate (changes in photos, people, news images, etc) - which added some "wow" factor to it. Some provide crucial information: the weather app gives the current weather summary, Outlook shows number of new messages, etc. There is no extra "widget" or differentiation between "widget" and "app shortcut" (like in Android) - which makes things simpler.&lt;/li&gt;
&lt;li&gt;The Media hub is really nice, it combines radio (like iHeartRadio), YouTube streams, your videos, music, podcasts, etc, and organized well via panoramic views. They just works seamlessly. No need to open YouTube app separately or media player app or radio app separately. One hub and everything works.&lt;/li&gt;
&lt;li&gt;Zune software. I HATE itunes - and  Zune is awesome. Much better design, fast, unobtrusive updates, AND YOU CAN SYNC WITH MULTIPLE COMPUTERS! Yeay! Also, sync media over the air!&lt;/li&gt;
&lt;li&gt;Developing an app for WP7 is very very easy. Well I am a bit biased since I use Microsoft tools for my work. But here is the thing - I experienced quite some pain to get Android/iPhone dev environment to be up and running and I did created a some kind of "hello world" app, but nothing beyond that. With WP7, in 2+ hours I cranked out a panoramic RSS reader with style and all. Certainly (subjectively) a huge added value for me.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;What I Like But Consider Not As Important&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; XBOX Live is really cool. You can create/modify your Avatar from the phone, play some games, sync accomplishments, etc. But, since I am not a big XBOX Live player, I don't use this feature as much.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Instead of paying per music/album, Zune allows you to pay subscription  based: A $14.99 / mo gives you unlimited access to millions  of songs you can stream on your PC, Xbox 360, Windows Phone 7, or Zune  HD - AND you get to keep 10 per month FOR FREE FOREVER!&lt;/li&gt;
&lt;li&gt;The WP7 OS is always stock and all the bloatware from carriers can always be uninstalled just like any other app without rooting or hack. This was not my experience with Android or WinMo.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;WP7 Bing's voice search/command seems to be able to pick up my voice better compared to my old Android. I don't think this is a big deal - could be just because my G1 can't go beyond Android 1.6. I think Froyo most likely has better support for this. &lt;/li&gt;
&lt;li&gt;The robust kick-stand in HTC HD7. It's awesome when watching videos or reading on a table. &lt;/li&gt;
&lt;li&gt;The camera is nice. Being able to take 720p video and take a 5mpix photos are good features to have. Plus, the camera software is really fast - you can go from "lock" to "save picture" in about 5 seconds or less. Although I consider this as "not as important" for now, but I do see that I take pictures more because of the quickness or the camera &amp;amp; its ease of use.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;What I Don't Like &amp;amp; Needs Improvement &lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Marketplace. It needs to differentiate the search between music, apps, games, etc. Right now, when I am searching for "News", it gives me ALL related with "news" instead of contextual search result. I am fine with the "all" search and there are times when it is useful, but there needs to be specific search filter too.&lt;/li&gt;
&lt;li&gt;Map &amp;amp; navigation. Bing maps in WP7 is awesome and slick, but Android's turn by turn saved my ass multiple times. I heard some rumors that this is coming out in SP1 in Q1 2011 - at least I hope so. &lt;/li&gt;
&lt;li&gt;Need more apps, FREE apps. I want my free "Alchemy" or "Angry Bird" like in Android ... Or QR code reader, Google Sky Map. More apps ... WP7 apps availability is nothing compared to iPhone or Android. &lt;/li&gt;
&lt;li&gt;Twitter integration to People, like Facebook or MySpace or LinkedIn&lt;/li&gt;
&lt;li&gt;Phone wide search. Search people, docs, emails, etc from a single place.&lt;/li&gt;
&lt;/ul&gt;So there you have it - my conclusion? I like it - a lot. Probably the best device I have used to date. If I have to rate my OS of choice it would be like this:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt; Windows Phone 7 - for those of you who are skeptical, I suggest you to try it. I was too a skeptics, but I am sold out now. Yes, it is not perfect, has room for improvement, but it is my device of choice for now. &lt;/li&gt;
&lt;li&gt;Android, probably the G2 - fast with HSPA+, excellent keyboard, stock Froyo, loaded with free apps, nice slick phone. (Or if you are on Verizon, go with Droid X)&lt;/li&gt;
&lt;li&gt;iPhone - only if iPhone is available outside AT&amp;amp;T. &lt;/li&gt;
&lt;/ol&gt;I have to say, in all this experience, T-Mobile has been awesome. I have been their customer for almost 8 years and there are reasons for that. Their phone customer service is impeccable, their store people are great, their rate are the most economical of all, ultra-fast network, and great selection of phones, PLUS they are the first in many things (1st Android device, 1st Google provider, 1st big-screen-phone in HTC HD2, 1st in getting WP7 in US) - and they always use hot women in their ads. What more can you ask for?&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-1574392183025277142?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/U8N4jfQmAwGrmXGHG8eIAlQQIuI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U8N4jfQmAwGrmXGHG8eIAlQQIuI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/U8N4jfQmAwGrmXGHG8eIAlQQIuI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U8N4jfQmAwGrmXGHG8eIAlQQIuI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/1574392183025277142/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=1574392183025277142" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/1574392183025277142?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/1574392183025277142?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/14w97KliEmo/windows-phone-7-experience.html" title="Windows Phone 7 Experience" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_u--BEMmv89Q/TOvlHoQApSI/AAAAAAAA3Vc/XIvZxoDzEEA/s72-c/SavedPicture_rotated.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2010/11/windows-phone-7-experience.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQHQ3Y8eCp7ImA9Wx9TFU8.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-3875636172217156158</id><published>2010-11-22T11:49:00.000-05:00</published><updated>2010-11-23T10:48:52.870-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-23T10:48:52.870-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="trip" /><category scheme="http://www.blogger.com/atom/ns#" term="Jon" /><category scheme="http://www.blogger.com/atom/ns#" term="vacation" /><category scheme="http://www.blogger.com/atom/ns#" term="family" /><category scheme="http://www.blogger.com/atom/ns#" term="Maine" /><title>Acadia National Park</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_u--BEMmv89Q/THRkp9ABiXI/AAAAAAAA3EM/UOX28XBO5LM/s1600/DSC_0565.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/_u--BEMmv89Q/THRkp9ABiXI/AAAAAAAA3EM/UOX28XBO5LM/s320/DSC_0565.JPG" width="224" /&gt;&lt;/a&gt;&lt;/div&gt;In August, I went to a 10 day vacation, spanning over 11 states! We went from Ohio to New York to Vermont, New Hampshire, Maine, Massachusetts, Rhode Island, Connecticut, Pennsylvania and passing over West Virgina and New Jersey on our drive. &lt;br /&gt;
&lt;br /&gt;
But the highlight of our trip was when we were at Acadia National Park in Maine. Acadia National Park is about 5 hours north of Boston, MA. When I planned our trip, I had some expectations about how beautiful this park going to be, but I was still blown away - it exceeded all of my expectations! I think all of our family and friends agreed that it was the best national park we've seen and the highlight of our trip. I eager to go back next year and spend more time over there.  &lt;br /&gt;
&lt;br /&gt;
Acadia National Park has everything - like from beaches (ocean sandy beach or lake beach), serene lakes, hiking trails, bike trails, rocky coastline, sandy coastline, mountains, and spectacular mountain top view. &lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;Anyway - if you have the time, Acadia is a must visit. I think our family is going back there in summer 2011!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_u--BEMmv89Q/THRj_GfvylI/AAAAAAAA1WM/GHdGoJzN9yQ/s1600/DSC_0387.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="214" src="http://2.bp.blogspot.com/_u--BEMmv89Q/THRj_GfvylI/AAAAAAAA1WM/GHdGoJzN9yQ/s320/DSC_0387.JPG" width="320" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_u--BEMmv89Q/THRj7ox1IGI/AAAAAAAA1V8/ApGSU_RZtf8/s1600/DSC_0368.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://2.bp.blogspot.com/_u--BEMmv89Q/THRj7ox1IGI/AAAAAAAA1V8/ApGSU_RZtf8/s320/DSC_0368.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_u--BEMmv89Q/THRkMcmdIgI/AAAAAAAA1XI/qjc7Xv6JoX4/s1600/DSC_0448.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="215" src="http://3.bp.blogspot.com/_u--BEMmv89Q/THRkMcmdIgI/AAAAAAAA1XI/qjc7Xv6JoX4/s320/DSC_0448.JPG" width="320" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_u--BEMmv89Q/TNK_uW27AsI/AAAAAAAA3DU/sdtRdTXuUQM/s1600/45402_10100209656069370_1914431_59280906_537375_n.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="236" src="http://3.bp.blogspot.com/_u--BEMmv89Q/TNK_uW27AsI/AAAAAAAA3DU/sdtRdTXuUQM/s320/45402_10100209656069370_1914431_59280906_537375_n.jpg" width="320" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_u--BEMmv89Q/THRkg1g-LsI/AAAAAAAA1Y8/C5xrNBayjKI/s1600/DSC_0521.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="428" src="http://4.bp.blogspot.com/_u--BEMmv89Q/THRkg1g-LsI/AAAAAAAA1Y8/C5xrNBayjKI/s640/DSC_0521.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_u--BEMmv89Q/THRlDKicJKI/AAAAAAAA1bo/8Wxlcu8oB4Y/s1600/IMG_0709.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/_u--BEMmv89Q/THRlDKicJKI/AAAAAAAA1bo/8Wxlcu8oB4Y/s320/IMG_0709.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_u--BEMmv89Q/THRk-n0RufI/AAAAAAAA1bQ/SEuLRngUbzw/s1600/IMG_0661.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/_u--BEMmv89Q/THRk-n0RufI/AAAAAAAA1bQ/SEuLRngUbzw/s320/IMG_0661.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-3875636172217156158?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OjtV7LbF9nvTHDKdz6-rhbXIbCY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OjtV7LbF9nvTHDKdz6-rhbXIbCY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OjtV7LbF9nvTHDKdz6-rhbXIbCY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OjtV7LbF9nvTHDKdz6-rhbXIbCY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/3875636172217156158/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=3875636172217156158" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/3875636172217156158?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/3875636172217156158?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/3Xt3koGrI4M/acadia-national-park.html" title="Acadia National Park" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_u--BEMmv89Q/THRkp9ABiXI/AAAAAAAA3EM/UOX28XBO5LM/s72-c/DSC_0565.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2010/11/acadia-national-park.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGQng4eip7ImA9Wx5bEUw.&quot;"><id>tag:blogger.com,1999:blog-6170125458717784512.post-6794968932086440784</id><published>2010-10-26T13:49:00.001-04:00</published><updated>2010-10-26T13:53:43.632-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-26T13:53:43.632-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="hardware" /><title>Smart Power Control</title><content type="html">I setup an SSH server at home running on my Media Center box. ALL of the shows that I am recording runs at night, so during the day, other than the time it has to download updates or running some batch process, it usually goes to suspend/sleep mode - which of course makes my SSH to become unavailable.&lt;br /&gt;
&lt;br /&gt;
Why not just turn on "Wake up on LAN"? Well, I tried that and it worked, but it also somehow wake up the PC when I don't want it - like in the middle of the night or on a Saturday morning, or several seconds after it goes to sleep. In the end, I basically turn-off "Wake up on LAN" and trying to find a different solution.&lt;br /&gt;
&lt;br /&gt;
Basically, what I want is this:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;The PC needs to be on between 8am to 5:30pm - this the window where I usually need my SSH&lt;/li&gt;
&lt;li&gt; It also needs to be recording my scheduled recording in Media Center&lt;/li&gt;
&lt;li&gt;Other than those, it should be in suspend/sleep mode&lt;/li&gt;
&lt;/ol&gt;
&lt;span class="fullpost"&gt;A friend of mine suggest moving the SSH into a router running DD-WRT. This is probably the best solution, so I can operate my PC on "Power Saving" mode and just leave the router on. Since I am using a Linksys router that is compatible with DD-WRT, I tried it. The problem is that my router does not have much memory, so not only I have to put the micro_plus_ssh version, but also when SSH is running the router would lock up and I have to reboot it. So after playing with this option for about 2 days, I went back to running my SSH on my Media Center box. Maybe one day when I am buying a new router - I will get one that is much more capable to run SSH on. But now back to original plan.&lt;br /&gt;
&lt;br /&gt;
So for a while I just put my PC to "Never" sleep and just turn it off at night and turn it back on in the morning. I moved all my scheduled maintenance stuff (virus scan, windows update, etc) to morning/afternoon. Obviously this gets to be a pain after a while - especially when I keep forgetting to turn it on or off.&lt;br /&gt;
&lt;br /&gt;
So for now, I use a software called "&lt;a href="http://ignatu.co.uk/SmartPower.aspx"&gt;SmartPower&lt;/a&gt;" - where I schedule my PC to be "ON" between certain times and/or when certain parameters are set. Here is &lt;a href="http://lifehacker.com/5645033/smartpower-tells-your-computer-when-to-stay-awake"&gt;an article in LifeHacker&lt;/a&gt; about it. The way to use it is basically setting your computer to "Never" sleeps, and let SmartPower take over the sleep management (instead of letting Windows doing it). So, to meet my needs, I set:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;In "Schedules" tab to awake / stay on during the weekdays between 8:15am to 11:55pm&lt;/li&gt;
&lt;li&gt;Under "CPU" tab, set to 27% - this is for watching recordings past midnight or on weekends&lt;/li&gt;
&lt;li&gt;I set my PC to awake when Media Center remote is used&lt;/li&gt;
&lt;/ol&gt;
That's it - works flawlessly. Oh - and I replaced the power supply unit into the one that is &lt;a href="http://www.80plus.org/"&gt;80 Plus&lt;/a&gt; certified to conserve more power during idle or low processing time while it's on.&lt;br /&gt;&lt;br /&gt;
Additional readings:
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://setiabud.blogspot.com/2010/03/browsing-securely-using-ssh-tunnel.html"&gt;Browsing through SSH tunnel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-0606803324275047";
/* ContentAds */
google_ad_slot = "3381325551";
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6170125458717784512-6794968932086440784?l=setiabud.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/o08D4gBFLa5F60gA-DMrZ0YnMBc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o08D4gBFLa5F60gA-DMrZ0YnMBc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/o08D4gBFLa5F60gA-DMrZ0YnMBc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o08D4gBFLa5F60gA-DMrZ0YnMBc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://setiabud.blogspot.com/feeds/6794968932086440784/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6170125458717784512&amp;postID=6794968932086440784" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6794968932086440784?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6170125458717784512/posts/default/6794968932086440784?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RantingAndDreaming/~3/KipdodFEB14/power-control.html" title="Smart Power Control" /><author><name>Joe</name><uri>http://www.blogger.com/profile/14347781769200608947</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://setiabud.blogspot.com/2010/10/power-control.html</feedburner:origLink></entry></feed>

