<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Indrasmoro's World</title><link>http://indrasmoro79.blogspot.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Indrasmoro79" /><description>I'll try to share all my knowledge about information technology and information system in this blog. I hope this blog give a lot of fun and goodness.
Let's make the world more beautiful and never give up for anything!

Peace!</description><language>en</language><managingEditor>noreply@blogger.com (indrasmoro)</managingEditor><lastBuildDate>Sun, 27 Nov 2011 15:20:11 PST</lastBuildDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">19</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">25</openSearch:itemsPerPage><feedburner:info uri="indrasmoro79" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><media:copyright>indrasmoro79</media:copyright><item><title>Begin Use Case Names with a Strong Verb</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/mY5fOp3_mfo/begin-use-case-names-with-strong-verb.html</link><category>UML</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 13:47:28 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-8433455204714227056</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Wk6d0QFFKDc/SNlVq5P2-MI/AAAAAAAAAB4/qQ7B1D6dtt0/s1600-h/uml.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_Wk6d0QFFKDc/SNlVq5P2-MI/AAAAAAAAAB4/qQ7B1D6dtt0/s320/uml.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5249321036087228610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Good use case names include Withdraw Funds, Register Student in Seminar, and Deliver Shipment because it is clear what each use case does. Use case names beginning with weak verbs such as “process,” “perform,” and “do” are often problematic. Such names often result in communication difficulties with your project stakeholders, people who are far more likely to say that they withdraw funds from accounts instead of process withdrawal transactions. These communication difficulties are likely to decrease your ability to understand their requirements. Furthermore, names such as Process Withdrawal Transaction or Perform Student Enrollment Request often indicate that the use case was written with a technically oriented view instead of a user-oriented view, and therefore may be at risk of not reflecting the actual needs of your project stakeholders.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-8433455204714227056?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bKTZWY9eM7lbOHkk1vADnjoqov4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bKTZWY9eM7lbOHkk1vADnjoqov4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bKTZWY9eM7lbOHkk1vADnjoqov4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bKTZWY9eM7lbOHkk1vADnjoqov4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/mY5fOp3_mfo" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T03:47:28.807+07:00</app:edited><media:thumbnail url="http://1.bp.blogspot.com/_Wk6d0QFFKDc/SNlVq5P2-MI/AAAAAAAAAB4/qQ7B1D6dtt0/s72-c/uml.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/begin-use-case-names-with-strong-verb.html</feedburner:origLink></item><item><title>UML Use Case Diagrams</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/y89g3iHOFtY/uml-use-case-diagrams.html</link><category>UML</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 13:49:39 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-8361946870127511609</guid><description>A UML use case diagram shows the relationships among actors and use cases within a system. They are often used to provide an overview of all or part of the usage requirements for a system or organization in the form of an essential model (Constantine and Lockwood 1999; Ambler 2001) or a business model (Rational Corporation 2002), communicate the scope of a development project, and model your analysis of your usage requirements in the form of a system use case model (Cockburn 2001; Ambler 2001).&lt;br /&gt;&lt;br /&gt;A use case model is comprised of one or more use case diagrams and any supporting documentation such as use case specifications and actor definitions. Within most use case models, the use case specifications tend to be the primary artifact, with UML use case diagrams filling a supporting role as the “glue” that keeps your requirements model together. Use case models should be developed from the point of view of your project stakeholders and not from the (often technical) point of view of developers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-8361946870127511609?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZUqKavyShy3FPVI97OIOBNn6uww/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZUqKavyShy3FPVI97OIOBNn6uww/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZUqKavyShy3FPVI97OIOBNn6uww/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZUqKavyShy3FPVI97OIOBNn6uww/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/y89g3iHOFtY" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T03:49:39.981+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/uml-use-case-diagrams.html</feedburner:origLink></item><item><title>Encapsulation</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/hoL2r8KkfrM/encapsulation.html</link><category>OOP II</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 13:54:50 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-1045676291055874830</guid><description>&lt;p&gt;&lt;i&gt;Encapsulation&lt;/i&gt; is the process of packaging an object's data together  with its methods.  &lt;/p&gt;&lt;p&gt;A powerful benefit of encapsulation is the hiding of implementation details  from other objects. This means that the internal portion of an object has more  limited visibility than the external portion.  &lt;/p&gt;&lt;p&gt;The external portion of an object is often referred to as the object's  interface, because it acts as the object's interface to the rest of the program.  Because other objects must communicate with the object only through its  interface, the internal portion of the object is protected from outside  tampering. And because an outside program has no access to the internal  implementation of an object, the internal implementation can change at any time  without affecting other parts of the program.  &lt;/p&gt;&lt;p&gt;Encapsulation provides two primary benefits to programmers:  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Implementation hiding  &lt;/li&gt;&lt;li&gt;Modularity &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;i&gt;Implementation hiding&lt;/i&gt; refers to the protection of the internal  implementation of an object.  &lt;/p&gt;&lt;p&gt;An object is composed of a public interface and a private section that can be  a combination of internal data and methods. The internal data and methods are  the sections of the object that can't be accessed from outside the object. The  primary benefit is that these sections can change without affecting programs  that use the object.  &lt;/p&gt;&lt;p&gt;&lt;i&gt;Modularity&lt;/i&gt; means that an object can be maintained independently of  other objects. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-1045676291055874830?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kXqH8dtXyqztpi40jVCZzMRWu3E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kXqH8dtXyqztpi40jVCZzMRWu3E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kXqH8dtXyqztpi40jVCZzMRWu3E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kXqH8dtXyqztpi40jVCZzMRWu3E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/hoL2r8KkfrM" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T03:54:50.137+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/encapsulation.html</feedburner:origLink></item><item><title>What's Perl</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/DVL2dLEvv08/whats-perl.html</link><category>Perl</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 13:21:35 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-3384706578383641665</guid><description>Perl is an acronym, short for Practical Extraction and Report Language. It was designed by Larry Wall as a tool for writing programs in the UNIX environment and is continually being updated and maintained by him.&lt;br /&gt;&lt;br /&gt;For its many fans, Perl provides the best of several worlds. For instance:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Perl has the power and flexibility of a high-level programming language such as C. In fact, as you will see, many of the features of the language are borrowed from C.&lt;/li&gt;&lt;li&gt;Like shell script languages, Perl does not require a special compiler and linker to turn the programs you write into working code. Instead, all you have to do is write the program and tell Perl to run it. This means that Perl is ideal for producing quick solutions to small programming problems, or for creating prototypes to test potential solutions to larger problems.&lt;/li&gt;&lt;li&gt;Perl provides all the features of the script languages sed and awk, plus features not found in either of these two languages. Perl also supports a sed-to-Perl translator and an awk-to-Perl translator.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In short, Perl is as powerful as C but as convenient as awk, sed, and shell scripts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-3384706578383641665?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cd6qP6VzZeSP1aZ5SkkA_zn99S0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cd6qP6VzZeSP1aZ5SkkA_zn99S0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cd6qP6VzZeSP1aZ5SkkA_zn99S0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cd6qP6VzZeSP1aZ5SkkA_zn99S0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/DVL2dLEvv08" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T03:21:35.616+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/whats-perl.html</feedburner:origLink></item><item><title>Classes</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/GLLp_joCNdE/classes.html</link><category>OOP II</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 13:54:36 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-7860206009577407905</guid><description>&lt;p&gt;A &lt;i&gt;class&lt;/i&gt; is a template or prototype that defines a type of object.  &lt;/p&gt;&lt;p&gt;A class is to an object what a blueprint is to a house. Many houses can be  built from a single blueprint; the blueprint outlines the makeup of the houses.  Classes work exactly the same way, except that they outline the makeup of  objects.  &lt;/p&gt;&lt;p&gt;In the real world, there are often many objects of the same kind. Using the  house analogy, there are many different houses around the world, but as houses  they all share common characteristics. In object-oriented terms, you would say  that your house is a specific instance of the class of objects known as houses.  &lt;/p&gt;&lt;p&gt;An &lt;i&gt;instance&lt;/i&gt; of a class is an object that has been created in memory  using the class as a template. Instances are also sometimes referred to as  &lt;i&gt;instantiated objects&lt;/i&gt;.  &lt;/p&gt;&lt;p&gt;All houses have states and behaviors in common that define them as houses.  When a builder starts building a new development of houses, he or she typically  will build them all from a set of blueprints. It wouldn't be as efficient to  create a new blueprint for every single house, especially when there are so many  similarities shared between each one. The same thing applies in object-oriented  software development; why rewrite a lot of code when you can reuse code that  solves similar problems?  &lt;/p&gt;&lt;p&gt;In object-oriented programming, as in construction, it's also common to have  many objects of the same kind that share similar characteristics. And like the  blueprints for similar houses, you can create blueprints for objects that share  certain characteristics. What it boils down to is that classes are software  blueprints for objects.  &lt;/p&gt;&lt;p&gt;As an example, the class for the car object discussed earlier would contain  several variables representing the state of the car, along with implementations  for the methods that enable the driver to control the car. The state variables  of the car remain hidden underneath the interface. Each instance, or  instantiated object, of the car class gets a fresh set of state variables. This  brings you to another important point: When an instance of an object is created  from a class, the variables declared by that class are allocated in memory. The  variables are then modified via the object's methods. Instances of the same  class share method implementations but have their own &lt;i&gt;object data&lt;/i&gt;.  Classes can also contain class data.  &lt;/p&gt;&lt;p&gt;&lt;i&gt;Object data&lt;/i&gt;, or &lt;i&gt;instance data&lt;/i&gt;, is the information that models  an object's state. Each object in memory has its own set of instance data, which  determines what state the object is in.  &lt;/p&gt;&lt;p&gt;&lt;i&gt;Class data&lt;/i&gt; is data that is maintained on a class-wide basis,  independent of any objects that have been created.  &lt;/p&gt;&lt;p&gt;There is only one instance of class data in memory no matter how many objects  are created from the class. Class data is typically used to store common  information that needs to be shared among all instances of a class. A common  example of class data is a count of how many instantiated objects exist of a  particular class. When a new object is created, the count is incremented, and  when an existing object is destroyed, the count is decremented.  &lt;/p&gt;&lt;p&gt;Objects provide the benefits of modularity and information hiding, whereas  classes provide the benefit of reusability. Just as the builder reuses the  blueprint for a house, the software developer reuses the class for an object.  Software programmers can use a class over and over again to create many objects.  Each of these objects gets its own data but shares a single method  implementation. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-7860206009577407905?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D6w5d3KCw8tkrvEbH8gl-OB3QDQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D6w5d3KCw8tkrvEbH8gl-OB3QDQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D6w5d3KCw8tkrvEbH8gl-OB3QDQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D6w5d3KCw8tkrvEbH8gl-OB3QDQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/GLLp_joCNdE" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T03:54:36.366+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/classes.html</feedburner:origLink></item><item><title>Objects</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/HCGWq_68kx0/objects.html</link><category>OOP I</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 13:54:20 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-1756840344926839622</guid><description>&lt;p&gt;&lt;i&gt;Objects&lt;/i&gt; are bundles of data and the code, or procedures, that act on  that data.  &lt;/p&gt;&lt;p&gt;The procedures in an object are also known as &lt;i&gt;methods&lt;/i&gt;. The merger of  data and methods provides a means of more accurately representing real-world  objects. Modeling a real-world problem through traditional programming  constructs, without objects, requires a significant logical leap. Objects, on  the other hand, enable programmers to solve real-world problems in the software  domain much more easily and logically.  &lt;/p&gt;&lt;p&gt;As evident by the name, objects are at the heart of object-oriented  technology. To understand how software objects are beneficial, think about the  common characteristics of all real-world objects. Lions, cars, and calculators  all share two common characteristics: state and behavior.  &lt;/p&gt;&lt;p&gt;The &lt;i&gt;state&lt;/i&gt; of an object is the condition that the object is in, as  defined by its attributes.  &lt;/p&gt;&lt;p&gt;The &lt;i&gt;behavior&lt;/i&gt; of an object is the collection of actions that the object  can take.  &lt;/p&gt;&lt;p&gt;For example, the state of a lion might include color, weight, and whether the  lion is tired or hungry. Lions also have certain behaviors such as roaring,  sleeping, and hunting. The state of a car includes the current speed, the type  of transmission, whether it is two- or four-wheel-drive, whether the lights are  on, and the current gear, among other things. The behaviors for a car include  turning, braking, and accelerating.  &lt;/p&gt;&lt;p&gt;Just like real-world objects, software objects possess two common  characteristics: state and behavior. To relate this back to programming terms,  the &lt;i&gt;state&lt;/i&gt; of an object is determined by its data and the &lt;i&gt;behavior&lt;/i&gt;  of an object is defined by its methods. By making this connection between  real-world objects and software objects, you begin to see how objects help  bridge the gap between the real world and the world of software living inside  your computer.  &lt;/p&gt;&lt;p&gt;Because software objects are modeled after real-world objects, you can more  easily represent real-world objects in object-oriented programs. You could use  the lion object to represent a real lion in an interactive software zoo.  Similarly, car objects would be very useful in a racing game. However, you don't  always have to think of software objects as modeling physical real-world  objects; software objects can be just as useful for modeling abstract concepts.  For example, the standard Java API provides a thread object that represents a  stream of execution in a multithreaded program. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-1756840344926839622?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/m7K47ga1sYycr7b40mHom6Q5yo8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m7K47ga1sYycr7b40mHom6Q5yo8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/m7K47ga1sYycr7b40mHom6Q5yo8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m7K47ga1sYycr7b40mHom6Q5yo8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/HCGWq_68kx0" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T03:54:20.398+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/objects.html</feedburner:origLink></item><item><title>What's OOP</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/AaV3z1kgdA8/whats-oop.html</link><category>OOP I</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 13:53:55 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-3507647342659184162</guid><description>&lt;p&gt;OOP is an approach to programming that attempts to bridge the gap between  problems in the real world and solutions in the computer programming world.  Prior to OOP, a conceptual stumbling block always existed for programmers when  trying to adapt the real world into the constraints imposed by a traditional  programming language. In the real world, people tend to think in terms of  "things," but in the pre-OOP programming world people have been taught to think  in terms of blocks of code (procedures) and how they act on data. These two  modes of thinking are very different from each other and pose a significant  problem when it comes to designing complex systems that model the real world.  Games happen to be very good examples of complex systems that often model the  real world.  &lt;/p&gt;&lt;p&gt;OOP presents an approach to programming that allows programmers to think in  terms of objects, or things, much like people think of things in the real world.  Using OOP techniques, a programmer can focus on the objects that naturally make  up a system, rather than trying to rationalize the system into procedures and  data. The OOP approach is a very natural and logical application of the way  humans already think.  &lt;/p&gt;&lt;p&gt;The benefits of OOP go beyond easing the pain of resolving real world  problems in the computer domain. Another key issue in OOP is code reuse, when  you specifically design objects and programs with the goal of reusing as much of  the code as possible, whenever possible. Fortunately, it works out that the  fundamental approaches to OOP design naturally encourage code reuse, meaning  that it doesn't take much of an extra effort to reuse code after you employ  standard OOP tactics.  &lt;/p&gt;&lt;p&gt;The OOP design approach revolves around the following major concepts:  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Objects  &lt;/li&gt;&lt;li&gt;Classes  &lt;/li&gt;&lt;li&gt;Encapsulation  &lt;/li&gt;&lt;li&gt;Messages  &lt;/li&gt;&lt;li&gt;Inheritance &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-3507647342659184162?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ja1FrKCR_rTmbvus0JIie-_hzNA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ja1FrKCR_rTmbvus0JIie-_hzNA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ja1FrKCR_rTmbvus0JIie-_hzNA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ja1FrKCR_rTmbvus0JIie-_hzNA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/AaV3z1kgdA8" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T03:53:55.621+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/whats-oop.html</feedburner:origLink></item><item><title>What J2ME Isn’t</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/cYTzrvqIdCc/what-j2me-isnt.html</link><category>J2ME</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 13:05:55 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-918308455003624113</guid><description>The hype about any technology can cause misperceptions about the capabilities of an evolving technology, and J2ME isn’t immune to such misunderstandings. Therefore, it is important to understand the limitations of J2ME. Although J2ME is J2SE without some classes, developers shouldn’t assume that existing Java applications would run in the J2ME environment without requiring modification to the code. The write-once-run-anywhere philosophy of Java is a bit&lt;br /&gt;overstated when it comes to J2ME because of resource constraints imposed by small computing devices.&lt;br /&gt;Some J2SE applications require classes that are not available in J2ME. Likewise, resources required by the J2SE application may not be available on the small computing device. This means that developers must expect to test existing J2SE applications in the J2ME environment and probably pare down the application to run using limited resources. Another misconception about J2ME is the Java Virtual Machine implementation on the small computing device. Small computing devices use one of two Java Virtual Machine implementations. Devices that use the CDC configuration use the full Java Virtual Machine implementation, while devices that use the CLDC configuration use the KJava Virtual Machine implementation.&lt;br /&gt;AMIDlet is not invoked the same way as a J2SE application is invoked because many small computing devices don’t have a command prompt. MIDlets are controlled by application management software (AMS). The manufacturer of a small computing device provides AMS, although third-party vendors might also create AMS. AMS interacts with native operations of a small computing device and controls the life cycle of a MIDlet.&lt;br /&gt;The life cycle consists of installation and upgrades as well as version management and uninstalling the application. Likewise, AMS is responsible for starting, managing&lt;br /&gt;execution, and stopping the MIDlet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-918308455003624113?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1HCnU9nhqv5ndtZaLZC8NMFcBFQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1HCnU9nhqv5ndtZaLZC8NMFcBFQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1HCnU9nhqv5ndtZaLZC8NMFcBFQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1HCnU9nhqv5ndtZaLZC8NMFcBFQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/cYTzrvqIdCc" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T03:05:55.862+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/what-j2me-isnt.html</feedburner:origLink></item><item><title>Configurations for J2ME</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/-HtJKjRAKVE/configurations-for-j2me.html</link><category>J2ME</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 13:06:28 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-574973874146225225</guid><description>There are two configurations for J2ME as of this writing. These are Connected Limited Device Configuration (CLDC) and the Connected Device Configuration (CDC). The CLDC is designed for 16-bit or 32-bit small computing devices with limited amounts of memory. CLDC devices usually have between 160KB and 512KB of available memory and are battery powered. They also use an inconsistent, small-bandwidth network wireless connection and may not have a user interface. CLDC devices use the KJava Virtual Machine (KVM) implementation, which is a stripped-down version of the JVM. CLDC devices include pagers, personal digital assistants, cell phones, dedicated terminals, and handheld consumer devices with between 128KB and 512KB of memory.&lt;br /&gt;CDC devices use a 32-bit architecture, have at least two megabytes of memory available, and implement a complete functional JVM. CDC devices include digital set-top boxes, home appliances, navigation systems, point-of-sale terminals, and smart phones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-574973874146225225?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5kWeB4imY5bIyfgBR0pHT7hIuj4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5kWeB4imY5bIyfgBR0pHT7hIuj4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5kWeB4imY5bIyfgBR0pHT7hIuj4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5kWeB4imY5bIyfgBR0pHT7hIuj4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/-HtJKjRAKVE" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T03:06:28.896+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/configurations-for-j2me.html</feedburner:origLink></item><item><title>Optimizing Loops</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/bGz4Gxb7ZSc/optimizing-loops.html</link><category>PHP</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 12:59:02 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-3416090975901785482</guid><description>&lt;p class="docText"&gt;A very common performance mistake in PHP is creating loops that  iterate over an array without caching the number of elements in the array. For  example, consider Listing 1&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;. The  first loop can be optimized to perform about 50 percent faster by caching the  value of &lt;tt&gt;count($arr)&lt;/tt&gt; in a variable instead of calling &lt;tt&gt;count&lt;/tt&gt;  over and over again. You can even get the count inside the &lt;tt&gt;for&lt;/tt&gt; loop's  initialization step. Wherever possible, see if you can take static code, which  is invariant of the loop's iterator, out of the loop.&lt;/p&gt; &lt;h5 class="docExampleTitle"&gt;&lt;a name="ch28list12"&gt;&lt;/a&gt;Listing 1 Count array  elements once&lt;/h5&gt;&lt;pre&gt;&lt;?php&lt;br /&gt;   //setup sample array&lt;br /&gt;   $arr = array("Cosmo" , "Elaine", "George", "Jerry");&lt;br /&gt;&lt;br /&gt;   //loop over elements, recounting each time&lt;br /&gt;   for ($i=0; $i &lt; count($arr); $i++)&lt;br /&gt;   {&lt;br /&gt;       print $arr[$i];&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   //loop over elements, make count first&lt;br /&gt;   $n = count($arr);&lt;br /&gt;   for ($i=0; $i &lt; $n; $i++)&lt;br /&gt;   {&lt;br /&gt;       print $arr[$i];&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   //put count into init step&lt;br /&gt;   for ($i=0, $n = count($arr); $i &lt; $n; $i++)&lt;br /&gt;   {&lt;br /&gt;       print $arr[$i];&lt;br /&gt;   }&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-3416090975901785482?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/k5xiAVcBxywom8dxGuChk5bdD4E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k5xiAVcBxywom8dxGuChk5bdD4E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/k5xiAVcBxywom8dxGuChk5bdD4E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k5xiAVcBxywom8dxGuChk5bdD4E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/bGz4Gxb7ZSc" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T02:59:02.767+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/optimizing-loops.html</feedburner:origLink></item><item><title>Don't Use Regular Expressions Unless You Must</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/-jgnyLo6glc/dont-use-regular-expressions-unless-you.html</link><category>PHP</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 12:57:06 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-6396812152806446265</guid><description>&lt;p class="docText"&gt;PHP features a very large library of string functions, some of  which are extremely powerful. However, in many situations two or more functions  can be used to perform the same task, but with great differences in  performance.&lt;/p&gt; &lt;p class="docText"&gt;Perhaps the most commonly overused functions are  &lt;tt&gt;ereg_replace&lt;/tt&gt; and &lt;tt&gt;preg_replace&lt;/tt&gt;. These regular-expression-based  pattern-replacing functions are often used even when the replacement pattern is  completely static and there's no need for compiling a complex regular  expression. For instance,&lt;/p&gt;&lt;pre&gt;$str = ereg_replace("sheep", "lamb", "Mary had a little sheep");&lt;br /&gt;&lt;/pre&gt; &lt;p class="docText"&gt;can be up to 10 times slower than the equivalent&lt;/p&gt;&lt;pre&gt;$str = str_replace("Mary had a little sheep", "sheep", "lamb");&lt;br /&gt;&lt;/pre&gt; &lt;p class="docText"&gt;Use regular expressions only when you absolutely have to!&lt;/p&gt; &lt;p class="docText"&gt;If you do have to use a regular expression, try to use the  Perl-compatible functions, such as &lt;tt&gt;preg_match&lt;/tt&gt; and &lt;tt&gt;preg_replace&lt;/tt&gt;  instead of the older regular expression functions, such as &lt;tt&gt;ereg&lt;/tt&gt; and  &lt;tt&gt;ereg_replace&lt;/tt&gt;. Besides being more powerful, the Perl-compatible  functions are typically quicker than the old, POSIX regular expressions.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-6396812152806446265?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/46qlK9O4qMA4JSKIjhE200E_M7g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/46qlK9O4qMA4JSKIjhE200E_M7g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/46qlK9O4qMA4JSKIjhE200E_M7g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/46qlK9O4qMA4JSKIjhE200E_M7g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/-jgnyLo6glc" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T02:57:06.489+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/dont-use-regular-expressions-unless-you.html</feedburner:origLink></item><item><title>Runtime Errors</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/GHr2qab3Rtc/runtime-errors.html</link><category>JavaScript</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 12:51:44 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-1636388883378876820</guid><description>&lt;p class="first-para"&gt;The second category of errors are &lt;i class="emphasis"&gt;runtime  errors&lt;/i&gt;, which are exactly what they sound like: errors that occur while the  script is running. These errors result from JavaScript that has the correct  syntax but that encounters some sort of problem in its execution environment.  Common runtime errors result from trying to access a variable, property, method,  or object that does not exist or from attempting to utilize a resource that is  not available.&lt;/p&gt; &lt;p class="para"&gt;Some runtime errors can be found by examination of source code.  For example,&lt;/p&gt;&lt;pre class="programlisting"&gt;window.allert("Hi there");&lt;/pre&gt; &lt;p class="para"&gt;results in a runtime error because there is no &lt;b class="bold"&gt;allert()&lt;/b&gt; method of the &lt;b class="bold"&gt;Window&lt;/b&gt; object. This  example constitutes perfectly legal JavaScript, but the interpreter cannot tell  until runtime that invoking &lt;b class="bold"&gt;window.allert()&lt;/b&gt; is invalid,  because such a method might have been added as an instance property at some  previous point during execution.&lt;/p&gt; &lt;p class="para"&gt;Other kinds of runtime errors cannot be caught by examination of  source code. For example, while the following might appear to be error-free,&lt;/p&gt; &lt;div class="widecontent"&gt;&lt;pre class="programlisting"&gt;var products = ["Widgets", "Snarks", "Phasers"];&lt;br /&gt;&lt;br /&gt;var choice = parseInt(prompt("Enter the number of the product you are&lt;br /&gt;&lt;br /&gt;interested in"));&lt;br /&gt;&lt;br /&gt;alert(“You chose: " + products[choice]);&lt;/pre&gt;&lt;/div&gt; &lt;p class="para"&gt;what happens if the user enters a negative value for &lt;i class="emphasis"&gt;choice&lt;/i&gt;? A runtime error indicating the array index is out of  bounds. &lt;/p&gt; &lt;p class="para"&gt;Although some defensive programming can help here,&lt;/p&gt; &lt;div class="widecontent"&gt;&lt;pre class="programlisting"&gt;var products = ["Widgets", "Snarks", "Phasers"];&lt;br /&gt;&lt;br /&gt;var choice = parseInt(prompt("Enter the number of the product in which &lt;a name="1519"&gt;&lt;/a&gt;&lt;a name="IDX-697"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;you are interested"));&lt;br /&gt;&lt;br /&gt;if (choice &gt;&gt;= 0 &amp;amp;&amp;amp; choice &lt;&lt; products.length)  &lt;br /&gt;&lt;br /&gt; alert("You chose: " + products[choice]);&lt;/pre&gt;&lt;/div&gt; &lt;p class="last-para"&gt;the reality is that you cannot catch all potential runtime  errors before they occur.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-1636388883378876820?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f6JPssnKRx9qQgsroaGyiKSXW-8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f6JPssnKRx9qQgsroaGyiKSXW-8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f6JPssnKRx9qQgsroaGyiKSXW-8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f6JPssnKRx9qQgsroaGyiKSXW-8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/GHr2qab3Rtc" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T02:51:44.271+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/runtime-errors.html</feedburner:origLink></item><item><title>Syntax Error in JavaScript</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/1ydt8HqOxG4/error-in-javascript.html</link><category>JavaScript</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Tue, 23 Sep 2008 12:50:26 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-1782970444327560626</guid><description>&lt;p class="first-para"&gt;Of the three types of errors, s&lt;i class="emphasis"&gt;yntax  errors&lt;/i&gt; are the most obvious. They occur when you write code that somehow  violates the rules of the JavaScript language. For example, writing the  following,&lt;/p&gt;&lt;pre class="programlisting"&gt;var x = y + * z;&lt;/pre&gt; &lt;p class="para"&gt;is a syntax error because the syntax of the &lt;b class="bold"&gt;*&lt;/b&gt;  operator requires two expressions to operate upon, and “y +” does not constitute  a valid expression. Another example is&lt;/p&gt;&lt;pre class="programlisting"&gt;var myString = "This string doesn't terminate&lt;/pre&gt; &lt;p class="para"&gt;because the string literal isn’t properly quoted. &lt;a name="1517"&gt;&lt;/a&gt;&lt;a name="IDX-696"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class="para"&gt;Syntax errors are generally &lt;i class="emphasis"&gt;fatal&lt;/i&gt; in the  sense that they are errors from which the interpreter cannot recover. The reason  they are fatal is that they introduce &lt;i class="emphasis"&gt;ambiguity&lt;/i&gt;, which the  language syntax is specifically designed to avoid. Sometimes the interpreter can  make some sort of assumption about what the programmer intended and can continue  to execute the rest of the script. For example, in the case of a non-terminated  string literal, the interpreter might assume that the string ends at the end of  the line. However, scripts with syntax errors should, for all intents and  purposes, be considered incorrect, even if they do run in some manner, as they  do not constitute a valid program and their behavior can therefore be erratic,  destructive, or otherwise anomalous.&lt;/p&gt; &lt;p class="para"&gt;Luckily, syntax errors are fairly easy to catch because they are  immediately evident when the script is parsed before being executed. You cannot  hide a syntax error from the interpreter in any way except by placing it in a  comment. Even placing it inside a block that will never be executed, as in&lt;/p&gt;&lt;pre class="programlisting"&gt;if (false) { x = y + * z }&lt;/pre&gt; &lt;p class="para"&gt;will still result in an error. The reason, as we have stated, is  that these types of errors show up during the parsing of the script, a step that  occurs before execution. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-1782970444327560626?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oZgg9Ab7FiqDhMYdZX4DmJ5GX0Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oZgg9Ab7FiqDhMYdZX4DmJ5GX0Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oZgg9Ab7FiqDhMYdZX4DmJ5GX0Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oZgg9Ab7FiqDhMYdZX4DmJ5GX0Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/1ydt8HqOxG4" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-24T02:50:26.229+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/error-in-javascript.html</feedburner:origLink></item><item><title>Service-Oriented Architecture</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/H9ip3Z0xMp8/service-oriented-architecture.html</link><category>Enterprise Architecture</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Mon, 22 Sep 2008 08:52:20 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-1011400108100514860</guid><description>&lt;span style="font-style: italic;" class="docEmphasis"&gt;Opportunity is missed by most people  because it is dressed in overalls and looks like work.&lt;/span&gt;&lt;blockquote&gt; &lt;p class="docText"&gt;—Thomas Edison&lt;/p&gt;&lt;/blockquote&gt; &lt;p class="docText"&gt;Service-Oriented architecture (SOA) is an architectural style  that formally separates services, which are the functionality that a system can  provide, from service consumers, which are systems that need that functionality.  This separation is accomplished by a mechanism known as a &lt;span class="docEmphasis"&gt;service contract,&lt;/span&gt; coupled with a mechanism for  providers to publish contracts and consumers to locate the contracts that  provide the service that they desire. Rather than coupling the consumer with the  service in terms of technical aspects of invoking the service, SOA separates the  contract from the component or implementation of that contract. This separation  produces an architecture in which the coupling between the consumer of the  service and the modules that produce the work is extremely loose and easily  reconfigured.&lt;/p&gt;&lt;p class="docText"&gt;Download Service-Oriented Architecture &lt;a href="http://www.ziddu.com/download/2231719/Service-OrientedArchitecture.rar.html"&gt;PDF&lt;/a&gt;, &lt;a href="http://www.ziddu.com/download/2231695/Service-OrientedArchitecturePP97-2003.rar.html"&gt;PP97-2003&lt;/a&gt;, &lt;a href="http://www.ziddu.com/download/2231660/Service-OrientedArchitecture2007.rar.html"&gt;PP2007&lt;/a&gt;, &lt;a href="http://www.ziddu.com/download/2231685/Service-OrientedArchitectureOpenOffice.rar.html"&gt;OpenOffice&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-1011400108100514860?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1NGwqj5rtOMuskMiOPTF9Yjqc24/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1NGwqj5rtOMuskMiOPTF9Yjqc24/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1NGwqj5rtOMuskMiOPTF9Yjqc24/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1NGwqj5rtOMuskMiOPTF9Yjqc24/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/H9ip3Z0xMp8" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-22T22:52:20.139+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/service-oriented-architecture.html</feedburner:origLink></item><item><title>Human Interface Principles</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/YMw-OaSv3Vk/human-interface-principles.html</link><category>Human Computer Interaction</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Mon, 22 Sep 2008 08:49:50 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-8212560912457927641</guid><description>&lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 1: Systems must  provide a way to aggregate data and commands.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 2: Systems should  allow users to cancel commands.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 3: Systems should  allow concurrent use of applications.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 4: Systems should  check for correctness.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 5: Systems should  allow recovery from systemic failure.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 6: Systems should  allow retrieval of forgotten information.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 7: Systems should  provide good help.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 8: Systems should  allow reuse of existing information.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 9: Systems should  leverage users' existing knowledge.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 10: Systems should  allow easy modification of interfaces.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 11: Systems should  allow navigation from within a single view.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 12: Systems should  display the system state.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 13: Systems should  allow working at the user's pace.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 14: Systems should  predict task duration.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 15: Systems should  support Undo, whereby a user may use the Undo command to revert to the state  prior to an action.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 16: Systems should  help users working in an unfamiliar context.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 17: Systems should  verify resources before initiating an operation.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 18: Systems should  operate consistently across views.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 19: Systems should  support appropriate visualization.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 20: Systems should  support comprehensive searching.&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;&lt;span class="docEmphasis"&gt;Usability Principle 21: Systems should  provide ways to evaluate the system.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.ziddu.com/download/2231696/HumanComputerInteractionPrinciples.rar.html"&gt;Download&lt;/a&gt; full article.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-8212560912457927641?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/36PsJg0A5_MJ_BJdjUdUFy108Ss/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/36PsJg0A5_MJ_BJdjUdUFy108Ss/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/36PsJg0A5_MJ_BJdjUdUFy108Ss/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/36PsJg0A5_MJ_BJdjUdUFy108Ss/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/YMw-OaSv3Vk" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-22T22:49:50.723+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/human-interface-principles.html</feedburner:origLink></item><item><title>Web Database</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/9j2Tfp-0vH4/web-database-dapat-diartikan-sebagai.html</link><category>Database</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Sat, 20 Sep 2008 11:04:28 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-6697848282644551819</guid><description>Web Database dapat diartikan sebagai tempat penyimpanan (repositories) database atau kumpulan informasi yang berinteraksi dengan halaman web secara dinamis. Dapat juga diartikan sebagai sebuah metode penyimpanan content www, dalam format yang terstruktur atau usable, yang terhubung baik secara statis maupun dinamis dengan database lain. Metode ini membantu komunikasi antara web server dan database serta memungkinkan pemakai menerbitan atau mengumpulkan infomasi dari sumber manapun.&lt;br /&gt;  Penggunaan web database ini bertujuan sebagai berikut :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;menyediakan jalan/cara remote access ke database server melalui browser&lt;/li&gt;&lt;li&gt;menggabungkan web server (http) dengan database server&lt;/li&gt;&lt;li&gt;menggunakan semua metodologi web design standar dalam menyediakan kemudahan pemakaian front end GUI ke database&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Contoh aplikasi yang menggunakan web database antara lain e-Commerse, resource libraries, catalogs, diretories (Yellow Page), online Shopping, online Autions, Training Courses, survey, dan analisis keuangan.&lt;br /&gt;&lt;br /&gt;Download artikel selengkapnya &lt;a href="http://www.ziddu.com/download/2216709/webdatabase.rar.html"&gt;di sini&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-6697848282644551819?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NTyMzfBjAl4fouwN28BfBuTr9pk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NTyMzfBjAl4fouwN28BfBuTr9pk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NTyMzfBjAl4fouwN28BfBuTr9pk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NTyMzfBjAl4fouwN28BfBuTr9pk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/9j2Tfp-0vH4" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-21T01:04:28.514+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/web-database-dapat-diartikan-sebagai.html</feedburner:origLink></item><item><title>Strenght and Weakness of MySQL Database Server</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/v816UL7628Y/strenght-and-weakness-of-mysql-database.html</link><category>Database</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Mon, 22 Sep 2008 09:04:24 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-6116041480059682108</guid><description>Strengths:&lt;br /&gt;■ Speed&lt;br /&gt;■ Reliability&lt;br /&gt;■ Low system resource requirements&lt;br /&gt;■ Scalability&lt;br /&gt;■ Platform diversity&lt;br /&gt;■ Support for a large number of host languages&lt;br /&gt;■ ODBC support&lt;br /&gt;■ Free or low-cost licensing&lt;br /&gt;■ Inexpensive commercial support&lt;br /&gt;■ Strong user community backing&lt;br /&gt;■ Availability of the source code&lt;br /&gt;Weaknesses:&lt;br /&gt;■ Lack of certain SQL features&lt;br /&gt;■ Lack of thorough testing on certain platforms&lt;br /&gt;■ Difficulty of working with the source code&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ziddu.com/download/2216730/StrenghtandWeaknessofMySQLDatabaseServer.pdf.html"&gt;Download&lt;/a&gt; article for detail explanation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-6116041480059682108?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZLwENkppYtY2VrcS8JAt1kIOBlk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZLwENkppYtY2VrcS8JAt1kIOBlk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZLwENkppYtY2VrcS8JAt1kIOBlk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZLwENkppYtY2VrcS8JAt1kIOBlk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/v816UL7628Y" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-22T23:04:24.422+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/strenght-and-weakness-of-mysql-database.html</feedburner:origLink></item><item><title>Differences between Open Source and Freeware</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/anmrTcE2yWQ/differences-betwen-open-source-and.html</link><category>Open Source</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Thu, 18 Sep 2008 11:23:37 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-5569790916342974497</guid><description>Open Source means that all source code are available for all user and free. Freeware means that the software is free but not necessary to give the source code. And, freeware can have limit access.&lt;br /&gt;To be Open Source has some rules :&lt;br /&gt;•    Free Redistribution, means that software can be gave and be sold&lt;br /&gt;•    Source Code Available, means that the source code has to be opened and can be get free, but not allowed for obsfucator&lt;br /&gt;•     Derived Works, means that source can be develop for distribution again&lt;br /&gt;•    Integrity of the autor’ source code, means that all the change of source have include the first source’s maker and there are date, time, by and version when modified&lt;br /&gt;•    No Discrimation againts people or groups,  means that no difference for everyone&lt;br /&gt;•    No Discrimation againts fields of Endeavor, means that commercial user allowed too&lt;br /&gt;•    Distribution of License, means that all users can use the program without license signature from the third&lt;br /&gt;•    License must not be specific to a product, means that the program can not be licensed as a part from bigger. So, smaller software has own distribution&lt;br /&gt;•    License must not restrict other software, means that license can not adjust the other program to be open source&lt;br /&gt;&lt;br /&gt;Richard Stallman describes  freeware based on Four Freedoms for users :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The freedom to run the program, for any purpose (freedom 0).&lt;/li&gt;&lt;li&gt;The freedom to study how the program works, and adapt it to       your needs (freedom 1). Access to the source code is a precondition       for this.   &lt;/li&gt;&lt;li&gt;The freedom to redistribute copies so you can help your neighbour       (freedom 2).   &lt;/li&gt;&lt;li&gt;The freedom to improve the program, and release your improvements       to the public, so that the whole community benefits (freedom 3).        Access to the source code is a precondition for this.   &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-5569790916342974497?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7J-cOL8PgHIsslfpdmnYbTh97Ss/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7J-cOL8PgHIsslfpdmnYbTh97Ss/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7J-cOL8PgHIsslfpdmnYbTh97Ss/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7J-cOL8PgHIsslfpdmnYbTh97Ss/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/anmrTcE2yWQ" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-19T01:23:37.326+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/differences-betwen-open-source-and.html</feedburner:origLink></item><item><title>The Role of a Software Architect</title><link>http://feedproxy.google.com/~r/Indrasmoro79/~3/wXXK6qpOwuU/role-of-software-architect.html</link><category>Enterprise Architecture</category><author>noreply@blogger.com (indrasmoro79)</author><pubDate>Mon, 22 Sep 2008 08:39:56 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7460654598240723491.post-990229327817050951</guid><description>&lt;ul&gt;&lt;li&gt;most difficult jobs&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Have to confidence of all the stakeholders&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;able to communicate with varied constituencies&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;excellent design skills&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;technology skills&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;understanding of software engineering best practices&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;navigate through organizational politics to get the project done correctly and on time&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;be a leader, a mentor, and a courageous decision maker&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;Download :&lt;br /&gt;&lt;a href="http://www.ziddu.com/download/2197740/SoftwareArchitecturePP97-2003.rar.html"&gt;Software Architecture's article for Power Point 97-2003&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ziddu.com/download/2197814/SoftwareArchitecturePP2007.rar.html"&gt;Software Architecture's article for Power Point 2007&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ziddu.com/download/2201860/SoftwareArchitectureOpenOffice.rar.html"&gt;Software Architecture's article for OpenOffice&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ziddu.com/download/2217001/PracticalGuidetoEnterpriseArchitectureA.rar.html"&gt;Practical Guide to Enterprise Architecture, A&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7460654598240723491-990229327817050951?l=indrasmoro79.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uulmEf0-c6sjt5FcKEBDjCud7_4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uulmEf0-c6sjt5FcKEBDjCud7_4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uulmEf0-c6sjt5FcKEBDjCud7_4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uulmEf0-c6sjt5FcKEBDjCud7_4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Indrasmoro79/~4/wXXK6qpOwuU" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-22T22:39:56.944+07:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://indrasmoro79.blogspot.com/2008/09/role-of-software-architect.html</feedburner:origLink></item><copyright>indrasmoro79</copyright><media:credit role="author">indrasmoro79</media:credit><media:rating>adult</media:rating></channel></rss>

