<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-676499001984495729</id><updated>2024-10-07T14:16:43.056+08:00</updated><category term="Happiness"/><category term="IOS"/><category term="Life"/><category term="iPhone"/><category term="Grails"/><category term="Cloud Computing"/><category term="Software Development"/><category term="Tutorial"/><category term="App Crash"/><category term="Enterprise Architecture"/><category term="Technology"/><category term="High School"/><category term="Management"/><title type='text'>Bits and Bytes</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-6180008953215935523</id><published>2015-01-19T12:13:00.003+08:00</published><updated>2015-01-19T12:23:12.255+08:00</updated><title type='text'>Technology and friendship</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
When I first started using Facebook, there would be great
excitement whenever a connection to a long lost friend was reestablished. At that
time, I accepted friend requests from close friends, acquaintances, remote
relatives or even strangers. There wasn’t any filter whenever I shared my
thoughts. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Overtime I realized despite the thousands of friends I had
on Facebook, a great number of them was really strangers. Times and times again
I found it inappropriate to discuss more personal matters openly. After some spring-cleaning,
my friends are now people with whom I have had interactions, regardless how
little. I figure that is the least I could do to keep my sanity on Facebook.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
As social media became a part of my daily routine, I had a
deeper understanding about friendship; not every good person we met could
eventually become a closed friend. &lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;In
his novel Demi-Gods and Semi-Devils (Tian Long Ba Bu), Louis Cha has a very
vivid description of this exact predicament.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;In this story, the
only punishment of anyone who had committed the crime of betrayal to the boss was
death. However, the boss could overrule the death penalty if he chose to cleanse the crime with his own blood.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: solid windowtext 1.0pt; border: none; mso-border-bottom-alt: solid windowtext .75pt; mso-element: para-border-div; padding: 0cm 0cm 1.0pt 0cm;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: none; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0cm 0cm 1.0pt 0cm; padding: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;As the boss
snatched away the knife from the accused when he tried to kill himself for his
crime, the boss said, “I am like a cowboy and I do not like to hangout with
people who are meticulous and calculative. I too like to drink and laughed
loudly with friends. That is why although we work together, I usually choose to
drink and make a lot of noise with the lower ranked members. &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;That is just how I am, and it does not mean
that I have something against you. You never get drunk and are extremely
careful in dealing with the gang business. This is a fine quality that I can
never be better than you.”&lt;br /&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;Then he pierced the knife into his own shoulder to cleanse the crime of
the accused. &lt;/span&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;In this story,
Louis Cha pointed out that two great men may not be able to be close
friends simply because of the differences in characters and belief, and not because someone else has committed some unspeakable sins. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;And there are a
great variety of people with different viewpoints and characters on my
Facebook. Therefore, it could be challenging to discuss my viewpoints at times;
and there have been unpleasant experiences where I offended people unknowingly.
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;To avoid such miscommunications,
I chose not to say so much. Or I only share things that do not matter. Or I
just come here to see my friend’s recent activities. And because of these reservations,
a great platform on which we could build better friendship has deteriorated to something
very skin-deep. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;I am in the
technology business. I once naively believed that technology could fix anything.
I only understood after my 40&lt;sup&gt;th&lt;/sup&gt; birthday that technology could not
replace the warm feeling shared when having diner with my old folks, or the boisterous
laughers cheered during drinking sessions with my buddies, or the creativity
generated during brainstorming session with my partners. Physical contacts are
still required to create fire. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
   &lt;w:UseFELayout/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;--&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;true&quot;
  DefSemiHidden=&quot;true&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;276&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;59&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
 mso-para-margin:0cm;
 mso-para-margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:Cambria;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;



&lt;!--StartFragment--&gt;











































&lt;!--EndFragment--&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;In the Chinese character,
we need to first have a heart before we can have a relationship. So in this new
year, please give your loved ones a big bear hug. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;mso-fareast-language: ZH-TW;&quot;&gt;January 18, 2015. Kuala Lumpur.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/6180008953215935523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2015/01/technology-and-friendship.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/6180008953215935523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/6180008953215935523'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2015/01/technology-and-friendship.html' title='Technology and friendship'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-8539184704745172344</id><published>2015-01-19T10:18:00.001+08:00</published><updated>2015-01-19T10:28:08.605+08:00</updated><title type='text'>說情</title><content type='html'>&lt;span style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;剛有臉書的時候，常常會因找到失聯的朋友而興奮不已。不&lt;/span&gt;&lt;wbr style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;color: #141823; display: inline-block; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;論是深交，點頭交，熟人，陌生人，都能加入成好友。那時&lt;/span&gt;&lt;wbr style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;color: #141823; display: inline-block; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;候什麼都說，什麼都分享。&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;
&lt;span style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;慢慢的發現，千多個朋友裡面，很多是不來往戶。有時候只&lt;/span&gt;&lt;wbr style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;color: #141823; display: inline-block; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;想對熟人分享的資訊或事，公開發表會很不妥當。大掃除後&lt;/span&gt;&lt;wbr style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;color: #141823; display: inline-block; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;， 刪了好多不認識的人；朋友圈裡面剩下了算是有過交流的。&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;
&lt;span style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;隨著人和事的逐漸累積，了解到並不是所有的好人，都能交&lt;/span&gt;&lt;wbr style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;color: #141823; display: inline-block; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;心。天龍八部裡面，金庸說到喬峰用自己的鮮血洗淨陳孤雁&lt;/span&gt;&lt;wbr style=&quot;color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;color: #141823; display: inline-block; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #141823; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;長老的叛變罪時，有過這樣的描述，寫的很貼切。&lt;/span&gt;&lt;span class=&quot;text_exposed_show&quot; style=&quot;color: #141823; display: inline; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;text_exposed_show&quot; style=&quot;color: #141823; display: inline; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;他目光緩緩向陳長老移去。陳長老性情乖戾，往年做了對不&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;起家門之事，變名出亡，老是擔心旁人揭他瘡疤，心中忌憚&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;喬峰精明，是以和他一直疏疏落落，並無深交，這時見喬峰&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;的目光瞧來，大聲道：「喬幫主，我跟你沒什麼交情，平時&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;得罪你的地方太多，不敢要你流血贖命。」雙臂一翻，忽地&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;從背後移到了身前，只是手腕仍被牛筋牢牢縛著。原來他的&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;「通臂拳功」已練到了出神入化之境，一雙手臂伸縮自如，&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;身子一蹲，手臂微長，已將一柄法刀搶在手中。&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;text_exposed_show&quot; style=&quot;color: #141823; display: inline; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;喬峰反手擒拿，輕輕巧巧的搶過短刀，朗聲道：「陳長老，&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;我喬峰是個粗魯漢子，不愛結交為人謹慎、事事把細的朋友&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;，也不喜歡不愛喝酒、不肯多說多話、大笑大吵之人，這是&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;我天生的性格，勉強不來。我和你性情不投，平時難得有好&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;言好語。我也不喜馬副幫主的為人，見他到來，往往避開，&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;寧可去和一袋二袋的低輩弟子喝烈酒、吃狗肉。我這脾氣，&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;大家都知道的。但如你以為我想除去你和馬副幫主，那可就&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;大錯而特錯了。你和馬副幫主老成持重，從不醉酒，那是你&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;們的好處，我喬峰及你們不上。」說到這裡，將那法刀插入&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;了自己肩頭，說道：「刺殺契彤國左路副元帥耶律不魯的大&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;功勞，旁人不知，難道我也不知麼？」（天龍八部，十五章&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;，杏子林中　商略平生義）&lt;/span&gt;&lt;/blockquote&gt;
&lt;span class=&quot;text_exposed_show&quot; style=&quot;color: #141823; display: inline; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;通過喬峰，金庸點出了就算是好人，因為個性，愛好上的分&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;別，也未必能成為好友。不見得就是對方做了什麼不可告人&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;的事情。卻卻是曲洋和劉正風這樣的黑白兩道的死對頭，反&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;而成了生死之交（笑傲江湖）。因此友情不能單純的以好人&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;或壞人來區分。現實生活中，像岳不群這樣的正人君子比比&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;皆是。&lt;br /&gt;&lt;br /&gt;我臉書上就有太多不同個性與信念的朋友。分享看法的時候&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;，就有了些難度。也發生過因發表意見而無意開罪別人的不&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;愉快。&lt;br /&gt;&lt;br /&gt;為了減少這些無謂的爭執，就選擇了不說。或儘量選些無關&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;痛癢的事情來分享。又或只是上來看看朋友們的動態。而一&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;個本來是用來聯繫，加深友情的的平台，就這樣逐漸地被表&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;面化了。&lt;br /&gt;&lt;br /&gt;我是個搞科技的。以前我總是天真的認為，科技能取代一切&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;。過了四十才領悟到，和老人家一起吃飯閒話家常時的溫馨&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;，和好兄弟一起舉杯共飲時的豪邁，和好夥伴一起腦力激盪&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;時爆發出的創意，和好朋友聚會時的歡樂，都不是任何尖端&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;科技能取代的。火花，還是要實在的碰撞才能產生的。&lt;br /&gt;&lt;br /&gt;有了心，才能有情。今年，給你愛的人，一個結實的擁抱吧&lt;wbr&gt;&lt;/wbr&gt;&lt;span class=&quot;word_break&quot; style=&quot;display: inline-block;&quot;&gt;&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;2015-01-18。寫於吉隆坡。&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXunm-pRxY0zBoYMLX7qR-gNiCuOo48uITOYwZlUvQPkLzCK81wEK6pcVk40-OtEpqz_5Qr9_xs6opliHIard8auMxyUxc5ZFUHCRhaqO6qPev-Jfe7ii2PSkMVgHjNYTk75s8V_JlvC8/s1600/DSC_8470-2014-08-02-2+copy.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class=&quot;text_exposed_show&quot; style=&quot;color: #141823; display: inline; font-family: Helvetica, Arial, &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/8539184704745172344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2015/01/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/8539184704745172344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/8539184704745172344'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2015/01/blog-post.html' title='說情'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-3699157765358718421</id><published>2012-08-31T14:49:00.001+08:00</published><updated>2012-08-31T15:29:59.348+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Happiness"/><category scheme="http://www.blogger.com/atom/ns#" term="High School"/><title type='text'>緣起</title><content type='html'>&lt;span style=&quot;font-family: BiauKai;&quot;&gt;禮堂裡面喧鬧一片，大喇叭在嘶啞的播著不熟悉的歌曲。服務員們穿梭於餐桌之間，夾插許多不懂是家長還是校友的宴客，在會場起起落落。帶位員感覺到我的迷失，費了好些時間，終於把我引到事先編排好的座位。&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;同座的臉孔陌生中帶些熟悉，互相禮貌的點頭微笑，然後繼續著和夥伴們的聊天。太太的眼神里，有些煩躁，我們和這一切是那麼的格格不入。宴席還沒開始，而雪華有些事還在路上。面對著陌生與煩囂，原本忐忑的心，更是有點後悔了。&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;月前收到莉的短訊，通知母校將搞個千人宴籌款。大家都知道這年頭獨中的不容易，所以當雪華聯繫上我時，不猶豫的就答應了。除了對母校的微薄貢獻，更多的是懷念求學期間的事情。厭倦了商場上的勾心鬥角，綿綿不絕的各種良／惡性競爭， 總是渴望能再尋回單純些的友情。&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;但，心理深處也有些疑惑； 可以嗎？二十多年不見，同學們肯定有所改變。大家過的好嗎？這次千人宴能見到他們嗎？&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;時間一刻刻的過去。太太煩悶了也開始玩手機。枯燥中我偶爾向會場掃描，盼望會遇上一兩張熟悉的臉孔。悶的有些發慌，怎麼這麼心急早到呢？好端端的一個星期五晚，大老遠的跑來這裡，吃這無聊的晚宴。偏偏這千人中，也遇不上一個故友，還真可以算是件奇事。&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;這幾天在工作上忙碌的疲憊，漸漸湧了上來。&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;倏忽間有人坐到了我旁邊，一開口，“你是梁永順！”對馮老師的驚人記憶感覺訝異的當兒，鬱悶感也跟著煙消雲散。心理也覺得自己好笑。老師問起我這幾年的經歷，談話中，隱隱感覺她對學生的關懷依然。&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG_Uv4gj87zOr_Lv1Yo24CSkZvnbJJwv4Kwgk80V8wuR-usb2Qn7Uc5DIP3R69_TPxWMouzubvjBAr3nySX9eVdwQvIbOft82H2IlZbBBZMY1FR5elZ28VjphLpW7eGb0cI1SSS0wL04s/s1600/ripple.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG_Uv4gj87zOr_Lv1Yo24CSkZvnbJJwv4Kwgk80V8wuR-usb2Qn7Uc5DIP3R69_TPxWMouzubvjBAr3nySX9eVdwQvIbOft82H2IlZbBBZMY1FR5elZ28VjphLpW7eGb0cI1SSS0wL04s/s400/ripple.jpg&quot; width=&quot;260&quot; /&gt;&lt;/a&gt;&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;聊著，旁邊桌忽然起轟&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;,&lt;span lang=&quot;ZH-TW&quot;&gt;“飲勝！”抬頭一看，維漢正在人群中和他們乾杯。終於來了個同輩的。 看到老同學，感覺踏實了些，便過去和他碰個杯。&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;正乾杯中，來了個女的，“嗨！梁永順，我是你同學，記得我嗎？”躊躇了好久，對方的笑容也逐漸僵硬了起來。“您是夏老師！您一點都沒有變化！”，老師的笑容，也隨著我的忽然開竅而更燦爛了。去去去，怎麼我老化的比老師還快啊？&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;談笑間，驀然回首，瞄見遠處飄來了個二十多年不見的身影，盈盈的走著過來。笑容依然，青春如故，歲月仿佛沒有在雪華的臉上留下任何痕跡。大家寒暄不久，宴席就開始了。回到位子上，雪華介紹了順欽
。他原來是高二來的，當時我已離開了。&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;後來，團標也來了。在大家得體又有禮的談話中，感覺之間的關係疏離了 。也暗暗的在安慰自己，畢竟也這麼久沒見，淡了也是必然的。離開前，大家應酬式的互相留下了電話後，答應會保持聯絡。當時也沒有放在心上，只是覺得應該短期間都不會再見了。&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;無法預見的是，千人宴雖然只是一顆小石頭，但是它在之後我生活中，已造成了不可扭轉的變化。&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;那又是另一個故事了。&lt;/span&gt;&lt;span style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ZH-TW&quot; style=&quot;font-family: BiauKai; mso-fareast-language: ZH-TW;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;!--EndFragment--&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/3699157765358718421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2012/08/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/3699157765358718421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/3699157765358718421'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2012/08/blog-post.html' title='緣起'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG_Uv4gj87zOr_Lv1Yo24CSkZvnbJJwv4Kwgk80V8wuR-usb2Qn7Uc5DIP3R69_TPxWMouzubvjBAr3nySX9eVdwQvIbOft82H2IlZbBBZMY1FR5elZ28VjphLpW7eGb0cI1SSS0wL04s/s72-c/ripple.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-4874668210988635</id><published>2011-11-13T15:25:00.000+08:00</published><updated>2011-11-13T15:33:57.390+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="App Crash"/><category scheme="http://www.blogger.com/atom/ns#" term="IOS"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><title type='text'>App Crash in IOS 5.0.1</title><content type='html'>&lt;p&gt;I updated my old iPhone 3GS over the air to IOS 5.0.1 two days ago and the experience was a cool one. This is the first time I could do something like that without needing to connect my phone to iTunes.

&lt;p&gt;However, there were a few problems with the upgrade. I found out that my phone was slower, and applications are crashing more frequently. Applications like WhatsApp, or Facebook kept crashing seconds after I launched them, and thus rendered the phone useless.

&lt;p&gt;I finally could not take it anymore and took it upon myself to find a solution to this. When I launched SystemLite, it showed that I only had only 3-4 MB of free RAM. Something is very weird here as I am supposed to have 256MB RAM for 3GS, and the numbers don&#39;t add up. I think there is some serious flaw in IOS memory management.

&lt;p&gt;Anyway, by accident, I found a way to work around this issue. Apparently IOS gives more priority to its core app like Camera. Anytime I found my applications are crashing like crazy, all I need to do is to launch Camera, kill it and then I suddenly will have more than 100MB of RAM. And from that point on all the apps will be running fine. I have tested it on a few phones and a number of times, and it has worked like a charm. It even worked on older version of IOS.

&lt;p&gt;The following is a series of steps to demonstrate how this works:
&lt;ol&gt;
&lt;li&gt;Trying to launch my Facebook. The splash screen showed up but then it crashed within a few seconds.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1AXte5wHC0Vf8_vXg_4vUiJGxglVo_bHqT-m1fkmvxOjavedTj_dIcSaXp4I_Z335WQAIkGst9eZ8Wo_fTmScMMs7SSgrPiNRjh8h2OAysEdPuTAAkIYBpx6HLtEkg9eghI8Y9MtzKYE/s1600/IMG_0710.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; width=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1AXte5wHC0Vf8_vXg_4vUiJGxglVo_bHqT-m1fkmvxOjavedTj_dIcSaXp4I_Z335WQAIkGst9eZ8Wo_fTmScMMs7SSgrPiNRjh8h2OAysEdPuTAAkIYBpx6HLtEkg9eghI8Y9MtzKYE/s200/IMG_0710.jpg&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxIPtISrmI_sku9gm0BAU3FuuxdLSnMzRaALGOPZpCXYAw6XaWB-81dltxsfXNSJ-eO7lGKqRvai930zXdksX2fPRjHPd9gIO7PO9-JW78nM2yFly1CXQt7sWDfI0BJC453t_wq3GtK6k/s1600/IMG_0711.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-right:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; width=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxIPtISrmI_sku9gm0BAU3FuuxdLSnMzRaALGOPZpCXYAw6XaWB-81dltxsfXNSJ-eO7lGKqRvai930zXdksX2fPRjHPd9gIO7PO9-JW78nM2yFly1CXQt7sWDfI0BJC453t_wq3GtK6k/s200/IMG_0711.jpg&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWM-4rsGSlZZ-GXjXXDDp5rq4mmE3jiesfpRklTs1m11SDyJgxcicVXpDy_TaoYddfmjfU1yh3hcNnqUPx28rPuL1U6t4d6e3d-U93NViJh_FOnTganum6phwCLo5spzwksOTDSE_wgrI/s1600/IMG_0712.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; width=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWM-4rsGSlZZ-GXjXXDDp5rq4mmE3jiesfpRklTs1m11SDyJgxcicVXpDy_TaoYddfmjfU1yh3hcNnqUPx28rPuL1U6t4d6e3d-U93NViJh_FOnTganum6phwCLo5spzwksOTDSE_wgrI/s200/IMG_0712.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;li&gt;Launching SystemLite and it shows that I only have 3MB of RAM free.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt04dl2hBzkyFK_Pm7HH_XYqrnSKOcnFADncI54CrGkSUwfiIP8Xo4ZKEgABkW0Ul0tu0KlYcWkO6-w9Ih2BRu_Vp3YoGogPQ51NaAW1Dunp5MslbEkKlRshrS7fJAQbtdF_LhQ6tvSzU/s1600/IMG_0713.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; width=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt04dl2hBzkyFK_Pm7HH_XYqrnSKOcnFADncI54CrGkSUwfiIP8Xo4ZKEgABkW0Ul0tu0KlYcWkO6-w9Ih2BRu_Vp3YoGogPQ51NaAW1Dunp5MslbEkKlRshrS7fJAQbtdF_LhQ6tvSzU/s200/IMG_0713.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;li&gt;So I just launched the Camera app and it crashed too.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKDQVQCeRK28miEVDj5ZsPxK0xHIZc-dnT3chaIu9ZlQn1YYFwkl6I9sdsnpslhO7YAsykwqLmbqyW4wZjqk0Ro8VP3u1HPhYXmKrJslAKheT_H8VmnBLDZ6NKTjPJ7IMbsn70d6Hcyhg/s1600/IMG_0716.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; width=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKDQVQCeRK28miEVDj5ZsPxK0xHIZc-dnT3chaIu9ZlQn1YYFwkl6I9sdsnpslhO7YAsykwqLmbqyW4wZjqk0Ro8VP3u1HPhYXmKrJslAKheT_H8VmnBLDZ6NKTjPJ7IMbsn70d6Hcyhg/s200/IMG_0716.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;li&gt;But now when I opened up the SystemLite, the available memory suddenly becomes 115MB.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh7-F47OCTCNr4ECCJclEbgYDgBzs3rqfbMG8geSe5KjKJ9tCeMlJ2g-fdaUCWX23twqKPVNjoAivdlmeOQAGr-EBIA6oQWwFIJfXaFEXfFa4EhY9NGJv9SOx6956cFuNk1XnLeWDSOWM/s1600/IMG_0718.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; width=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh7-F47OCTCNr4ECCJclEbgYDgBzs3rqfbMG8geSe5KjKJ9tCeMlJ2g-fdaUCWX23twqKPVNjoAivdlmeOQAGr-EBIA6oQWwFIJfXaFEXfFa4EhY9NGJv9SOx6956cFuNk1XnLeWDSOWM/s200/IMG_0718.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;li&gt;And from this point on my Facebook works like a charm.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQTZCo0JF2vkB-DGAVEKwy5gLrYvYJUH2nVSEzEPPMiLqi68z9ppYz-0ILMTgdxlQ1nImWNJn8hHUnPZQ7FP-URwz-HtsdMwanEnGgJW4CU8yTuxggsT0_u4hV-2BqsvOmvdYrDBRPfVk/s1600/IMG_0719.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; width=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQTZCo0JF2vkB-DGAVEKwy5gLrYvYJUH2nVSEzEPPMiLqi68z9ppYz-0ILMTgdxlQ1nImWNJn8hHUnPZQ7FP-URwz-HtsdMwanEnGgJW4CU8yTuxggsT0_u4hV-2BqsvOmvdYrDBRPfVk/s200/IMG_0719.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/ol&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/4874668210988635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/11/app-crash-in-ios-501.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/4874668210988635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/4874668210988635'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/11/app-crash-in-ios-501.html' title='App Crash in IOS 5.0.1'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1AXte5wHC0Vf8_vXg_4vUiJGxglVo_bHqT-m1fkmvxOjavedTj_dIcSaXp4I_Z335WQAIkGst9eZ8Wo_fTmScMMs7SSgrPiNRjh8h2OAysEdPuTAAkIYBpx6HLtEkg9eghI8Y9MtzKYE/s72-c/IMG_0710.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-2625829513760856825</id><published>2011-11-12T23:10:00.001+08:00</published><updated>2011-11-14T08:19:47.506+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Happiness"/><category scheme="http://www.blogger.com/atom/ns#" term="Life"/><title type='text'>Story of two grannies</title><content type='html'>This is a story of two grannies who had gone through similar hardship in life. I met them a while back and they both shared the following bad experiences:
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Both of them were orphaned at a very young age, and both were adopted.
&lt;/li&gt;
&lt;li&gt;Both of them married an alcoholic, and had difficult marriages
&lt;/li&gt;
&lt;li&gt;Both of them had disrespectful and unfilial children 
&lt;/li&gt;
&lt;li&gt;Both of them had kidney failure and had to go through painful dialysis
&lt;/li&gt;
&lt;/ul&gt;
There could however be no bigger contrast in how they viewed life. 
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://us.cdn1.123rf.com/168nwm/shock77/shock771102/shock77110200008/8842323-happy-grandma-cartoon.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;120&quot; src=&quot;http://us.cdn1.123rf.com/168nwm/shock77/shock771102/shock77110200008/8842323-happy-grandma-cartoon.jpg&quot; width=&quot;130&quot; /&gt;&lt;/a&gt;&lt;/div&gt;The first lady looked at life as a blessing and as she had gone through all the adversities when she was younger.
&lt;p&gt;She felt that her life was never better and she was at a much better place now. 
&lt;p&gt;She was also a volunteer worker for an NGO helping the less fortunate ones.
&lt;p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://images.clipartof.com/small/65464-Royalty-Free-RF-Clipart-Illustration-Of-An-Angry-Grandma-Flipping-The-Bird.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;120&quot; src=&quot;http://images.clipartof.com/small/65464-Royalty-Free-RF-Clipart-Illustration-Of-An-Angry-Grandma-Flipping-The-Bird.jpg&quot; width=&quot;130&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;The 2nd lady was however outrageous when we discussed her past. She blamed her sons and cursed her daughters in law. She was angry with God because he was unfair to her.
&lt;p&gt;Although this lady was also part of the same NGO, she was not a volunteer but a patient suffering from clinical depression disorder.

&lt;p&gt;What hit me the most was the stark difference in their facial expression and the vibes they sent out, although both suffered similar misfortunes in life.

&lt;p&gt;As the first lady had let go of the distress and set herself free from the past, she left a peaceful and kind impression upon us. People like to be near her as she was very approachable and she carried herself with dignity and grace.

&lt;p&gt;The depressed lady however still burried all her pain and burden from the past within her; she was very critical, aggressive and violent. People avoided her at all cost and she looked like a devil at times. 

&lt;p&gt;I sincerely had deep sympathy for her as she had gone through a hard life. However, she had to relive those painful but long gone miseries every day, and she was not willing to let go of those painful memories. With that, she was torturing herself daily with all the awful bygones.

&lt;p&gt;Perhaps, there are just too many irreversible grief and regrets in life. Perhaps we feel so sorry for ourselves that we cry our lung out in those lonely nights. We damn the world, as this is such an insufferable hell. 

&lt;p&gt;But, we ought to know that we are the only one person who can release us from that living hell. No one else can help us.

&lt;p&gt;There are just too many baggages in life, we can choose to carry them wherever we go, or we can choose to put them down gracefully and move on. 

&lt;p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk4njtgJOb_YD3M6irKZBUdPVDd38DiqOrApwYkkHNkFVaSFB_OiyR4uth_SdtkjZhXxBmWJKGTxGR5Cuq2PCK6837mziehczUGM4aEK8QDCHcVHeQTahUHUMkvmLyy4ZfgBegswoT3I4/s1600/Greg-Hartle-Freedom-2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk4njtgJOb_YD3M6irKZBUdPVDd38DiqOrApwYkkHNkFVaSFB_OiyR4uth_SdtkjZhXxBmWJKGTxGR5Cuq2PCK6837mziehczUGM4aEK8QDCHcVHeQTahUHUMkvmLyy4ZfgBegswoT3I4/s320/Greg-Hartle-Freedom-2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Whether or not we want to let go of these baggages can decide our future; it makes the difference of whether we continuously live a painful life, or turn over a new leaf and live in happiness.

&lt;p&gt;The only way to end those bad dreams, is to wake up.

&lt;p&gt;The only way to live happily, is to let go.

&lt;hr&gt;
Related Article:
&lt;ul&gt;
&lt;li&gt; &lt;a href=&quot;http://zen-arch.blogspot.com/2011/11/waking-up.html&quot;&gt;Waking Up&lt;/a&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;&lt;font size=&quot;-1&quot;&gt;This post has been translated from an article I read from Facebook. Please excuse my poor attempt in translating and if you would like to read the original post, you can get it &lt;a href=&quot;http://www.facebook.com/ysliang00/posts/307078205969223&quot;&gt;here&lt;/a&gt;. &lt;/font&gt;&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/2625829513760856825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/11/story-of-two-grannies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/2625829513760856825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/2625829513760856825'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/11/story-of-two-grannies.html' title='Story of two grannies'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk4njtgJOb_YD3M6irKZBUdPVDd38DiqOrApwYkkHNkFVaSFB_OiyR4uth_SdtkjZhXxBmWJKGTxGR5Cuq2PCK6837mziehczUGM4aEK8QDCHcVHeQTahUHUMkvmLyy4ZfgBegswoT3I4/s72-c/Greg-Hartle-Freedom-2.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-4199564378495624394</id><published>2011-11-12T11:39:00.001+08:00</published><updated>2011-11-13T12:34:19.394+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Happiness"/><category scheme="http://www.blogger.com/atom/ns#" term="Life"/><title type='text'>Waking up</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpiluK4-wkwlWhcUnotQrS6kAqmxMJFSLgeE4G005_hO5I4F92eNPTBHF8Y7lkoDg7islcqen_ets5D_VDRxyJRcl90fsWUZhHfYi9fSKhKvzdYDUFkRX4qjOlTUdEppK6hQEbCSiVUwI/s1600/letting-go.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpiluK4-wkwlWhcUnotQrS6kAqmxMJFSLgeE4G005_hO5I4F92eNPTBHF8Y7lkoDg7islcqen_ets5D_VDRxyJRcl90fsWUZhHfYi9fSKhKvzdYDUFkRX4qjOlTUdEppK6hQEbCSiVUwI/s1600/letting-go.jpg&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;In a world that&#39;s filled with troubled souls and pain, many asked Buddha what they could do to stop their worries and live a happy life. 

&lt;p&gt;Buddha invariably gave the same answer, &quot;You will be free if you let go.&quot;

&lt;p&gt;After sometimes, a smart man became disgruntled with the same answer, and decided to challenge him. 

&lt;p&gt;He went to Buddha and asked, &quot;There are tens of millions of people in this world, each experiencing different problems and agonies. The solution you offered them has always been the same. Don&#39;t you think it&#39;s ridiculous to even imagine that your one way can solve all the problems in the world?&quot;

&lt;p&gt;Buddha calmly asked the man, &quot;Do you dream when you sleep?&quot;

&lt;p&gt;&quot;Of course!” said the man.

&lt;p&gt;&quot;Are your dreams always the same every night?” asked Buddha.

&lt;p&gt;&quot;Of course not!” the man answered.

&lt;p&gt;&quot;You have slept thousands of nights and you have had thousand of different dreams. But no matter how bad or good your dreams are, there is only one way to end them.&quot;&lt;br /&gt;

&lt;p&gt;Buddha continued with smiles, &quot;That is to wake up.&quot;

&lt;br /&gt;
&lt;hr&gt;
Related Article:
&lt;ul&gt;
&lt;li&gt; &lt;a href=&quot;http://zen-arch.blogspot.com/2011/11/story-of-two-grannies.html&quot;&gt;Story of two grannies&lt;/a&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;&lt;font size=&quot;-1&quot;&gt;This post has been translated from an article I read from Facebook. Please excuse my poor attempt in translating and if you would like to read the original post, you can get it &lt;a href=&quot;http://www.facebook.com/ysliang00/posts/307078205969223&quot;&gt;here&lt;/a&gt;. &lt;/font&gt;&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/4199564378495624394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/11/waking-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/4199564378495624394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/4199564378495624394'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/11/waking-up.html' title='Waking up'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpiluK4-wkwlWhcUnotQrS6kAqmxMJFSLgeE4G005_hO5I4F92eNPTBHF8Y7lkoDg7islcqen_ets5D_VDRxyJRcl90fsWUZhHfYi9fSKhKvzdYDUFkRX4qjOlTUdEppK6hQEbCSiVUwI/s72-c/letting-go.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-2853079277736753062</id><published>2011-09-17T11:16:00.001+08:00</published><updated>2011-09-17T11:17:33.231+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Grails"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial"/><title type='text'>How to create a consistent look and feel with Grails Layout ~ Grails Tutorial 3</title><content type='html'>So far we have created a controller and a view, and we have learned how to pass values from the controller to the view. Although we can now start improving the look and feel of the store with fancy HTML or CSS codes, but that means we would need to do that with every single gsp we create. &lt;br /&gt;
&lt;br /&gt;
Would it not be great if we can create a template for all the pages in the application with the same header, the same menu, the same footer? That way we can always be assured of a consistent look and feel across the store. &lt;br /&gt;
&lt;br /&gt;
The answer for this question lies in Grails Layout, and our objective in this session is to:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt; Create a template that apply to all the different views in the application with Grails Layout&lt;br /&gt;
&lt;/ol&gt;To have all the actions in our &lt;font color=&quot;blue&quot;&gt;CatalogController&lt;/font&gt; share the same layout, we will need to create a layout file with the same name at /grails-app/views/layouts. Lets create the following file now then: 
&lt;pre class=&quot;code&quot;&gt;/grails-app/views/layouts/catalog.gsp&lt;/pre&gt;
Again, grails&#39; convention over configuration is put at work here. We don&#39;t have to write any XML files to wire the two together. Everything works just perfectly.  Below is the code snippet for catalog.gsp: 
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;html&amp;gt;

 &amp;lt;head&amp;gt; &amp;lt;title&amp;gt; Camgear - &amp;lt;g:layoutTitle/&amp;gt;&amp;lt;/title&amp;gt;
  &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;
   &amp;lt;g:createLinkTo dir=&#39;css&#39; file=&#39;camgear.css&#39; /&amp;gt;
  &amp;quot; /&amp;gt;
  
  &amp;lt;g:layoutHead /&amp;gt;
 &amp;lt;/head&amp;gt;
 
 &amp;lt;body&amp;gt;
  
  &amp;lt;div id=&amp;quot;header&amp;quot;&amp;gt;
   &amp;lt;img src=&amp;quot;
    &amp;lt;g:createLinkTo dir=&#39;images&#39; file=&#39;camgear-logo.gif&#39; /&amp;gt;
   &amp;quot; alt=&#39;logo&#39; height=&#39;100&#39;/&amp;gt;
   &amp;lt;hr /&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;g:layoutBody /&amp;gt;
  
  &amp;lt;div id=&amp;quot;footer&amp;quot;&amp;gt;
   &amp;lt;a&amp;gt;All Rights Reserved&amp;lt;/a&amp;gt;
  &amp;lt;/div&amp;gt;
  
 &amp;lt;/body&amp;gt;
 
&amp;lt;/html&amp;gt;&lt;/pre&gt;
Of course, we will still need to put the camgear.css file in the 
&lt;pre class=&quot;code&quot;&gt;/camgear/web-app/css&lt;/pre&gt;folder. 
The following is a sample css file that I used: &lt;pre class=&quot;prettyprint&quot;&gt;body {
 font: &amp;quot;Helvetica Neue&amp;quot;, Trebuchet MS, Verdana, Helvetica;
 margin: 0px;
}
#review sub {
 font-size: 2.5em;
 display: block;
 margin: .5em;
 padding: .5em;
 background: url(../images/background.png) repeat-x;
 border: 1px dotted black;
}
#review con   {
 font-size: 1.5em;
 text-align:right;
 margin-right: 2em;
}
#nav {
 text-align:right;
 margin-right: 1em;
}

#header {
  background: url(../images/logo-background.gif) repeat-x;
 padding: 0px;  
}
#header img {
 padding: 1em;
}
#footer {
  background: url(../images/background.png) repeat-x;
 padding: 0px;  
}

#footer a {
 font-size: 0.7em;
 display: block;
 color: white;
 text-align:center;
 margin-top:30px;
 font-family:&amp;quot;Lucida Handwriting&amp;quot;, Verdana, Helvetica;
}

#menu {
 background: url(../images/logo-background.gif) repeat-x;
 padding: 5px; 
}
#menu li {
 display: inline;
 margin-left: 5px;
 margin-right: 5px;

}

#menu a {
 font-size: 1.5em;
 text-decoration: none;
 color: #4F82B5; // #14477A
}&lt;/pre&gt;
Once all these are done, all we need to do is to refresh our browser, and we will see a totally different web page; I mean it feels as though technology has evolved for 10 years with just these two changes. We now have a standard header, standard footer and more importantly, a standard theme.  Note that we have not done anything to the view we created yesterday. 

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVGwDR7epI2fVw6L-vSjWrk7k-mJdvoZh2eMELlzkatM1la8VCm4WbbWRTTulNzZPqZe5RkuPdq_tzxErbvBfBVt6pZMaMW3obEmrPQNSapnBY3IBEAWvhbK2B9alRCfFanqQJ6Bv5y3E/s1600/Screen+shot+2011-09-17+at+11.09.03.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;1&quot; style=&quot;border: 1px lightgray solid;&quot; height=&quot;311&quot; width=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVGwDR7epI2fVw6L-vSjWrk7k-mJdvoZh2eMELlzkatM1la8VCm4WbbWRTTulNzZPqZe5RkuPdq_tzxErbvBfBVt6pZMaMW3obEmrPQNSapnBY3IBEAWvhbK2B9alRCfFanqQJ6Bv5y3E/s400/Screen+shot+2011-09-17+at+11.09.03.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;So, that&#39;s all for today. We will talk about binding to the database tomorrow.  
&lt;hr&gt;&lt;b&gt;&lt;u&gt;Related Articles&lt;/u&gt;&lt;/b&gt; &lt;ol&gt;&lt;li&gt;Tutorial 1 - &lt;a href=&quot;http://zen-arch.blogspot.com/2011/09/creating-our-first-controller-in-grails.html&quot;&gt;Creating our first controller in grails&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;Tutorial 2 - &lt;a href=&quot;http://zen-arch.blogspot.com/2011/09/how-we-present-ourselves-to-world.html&quot;&gt;How we present ourselves to the world&lt;/a&gt;&lt;br /&gt;
&lt;/ol&gt;
&lt;hr&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/2853079277736753062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/09/how-we-create-consistent-look-and-feel.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/2853079277736753062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/2853079277736753062'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/09/how-we-create-consistent-look-and-feel.html' title='How to create a consistent look and feel with Grails Layout ~ Grails Tutorial 3'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVGwDR7epI2fVw6L-vSjWrk7k-mJdvoZh2eMELlzkatM1la8VCm4WbbWRTTulNzZPqZe5RkuPdq_tzxErbvBfBVt6pZMaMW3obEmrPQNSapnBY3IBEAWvhbK2B9alRCfFanqQJ6Bv5y3E/s72-c/Screen+shot+2011-09-17+at+11.09.03.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-4454642817880335999</id><published>2011-09-16T18:17:00.007+08:00</published><updated>2011-09-17T22:38:06.994+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Grails"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial"/><title type='text'>How to present our views to the world - Grails Tutorial 2</title><content type='html'>In the first article of this series of grails tutorial, we &lt;a href=&quot;http://zen-arch.blogspot.com/2011/09/creating-our-first-controller-in-grails.html&quot;&gt;created a first controller&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.clker.com/cliparts/K/K/I/0/3/U/dslr-camera.svg&quot; imageanchor=&quot;1&quot; style=&quot;clear:left; float:left;margin-right:1em; margin-bottom:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;96&quot; width=&quot;132&quot; src=&quot;http://www.clker.com/cliparts/K/K/I/0/3/U/dslr-camera.svg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Well, the truth is we cannot bring our store online yet. There was only 1 controller and it is not quite my favorite camera store yet. Besides, the presentation of our store, err... kinda sucks. &lt;br /&gt;
&lt;br /&gt;
On top of that, we basically embedded the HTML in our codes, which is one of the most horrendous things any programmer can do. Unless I want to overtake &lt;a href=&quot;http://billo.com/billo-the-worst-programmer-of-all-time.html&quot;&gt;Billo&lt;/a&gt; as the worst programmer of all time, we got some serious work to do.&lt;br /&gt;
&lt;br /&gt;
So, meet &lt;i&gt;Groovy Server Pages (gsp)&lt;/i&gt; - the grails solution to move the presentation logic out so that some artistic designers can work on them, and I can focus on coding the backend logic. Now, we all know that the infamous &lt;font color=&quot;blue&quot;&gt;&lt;i&gt;Convention over Configuration&lt;/i&gt;&lt;/font&gt; philosophy behind grails, and if we put the right file in the right place, everything will work out just fine. &lt;br /&gt;
&lt;br /&gt;
And, and, and..... &lt;font color=&quot;red&quot;&gt;&lt;b&gt;there is no configuration needed!!!&lt;/b&gt;&lt;/font&gt; Yay!&lt;br /&gt;
&lt;br /&gt;
OK... lets focus on our objective today:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Passing some values from the Controller to gsp,&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
We will talk about layout, data model and persisting data in some form of database in the following sessions. &lt;br /&gt;
&lt;br /&gt;
Alright, first thing first, instead of rending HTML codes from the controller, we now do 1 step better; we keep some values here and pass them to the gsp for display. So, lets change our little controller like so: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;def catalog = {
     
     def staticBrand = &amp;quot;Nikon&amp;quot;
     def staticModel = &amp;quot;D3S&amp;quot;
     def staticReview = &amp;quot;D3S is the best pro DSLR ever!&amp;quot;
     def staticReviewer = &amp;quot;JC Tai&amp;quot;
     def staticRating = 5

     [  
      brand : staticBrand, 
      model : staticModel, 
      review : staticReview, 
      reviewer: staticReviewer, 
      rating : staticRating
     ]

    }&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Notice the square bracket? That&#39;s how the controller passes information to the gsp. Now, because of the convention over configuration philosophy, we do not need to create any configuration so long as we create the view here:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;/grails-app/views/catalog/catalog.gsp&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
It is time now to write our view. Since my web designer is on leave today, I created the view by myself; and boy! This has already pushed my creativity ability to the limit! Lets see how it looks like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;HTML&amp;gt;

 &amp;lt;HEAD&amp;gt;
  &amp;lt;TITLE&amp;gt;Camera Gears Review &amp; Catalog&amp;lt;/TITLE&amp;gt;
 &amp;lt;/HEAD&amp;gt;
 
 &amp;lt;BODY&amp;gt;
  Brand: ${brand} &amp;lt;br /&amp;gt;
  Model: ${model} &amp;lt;br /&amp;gt;
  Review: ${review} &amp;lt;br /&amp;gt;
  Reviewer: ${reviewer} &amp;lt;br /&amp;gt;
  Rating: ${rating} stars &amp;lt;br /&amp;gt;  
 &amp;lt;/BODY&amp;gt;

&amp;lt;/HTML&amp;gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Once we do that, grails automatically wires the controller and the view together. Not a line of XML has been written! Amazing! Now lets point our browser to&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;http://localhost:8080/camgear/catalog/catalog&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;and voilà!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9wjxKYJX79ATOZMHTvZiPk-4DfC0FpaKaU9QJYqySjUy_18IhttY3xee_NIvqxj_3ylWpXbczBwo5lqrGSt46xM8Qednx-zA9cxwQfzqj0u8mFzbz6hRJ84exGOHxyBxztHX2TScuxuA/s1600/Screen+shot+2011-09-16+at+18.12.14.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot;  style=&quot;border: 1px lightgray solid;&quot; height=&quot;221&quot; width=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9wjxKYJX79ATOZMHTvZiPk-4DfC0FpaKaU9QJYqySjUy_18IhttY3xee_NIvqxj_3ylWpXbczBwo5lqrGSt46xM8Qednx-zA9cxwQfzqj0u8mFzbz6hRJ84exGOHxyBxztHX2TScuxuA/s400/Screen+shot+2011-09-16+at+18.12.14.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
If we are talking about cleaner codes, can any code be cleaner than this? Haha... joke aside. In just a few lines of code, we have managed to create a web application that is retrieving information from the controller, and yes, we have not done anything on database yet, but the simplicity of grails just blows me away!&lt;br /&gt;
&lt;br /&gt;
OK, lets review what we have done so far:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;We have &lt;a href=&quot;http://zen-arch.blogspot.com/2011/09/creating-our-first-controller-in-grails.html&quot;&gt;created a controller&lt;/a&gt;.&lt;br /&gt;
&lt;li&gt;&lt;del&gt;We rendered HTML from the controller&lt;/del&gt;&lt;br /&gt;
&lt;li&gt;We stored some static values in the controller&lt;br /&gt;
&lt;li&gt;We retrieved these values from the controller and passed them to the gsp&lt;br /&gt;
&lt;li&gt;We have a &lt;font color=&quot;red&quot;&gt;&lt;b&gt;VERY CLEAN&lt;/b&gt;&lt;/font&gt; web site running in just a few lines of code!&lt;br /&gt;
&lt;/ol&gt;OK, so far so good. Next time, we will talk about a consistent layout for the entire web site.  Stay tuned!  &lt;hr&gt;&lt;u&gt;&lt;b&gt;Related articles&lt;/b&gt;&lt;/u&gt; &lt;ol&gt;&lt;li&gt;Tutorial 1 - &lt;a href=&quot;http://zen-arch.blogspot.com/2011/09/creating-our-first-controller-in-grails.html&quot;&gt;Creating our first controller in grails&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;Tutorial 3 - &lt;a href=&quot;http://zen-arch.blogspot.com/2011/09/how-we-create-consistent-look-and-feel.html&quot;&gt;How to create a consistent look and feel with grails layout&lt;/a&gt;&lt;br /&gt;
&lt;/ol&gt;
&lt;hr&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/4454642817880335999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/09/how-we-present-ourselves-to-world.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/4454642817880335999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/4454642817880335999'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/09/how-we-present-ourselves-to-world.html' title='How to present our views to the world - Grails Tutorial 2'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9wjxKYJX79ATOZMHTvZiPk-4DfC0FpaKaU9QJYqySjUy_18IhttY3xee_NIvqxj_3ylWpXbczBwo5lqrGSt46xM8Qednx-zA9cxwQfzqj0u8mFzbz6hRJ84exGOHxyBxztHX2TScuxuA/s72-c/Screen+shot+2011-09-16+at+18.12.14.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-792428977659240784</id><published>2011-09-15T09:22:00.010+08:00</published><updated>2011-09-17T11:21:55.337+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Grails"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial"/><title type='text'>Creating our first controller in grails - Grails Tutorial 1</title><content type='html'>A few months ago I wrote an article about how grails makes it possible to write a quick application in 3 minutes. I knew I should have followed up with more stuff but works caught up and I procrastinated. I know, my bad, my bad...&lt;br /&gt;
&lt;br /&gt;
Anyway, I am about to write a series of grails tutorial. Hopefully it can encourage more people to adopt this wonderful framework.&lt;br /&gt;
&lt;br /&gt;
I love photography, and all the camera gears. So, lets base our tutorial with an online portal of camera products for browsing. Hopefully we can evolve this to something more substantial along the way.&lt;br /&gt;
&lt;br /&gt;
OK, some fundamental first. The grails framework has been designed based on the MVC framework; and those who have developed in Spring Framework will find Grails a refreshing platform for rapid application development.&lt;br /&gt;
&lt;br /&gt;
MVC Concept - The solid lines are direct association and the dashed one are indirect association.&lt;br /&gt;
&lt;br /&gt;
So with that, we can start building our online camera catalog, and we are going to call our project Camgears. So lets create our first project with a simple command line:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;grails create-app camgear&lt;/pre&gt;&lt;br /&gt;
We will then see a bunch of activities happening in front of us. Once it&#39;s done, we will be able to start our application. The first thing that we need to do is to create a controller. Controller is the engine behind every grails application and they do the following few things very well:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;They receive user inputs from the web browser&lt;/li&gt;
&lt;li&gt;They invoke the necessary business objects to get things done&lt;/li&gt;
&lt;li&gt;They can also access your data model to retrieve information from your database&lt;/li&gt;
&lt;li&gt;And at the end they redirect the application to the appropriate pages for the end result to be displayed.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
So with that understanding, lets start generating our first controller. First lets change to the proper directory:&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;cd camgear&lt;/pre&gt;&lt;br /&gt;
Then we will generate the controller by issuing:&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;grails create-controller catalog&lt;/pre&gt;&lt;br /&gt;
After this, grails actually create a the skeleton of the controller at /grails-app/controllers/CatalogController.groovy. The following is how the file looks like:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code class=&quot;language-java&quot;&gt;package camgear

class CatalogController {

    def index = {
    }

}
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
It looks pretty simple right now. But note that grails has actually created a simple index action for us. Lets say we really want the users to be automatically be routed to the catalog every time they visit our site, we can do the following:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code class=&quot;language-java&quot;&gt;package camgear

class CatalogController {

    def index = {
     redirect( action: catalog )
    }
    
    def catalog = {
     render &amp;quot;&amp;lt;h1&amp;gt; Welcome to our store &amp;lt;/h1&amp;gt; &amp;lt;br&amp;gt;Under construction.&amp;quot;
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Lets try to see if this works. Grails comes with a handy web server, and even in memory database (more to that later). To execute this, all we need to do is to run the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code&quot;&gt;grails run-app&lt;/pre&gt;&lt;br /&gt;
And when everything is ready, point your web browser to:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;http://localhost:8080/camgear&lt;/pre&gt;And you will see a nice web page with all the dirty work that grails has done for you. You can even see that the &lt;font color=&quot;blue&quot;&gt;camgear.CatalogController&lt;/font&gt; has already been defined for you:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0xxQ6Twz8RU9ZK1CrVVC0kb41Euft4BCPXe8xUl37_XKRBYtTMHXX1nlXKTfYZdqUDdl5ufDnXK9LXBZx-MeZWLoWWmxgkrgGCyLiX3VGqENrfq62C1G1FhewO_VrcSBI-HIyV4SfhTg/s1600/Grails-1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;1&quot; style=&quot;border: 1px lightgray solid;&quot; height=&quot;228&quot; width=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0xxQ6Twz8RU9ZK1CrVVC0kb41Euft4BCPXe8xUl37_XKRBYtTMHXX1nlXKTfYZdqUDdl5ufDnXK9LXBZx-MeZWLoWWmxgkrgGCyLiX3VGqENrfq62C1G1FhewO_VrcSBI-HIyV4SfhTg/s400/Grails-1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Now, lets click at the &lt;font color=&quot;blue&quot;&gt;camgear.CatalogController&lt;/font&gt; and see what happens:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRVeylF55EiDzDdX4cDIHf0-pJ9zgI6s-gUlo6uZWViGunPQpOxkiY9HDBOhwrL9SrE469rPXe_XAsIWhPm91P7QGz7tQo4mbI1A6Y9YAXv3OTwzPPRpb8flTC6n1y10pBRO504rOZdtk/s1600/Grails-2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;1&quot;  style=&quot;border: 1px lightgray solid;&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRVeylF55EiDzDdX4cDIHf0-pJ9zgI6s-gUlo6uZWViGunPQpOxkiY9HDBOhwrL9SrE469rPXe_XAsIWhPm91P7QGz7tQo4mbI1A6Y9YAXv3OTwzPPRpb8flTC6n1y10pBRO504rOZdtk/s400/Grails-2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Something cool happens if you type the following URL:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;http://localhost:8080/camgear/catalog/index&lt;/pre&gt;&lt;br /&gt;
The page automatically gets redirected to &lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;http://localhost:8080/camgear/catalog/catalog &lt;/pre&gt;&lt;br /&gt;
because of this code:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code class=&quot;language-java&quot;&gt;    def index = {

     redirect( action: catalog )

    }
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Pretty neat huh? We only wrote a few commands and with only a few lines of codes, our first application is already up. That took less than &lt;font color=&quot;red&quot;&gt;5&lt;/font&gt; minutes. &lt;br /&gt;
&lt;br /&gt;
I know, I know... some of you are going to complain about embedding HTML codes into the controller, which is a horrible idea. But we are going to make changes to this later in View and Layout.&lt;br /&gt;
&lt;br /&gt;
Stay tuned.&lt;br /&gt;
&lt;br /&gt;
&lt;hr&gt;&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Related articles&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Tutorial 2 - &lt;a href=&quot;http://zen-arch.blogspot.com/2011/09/how-we-present-ourselves-to-world.html&quot;&gt;How to present ourselves to the world&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;Tutorial 3 - &lt;a href=&quot;http://zen-arch.blogspot.com/2011/09/how-we-create-consistent-look-and-feel.html&quot;&gt;How to create a consistent look and feel with grails layout&lt;/a&gt;&lt;br /&gt;
&lt;/ol&gt;&lt;br&gt;
&lt;hr&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/792428977659240784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/09/creating-our-first-controller-in-grails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/792428977659240784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/792428977659240784'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/09/creating-our-first-controller-in-grails.html' title='Creating our first controller in grails - Grails Tutorial 1'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0xxQ6Twz8RU9ZK1CrVVC0kb41Euft4BCPXe8xUl37_XKRBYtTMHXX1nlXKTfYZdqUDdl5ufDnXK9LXBZx-MeZWLoWWmxgkrgGCyLiX3VGqENrfq62C1G1FhewO_VrcSBI-HIyV4SfhTg/s72-c/Grails-1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-6803233859802850325</id><published>2011-05-22T17:39:00.013+08:00</published><updated>2011-11-13T17:29:38.272+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IOS"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><title type='text'>Why is my iPhone getting insanely hot (literally)?</title><content type='html'>My iPhone is by far the best phone I have ever used; it is like a million times better than the other &lt;b&gt;supposedly&lt;/b&gt; &lt;strike&gt;&lt;font color=lightgrey&gt;smart&lt;/font&gt;&lt;/strike&gt; phone it replaced. I could acquire knowledge so much faster and better now that I feel like being a living proof of Bill Gates&#39; infamous speech in 1990 - &lt;a href=&quot;http://www.youtube.com/watch?v=efPwChPPJXI&quot;&gt;Information at your fingertips&lt;/a&gt;, although in a totally different context 20 years later.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; http://files.vector-images.com/clipart/hotphone1.gif&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 120px; height: 120px;&quot; src=&quot;http://files.vector-images.com/clipart/hotphone1.gif&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Having said that, there have been a few times when my iPhone just got insanely hot, and then the battery was draining so fast that I thought there was an electronic vampire sucking the battery juice out of the phone. While I normally can manage probably 15 hours of usage a day (I am a heavy user who is constantly on the phone). On these few occasions the battery was flat within 2 - 3 hours without any significant changes in the pattern how the phone was used.&lt;br /&gt;&lt;br /&gt;Now, if you are having/or have encountered similar problem, then this article is for you. &lt;br /&gt;&lt;br /&gt;First thing first, iPhone is made up of 2 major components, the Hardware and the Software. A hot iPhone can be the result of the malfunction of either one of these components. The following steps help you to isolate the root cause of the problem and subsequently get it fixed.&lt;br /&gt;&lt;br /&gt;&lt;font color=navy&gt;&lt;u&gt;&lt;b&gt;Note&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;i&gt;We are talking about &lt;b&gt;&lt;u&gt;prolonged&lt;/u&gt;&lt;/b&gt; period of heat with abnormal battery drainage here. If you are experiencing the heat for only a few minutes, then perhaps you can wait for a while to see if the problem persists. If true, then the following steps may help you.&lt;/i&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Is this  a hardware problem?&lt;/b&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg18jSF6CO8CYjTgZo8L6NAxrQftQw4v_NnZr94YivDOD33iNzWK1b2vhYrGoOzSihoxIO6oEcWYd_1c20e87NTYm5ImAc-UdUtVe88_-mX1PgEIbMMKulKFTdsv1YVr3W6dfFGU_bovMY/s1600/iPhone+Battery+Usage.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 152px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg18jSF6CO8CYjTgZo8L6NAxrQftQw4v_NnZr94YivDOD33iNzWK1b2vhYrGoOzSihoxIO6oEcWYd_1c20e87NTYm5ImAc-UdUtVe88_-mX1PgEIbMMKulKFTdsv1YVr3W6dfFGU_bovMY/s200/iPhone+Battery+Usage.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5609482381204720226&quot; /&gt;&lt;/a&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;Go to Settings &lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Click General &lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Click Usage&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;You should see something like this at the end of the steps. Now if there is a significantly big gap between usage time and standby time, and your phone is &lt;font color=red&gt;&lt;b&gt;hot&lt;/b&gt;&lt;/font&gt;, it is probably a hardware failure. You can follow this &lt;a href=&quot;http://forums.vr-zone.com/handphones-gadgets-garage/529565-iphone-checking-water-damage.html&quot;&gt;link&lt;/a&gt; to check if there is a water damage to the phone, and the best way to fix this hardware issue is to return the phone to the service provider you got your iphone from and swap for a new one if it&#39;s still under warranty.&lt;br /&gt;&lt;br /&gt;If you have gone so far, then this is probably a fixable software issue. Put it simply, the iPhone is so hot because it&#39;s been working overtime to get something done. The following are the common culprits that may cause the iPhone to work in the background:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Push Mail&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/ITunes_Ping&quot;&gt;Ping&lt;/a&gt; - IOS 4.3 and above&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Applications running in the background&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Notification Settings&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Others&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;From my own experience, the phone gets really hot usually when I am on my 3G data network, and the battery drainage also happens considerably faster as compared to when I am on EDGE or Wifi. The following are a few things that could help to solve this problem:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Push Mail&lt;br /&gt;&lt;br /&gt;iPhone would push mail from the server automatically for you so you don&#39;t have to. However, when the data signal is weak, iPhone would keep on trying to establish connections with the server for the push mail to happen. This as a result can cause battery drain, as well as pushing the temperature up for the phone.&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio9xZ5SL7Pi_YgyuyiO-ZuY0MLFBW7jcHXGPhf9hGBDevUKUhflojLD4PTrl0oOfwXtrGFXAOJdz5qHxUuZAeE-yYRLRsXogYVGKPkX8O8BDuKHLKczyV_MoNYp15KWWo3zvFD-6WcwKo/s1600/Push+Mail.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 290px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio9xZ5SL7Pi_YgyuyiO-ZuY0MLFBW7jcHXGPhf9hGBDevUKUhflojLD4PTrl0oOfwXtrGFXAOJdz5qHxUuZAeE-yYRLRsXogYVGKPkX8O8BDuKHLKczyV_MoNYp15KWWo3zvFD-6WcwKo/s400/Push+Mail.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5609496336384403490&quot; /&gt;&lt;/a&gt;The following are steps to temporarily turn this off, and you can turn it back on when situation improves.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Go to Settings&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Mail, Contacts, Calendars&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Fetch New Data&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Turn push to &lt;b&gt;OFF&lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Set Fetch to &lt;b&gt;Manually&lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ping&lt;/li&gt;&lt;br /&gt;Put simply, Ping is Apple&#39;s attempt to turn iTune into a social network such as Facebook, or Twitter. Basically, users can see what their friends purchased, liked, and what concerts their friends are going, etc. Now, I don&#39;t need this service, and it&#39;s sucking the battery life of my phone, so it gotta go!&lt;br /&gt;&lt;br /&gt;To turn this off, do the following:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Go to settings&lt;/li&gt;&lt;br /&gt;&lt;li&gt;General&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Restrictions&lt;/li&gt;&lt;br /&gt;At this point, you may be asked to enter your password if you have enabled it before. Otherwise, IOS will ask you to create a new password to enable it.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Turn PING to &lt;b&gt;OFF&lt;/b&gt;&lt;/li&gt; &lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;li&gt;Notification Settings&lt;/li&gt;&lt;br /&gt;Some of the applications may try to access the data network to pull for new notifications. Social network applications such as WhatsApp, Facebook, Twitter, etc constantly go online to check if there is any new updates. Usually this would not be a problem, but if your battery is draining like crazy, turn off all the notifications temporarily to see if things improve.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Applications running in the background&lt;/li&gt;&lt;br /&gt;Simply kill all running applications in the background to see if things improve.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Others&lt;/li&gt;&lt;br /&gt;Address below.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Now, if you have done all the above, and things don&#39;t get better, there are still three things that you can do. But please do a full backup before you perform any of the following steps:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Check if you have the latest firmware. This can be done by simply connecting your phone to the computer, and launch iTune. Click Check For Update. Update the firmware if there is a new version. I have fixed mine once using this approach.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If the above still fails, perform a RESET on the phone. Note: performing this steps WILL &lt;B&gt;NOT&lt;/B&gt; erase your personal contents such as email, sms, or contact information. Similar steps are documented &lt;a href=&quot;http://zen-arch.blogspot.com/2011/05/iphone-date-time-automatic-setting-went.html&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Only do this if you have absolutely no choice. If you have taken all the above measures and still having this problem, then you may want to do a DFU restore. Before doing this, please make sure you have a FULL BACKUP first because the phone will be completely wiped out! So far I have managed to solve all my battery drainage problems without having to do this. You can follow the instruction at this &lt;a href=&quot;http://osxdaily.com/2010/06/24/iphone-dfu-mode-explained-and-how-to-enter-dfu-mode-on-your-iphone/&quot;&gt;link&lt;/a&gt; here to perform this restore.&lt;/li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.iclarified.com/images/tutorials/1034/4985/4985-500.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 500px; height: 127px;&quot; src=&quot;http://www.iclarified.com/images/tutorials/1034/4985/4985-500.png&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps, and good luck!</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/6803233859802850325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/05/why-is-my-iphone-getting-insanely-hot.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/6803233859802850325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/6803233859802850325'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/05/why-is-my-iphone-getting-insanely-hot.html' title='Why is my iPhone getting insanely hot (literally)?'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg18jSF6CO8CYjTgZo8L6NAxrQftQw4v_NnZr94YivDOD33iNzWK1b2vhYrGoOzSihoxIO6oEcWYd_1c20e87NTYm5ImAc-UdUtVe88_-mX1PgEIbMMKulKFTdsv1YVr3W6dfFGU_bovMY/s72-c/iPhone+Battery+Usage.jpg" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-4811392459120709144</id><published>2011-05-14T10:33:00.009+08:00</published><updated>2011-11-13T17:29:49.488+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IOS"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><title type='text'>iPhone Date &amp; Time - Automatic Setting Went Wrong</title><content type='html'>I occasionally go to Thailand for business trip, in the past I usually had to adjust the clock on my phone to reflect the local time (Thailand is one hour behind Malaysia), and adjusted it again when I am back to Kuala Lumpur.&lt;br /&gt;&lt;br /&gt;I still remember the very first time I went to Thailand after I got my brand new iPhone. Shortly after my phone was connected to the roaming network, I noticed the time was set back 1 hour. At first I was pleasantly surprised and at the same time skeptical about this, as I thought I had accidentally set the time without remembering it. But when I checked at my wife&#39;s phone (she does not have such habit) it was automatically set to the local time as well!&lt;br /&gt;&lt;br /&gt;Being a curious guy, I checked all the setting and found out that iPhone had the ability to automatically set the date and time for me. This is really cool! &lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4cUbfIym4Dwn9qEOLAaD_wX4D7Elf0Pf75FGVuaoaLtiODec1kyyzsK9C6IhyphenhyphenKMRD7Hbu-e_ogaWjMWSwxTTQZZ_HIA_KyB0hZaw8XAHV9AVuNwVvvhbZvV7H_V0lSerBG3M4og2yc8/s1600/IMG_0182.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 267px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4cUbfIym4Dwn9qEOLAaD_wX4D7Elf0Pf75FGVuaoaLtiODec1kyyzsK9C6IhyphenhyphenKMRD7Hbu-e_ogaWjMWSwxTTQZZ_HIA_KyB0hZaw8XAHV9AVuNwVvvhbZvV7H_V0lSerBG3M4og2yc8/s400/IMG_0182.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5606404047023376786&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When I returned to KL on that trip, I made a mental note to observe if the phone was really so smart and would change the time back to the Malaysian time. And it did! &lt;br /&gt;&lt;br /&gt;WOW! This is a a real smart phone! And this feature added to another one of my favorite things about the phone.&lt;br /&gt;&lt;br /&gt;Shortly after I upgraded to IOS 4.3.2, I went to Bangkok again for another business trip. The time was changed to local time automatically. All went well and when I returned to KL, and to my horror, the time was still one hour behind! The funny thing was that when I disabled Set Time Automatically, the clock shows KL time again without me having to manually adjust for it.&lt;br /&gt;&lt;br /&gt;So I left it as it was. But deep down I was not happy knowing that one of the features in my favorite phone was not working perfectly anymore.&lt;br /&gt;&lt;br /&gt;Some of the my friends may remember that I had some real issue with my phone after the upgrades to IOS 4.3.2. &lt;a href=&quot;http://zen-arch.blogspot.com/2011/05/app-crash-after-ios-432.html&quot;&gt;Apps were crashing&lt;/a&gt;, and phone was getting really dysfunctional. &lt;br /&gt;&lt;br /&gt;Before upgrading to IOS 4.3.3, one of the things I did was to reset all settings on my phone. After the reset, I went to the time &amp; date setting to see if this was also reset - and it did. It was reset back to Set Automatically. And you know what? The time is now correctly set.&lt;br /&gt;&lt;br /&gt;I guess IOS somehow cached the Thai timezone in its setting somewhere and did not release this.&lt;br /&gt;&lt;br /&gt;For those of you who are having this problem, follow the following steps to reset your phone. These steps WILL NOT ERASE your contact information, SMS, EMAILS, etc. You do however need to key in the wireless WEP keys again, and all the remembered networks will be forgotten.&lt;br /&gt;&lt;br /&gt;1.  Click Settings&lt;br /&gt;2.  Scroll down and click General&lt;br /&gt;3.  Scroll to the very bottom and select Reset&lt;br /&gt;4.  Select RESET All Settings&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYu2y5THnOzCm9FL09NOd906iMNw1Ty9EGqd5iUxIwCpsVGryBpsjLvo3yEGRh1-H7ZTE1C2JTdfbNqfXhbvS0iLoR0Mt-Tjanf851qiVRW-D0EGEXDjDsprC8mkGKncC9SS8zdB06WVU/s1600/IMG_0183.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 267px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYu2y5THnOzCm9FL09NOd906iMNw1Ty9EGqd5iUxIwCpsVGryBpsjLvo3yEGRh1-H7ZTE1C2JTdfbNqfXhbvS0iLoR0Mt-Tjanf851qiVRW-D0EGEXDjDsprC8mkGKncC9SS8zdB06WVU/s400/IMG_0183.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5606405182131479282&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Oh by the way, my friend Rachel also had an issue with her WhatsApp not being able to connect to the WIFI network on her iPhone. After this steps, the problem was resolved.&lt;br /&gt;&lt;br /&gt;Good luck!</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/4811392459120709144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/05/iphone-date-time-automatic-setting-went.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/4811392459120709144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/4811392459120709144'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/05/iphone-date-time-automatic-setting-went.html' title='iPhone Date &amp; Time - Automatic Setting Went Wrong'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF4cUbfIym4Dwn9qEOLAaD_wX4D7Elf0Pf75FGVuaoaLtiODec1kyyzsK9C6IhyphenhyphenKMRD7Hbu-e_ogaWjMWSwxTTQZZ_HIA_KyB0hZaw8XAHV9AVuNwVvvhbZvV7H_V0lSerBG3M4og2yc8/s72-c/IMG_0182.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-1838516344117104193</id><published>2011-05-07T19:21:00.008+08:00</published><updated>2011-11-13T17:29:59.136+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IOS"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><title type='text'>How to stop iTunes and iPhoto from launching unnecessarily</title><content type='html'>I love my Macbook. I also love my iPhone.&lt;br /&gt;&lt;br /&gt;But I hate it when my iPhone connects to my MacBook. For no apparent reasons - Apple thinks that automatically launching iTunes and iPhoto for me would make my life better. &lt;br /&gt;&lt;br /&gt;Well, no, it does not! In fact, it annoys the hell out of me. Imagine your car manufacturer decides to start the engine, the massager chair, the radio and the GPS automatically every time you open the door of your vehicle, regardless of the fact that you are only trying to retrieve a document from the car.&lt;br /&gt;&lt;br /&gt;So automation does not just make the system smarter. Sometimes it makes it dumber. And the fact that I always have to close whatever that&#39;s opened by Snow Leopard just a few seconds later proves the point.&lt;br /&gt;&lt;br /&gt;So, if you are as paranoid as me (admit it), and only want your system to act at your command, the following tips might help.&lt;br /&gt;&lt;br /&gt;First to stop iTunes from automatically popping up:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0z_SqJ_u_EH-K7rnYh7sIuVTfFzkRbJJfb3YjVQ1PqAVTRaMDPAJorkQeQVHnPA9Sv3sfdj7QihZL6ZstppjhRrRCmdFeGF_wbBlAHBmMzY1-ZxW-qfWi5gfFwv3q-05PsrTSVQJSGpo/s1600/iTune-iPhone.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 121px; height: 200px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0z_SqJ_u_EH-K7rnYh7sIuVTfFzkRbJJfb3YjVQ1PqAVTRaMDPAJorkQeQVHnPA9Sv3sfdj7QihZL6ZstppjhRrRCmdFeGF_wbBlAHBmMzY1-ZxW-qfWi5gfFwv3q-05PsrTSVQJSGpo/s200/iTune-iPhone.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5603937867265429170&quot; /&gt;&lt;/a&gt;&lt;br /&gt;1. Connect your iPhone to your Mac&lt;br /&gt;2. Start iTune (oops, I forgot, Apples starts it automatically for you at this point, DUH!)&lt;br /&gt;3. Click at the phone under devices &lt;br /&gt;4. At the summary page of the phone, scroll down to the Options.&lt;br /&gt;5. Uncheck Open iTunes when this phone is connected.&lt;br /&gt;&lt;br /&gt;You are done.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzV0iioJN2pb2C_Y8ZDSgs3wNHB8cuWAoeQji31d4OQPYDURlvP6GymNyOG5vxlBn11DvBu2rfU7gL3w6hQqOcJecw64reHxXjoQDynbWxexI4q2x_gK35PXPy23gc1C4ogephnnPsDYo/s1600/stop-itunes-launching-when-iphone-connected.jpg&quot;&gt;&lt;img style=&quot;margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; height: 96px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzV0iioJN2pb2C_Y8ZDSgs3wNHB8cuWAoeQji31d4OQPYDURlvP6GymNyOG5vxlBn11DvBu2rfU7gL3w6hQqOcJecw64reHxXjoQDynbWxexI4q2x_gK35PXPy23gc1C4ogephnnPsDYo/s200/stop-itunes-launching-when-iphone-connected.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5603938630376569298&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So that got rid of half of the annoyance. Now, lets work on the iPhoto part.&lt;br /&gt;1. Connect your iPhone to your Mac&lt;br /&gt;2. Click at spotlight&lt;br /&gt;3. Type Image Capture&lt;br /&gt;4. Select your iPhone under Device&lt;br /&gt;5. Select &quot;No Application&quot; under Connecting this iPhone opens&lt;br /&gt;&lt;br /&gt;Done.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU3Jj5LaLnU1kJA4Q-fKE5YoiSVMPcXavRK0n3lWpvw9UQwV8b3D0hJsjRMHZhMGSlJ0Enr3HEq0juBqHPmWfMZYSg_4nHWSVqtg70U2I_FKnK0QEGOxxH1WPd8KbHHsysHQHwEsglST0/s1600/Stop-iPhoto.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 500px; height: 317px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU3Jj5LaLnU1kJA4Q-fKE5YoiSVMPcXavRK0n3lWpvw9UQwV8b3D0hJsjRMHZhMGSlJ0Enr3HEq0juBqHPmWfMZYSg_4nHWSVqtg70U2I_FKnK0QEGOxxH1WPd8KbHHsysHQHwEsglST0/s400/Stop-iPhoto.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5603940655748078050&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And now I am a happy camper! :D</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/1838516344117104193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/05/how-to-stop-itunes-and-iphoto-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/1838516344117104193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/1838516344117104193'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/05/how-to-stop-itunes-and-iphoto-from.html' title='How to stop iTunes and iPhoto from launching unnecessarily'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0z_SqJ_u_EH-K7rnYh7sIuVTfFzkRbJJfb3YjVQ1PqAVTRaMDPAJorkQeQVHnPA9Sv3sfdj7QihZL6ZstppjhRrRCmdFeGF_wbBlAHBmMzY1-ZxW-qfWi5gfFwv3q-05PsrTSVQJSGpo/s72-c/iTune-iPhone.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-2510193334460533747</id><published>2011-05-07T18:38:00.008+08:00</published><updated>2011-11-13T17:30:16.050+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="App Crash"/><category scheme="http://www.blogger.com/atom/ns#" term="IOS"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="Technology"/><title type='text'>App Crash after IOS 4.3.2</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAP2IDOzTflGLj9dm8HHPHE-BbqyPpcSZCDkNmlpe2s4nytRSrczA1vBsm7B8Nly527u1HWSMPt0q3DzKf4gs1ES0xY2GTIjF1Sa-RjRda3A-dgPg2diS7zEbkFhmnUaUpCcJEbwJFmv4/s1600/IMG_0179.PNG&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 214px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAP2IDOzTflGLj9dm8HHPHE-BbqyPpcSZCDkNmlpe2s4nytRSrczA1vBsm7B8Nly527u1HWSMPt0q3DzKf4gs1ES0xY2GTIjF1Sa-RjRda3A-dgPg2diS7zEbkFhmnUaUpCcJEbwJFmv4/s320/IMG_0179.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5603927587893419778&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I have been experiencing lots of issues with my iPhone ever since I upgraded to IOS 4.3.2. I mean the app just crashed for no particular reason, and that really annoyed me. It was not only the third party apps that crashed on me, core iPhone applications such as App Store and Safari were also crashing on me. &lt;br /&gt;&lt;br /&gt;So I did a check on Google and found out that I was not suffering alone; and a lot of iPhone users who upgraded also suffered the same fate. So I followed the instruction to first reset my network setting, then  &lt;a href=&quot;http://www.givememind.com/ios-4-3-2-making-your-apps-crash/&quot;&gt;erase all contents and subsequently restore from iTunes&lt;/a&gt;, to &lt;a href=&quot;http://www.karthikk.net/2011/04/how-to-fix-app-crashes-after-ios-4-3-2-update/&quot;&gt;hard reset&lt;/a&gt;. The phone would work fine for a while and then the apps would just crash again like before.&lt;br /&gt;&lt;br /&gt;When &lt;a href=&quot;http://support.apple.com/kb/DL1358&quot;&gt;the release of IOS 4.3.3&lt;/a&gt; was available on May 4, I was ecstatic that my misery was soon going to end. Did a sync on my iTunes (learned my lesson), and then proceeded to upgrade my phone.&lt;br /&gt;&lt;br /&gt;IOS 4.3.3 definitely made the phone more stable, but after a while, apps started crashing again. I could not understand why and finally I thought I should be looking what&#39;s going on under the hood myself! So I fired up &lt;a href=&quot;http://www.mbtheme.com/WebApp/Tools-Utilities/201002/SYSTEM-Lite_29758-29758.html&quot;&gt;SYSTEM Lite&lt;/a&gt; and found out that I only had 4MB of RAM free! So that&#39;s the problem!&lt;br /&gt;&lt;br /&gt;A quick switch to process mode and then I found out - for some weird reason, although some of the apps are not showing in my springboard, they were actually running in the background thus consuming those precious precious memory! Launching those running apps in the background and then subsequently killing them freed the much needed memory for me, and boy, my phone was running like new again!&lt;br /&gt;&lt;br /&gt;So the bottom line is, if you are on 4.3.2 and cursing your phone as I did, upgrade to 4.3.3. And if you are on 4.3.3 and still suffering the same problem, install SYSTEM Lite (it&#39;s free) from iTune and find out what&#39;s going on behind the scene. For some reasons some apps were just running by itself (probably due to my pushed notification setting). Terminating some of the unneeded apps would gives you the most precious resources in all computing world - the RAM!</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/2510193334460533747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/05/app-crash-after-ios-432.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/2510193334460533747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/2510193334460533747'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/05/app-crash-after-ios-432.html' title='App Crash after IOS 4.3.2'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAP2IDOzTflGLj9dm8HHPHE-BbqyPpcSZCDkNmlpe2s4nytRSrczA1vBsm7B8Nly527u1HWSMPt0q3DzKf4gs1ES0xY2GTIjF1Sa-RjRda3A-dgPg2diS7zEbkFhmnUaUpCcJEbwJFmv4/s72-c/IMG_0179.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-5477290305294913125</id><published>2011-02-09T07:29:00.020+08:00</published><updated>2011-02-14T21:21:19.336+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Happiness"/><category scheme="http://www.blogger.com/atom/ns#" term="Life"/><title type='text'>再續前緣</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifcQBfgrVgD1znoKUhTthYgLMFz4YPZp0p1pDRkjkcNC-oblC2r41mPkukS6gcuPZlbmL9sr7_UQ-rgsgL3NRJjjtwRdTEIK_wMeG45E_GDiwdJ2JWePqGeWwRZHrdcnbtypqDHnQHGeM/s1600/IMG_0015.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 231px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifcQBfgrVgD1znoKUhTthYgLMFz4YPZp0p1pDRkjkcNC-oblC2r41mPkukS6gcuPZlbmL9sr7_UQ-rgsgL3NRJjjtwRdTEIK_wMeG45E_GDiwdJ2JWePqGeWwRZHrdcnbtypqDHnQHGeM/s320/IMG_0015.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5572761543901883890&quot; /&gt;&lt;/a&gt;時間真的是一種很玄的概念。上中學時，總覺得日子難過。彷彿一瞬間，不惑之年已不再遙遠。&lt;br /&gt;&lt;br /&gt;同學們告別校園後，便各奔前程。有的選擇了深造，打工，成家，立業，或走自己的路。同窗之情，也隨著時間，漸漸流失在生活的各種瑣碎當中。而我，也同樣的背著對前途的憧憬，野心，困惑，還有一份從不言敗的驕傲，一筆筆的給自己人生的壁畫，絵上色彩。&lt;br /&gt;&lt;br /&gt;時間，就這樣在忙與盲當中流失了。驀然回首，畢業經已20年。&lt;br /&gt;&lt;br /&gt;但在我心裡總是有一把聲音，常常我耳邊念念碎。每年大掃除時翻到舊照片，難免會忍不住緬懷一番。這聲音時而如蚊吟，時而洪鐘，時而不聞。它，從來沒有消失過，只是偶爾潛伏著，等待著下一次的突擊。&lt;br /&gt;&lt;br /&gt;去年三月的某一天，心中這煩躁又來無端騷擾。終於忍不住了，便在Facebook里輸入了1991年高三文商3，盼望能尋會失散了的同學們。本來也不敢抱著很高的期望，但出乎意料之外，原來瑞強，淑慧，嘉娣，添順已經成立了一個小組。欣喜若狂之際，馬上要求加入。那時心裡七上八下的，擔心他們已忘記了我。畢竟也失聯了那麼久。&lt;br /&gt;&lt;br /&gt;驚喜的是，他們不但沒有忘記，還給予我一個很熱誠的歡迎。我也把佩心，慧妮，心怡介紹了進去。&lt;br /&gt;&lt;br /&gt;後來不曉得哪位英雄提出要搞一個20年畢業聚會，而且要把它搞大。大家馬上就接受了這個好主意。剛開始時，也只是說說而已，大家也不太認真。當時間越來約靠近時，大家慢慢便活躍起來了。同學們都自動自發的參與：有的要做主持人，攝影師，財政，查賬，安排流程。有的到處去找失散了的同學的通訊方法，有的照著通訊錄一個個的通知，有的找場地，有的報效，有的樂捐。每個同學為了這難得的聚會，都自動自發的不計回報的付出。淑慧與嘉娣還邀請了我們高三時的班主任，Mr. Goh.&lt;br /&gt;&lt;br /&gt;我有時想，大家都這麼熱忱，那把在我心中念念碎的聲音，一定也同時活在他們心裡吧？&lt;br /&gt;&lt;br /&gt;好不容易的終於熬到了聚會當天。和外家親戚吃了午飯後，便啓程往岜都去了。原本三小時的路程，因為華人新年的關係，再加上柔佛水災，我們用了大約四各多小時才到達。雖然這樣，我和太太還是滿懷喜樂，期待著和老同學們的重聚。&lt;br /&gt;&lt;br /&gt;到達了場地之後，有好幾位同學已經到了。緊接著，同學們一位一位的出現了。大家就好像從來沒有分別過的樣子，握手，問候，擁抱，胡扯。之間的互動，是故友式的, 大家都開著只有摯友才能開的玩笑。原本一點點的隔閡，也漸漸的融化了。當我們重播同樂會影片時，雖然音響效果極差，大家還是很興奮的看完，細細的重溫著我們年輕的瘋狂。&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj2YtPtJoYJwFYrFum_FIx-I1EpGbWZPY91_4FDeaEUM1MruDmScQe4KqkXyAPwoiKWV1wtMNv96xm1yJ0IA3NAsAHGv4_WtAHs8uB7OIIvuc0aY2a0dxTDP7L_1elOUObrVhyCIg6UKA/s1600/DSC_0226.jpg&quot;&gt;&lt;img style=&quot;float: left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 213px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj2YtPtJoYJwFYrFum_FIx-I1EpGbWZPY91_4FDeaEUM1MruDmScQe4KqkXyAPwoiKWV1wtMNv96xm1yJ0IA3NAsAHGv4_WtAHs8uB7OIIvuc0aY2a0dxTDP7L_1elOUObrVhyCIg6UKA/s320/DSC_0226.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5571257654318677042&quot; /&gt;&lt;/a&gt;回想到當天的聚會，讓我感動的不只是因為我們當晚準備的節目很棒，又或是雖然和家人有約，工作需要，同學們還都盡力的出席。這些都讓我很感動。&lt;br /&gt;&lt;br /&gt;更感動的是，雖然分開了已經20年，我們現在又有一個重新去對彼此相知的機會。而當我們在這個殘酷無情的企業化生活里打滾而受傷，感到孤立，無助的時候，同學們的友情20年里都沒有改變。這是多值得慶祝與驕傲的事啊！&lt;br /&gt;&lt;br /&gt;對我最愛的朋友和同學們，我要打從心底向你們致謝。謝謝你們給我心中那一把聲音一個交代，也謝謝你們當晚的出席。&lt;br /&gt;&lt;br /&gt;最後，謝謝你們給大家一個再續前緣的機會。</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/5477290305294913125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/02/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/5477290305294913125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/5477290305294913125'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/02/blog-post.html' title='再續前緣'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifcQBfgrVgD1znoKUhTthYgLMFz4YPZp0p1pDRkjkcNC-oblC2r41mPkukS6gcuPZlbmL9sr7_UQ-rgsgL3NRJjjtwRdTEIK_wMeG45E_GDiwdJ2JWePqGeWwRZHrdcnbtypqDHnQHGeM/s72-c/IMG_0015.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-5943648848689779433</id><published>2011-02-08T17:05:00.012+08:00</published><updated>2011-02-10T07:52:46.431+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Happiness"/><category scheme="http://www.blogger.com/atom/ns#" term="Life"/><title type='text'>Together once more</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS70uoJSl-W7cEtgHec86bZEV-z5oMOszIAxK1nT-dnMFzlctgjlF2iUZqHwZfaq424RaL1TToh9wm9WrnT9D21jhFoviZo-hy8WTWDEH-UnMhVWUjVjH2BGEg8orn3wtMQl99u4sKU3A/s1600/CHS-6.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 218px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS70uoJSl-W7cEtgHec86bZEV-z5oMOszIAxK1nT-dnMFzlctgjlF2iUZqHwZfaq424RaL1TToh9wm9WrnT9D21jhFoviZo-hy8WTWDEH-UnMhVWUjVjH2BGEg8orn3wtMQl99u4sKU3A/s320/CHS-6.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5571260163410541074&quot; /&gt;&lt;/a&gt;It has been 20 years since we graduated from high school, and most of us have not crossed paths ever since we left school on that fated last day. We ventured into different direction of life with the same degree of enthusiasms, ambitions and confusions. As we bid farewell to each other we armed ourselves with the imaginary invincibility, believing that the world is our oyster. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;Then some of us further studied, became professionals, built businesses, started family, or just merely gained weight.&lt;br /&gt;&lt;br /&gt;And just like that, 20 years came to pass as if a stone has been dropped into the quiet water, vanished with only the ripples to remind us of its once proud significance.&lt;br /&gt;&lt;br /&gt;For me, there is always a little fainted voice in my heart that reminded me of my root, and of my dearest friends and comrades with whom I sit, fought, danced, sang, cried and laughed.  Sometimes the little voice became louder, sometimes mute, but it has always been there.&lt;br /&gt;&lt;br /&gt;One day last March, the little voice became just a little too irrefutable. So I searched for our class and year in Facebook, not hoping for any result. To my surprise, few of our classmates have set up a page with pictures from their gathering last year. I immediately requested to join the group, not expecting them to remember me.&lt;br /&gt;&lt;br /&gt;Instead, they welcomed me with open arms, and I soon added them to my list of friends. I have also recommended a few classmates whom I still have the privilege of keeping in touch with to join the group. The group grew slowly but steadily. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;Then someone suggested that we should have a BIG reunion for our 20 years anniversary. The idea was immediately approved of. I guessed, just like me, deep down everyone must have the same little voice.&lt;br /&gt;&lt;br /&gt;For a while nothing was being done, and as the deadline was closing in, the momentum was suddenly getting intense. Everyone was volunteering to take part in the organization. Some offered to be the MC, the photographer, the treasurer, the shopper and the list went on. Friends started scouting for suitable places, searching for long lost classmates, compiling phone book, calling everyone on the phone book, and all sort of activities just blossomed like wild mushrooms after the rain. We even invited our form teacher, Mr. Goh, to join us.&lt;br /&gt;&lt;br /&gt;Fast forward to the event itself. We started our journey to Batu Pahat after having lunch with Crystal&#39;s cousins. It took us a little more than 4 hours to reach our destinations due to the heavy Chinese New Year traffic. Despite the long journey, my wife and I were both in good spirits and were hoping to see old friends again.&lt;br /&gt;&lt;br /&gt;And then one by one, they showed up. As if we have not parted at all, we started shaking hands, hugging, joking, laughing and drinking the way that only closed friends could. We simply picked up from where we left off. &lt;br /&gt;&lt;br /&gt;Although we prepared some activities and games to get everyone warm-up, they were all redundant. All of us were zoomed in when the video was playing, giggling, laughing and poking each other, and the dusted memories became clear once again.&lt;br /&gt;&lt;br /&gt;What touched me was not only the fact that the programs we prepared were amazing (well they were alright), or how everyone chipped in to help, or how everyone showed up despite challenges in their work or with family members. On top of all these, what really touched my heart, when the dusts eventually settled, was that although we have spent the last 20 years apart, we were given a chance to renew our friendship. I now realize that although sometimes I felt abandoned and lonely struggling in the cold, cruel corporate world, our friendship is still how it was 20 years ago, untouched, protected, treasured and now growing.&lt;br /&gt;&lt;br /&gt;It is rare and fortunate to have friends like that. I had an accident prior to the reunion dinner and immediately they were offering all sort of helps, without me even asking for them. If these actions do not represent their genuine and caring friendship, I have no idea what does.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj2YtPtJoYJwFYrFum_FIx-I1EpGbWZPY91_4FDeaEUM1MruDmScQe4KqkXyAPwoiKWV1wtMNv96xm1yJ0IA3NAsAHGv4_WtAHs8uB7OIIvuc0aY2a0dxTDP7L_1elOUObrVhyCIg6UKA/s1600/DSC_0226.jpg&quot;&gt;&lt;img style=&quot;float: left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 213px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj2YtPtJoYJwFYrFum_FIx-I1EpGbWZPY91_4FDeaEUM1MruDmScQe4KqkXyAPwoiKWV1wtMNv96xm1yJ0IA3NAsAHGv4_WtAHs8uB7OIIvuc0aY2a0dxTDP7L_1elOUObrVhyCIg6UKA/s320/DSC_0226.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5571257654318677042&quot; /&gt;&lt;/a&gt;To my dearest friends and comrades, you have my deepest gratitudes for your everlasting friendship. Thank you for giving meaning to the little voice in my head, and thank you for making the effort to be with us.&lt;br /&gt;&lt;br /&gt;Most important of all, thank you for giving us the opportunity to be together once more.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/5943648848689779433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2011/02/together-once-more.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/5943648848689779433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/5943648848689779433'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2011/02/together-once-more.html' title='Together once more'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS70uoJSl-W7cEtgHec86bZEV-z5oMOszIAxK1nT-dnMFzlctgjlF2iUZqHwZfaq424RaL1TToh9wm9WrnT9D21jhFoviZo-hy8WTWDEH-UnMhVWUjVjH2BGEg8orn3wtMQl99u4sKU3A/s72-c/CHS-6.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-1333010703782530131</id><published>2010-10-03T22:52:00.007+08:00</published><updated>2011-02-10T07:52:04.397+08:00</updated><title type='text'>SharePoint Can Be Starting Point for BPM, but Not Much More</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.legge.ca/wp-content/uploads/2010/02/sharepoint_platform_services_wheel.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 205px; height: 168px;&quot; src=&quot;http://www.legge.ca/wp-content/uploads/2010/02/sharepoint_platform_services_wheel.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Read this article at IT Business Edge and the article is reminiscent of what we have gone through recently. I think it is a great read and anyone who intends to implement a SharePoint Project should at least read this first.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;a href=&quot;http://www.itbusinessedge.com/cm/blogs/all/sharepoint-can-be-starting-point-for-bpm-but-not-much-more/?cs=43522&quot;&gt;SharePoint Can Be Starting Point for BPM, but Not Much More&lt;/a&gt;.&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/1333010703782530131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/10/sharepoint-can-be-starting-point-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/1333010703782530131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/1333010703782530131'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/10/sharepoint-can-be-starting-point-for.html' title='SharePoint Can Be Starting Point for BPM, but Not Much More'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-5184480483912335043</id><published>2010-10-02T17:27:00.011+08:00</published><updated>2011-02-10T07:52:21.741+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Grails"/><title type='text'>How do you write a functional CRUD application in 3 minutes?</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://economics.ca/jpeg/minutes3.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 200px;&quot; src=&quot;http://economics.ca/jpeg/minutes3.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;I came across a wonderful framework recently and was totally blown away by it. The simplicity of the framework, totally boast productivity to a new level.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://grails.org/&quot;&gt;Grails&lt;/a&gt;, an open source web application framework, aims to reduce the traditional XML configuration of Enterprise Java Application Development to the minimum. It favors convention over configuration, and to a programmer like me who hates to see another line of XML, Grails is like a God sent. Grails has been designed based on Spring and Hibernate framework, and it can be used to build Enterprise Grade Application.&lt;br /&gt;&lt;br /&gt;The following is a simple design principle taken from &lt;a href=&quot;http://en.wikipedia.org/wiki/Grails_(framework)&quot;&gt;Wikipedia&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&quot;XML was initially welcomed as it provided greater consistency to configure applications. In recent years however it has become apparent that although XML is great for configuration it can be tedious to set up an environment. This may take away productivity as developers spend time understanding and maintaining framework configuration as the application grows. Adding or changing functionality in applications which use XML configuration adds an extra step to the change process next to writing application code which slows down productivity and may take away the agility of the entire process.&lt;br /&gt;&lt;br /&gt;Grails takes away the need to add configuration in XML files. Instead the framework uses a set of rules or conventions while inspecting the code of Grails-based applications. For example, a class name which ends with Controller (for example BookController) is considered a web controller.&quot;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Anyway, you can read up the background and theory later if that interest you. My main goal today is to show how easy it is to build a simple Grails application within 3 minutes.&lt;br /&gt;&lt;br /&gt;After downloading the latest Grails from their &lt;a href=&quot;http://grails.org/Download&quot;&gt;download page&lt;/a&gt;here, you can proceed with the few simple steps to it up rather quickly.&lt;br /&gt;&lt;br /&gt;OK, lets review our objective today:&lt;br /&gt;&lt;oi&gt;&lt;br /&gt; &lt;li&gt; I want to build a simple Application to track what sort of cars my customers drive &lt;/li&gt;&lt;br /&gt; &lt;li&gt;To achieve that, I will need a simple customer object - with the usual first name, last name, birthday, income group, and the kind of car he drives.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;As I want to control the sort of cars I have in my database, I will just create a car object. In which you can find all sort of cars in there.&lt;/li&gt;&lt;br /&gt; &lt;li&gt; I will also create an income group object. That way this parameter can be configurable as well.&lt;/li&gt;&lt;br /&gt;&lt;/oi&gt;&lt;br /&gt;So all set. Lets start. &lt;br /&gt;&lt;br /&gt;First thing I do is to create a grails application. This can be done by simply issuing the following command. Lets call our application CIS [Customer Information Portal]:&lt;br /&gt;&lt;blockquote&gt;grails create-app CIS&lt;/blockquote&gt;&lt;br /&gt;You will see a tons of texts flying out from your screen. That means grails is generating the skeleton of the project for you. At the end of it, you will see the following line and then you know your application has been successfully created:&lt;br /&gt;&lt;blockquote&gt;Created Grails Application at /Users/lys/Test/CIS&lt;/blockquote&gt;&lt;br /&gt;Now, we need to create three domain class. A domain class in Grails is basically a normal Groovy class. We will get into this in another article. From the above objective, we know we need to create three domain classes, namely:&lt;br /&gt;&lt;blockquote&gt;1. Customer&lt;br /&gt;2. Car&lt;br /&gt;3. Income Group&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;So lets get to work. We can simply create the domain class by issuing the simple commands:&lt;br /&gt;&lt;blockquote&gt;1. cd CIS&lt;br /&gt;2. grails create-domain-class Customer&lt;br /&gt;3. grails create-domain-class Car&lt;br /&gt;4. grails create-domain-class IncomeGroup&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;If we now navigate to CIS/grails-app/domain/cis, we can see that three files have been generated by Grails:&lt;br /&gt;&lt;blockquote&gt;1. Customer.groovy&lt;br /&gt;2. Car.groovy&lt;br /&gt;3. IncomeGroup.groovy&lt;/blockquote&gt;&lt;br /&gt;Lets go ahead and define our customer object. Say it has the following properties:&lt;br /&gt;&lt;blockquote&gt;1. First Name&lt;br /&gt;2. Last Name&lt;br /&gt;3. Birthday&lt;br /&gt;4. Car&lt;br /&gt;5. Income Group&lt;/blockquote&gt;&lt;br /&gt;This is very simple, eh? So lets go ahead and define it in the customer.groovy file:&lt;br /&gt;&lt;blockquote&gt;package cis&lt;br /&gt;&lt;br /&gt;class Customer {&lt;br /&gt;&lt;br /&gt; String  firstName&lt;br /&gt; String  lastName&lt;br /&gt; Date  birthday&lt;br /&gt; Car   vehicleMake&lt;br /&gt; IncomeGroup annualIncome&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;And we will go ahead to define the other two objects. To make things really simple, I am putting income group as a string. You can always make it more complicated to meet your needs:&lt;br /&gt;&lt;blockquote&gt;package cis&lt;br /&gt;&lt;br /&gt;class Car {&lt;br /&gt;&lt;br /&gt; String manufacturer&lt;br /&gt; String model&lt;br /&gt; Integer displacement&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;package cis&lt;br /&gt;&lt;br /&gt;class IncomeGroup {&lt;br /&gt;&lt;br /&gt; String annualIncome&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;OK. We are done now. And that barely took 1 minutes.  Now lets grails do the dirty work. We need to build those objects now. So issue the following commands:&lt;br /&gt;&lt;blockquote&gt;1. grails generate-all cis.Customer&lt;br /&gt;2. grails generate-all cis.Car&lt;br /&gt;3. grails generate-all cis.IncomeGroup&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;We are all done by now, and YES, our application is ready to run! Issue this command and see what you got:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;grails run-app cis&lt;/blockquote&gt;&lt;br /&gt;Grails at this point will start up the web server, and your application is served. You can view your application here:&lt;br /&gt;&lt;blockquote&gt;http://localhost:8080/CIS/&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJe9yEknLXgymdwFEQUbQkp1-72xRM2GOXVpQN4HHVHXe5HsdjpYqDc1GMqj68HB3QaSUoMSGd085LGNisR9krB-By9KlcQp4NhGXtW1fgpZTcmQs2xIP8bkE6OUDj9aMzRdj_2JfU0Wk/s1600/grails-main.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 280px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJe9yEknLXgymdwFEQUbQkp1-72xRM2GOXVpQN4HHVHXe5HsdjpYqDc1GMqj68HB3QaSUoMSGd085LGNisR9krB-By9KlcQp4NhGXtW1fgpZTcmQs2xIP8bkE6OUDj9aMzRdj_2JfU0Wk/s400/grails-main.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5523391644803300674&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Great! All our controllers are there. Click at cis.CustomerController, and you will see a simple list where all the customer are supposed to be. Click at create a new customer, and the following screen came up. &lt;br /&gt;&lt;br /&gt;I have taken the liberty to fill up some of the information I have. Since we have not defined any car make and income group yet, I am going to leave it empty.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3J0PvaKJo8wGP_Dg7vctGS6eHSxGeqjZtmnlpJajPB2PwOrSGn_HqyBGnDGT5gepvhkSDpvXl0Mim3rNWmvHQ_FveftVwoDBVHVTtoDsbxQSDSAc9f8fDKfebTkJH8HIHWUhenj80l18/s1600/grails-2.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 178px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3J0PvaKJo8wGP_Dg7vctGS6eHSxGeqjZtmnlpJajPB2PwOrSGn_HqyBGnDGT5gepvhkSDpvXl0Mim3rNWmvHQ_FveftVwoDBVHVTtoDsbxQSDSAc9f8fDKfebTkJH8HIHWUhenj80l18/s400/grails-2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5523393150516829522&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click &quot;Create&quot;. Oh No! I cannot create! Grails is telling me that the car make and income group fields are mandatory. &lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUXTxhxnSjhgDM_Z8oHLwcGjIGPMGPi00MxzVqJ_p85Zj9cwavs76C7wU_dM7fdx6uHsqKvMyqA6etE5kTzN51m0wknG-Kysk_N_A96M9d-LNekyqoF95fn3WhiJ_-YZ83VE8MxAsbkrw/s1600/grails-3.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUXTxhxnSjhgDM_Z8oHLwcGjIGPMGPi00MxzVqJ_p85Zj9cwavs76C7wU_dM7fdx6uHsqKvMyqA6etE5kTzN51m0wknG-Kysk_N_A96M9d-LNekyqoF95fn3WhiJ_-YZ83VE8MxAsbkrw/s400/grails-3.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5523394253728522322&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But wait! I did not even do a single line of coding. All I did was putting in all the properties for each object only. &lt;br /&gt;&lt;br /&gt;Yes, in that 3 minutes we did this, Grails has generated the web front end, the domain class, the database tables, and the Validation logic for you! &lt;br /&gt;&lt;br /&gt;Ok, now lets put in all the correct properties for Income Group and Car and we can get this over with. The following is the final result. All the data are tabulated in a list. The view can be easily changed if we need to; but this is what we have for now:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9pfuZqthFNtgrd97eLeDIrAY1wLwYhqD3uoD0SXomi2XSQkHYKS28-7dNCn8biCQ8Dj1AfprBr_PTIPzmQE7qo0KJ7ioBda4YT7Gha8DTJpyUkct7UNqaE5w8N8rrX21h4PdFc1-rsZM/s1600/grails-4.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 168px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9pfuZqthFNtgrd97eLeDIrAY1wLwYhqD3uoD0SXomi2XSQkHYKS28-7dNCn8biCQ8Dj1AfprBr_PTIPzmQE7qo0KJ7ioBda4YT7Gha8DTJpyUkct7UNqaE5w8N8rrX21h4PdFc1-rsZM/s400/grails-4.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5523398182562790130&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click at the Id, and it brings me to the detail page:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglzhI6j1XAPIM1Kd0gF1dTD8P7hTk58sLSBffcf76EuYO75KQ-cseNYfJBCq7RUpVqGW9nMnG4Gu0UJu9vYeFRq-LDdcfru9lGlknuRFudMDjZMD05rja8NKvOJ7ovi3vGBicSlgWSa8w/s1600/grails-5.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 168px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglzhI6j1XAPIM1Kd0gF1dTD8P7hTk58sLSBffcf76EuYO75KQ-cseNYfJBCq7RUpVqGW9nMnG4Gu0UJu9vYeFRq-LDdcfru9lGlknuRFudMDjZMD05rja8NKvOJ7ovi3vGBicSlgWSa8w/s400/grails-5.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5523398183763445330&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click at the Income group, and it brings me to the income group page.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixeAR3RpCx2SiVRTb0EWsxCMIOGZSc2eiu1vw4FoX_WQXXQUieZ50YB0OUyOuQxWNaYkKmm0_AXxPya0iTbLFkCb_SSA-3UhpbzOn-ZN-FXs2rvZESR0ivETfJ1FEqE8j3DtNZyMQeqKo/s1600/grails-6.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 168px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixeAR3RpCx2SiVRTb0EWsxCMIOGZSc2eiu1vw4FoX_WQXXQUieZ50YB0OUyOuQxWNaYkKmm0_AXxPya0iTbLFkCb_SSA-3UhpbzOn-ZN-FXs2rvZESR0ivETfJ1FEqE8j3DtNZyMQeqKo/s400/grails-6.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5523398188212135826&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Not bad for 3 minutes work huh?</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/5184480483912335043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/10/how-do-you-write-functional-crud.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/5184480483912335043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/5184480483912335043'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/10/how-do-you-write-functional-crud.html' title='How do you write a functional CRUD application in 3 minutes?'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJe9yEknLXgymdwFEQUbQkp1-72xRM2GOXVpQN4HHVHXe5HsdjpYqDc1GMqj68HB3QaSUoMSGd085LGNisR9krB-By9KlcQp4NhGXtW1fgpZTcmQs2xIP8bkE6OUDj9aMzRdj_2JfU0Wk/s72-c/grails-main.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-6066025386048242625</id><published>2010-06-15T19:15:00.010+08:00</published><updated>2011-02-10T00:04:47.344+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Technology"/><title type='text'>How much are your emails worth?</title><content type='html'>Back then in 2007, IDC estimated that the daily email volume was &lt;a href=&quot;http://www.encyclopedia.com/doc/1P1-85195953.html&quot;&gt;97 billion&lt;/a&gt;; and based on IBM&#39;s estimation, &quot;Every day, 15 petabytes of new information are generated. By 2010, the codified information base of the world is expected to double every 11 hours.&quot; Click &lt;a href=&quot;www-05.ibm.com/tr/events/forum/pdf/Afternoon_1-2.pdf&quot;&gt; here&lt;/a&gt; to see the report.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 100px;&quot; src=&quot;http://graphics8.nytimes.com/images/2007/06/28/business/28slim.600.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;How much is 15 petabytes? Lets put it this way -  if I have a penny for every byte of information generated, I will be richer than &lt;a href=&quot;http://www.forbes.com/lists/2010/10/billionaires-2010_The-Worlds-Billionaires_Rank.html&quot;&gt;Carlos Slim Helu &amp; family&lt;/a&gt; (the richest man in the world as of today) by 315,000 times in  1 day. &lt;br /&gt;&lt;br /&gt;Few questions I have:&lt;br /&gt;1. How much do we rely on email for communication today? &lt;br /&gt;2. How many transactions are committed over Internet today via email? &lt;br /&gt;3. How much intelligence can we extract from our corporate email today?&lt;br /&gt;&lt;br /&gt;Lots of people are using email archiving solution. Email archiving solution can trim your mailbox sizes and saves you storage cost. However, it does not help you extract information out from the email you have.&lt;br /&gt;&lt;br /&gt;One classic scenario - one of my friends is in the FMCG (fast moving consumable goods) market, and they run promotion with their suppliers like there is no tomorrow. Mind you, they are quite successful and she has got a sizable group of employees running the marketing and promotion for her.&lt;br /&gt;&lt;br /&gt;What happens is that a large volume of transactions are being committed over emails. Some of the suppliers offer rebates or discount if her company hit a certain quota. Due to the large volume of transactions, the sales team only focuses on selling and no one seems to pay attention to the rebate policy from the suppliers. &lt;br /&gt;&lt;br /&gt;Well, if I am meeting my quota and getting a big fat check, why do I care if the company gets its rebate? Let the boss worry about that for a minute, ok?&lt;br /&gt;&lt;br /&gt;To complicate the matter more, these promotions are criss-crossed and multiple promotions with different suppliers can happen at the same time. &lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.angelicmoneyblessing.biz/faceinmoney.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 224px; height: 146px;&quot; src=&quot;http://www.angelicmoneyblessing.biz/faceinmoney.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;So one day my friend came back from her golfing trip and asked,  &quot;How much can we claim from each supplier?&quot; The sales team started to have eye contacts with their palms, while the rest tried to kill the imaginary fly with dead silence.&lt;br /&gt;&lt;br /&gt;The truth is, all the sales are committed over unstructured means - mostly emails. In order to claim back these monies from the suppliers, and to provide proof, she has to go through ten of thousands of emails going back few years to claim back the money.&lt;br /&gt;&lt;br /&gt;It will be cool if there is a solution that could automatically classifies, filters based on keywords, and manages and preserves these golden-information, literally. If such a solution existis, all my friend needs to do is to fire up a search interface, and all the emails that matching the search criteria will be shown, the rest discarded. &lt;br /&gt;&lt;br /&gt;Instead of looking at ten of thousands of emails, she can now look at only those that are relevant. Better yet, she can hire someone to look at those that are relevant, while she goes golfing.&lt;br /&gt;&lt;br /&gt;What would you do if this happens to you? How much monies is hidden inside your emails?</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/6066025386048242625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-much-are-your-emails-worth.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/6066025386048242625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/6066025386048242625'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-much-are-your-emails-worth.html' title='How much are your emails worth?'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-7450173804653451058</id><published>2010-06-15T07:59:00.004+08:00</published><updated>2011-11-13T17:30:36.333+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cloud Computing"/><title type='text'>Is your head in the cloud?</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://medias2.cafebabel.com/7350/thumb/355/-/europe-s-head-in-the-clouds-tob-head-in-clouds-expressions-idioms.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 175px; height: 223px;&quot; src=&quot;http://medias2.cafebabel.com/7350/thumb/355/-/europe-s-head-in-the-clouds-tob-head-in-clouds-expressions-idioms.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Read one article from the CIO magazine about how cloud computing help people collaborate better. Check it out.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://advice.cio.com/sean_poulley/10673/if_your_head_is_in_the_clouds_youre_thinking_clearly&quot;&gt;If Your Head is in the Clouds, You&#39;re Thinking Clearly&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Good read.</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/7450173804653451058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/06/if-your-head-is-in-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/7450173804653451058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/7450173804653451058'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/06/if-your-head-is-in-cloud.html' title='Is your head in the cloud?'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-5980386140011552911</id><published>2010-06-13T19:27:00.003+08:00</published><updated>2010-06-16T14:30:30.479+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Happiness"/><category scheme="http://www.blogger.com/atom/ns#" term="Life"/><title type='text'>What can we learn from a little kid?</title><content type='html'>My wife and I were invited to one of our good friend&#39;s house to catch up yesterday. We had not seen the couple for a very long time and it was great seeing them. Anyway, we thought it was a great idea to also make Chinese Zhong-zi while we were there as it&#39;s also the time of the year.&lt;br /&gt;&lt;br /&gt;Little did I know that I could learn so much from this little gathering. I think Jaze and Michelle really did a good job raising their kids... &lt;br /&gt;&lt;br /&gt;While we were making the dumplings, Aaron, Jaze&#39;s son, took out one of the strings and started playing with it. In his imagination, the string could be a sword, a rope, a knife, a gun, a weapon to justice. Boy, the kid was having such great fun with the simple string. Just look at him. It was sheer joy!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNR0_YLg1tDKL2dZb7AflWYyCETyzJjU7N-igX2XoobtkIOu8PtGQAVHeYfm6oQyqiKZSDsA8snH5DRjXtfvU3HINNRbeuUTpXTIVQ6jin_BVhG7SDmOuft_T7Xyj1VEWtf2KT2lC2et0/s1600/DSC_0140+-+1.jpg&quot;&gt;&lt;img style=&quot;margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 287px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNR0_YLg1tDKL2dZb7AflWYyCETyzJjU7N-igX2XoobtkIOu8PtGQAVHeYfm6oQyqiKZSDsA8snH5DRjXtfvU3HINNRbeuUTpXTIVQ6jin_BVhG7SDmOuft_T7Xyj1VEWtf2KT2lC2et0/s400/DSC_0140+-+1.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5482218761359183538&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;The daddy was telling me the kid could watch Alvin and the Chipmunks endless time everyday and never got tired of it.&lt;br /&gt;&lt;br /&gt;While I was looking back at the picture earlier, it struck me that there was once we all lived like that too. We could play with a simple match box for hours and never got tired of it. We could read a simple comic books for zillion times, knowing very well what the ending was, but still enjoyed it.&lt;br /&gt;&lt;br /&gt;What has changed in our life? We now demand to use the latest software, the latest mobile, the latest GPS, the latest this and the latest that. We are never contented with what we have anymore. Just upgraded to iPhone 3GS a few months ago, and now my heart itch for iPhone 4. I feel that what I have is never enough; what people did for me are never good enough. We are always on the chase for more and the latest.&lt;br /&gt;&lt;br /&gt;Why do we feel inadequate today when we have so much more?  What can we learn from this little kid? Are we demanding too much and giving too little thanks?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.cmu.edu/greenpractices/campus-recycling/recycling-pictures/recycling-paper.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 338px; height: 500px;&quot; src=&quot;http://www.cmu.edu/greenpractices/campus-recycling/recycling-pictures/recycling-paper.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; There is a kind old lady who stays at the same block with us. She is 80 years old, and has gone through all sort of hardship in her life. She told us that she used to cycle for more than 20km to go anywhere. When she was younger, she worked as a rubber tapper, hawker or any job that could bring food back to the family. She moved into the city when her sons started family and life got better.&lt;br /&gt;&lt;br /&gt;After she moved to KL, she started collecting old newspapers to sell. It was hard for her but because she treated everyone in the condo very nicely, everyone just donated old magazines, old newspaper, etc to her. And then she would call the lorry to pick up these newspapers. She was like making something like RM 1k a month - although not much, but she got by.&lt;br /&gt;&lt;br /&gt;What astounded me was when she told us she donated RM 10k for charity, as most of the newspaper she got were donated by others too! She only made RM 1k a month, and she donated RM 10k for charity? &lt;br /&gt;&lt;br /&gt;Wow! How many of us who pride ourselves as professional have donated RM 1k for anything?&lt;br /&gt;&lt;br /&gt;What a life of abundance, and what a kind soul. Although she has gone through so much hardship, she chooses to cherish life. More importantly, she chooses to help people in need. She chooses to care, and to love. Although she&#39;s an illiterate, she lives a more meaningful and purposeful life than those of us who are supposedly highly educated.&lt;br /&gt;&lt;br /&gt;What a life! And what a wake up call!</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/5980386140011552911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/06/what-can-we-learn-from-little-kid.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/5980386140011552911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/5980386140011552911'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/06/what-can-we-learn-from-little-kid.html' title='What can we learn from a little kid?'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNR0_YLg1tDKL2dZb7AflWYyCETyzJjU7N-igX2XoobtkIOu8PtGQAVHeYfm6oQyqiKZSDsA8snH5DRjXtfvU3HINNRbeuUTpXTIVQ6jin_BVhG7SDmOuft_T7Xyj1VEWtf2KT2lC2et0/s72-c/DSC_0140+-+1.jpg" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-3744958434805898466</id><published>2010-06-13T14:35:00.001+08:00</published><updated>2011-02-10T00:05:27.613+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cloud Computing"/><title type='text'>How would Cloud Computing Change the World - Revisited</title><content type='html'>After I posted my earlier &lt;a href=&quot;http://zen-arch.blogspot.com/2010/06/would-cloud-computing-change-landscape.html&quot;&gt; article &lt;/a&gt;, a lot of my friends who are in the financial industry are very concerned and they shared their point of views with me. A lot of these concerns are valid. These points have become especially alarming after the recent reveal of allegedly &lt;a href=&quot;http://gawker.com/5559346/&quot;&gt; Apple&#39;s Worst Security Breach&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;float:left; margin:0 0 10px 10px;cursor:pointer; ;width: 250px; height: 180px;&quot; src=&quot;http://cache.gawkerassets.com/assets/images/7/2010/06/500x_ipadfrontnew.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;How can anyone have any faith in cloud computing after all these episodes of security breach?&lt;br /&gt;&lt;br /&gt;Well, in my opinion, cloud computing is still pretty young. As I have mentioned before, there was once upon a time when the Internet was too risky to conduct any business for the Financial Services Industry. However, with the advancement of digital security and the standard for operational risk management such as BASEL II, we have seen the FSI being one of the most progressive sectors in terms of the use of technologies and Internet.&lt;br /&gt;&lt;br /&gt;While we are debating the practicality, security and robustness of cloud computing for the FSI industry, there are already plenty of private cloud in Malaysia whose target customers are the FSI alone. CTOS, CCRIS, myEG and FPX are some prime example. Yes, yes, there have been histories where leakage of information took place, but this is not the fault of the technology, but rather the fault of the people managing it.&lt;br /&gt;&lt;br /&gt;So the risk is more of operational risk, rather than inherent flaws with the technology itself, no? This is like saying since the bank know our spending pattern, we should not use services from the bank. Very valid concern, but each of us has to decide if the level of services provided by each bank is acceptable to us. &lt;br /&gt;&lt;br /&gt;Again, it is not so much of a technology decision, but rather a decision each business has to evaluate for itself. The evaluation process should be not less stringent than how the FSI evaluate all its purchases.&lt;br /&gt;&lt;br /&gt;True, there are holes and questions that even experts from within the industry cannot answer. But, is that not true with all other aspect in life?  People still get drowned in swimming pool - something that has existed for ages.&lt;br /&gt;&lt;br /&gt;Perhaps for now, cloud computing is a great platform for SME because of its accessibility at a lower cost. We now have another alternative; we don&#39;t have to invest so much on the infrastructure while we expand on our core businesses and innovations.&lt;br /&gt;&lt;br /&gt;Is this a sweet deal? Yes for me, but perhaps no for the others.</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/3744958434805898466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-would-cloud-computing-change-world.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/3744958434805898466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/3744958434805898466'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-would-cloud-computing-change-world.html' title='How would Cloud Computing Change the World - Revisited'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-1771537504418367369</id><published>2010-06-09T21:34:00.001+08:00</published><updated>2010-06-09T22:21:03.755+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cloud Computing"/><title type='text'>Would cloud computing change the landscape of the industry?</title><content type='html'>If you are reading this blog, you are having at least some experience using the Internet. Are you also using some sort of email system such as Hotmail, Gmail, or Yahoo mail? Are you using Facebook? If so, do you know what is the current version of Facebook?&lt;br /&gt;&lt;br /&gt;The more important question is, do you care?&lt;br /&gt;&lt;br /&gt;The answer is most likely no. You may not like the interface, but you will still continue to use it, because it&#39;s free, and there are always new features being added, without you needing to do any work.&lt;br /&gt;&lt;br /&gt;Now, that&#39;s the coolest thing about it. You, as a user, do not need to install anything to get to use the latest features and functionalities of Facebook. &lt;br /&gt;&lt;br /&gt;Isn&#39;t that cool? &lt;br /&gt;&lt;br /&gt;In my own opinion, cloud computing is going to change the world, whether we like it or not. True, there are going to be people who are concerned about whether your personal information will be secured. There are people who worry about losing the control, as the applications are being installed in some big servers somewhere.&lt;br /&gt;&lt;br /&gt;Where exactly? &lt;br /&gt;&lt;br /&gt;Err... Again, do you care?&lt;br /&gt;&lt;br /&gt;Just imagine the cost of we implementing a system such as Facebook ourselves. We will need to put in investment just for the following:&lt;br /&gt;1. Web Servers&lt;br /&gt;2. Application Servers&lt;br /&gt;3. Database Servers&lt;br /&gt;4. Load Balancers&lt;br /&gt;5. A group of developers continuously adding new features into the application.&lt;br /&gt;6. Data center(s)&lt;br /&gt;7. Buying network bandwidth&lt;br /&gt;8. A group of system administrators managing the servers&lt;br /&gt;9. etc&lt;br /&gt;&lt;br /&gt;How much would that cost you? Probably in the range of a couple of million dollars in investments.&lt;br /&gt;&lt;br /&gt;What if someone is willing to foot that bill for that investment, and all you need to do is to come out with a minimum subscription cost to use it? If you don&#39;t like it, then you stop paying and that&#39;s the end of the story.&lt;br /&gt;&lt;br /&gt;Sweet deal huh?&lt;br /&gt;&lt;br /&gt;Yeah, I think so. For SME, this is especially a sweet deal. Just imagine that instead of spending a couple of hundred grand for a CRM software, I only need to pay a few dollars a month to get to use the software. And whenever there is an availability of new features, I get to use it, for no additional cost.&lt;br /&gt;&lt;br /&gt;So the question is not whether cloud computing will change the world. Rather, the right question is, how would cloud computing change the world.&lt;br /&gt;&lt;br /&gt;This is like when we first discovered the Internet. Everyone knew that it was going to change the world, but nobody knew how. We are probably in a slightly situation today about cloud computing.</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/1771537504418367369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/06/would-cloud-computing-change-landscape.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/1771537504418367369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/1771537504418367369'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/06/would-cloud-computing-change-landscape.html' title='Would cloud computing change the landscape of the industry?'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-3600807447619408645</id><published>2010-06-09T07:28:00.001+08:00</published><updated>2011-02-10T00:06:11.247+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><title type='text'>How to justify for the ROI to get more staffs</title><content type='html'>An old colleague of mine invited me for dinner the other day, and apparently she was in some kind of trouble at work. She works for a Software Vendor and is the Support Manager based in a big bank in Malaysia.&lt;br /&gt;&lt;br /&gt;One of her staffs was leaving and the already shrinking team may lose another one of its team members as the morale of the team is very low. She has put in request for more head counts but the management has told her that the goal of her team is supposed to be making the most money with the least resources.&lt;br /&gt;&lt;br /&gt;And her request was denied.&lt;br /&gt;&lt;br /&gt;So I asked her a few questions:&lt;br /&gt;1. How many staffs does she have now? - Answer: 2&lt;br /&gt;2. How skillful are the staffs? - Answer: Not enough&lt;br /&gt;3. Are they occupied now with their tasks? - Answer: Yes&lt;br /&gt;4. What are they busy with? Answer: - Fixing bugs, there are new enhancements coming&lt;br /&gt;5. How many bugs are there to be fixed?  Answers: About 43&lt;br /&gt;&lt;br /&gt;When she was questioned by the management, she told the management that there were three problems without giving them the perspective:&lt;br /&gt;1. Insufficient resources&lt;br /&gt;2. Need to do knowledge transfer for the leaving staff to the new staff&lt;br /&gt;3. Low morale?&lt;br /&gt;&lt;br /&gt;When these problems are presented to management, they would of course think that - well, this is what you are hired to do, no? Just get them solved and I have got bigger problems to deal with.&lt;br /&gt;&lt;br /&gt;However, if the picture has been projected differently, then the situations may have been different. And the following are my thoughts. If the management are made aware that:&lt;br /&gt;1. The enhancements are worth more than a few hundred thousands&lt;br /&gt;2. Right now our team are not able to take on the enhancements yet because they are tight up with bug fixing&lt;br /&gt;3. There are in total 43 bugs in the system, and it will take us 250 man days (for example) to address all of them.&lt;br /&gt;4. By the time we have fixed all the bugs, the business dynamic might have changed and the enhancements are no longer required.&lt;br /&gt;5. Right now, the customer is really dissatisfied with our slow on response. They are very concerned whether we can continue to do a good job as a company to provide good support. This can only be addressed with additional head counts with good skill to expedite the problem solving.&lt;br /&gt;6. Otherwise, the customer may look at other alternatives as they are getting increasingly impatient. In that case, we may lose out the maintenance contract, which will be a blow to the company - financially and as a reference site.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc_e2mUloHiNvu_7SpiWS1EuDDNSPHzUffaPW8dMrDoH6-AM3GFmxUNQNwknQfDgl-o_8ObQqXAwz2CftgzZyTQpH-qQZks4EqnXjm5MiMRTgKw8MtMS41SK3f1abHCCpHYAEy86TtPCs/s1600/ROI.jpg&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 193px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc_e2mUloHiNvu_7SpiWS1EuDDNSPHzUffaPW8dMrDoH6-AM3GFmxUNQNwknQfDgl-o_8ObQqXAwz2CftgzZyTQpH-qQZks4EqnXjm5MiMRTgKw8MtMS41SK3f1abHCCpHYAEy86TtPCs/s320/ROI.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5480559035613707874&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Once the numbers for potential revenues are put on the table, and the number of the costs to tackle these problems are put on the table, we will know immediately whether there are profit to be made.&lt;br /&gt;&lt;br /&gt;I believe the management will embark on recruitment immediately the moment they see that profit can be obtained with so little head counts.&lt;br /&gt;&lt;br /&gt;Just my two cents, and I am writing this story in the hope that it can help others too. The most important thing is that - for managers, we ourselves need to understand the business dynamic as well. Our communication must be clear and this is not a time to throw tantrums at management if they fail to see your point of view.&lt;br /&gt;&lt;br /&gt;Management only sees facts. So we present facts.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/3600807447619408645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-to-justify-for-roi-to-get-more.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/3600807447619408645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/3600807447619408645'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-to-justify-for-roi-to-get-more.html' title='How to justify for the ROI to get more staffs'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc_e2mUloHiNvu_7SpiWS1EuDDNSPHzUffaPW8dMrDoH6-AM3GFmxUNQNwknQfDgl-o_8ObQqXAwz2CftgzZyTQpH-qQZks4EqnXjm5MiMRTgKw8MtMS41SK3f1abHCCpHYAEy86TtPCs/s72-c/ROI.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-6161374428801253233</id><published>2010-06-06T09:17:00.001+08:00</published><updated>2011-02-10T00:06:28.096+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Enterprise Architecture"/><title type='text'>How to justify for the ROI of Enterprise Architecture - Part 2</title><content type='html'>How many ways can we justify for the Return of Investments for any projects? &lt;br /&gt;&lt;br /&gt;This is in principle a business question. Do you know how much is your solution worth?&lt;br /&gt;&lt;br /&gt;Contrary to common belief, the same solution is worth differently to different prospect. Solutions, unlike products, are meant to solve a set of challenges faced by the organizations. They cannot be treated as commodities because they are not. Every prospect has its own unique challenges, and therefore can only be addressed differently.&lt;br /&gt;&lt;br /&gt;There are three different ways any solution can help an organization:&lt;br /&gt;1. It helps the prospect generate revenue&lt;br /&gt;2. It helps the prospect save cost&lt;br /&gt;3. It helps the prospect to be compliant with statutory requirements&lt;br /&gt;&lt;br /&gt;We, must first understand where our solution stand in these three categories. &lt;br /&gt;&lt;br /&gt;A solution that helps the organization generate revenues is typically the easiest to sell. A projection of revenues vs the TCO will usually suffice. Take the recent Sport Betting case in Malaysia - it is something that will generate revenue for Ascot Sports and this system is sure to generate more revenue for the organization.&lt;br /&gt;&lt;br /&gt;A solution that helps an organization optimize it resources can be justified by looking at how much cost it can save the organization in the long run. Most of the systems emphasizes on automation falls into this category. For example, a E-Form solution may help an organization shorten the processing of its application from 3 days to 30 minutes. An BPM solution typically falls into this category.&lt;br /&gt;&lt;br /&gt;The third category of solution helps an organization to be compliant with the statutory regulations. If the law says so, you must do it. If the auditors ask for you, you must prove that you have the records. Some example of solutions are Record Management Solutions or Enterprise Content Management Solution fall into this category.&lt;br /&gt;&lt;br /&gt;All these three type of solutions require an in depth planning to leverage on an Enterprise Architecture as all of them require the few characteristics in my earlier post - security, audit trail, business intelligence, etc. The most beautiful things about this is an established EA can be shared across many applications within an organization.&lt;br /&gt;&lt;br /&gt;Is it easy to justify for ROI? &lt;br /&gt;&lt;br /&gt;No - it requires in depth knowledge of the business and where the revenue is coming from.&lt;br /&gt;Yes - it only requires in depth knowledge of the business and where the revenue is coming from.&lt;br /&gt;&lt;br /&gt;More on this topic later.</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/6161374428801253233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-to-justify-for-roi-of-enterprise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/6161374428801253233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/6161374428801253233'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-to-justify-for-roi-of-enterprise.html' title='How to justify for the ROI of Enterprise Architecture - Part 2'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-676499001984495729.post-7679044259455302652</id><published>2010-06-05T10:03:00.001+08:00</published><updated>2011-02-10T00:06:42.011+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Enterprise Architecture"/><title type='text'>How to justify for the ROI of Enterprise Architecture</title><content type='html'>I was invited to be one of the panelists for the ITARC 2010 Malaysian Chapter, and the topic in discussion was How to justify the ROI for Enterprise Architecture. Wow, a huge one!&lt;br /&gt;&lt;br /&gt;I still remember during the dot.com boom, every single company wanted to develop some system for some part of their business operations. Some applications were meant to promote the company image, some to generate more revenue, and some to make the operations more efficient.&lt;br /&gt;&lt;br /&gt;An IT-literate organizations may have developed tons of applications like this. Email application, Document Management Application, Applications for Finance Department, Applications for Marketing Department, Applications for Support Department, etc, etc.&lt;br /&gt;&lt;br /&gt;Fast forward to a few years later.&lt;br /&gt;&lt;br /&gt;The same IT-literate organizations realize that these applications are all working in silo. They do not integrate well with each other. The irony is that the same applications that were meant to create efficiency is now causing inefficiency - as users are required to login to multiple systems, copying contents from one and pasting to another in some cases, in order for them to complete their jobs.&lt;br /&gt;&lt;br /&gt;If we look deeper into the nature of enterprise applications. They all share the same characteristics to some extent:&lt;br /&gt;1. Security - Authorization, Authentication&lt;br /&gt;2. Audit Trail - Non-repudiation&lt;br /&gt;3. Workflow or processes - The business operations part of the process&lt;br /&gt;4. Interface&lt;br /&gt;5. Reports/business intelligence&lt;br /&gt;&lt;br /&gt;If all these silo applications have been planned and built on an infrastructure that make use of, Microsoft Active Directory Services or some directory services that can be integrated with LDAP, suddenly users are not required to login to multiple systems in order for them to do work.&lt;br /&gt;&lt;br /&gt;And if the applications were built on a framework with a powerful BPM engine, applications development could be shortened from months to week. All software developers would agree that business process is the most time consuming portion of the entire software development exercise.&lt;br /&gt;&lt;br /&gt;If we can somehow consolidate all these silo applications on an enterprise-wide framework, suddenly inter-department collaboration becomes so much easier. Instead of building up walls, a properly designed enterprise architecture actually breaks them down. &lt;br /&gt;&lt;br /&gt;And because of that, the time to market has been shortened from months to weeks, or even days.&lt;br /&gt;&lt;br /&gt;How much edge would it give the organization if it is able to adapt to the market demand faster, and as a result create a new product faster? Can the projected revenue cover for the cost of the enterprise architecture?&lt;br /&gt;&lt;br /&gt;More on ROI later.</content><link rel='replies' type='application/atom+xml' href='http://zen-arch.blogspot.com/feeds/7679044259455302652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-to-justify-roi-for-enterprise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/7679044259455302652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/676499001984495729/posts/default/7679044259455302652'/><link rel='alternate' type='text/html' href='http://zen-arch.blogspot.com/2010/06/how-to-justify-roi-for-enterprise.html' title='How to justify for the ROI of Enterprise Architecture'/><author><name>Soon</name><uri>http://www.blogger.com/profile/05139582787498468694</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7gHGpCWhkqS009He2wZgdRtrPRWoPJR38fxVnjAaEMnpBoQzXFH9mtSHInlvkV8ukZDm6Z87iDE5dcISagKuQ_hhMAhGZHdJeTc2MesmBaZd6GCnGbIBl8Yj4TzSXw/s220/Profile.jpg'/></author><thr:total>0</thr:total></entry></feed>