<?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: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-2331206083453814929</id><updated>2011-11-27T15:36:05.219-08:00</updated><category term='Software'/><category term='UML'/><category term='Gang of Four'/><category term='Design'/><category term='Java'/><category term='Java EE'/><title type='text'>The Structure of Structures</title><subtitle type='html'>All things structural: software architecture, political structures, power structures, health, economy - anything of structural significance.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>65</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-1018839212009899097</id><published>2011-11-03T20:18:00.001-07:00</published><updated>2011-11-03T20:18:04.576-07:00</updated><title type='text'>Rolling Back Transactions</title><content type='html'>&lt;p&gt;While doing a spot check on code and configuration – I noticed that the developer wasn’t throwing a runtime exception nor was he setting rollbackOnly in a CMT EJB.&lt;/p&gt; &lt;p&gt;I was told that any exception will rollback a transaction and it is not possible to setRollbackOnly, and there are only 4 types of transaction attributes on CMT. Wrong, wrong and wrong. &lt;/p&gt; &lt;p&gt;1. If your code throws an application exception – the container expects the bean to handle it. However, if your bean throws a runtime exception (or subclass), like javax.ejb.Exception – the container will rollback the transaction.&lt;/p&gt; &lt;p&gt;2. If you don’t want to throw RTEs all around your code – and/or you have massive catch all exception code blocks, you should context.setRollbackOnly – to rollback transactions.&lt;/p&gt; &lt;p&gt;3. There are various transaction attributes – 6 to be exact: Requires, Requires New, Supports, Not Supported, Never &amp;amp; Mandatory. Never and Mandatory are opposite to one another. Requires starts a transaction if not called with one, Mandatory will throw an exception if called without a transaction, Supports will use one if there is one, but won’t complain….rest are self explanatory.&lt;/p&gt; &lt;p&gt;What’s most important about Transactions are how the transaction propagates in both directions (commit and more importantly rollback)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-1018839212009899097?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/1018839212009899097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/11/rolling-back-transactions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1018839212009899097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1018839212009899097'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/11/rolling-back-transactions.html' title='Rolling Back Transactions'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-8307623491997246223</id><published>2011-11-03T20:17:00.001-07:00</published><updated>2011-11-03T20:17:47.562-07:00</updated><title type='text'>Java EE 5–No Entity Beans–F**K YEAH!</title><content type='html'>&lt;p&gt;I’ve always done ORM with HIbernate –and it helped a lot with cardinality (besides ORM general features).&lt;/p&gt; &lt;p&gt;1:1::Married Couple (there are cultural and religious exceptions)&lt;/p&gt; &lt;p&gt;1:n:: Order: Line Item&lt;/p&gt; &lt;p&gt;n:1:: Line Item: Order&lt;/p&gt; &lt;p&gt;n:n:: Course: Student&lt;/p&gt; &lt;p&gt;Regardless of cardinality, entities should never be non-singular from a naming convention stand point.&lt;/p&gt; &lt;p&gt;In Bidirectional relationships – the inverse side must refer to its owning side via the mappedBy element.&lt;/p&gt; &lt;p&gt;In n:1, the many side always owns the relationship. In n:n – it doesn’t matter.&lt;/p&gt; &lt;p&gt;All in all the beauty of Java Persistence API is that it has all the features that Hibernate had – and then makes things a lot simpler with Annotations. I never was a fan of annotations when they first surfaced, but I have slowly come to like it. I like the encapsulation it provides.&lt;/p&gt; &lt;p&gt;You can mix non-entity super classes with entity super classes, use polymorphic associations, queries etc. It is surprisingly flexible.&lt;/p&gt; &lt;p&gt;Three basic strategies remained consistent in ORM land – 1 table per class (or class per table) – usually you will have a database structure before you have the object structure.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-8307623491997246223?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/8307623491997246223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/11/java-ee-5no-entity-beansfk-yeah.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8307623491997246223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8307623491997246223'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/11/java-ee-5no-entity-beansfk-yeah.html' title='Java EE 5–No Entity Beans–F**K YEAH!'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-8913858656175776691</id><published>2011-10-20T06:52:00.000-07:00</published><updated>2011-11-03T20:17:04.587-07:00</updated><title type='text'>GoF: Polymorphism, Encapsulation, Inheritance and Delegation</title><content type='html'>&lt;p&gt;Polymorphism is when your client has a reference to an interface, and it’s concreate class can be one of many implementations. A different different behavior or value in a subclass can be utilized without a switch or an if. Parent class class defaults can be inherited and overridden where necessary. A method can be declared in a parent class, but each subclass can have a specialized implementation/logic of that method e.g. calculateArea();&lt;/p&gt; &lt;p&gt;&lt;br&gt;Encapsulation is a core principal, it refers to the bundling of data with the methods that operate on that data. Basically, logic and data go together. If you have a class, with properties and logic together – it is encapsulated. Helps separation of concerns and reduces surface areas – also supports immutability – since only the object can control the data.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;br&gt;Inheritance is the ability of objects in an Object-Oriented language to inherit properties and methods of other objects e.g. in Java, use extends or implements keywords.&lt;/p&gt; &lt;p&gt;Delegation is when at runtime you can invoke a different object to complete a task dynamically. A useful OO pattern that has seen several implementations in Java EE.&lt;/p&gt; &lt;p&gt;The ability to frequently modify or add functionality, or quickly fix defects (Extensibility &amp;amp; Maintainability) comes from early design decisions.&lt;/p&gt; &lt;p&gt;All in all – these are core design principles – any object oriented analysis and design must respect, consider and apply these principles.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-8913858656175776691?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/8913858656175776691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/gof-polymorphism-encapsulation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8913858656175776691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8913858656175776691'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/gof-polymorphism-encapsulation.html' title='GoF: Polymorphism, Encapsulation, Inheritance and Delegation'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-8971775917972724545</id><published>2011-10-19T12:29:00.000-07:00</published><updated>2011-11-03T20:17:27.965-07:00</updated><title type='text'>Java SE Security APIs and Frameworks</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Java SE has a deep foundation for security – there are a variety of APIs and frameworks that plug on top of various security impls.&lt;/p&gt; &lt;p&gt;&lt;img src="http://icons.iconarchive.com/icons/deleket/scrap/256/Lock-icon.png"&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;JAAS: Java Authentication and Authorization Services  &lt;li&gt;GSS: Generic Security Services. Think Tokens.  &lt;li&gt;JCE: Java Cryptography Extension. Keys and Ciphers.  &lt;li&gt;JSSE: Java Secure Sockets Extensions. SSL and TLS.  &lt;li&gt;SASL: Simple Authentication and Security Layer. Layer between Client and Server – describes the how. RFC 2222&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;TLS (SSL) is a point-to-point, transient only solution which provides no context, discrimination to content. Authentication, confidentiality and integrity is provided.&lt;br&gt;MLS (Message Layer Security) is an end-to-end security because it stays encrypted at rest and in motion. It is encrypted by the sender and can only be decrypted by the intended recipient. It does not depend on the transport layer.&lt;/p&gt; &lt;p&gt;Realm is the complete database of users and group, a user is an individual, a group is a collection of individuals, each group or individual can be assigned a key to the locks (aka role). In Java EE you can specify whether to propagate a client identity to the bean container or specify a run as. There is no choice either way but to trust the identify – as there is not authentication data propagated just the identity.&lt;/p&gt; &lt;p&gt;The EJB interoperability protocol is based on IIOP/GIOP 1.2 and CSIv2 (Common Secure Interoperability protocol).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-8971775917972724545?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/8971775917972724545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/java-se-security-apis-and-frameworks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8971775917972724545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8971775917972724545'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/java-se-security-apis-and-frameworks.html' title='Java SE Security APIs and Frameworks'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-4139633476496189903</id><published>2011-10-18T17:14:00.000-07:00</published><updated>2011-11-03T20:19:01.936-07:00</updated><title type='text'>Gang of Four Patterns for Java EE developers : Cheat Sheet</title><content type='html'>&lt;p&gt;Here is the list of Gang of Four patterns related with an actual implementation in Java EE. Read on – it will make sense (hopefully).&lt;/p&gt; &lt;p&gt;Strategy: EJB interface.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Defines a family of algorithms, encapsulates each one and makes them interchangeable. Strategy lets the algorithm vary independently from clients who use it.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Decorator: Dependency Injection.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Attach additional responsibilities to an object dynamically. Provide a flexible alternative to sub-classing for extending functionality.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Factory: EJBs .&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Define an interface for creating an object, but let the subclasses decide which class to instantiate. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Chain: Filters. &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Decoupled requester and handler. Chain the handlers, one of them must handle it. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Singleton: JNDI&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Ensure a class only has one instance, and provide a global point of access&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Flyweight: JDBC Connection Pooling.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;JDN&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Adapter : Use the same interface, but adapt to other classes.&lt;/p&gt; &lt;p&gt;Façade: Single point of entry for a sub-system.&lt;/p&gt; &lt;p&gt;Template: Defer implementation to subclass.&lt;/p&gt; &lt;p&gt;Builder: For complex varying structures.&lt;/p&gt; &lt;p&gt;Iterator: Access items in any collection implementation.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-4139633476496189903?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/4139633476496189903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/gang-of-four-patterns-for-java-ee.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4139633476496189903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4139633476496189903'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/gang-of-four-patterns-for-java-ee.html' title='Gang of Four Patterns for Java EE developers : Cheat Sheet'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-2455038539090839841</id><published>2011-10-16T17:14:00.000-07:00</published><updated>2011-11-03T20:20:47.048-07:00</updated><title type='text'>Java EE 5 idiosyncrasies</title><content type='html'>&lt;p&gt;In the Java Persistence API, you don’t need to provide an XML descriptor to specify the primary key, while you do need to provide a back pointer reference in a bidirectional relationship, unlike the Entity Bean specification version 2.1.&lt;/p&gt; &lt;p&gt;Java Server Faces can act as a front controller (i.e. no GUI) and unlike Custom Tag Libraries and much like a Servlet.&lt;/p&gt; &lt;p&gt;JSF does save view state, but cannot be previewed outside the container.&lt;/p&gt; &lt;p&gt;JCA = Java Cryptography Architecture as well as Java Connector Architecture. Having overloaded acronyms in the same domain is confusing. Java Cryptography Extension is packaged with JCA – guess which JCA? JAAS is the Java Authentication and Authorization Service. While the former supports RSA, DSA, AES etc, the latter abstracts authentication APIs as well as permissions API. JSSE is Java Secure Socket Extension – it is primarily used for TLS, SSL, Kerberos, SASL.&lt;br&gt;Weirdly enough JNLP applications that are running without their jars signed can interact with System properties and the clipboard. Well, in a way that’s understandable if you know what Web Start is supposed to be used for.&lt;/p&gt; &lt;p&gt;A single Sign-On delegator pattern is great for improving availability of remote security services, but doesn’t protect against weak session identifiers. Filtering for HTML tags is a good idea when accepting input reviews&amp;nbsp; - especially look for applet, script or frames and possibly div tags too. You don’t want folks entering scripts that get rendered somehow to grab other users data when viewed.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-2455038539090839841?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/2455038539090839841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/java-ee-5-idiosyncrasies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2455038539090839841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2455038539090839841'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/java-ee-5-idiosyncrasies.html' title='Java EE 5 idiosyncrasies'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-2726136400349092952</id><published>2011-10-14T17:14:00.000-07:00</published><updated>2011-11-03T20:21:24.380-07:00</updated><title type='text'>JSF in Java EE 5</title><content type='html'>&lt;p&gt;Java Server Faces seems to have a lot to offer in Java EE 5, one would really question the existing Web Frameworks – traditional Struts or Web Works – seem antiquated immediately.&lt;/p&gt; &lt;p&gt;Backing Beans – deferred evaluation, bound listeners, validators and convertors provide powerful flexibility.&lt;/p&gt; &lt;p&gt;JSF has a powerful lifecycle, with events, renderers, components orchestrated prior to the response going out.&lt;/p&gt; &lt;p&gt;Renderer Kit provides output in any format, if none is provided you get HTML rendering by default.&lt;/p&gt; &lt;p&gt;JSF must be compliant with at least Servlet Specifications 1.3 or later. JSP 1.2 or later, and packaged in a standard war file.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-2726136400349092952?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/2726136400349092952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/jsf-in-java-ee-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2726136400349092952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2726136400349092952'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/jsf-in-java-ee-5.html' title='JSF in Java EE 5'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-84881621212316222</id><published>2011-10-13T17:14:00.000-07:00</published><updated>2011-11-03T20:21:37.294-07:00</updated><title type='text'>XML Processing in Java EE 5</title><content type='html'>&lt;p&gt;All of the new Web Services API requires XML processing. Thankfully there have been changes to how Java EE will handle that as well with a fresh batch of updates.&lt;/p&gt; &lt;p&gt;&lt;img src="http://images.wordpressapi.com/xmlLogo.png" width="153" height="97"&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="5"&gt;JAXB 2.0: Improves vastly over JAXB 1.0&lt;/font&gt;&lt;/p&gt; &lt;p&gt;W3C XML Schema features (fixes missing bindings)&lt;/p&gt; &lt;p&gt;Adds javax.xml.bind.annotation and supports Java-to-XML binding.&lt;/p&gt; &lt;p&gt;Reduction in generated schema-derived classes.&lt;/p&gt; &lt;p&gt;Validation via JAXP 1.3 validation APIs&lt;/p&gt; &lt;p&gt;Smaller runtime binaries.&lt;/p&gt; &lt;p&gt;Schema compiler, Schema generator and Binding runtime framework.&lt;/p&gt; &lt;p&gt;JAXB 1.0 allowed validation: at unmarshall time, and on-demand validation on the content tree. JAXB 2.0 allows validation at marshall time and unmarshall time.&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;font size="5"&gt;Streaming API for XML (StAX) &lt;/font&gt;&lt;/p&gt; &lt;p&gt;StAX is the all new efficient API for XML, it has a lot of great features: &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Stream-oriented  &lt;li&gt;Event-Driven  &lt;li&gt;Pull-design  &lt;li&gt;Read/WriteYou can create fast, light-weight, bi-directional parsers that is easy on the heap.&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;JAXP (Java API for XML Processing) family includes StAX, TrAX, SAX, and DOM. StAX is good for low memory and limited extensibility applications.&lt;/ul&gt; &lt;ul&gt;Pull Parser – simpler than SAX, more memory efficient than DOM.&lt;/ul&gt; &lt;ul&gt;SAX can’t write – and isn’t bidirectional. DOM is way more powerful and flexible. One would dump SAX for StAX. An iterative pull parser – stax, an event driven push parser – then go for SAX.&lt;/ul&gt; &lt;ul&gt;I can’t see anyone using SAX anymore. Why would you? Unless you don’t want a cursor and iterator concept in your code – or you simply hate procedural and believe everything should be read-only events for XML processing. XMLStreamReader or XMLEventReader are the Cursor and Iterator APIs – well, Iterator APIs can do things a Cursor cannot do: Iterator is more extensible and flexible. Cursor is efficient, performant and memory friendly – ideal for small JVMs and JME&lt;/ul&gt; &lt;ul&gt;&lt;/ul&gt; &lt;ul&gt;&lt;/ul&gt; &lt;ul&gt;&lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-84881621212316222?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/84881621212316222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/xml-processing-in-java-ee-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/84881621212316222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/84881621212316222'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/xml-processing-in-java-ee-5.html' title='XML Processing in Java EE 5'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-6958707134487257465</id><published>2011-10-12T17:13:00.000-07:00</published><updated>2011-11-03T20:21:49.696-07:00</updated><title type='text'>JAX-WS in Java EE 5</title><content type='html'>&lt;p&gt;JAX-WS: Java API for XML Web Services. Does message oriented as well as RPC oriented services. Hides complexities of SOAP. No need to generate or parse SOAP messages (or understand the structure or format).&lt;/p&gt; &lt;p&gt;The JAX-WS endpoints must be annotated with @WebService or @WebServiceProvider. The business method must be annotated @WebMethod – a Service Endpoint Implementation (SEI) will be generated for this. JAXB compatible parameters are required.&lt;/p&gt; &lt;p&gt;Um, if you think Web Services or Clouds are NOT important, I hope the following stat will convince you.&lt;/p&gt; &lt;p&gt;&lt;img src="http://aws.typepad.com/photos/uncategorized/2008/05/16/aws_bandwidth.gif" width="480" height="331"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The Client needs @WebServiceRef – the reference to the service (or wsdlLocation). Get the port from the service and then invoke the exposed method on the service. Yes you need the interface to the service.&lt;/p&gt; &lt;p&gt;JAX-WS 2.0 Support WS-I Basic Profile Version 1.1, SOAP 1.1 and WSDL 1.1.&lt;/p&gt; &lt;p&gt;There is support for doc/lit, rpc/lit, static ports, dynamic proxies, and DII.&lt;/p&gt; &lt;p&gt;All in all JAX-WS seems like a winner!&lt;/p&gt; &lt;p&gt;Well, can you still use SAAJ? Yes – it gives you direct access to the SOAP protocol and the SAAJ 1.3 API supports SOAP 1.1 and SOAP 1.2 specifications.&lt;/p&gt; &lt;p&gt;&amp;lt;Message&amp;gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;lt;Part&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;Envelope&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;Header&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;/Header&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;Body&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;/Body&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;/Envelope&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;/Part&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;lt;/Message&amp;gt;&lt;/p&gt; &lt;p&gt;You can have Attachment Parts as peers to the Part. all Under the soap message but outside the envelope.&lt;/p&gt; &lt;p&gt;The attachment part will contain MIME headers and the content (any).&lt;/p&gt; &lt;p&gt;Um – BTW – you can use JAX-B to send SOAP Attachments too – so why would you want to bother with the SAAJ APIs is going to remain a mystery. But it’s there.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-6958707134487257465?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/6958707134487257465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/jax-ws-in-java-ee-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6958707134487257465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6958707134487257465'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/jax-ws-in-java-ee-5.html' title='JAX-WS in Java EE 5'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-9039890860413835849</id><published>2011-10-12T12:49:00.000-07:00</published><updated>2011-10-12T12:49:00.808-07:00</updated><title type='text'>i18n APIs</title><content type='html'>&lt;p&gt;If you’re designing an application that may be distributed to other nations, what you want to avoid is hardcoding English user text.&lt;/p&gt; &lt;p&gt;The following interfaces and objects are foundational to enable internationalization (i18n).&lt;/p&gt; &lt;p&gt;java.text package&lt;/p&gt; &lt;p&gt;Locale: Where is this running?&lt;/p&gt; &lt;p&gt;Resource Bundle: Alien language resource (LOL)&lt;/p&gt; &lt;p&gt;InputStreamReader OutputStreamWriter: UTF-8 and UTF-16&lt;/p&gt; &lt;p&gt;&lt;img src="http://t3.gstatic.com/images?q=tbn:ANd9GcQBEmCoY5XczTw1HfNEKFy-JOoXZDQuwI-dHGaieR05F8PTAKCOhg"&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Internationalization is essential for a global impact&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;Abstraction, abstraction and more abstraction. Decouple everything with a minimal surface area allows for a low friction system. Internationalizing any application is probably a great test of software flexibility.&lt;/p&gt; &lt;p&gt;In order to prepare an application, several changes need to be considered:&lt;/p&gt; &lt;p&gt;1. Screen Text&lt;/p&gt; &lt;p&gt;2. Dates, Calendars&lt;/p&gt; &lt;p&gt;3. Numbers, Formats, Currency&lt;/p&gt; &lt;p&gt;4. Icons, Images&lt;/p&gt; &lt;p&gt;5. Text File formats (e.g. UTF-8, UTF-16).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;It is possible that your program writes to ASCII, however that’s not going to work for the Japan market, you need to be able to write in UTF-16.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-9039890860413835849?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/9039890860413835849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/i18n-apis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/9039890860413835849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/9039890860413835849'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/i18n-apis.html' title='i18n APIs'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-2796768374341179486</id><published>2011-10-11T19:28:00.000-07:00</published><updated>2011-10-11T19:28:00.069-07:00</updated><title type='text'>Distributed Garbage Collection and Stub Downloads–and other dirty solution architecture alternatives</title><content type='html'>&lt;p&gt;Technology choices can make the difference between meeting the customers’ immediate needs and failing to complete a project on time. No can do if you’re using IIOP. If you’re still stuck in CORBA or IIOP, and trying to get remote objects talking to one another – don’t expect RMI-IIOP to help do what pure RMI does – DGC. Stub downloads and DGC are never going to be supported across technologies – it’s not possible to standardize it. &lt;/p&gt; &lt;p&gt;&lt;img src="http://hadassahsabo.files.wordpress.com/2009/12/garbage-can.jpg" width="88" height="135"&gt;&lt;/p&gt; &lt;p&gt;Think about refactoring to expose encapsulated business services instead. Use HTTP – it is connection based and stateless. Alternatively think about using messaging architectures, if you are at the systems programming level – IP Multicasting can be used of TCP that can serve as an unreliable messaging infrastructure – but it can also have layers of high speed health checks and retry mechanisms built. Virtual channels like queues (p2p) and topics with durability attributes can be used as well.&lt;/p&gt; &lt;p&gt;If a non-EJB Java application requires integration with your CORBA system, Java IDL is officially recommended – the communication protocol then is native IIOP. CORBA clients needs to talk to Java, Java IDL on the client end don’t make sense. If you want to integrate with the mainframe, and all you need is some fancy GUI, but the mainframe source code is unavailable – guess what? Screen scrapers via terminal emulator inputs may be recommended. Depends. If the goal is to meet the customer’s need quickly – don’t forget to do a trade off analysis and make target state recommendations. An architects job is to accelerate business not make perfect solutions at all costs. Judging trade offs is where we make money for the clients. Know when where and how to make short cuts if needed. Use a reverse proxy to target different servers for servicing different types of requests. Have failure management systems up to the wazoo. Avoid EJBs if you have no need for transactions and business logic in the solution. KISS.&lt;/p&gt; &lt;p&gt;If you must use CORBA and RMI-IIOP (for EJB type communications), and Session Beans provide good memory management like Pooling and Passivation (SLSB &amp;amp; SFSB). If you must integrate with existing native C++ code/business logic, it is advisable to wrap that with JNI calls, and remote it via RMI. Don’t over use web-services if you don’t need a business service. SOA isn’t API over the web. &lt;/p&gt; &lt;p&gt;All in all, Java IDL is business as usual for CORBA programming. Use RMI-IIOP is for Java programming over IIOP, it can interoperate with CORBA objects but those interfaces must be available as Java RMI. If you must use pure IIOP – then you have existing CORBA objects in play that can’t have Java interfaces – so you must use Java IDL. CORBA provides lots and lots of nice services; Naming Services, Security, Transaction Service, Event and Concurrency Control. &lt;/p&gt; &lt;p&gt;Regardless of how you meet your customers’ expectations – plan to leave them with an awesome build/deploy strategy &amp;amp; matching execution.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-2796768374341179486?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/2796768374341179486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/distributed-garbage-collection-and-stub.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2796768374341179486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2796768374341179486'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/distributed-garbage-collection-and-stub.html' title='Distributed Garbage Collection and Stub Downloads–and other dirty solution architecture alternatives'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-4467186977316355716</id><published>2011-10-10T18:09:00.000-07:00</published><updated>2011-10-10T18:09:00.510-07:00</updated><title type='text'>Cloud 9? Don’t forget data replication strategies</title><content type='html'>&lt;p&gt;It is still important to decide on your data, server replication strategy when you deploy your core business services and data assets to an internal, external or hybrid cloud models. &lt;/p&gt; &lt;p&gt;Understanding the implications of Active Replication, Passive Replication, Hot Backup, Warm Backup, Cold Backup, State Change Synchronization, Load Balancing and Fault Tolerance are key to making essential choices for a solid deployment architecture on the cloud.&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.robotinthecloud.com/data/images/2010/04/please-don-t-fall-cloud-by-p0rg.jpg" width="247" height="247"&gt;&lt;/p&gt; &lt;p&gt;Elasticity, capacity flexibility, horizontal and vertical scalability and dynamic resource allocation makes life a lot easy on the cloud.&lt;/p&gt; &lt;p&gt;Active replication is not achieved by taking cold backups, state changes are not logged for periodic flushes to the replicas, state is not synchronized to only support backup replica when the primary fails. Instead each replica is identical, each replica attempts to process each request – an interceptor takes care of idem potency between replicas. If you want a Primary Service to support all incoming requests, and periodically synchronize its state with the replicas – what you have is a Warm Backup or Passive Replication.&lt;/p&gt; &lt;p&gt;Take a hot backup during times when you have low scalability needs on the RDBMS systems, whereas a cold backup should be reserved for “Sundays” or in the 70s. If you’re going to support the cloud – forger cold backups and start thinking CA (Continuous Availability).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-4467186977316355716?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/4467186977316355716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/cloud-9-dont-forget-data-replication.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4467186977316355716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4467186977316355716'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/cloud-9-dont-forget-data-replication.html' title='Cloud 9? Don’t forget data replication strategies'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-4638668454769016975</id><published>2011-10-09T08:46:00.001-07:00</published><updated>2011-10-09T08:46:04.229-07:00</updated><title type='text'>Dealing with $$$$? You need ACID</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If you’re deploying business logic to an EJB container, you’re probably dealing with some durable transactional stuff that’s needed by the customer. You need som ACID baby!&lt;/p&gt; &lt;p&gt;Atomicity – do it all or don’t do anything at all.&lt;br&gt;Consistency – Ensure everything is left integral.&lt;/p&gt; &lt;p&gt;Isolated – Nothing else should alter or interfere.&lt;/p&gt; &lt;p&gt;Durable – persist prior to finishing. &lt;/p&gt; &lt;p&gt;&lt;img src="http://spoofe.tripod.com/pics/Acid%20Trip%201.jpg" width="308" height="395"&gt;&lt;/p&gt; &lt;p&gt;For financially significant applications you need transactions – with four quality attributes together: ACID.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-4638668454769016975?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/4638668454769016975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/dealing-with-you-need-acid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4638668454769016975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4638668454769016975'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/dealing-with-you-need-acid.html' title='Dealing with $$$$? You need ACID'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7310598108906911897</id><published>2011-10-08T07:09:00.001-07:00</published><updated>2011-10-08T07:09:18.557-07:00</updated><title type='text'>How to remove Linux partition from a dual-boot PC? lilo &amp; gparted</title><content type='html'>&lt;p&gt;Now that Windows 7 and Macs have improved their security architectures, it is possible to take tentative steps away from linux for desktop computing, if cost is not a factor. &lt;/p&gt; &lt;p&gt;Every GB counts, so machines that have dual partitions, freeing up the swap, home and primary partition is the only reasonable option.&lt;/p&gt; &lt;p&gt;Remove grub, linux distro and reallocate space.&lt;/p&gt; &lt;p&gt; If you have a dual-boot PC with a Windows XP partition and an Ubuntu 11.04 (or other) partition – and want to simply have the windows partition only then read on.&lt;/p&gt; &lt;p&gt;One 4-letter word: lilo&lt;/p&gt; &lt;p&gt;It can create an MBR on your Windows partition. &lt;/p&gt; &lt;p&gt;Before you do that, make sure you run check disk on all drives from your windows partition. Then boot up with a live Ubuntu CD and run GParted. Delete the partitions, and resize them as needed.&lt;/p&gt; &lt;p&gt;Run lilo to recreate your MBR on the windows main partition, and you are all set.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7310598108906911897?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7310598108906911897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/how-to-remove-linux-partition-from-dual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7310598108906911897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7310598108906911897'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/how-to-remove-linux-partition-from-dual.html' title='How to remove Linux partition from a dual-boot PC? lilo &amp;amp; gparted'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-3710905765375563253</id><published>2011-10-04T15:00:00.000-07:00</published><updated>2011-10-04T15:00:06.228-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gang of Four'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><title type='text'>Creating Objects Design Situations</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Understanding how to create an object goes beyond the new() syntax, a good designer will think about the current requirement and future requirements to ensure decoupling layers, build in flexibility and maintainability. For example, &lt;/p&gt; &lt;p&gt;&lt;strong&gt;So you have an object that needs to create another class, however&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;…it cannot anticipate the class of objects it must create&lt;/p&gt; &lt;p&gt;…it wants only its subclass to specify the object it wants to create&lt;/p&gt; &lt;p&gt;…it wants to localize knowledge of which helper subclass is the delegate&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;How would you design for these quality attributes?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;How about the following:&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;A client class needs a complex object, however it also&lt;/p&gt; &lt;p&gt;… wants to vary the product’s internal representation&lt;/p&gt; &lt;p&gt;…isolate code for construction and representation&lt;/p&gt; &lt;p&gt;…gives you greater control over the construction process&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;How would you design for these quality attributes?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;What if you wanted to:&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;… isolate the concrete class from the client that needs it, and&lt;/p&gt; &lt;p&gt;… allow for exchanging classes of products easily&lt;/p&gt; &lt;p&gt;…enforce a common consistent product interface across families of products&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;What’s going to be the pattern of choice, designer?&lt;/p&gt; &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://www.renovation-headquarters.com/images12/pinwheel%20cr.gif" width="168" height="167"&gt;&lt;/p&gt; &lt;p&gt;If you answered Factory, Builder and Abstract Factory – then that’s pretty darn good – you remember your GOFs, which are like the ABCs for software architects (or should be).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-3710905765375563253?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/3710905765375563253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/creating-objects-design-situations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3710905765375563253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3710905765375563253'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/creating-objects-design-situations.html' title='Creating Objects Design Situations'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-21103821891752432</id><published>2011-10-03T15:00:00.000-07:00</published><updated>2011-10-03T15:00:04.833-07:00</updated><title type='text'>Java EE 5 Security</title><content type='html'>&lt;p&gt;Enterprise Java provides abstracted security APIs and concept that sit on a robust security foundation at the Java Language Specification and implemented by Java Virtual Machines:&lt;/p&gt; &lt;p&gt;Automatic Memory Management&lt;/p&gt; &lt;p&gt;Secure Class Loading&lt;/p&gt; &lt;p&gt;Strong Typing&lt;/p&gt; &lt;p&gt;Byte code Verification&lt;/p&gt; &lt;p&gt;At the time the security design was unprecedented, nothing came close to the security model of an interoperable platform. However with the advent of Java Applets and sandboxing, clunky jar signing processes and key stores, users and system designers shed away.&lt;/p&gt; &lt;p&gt;&lt;img src="http://t2.gstatic.com/images?q=tbn:ANd9GcRRv_Y725YzFUOzozqTcH6a_QkHE7xDEXFVm0Sn48oRZROwRSem0w"&gt;&lt;/p&gt; &lt;p&gt;Java EE 5 continues to build and extend a robust security platform for its EJB and Web containers – the simplified API looks for isCallerInRole and isUserInRole respectively. Unfortunately not all real security threats can be handled from within the container. &lt;/p&gt; &lt;p&gt;Denial Of Service attacks require man-in-the-middle and session hijacking to be addressed, typically outside the container – at the network layer. Additionally, nothing can be done to prevent social engineering. That’s a human only vector.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-21103821891752432?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/21103821891752432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/10/java-ee-5-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/21103821891752432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/21103821891752432'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/10/java-ee-5-security.html' title='Java EE 5 Security'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7085786780535564923</id><published>2011-09-24T11:02:00.001-07:00</published><updated>2011-09-24T11:02:24.672-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>JMS Header Values, who sets what</title><content type='html'>&lt;p&gt;JMS API defines headers for messages that are sent asynchronously to a message destination (Queue or Topic).&lt;/p&gt;  &lt;p&gt;A Client that sends a message has the ability to select 3 values:&lt;/p&gt;  &lt;p&gt;1. JMSCorrelationID&lt;/p&gt;  &lt;p&gt;2. JMSReplyTo&lt;/p&gt;  &lt;p&gt;3. JMSType&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;These 3 values have meaning to the receiver of the message, and may have pre-defined semantics. &lt;/p&gt;  &lt;p&gt;These can be useful to Browse the messages, a QueueBrowser object can read and display messages that are sitting in the queue by reading its header messages. Note, that the API doesn’t support browsing topics. It is advisable to keep an internal xml database record of messages that are destined for a topic, and wrap the commit atomically using a 2 phased commit protocol.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7085786780535564923?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7085786780535564923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/09/jms-header-values-who-sets-what.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7085786780535564923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7085786780535564923'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/09/jms-header-values-who-sets-what.html' title='JMS Header Values, who sets what'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7587119517657647063</id><published>2011-05-08T20:05:00.001-07:00</published><updated>2011-05-08T20:05:44.059-07:00</updated><title type='text'>Updating Grub 2 Config</title><content type='html'>&lt;p&gt;Updating Grub 2 -&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you want to change your grub configuration (reorder, change, remove etc) - there are TWO steps&lt;/p&gt;&lt;p&gt;1. Make The Change&lt;/p&gt;&lt;p&gt;2. Update Grub&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For example, If you want to change the selected OS to boot from (usually the first one is selected by default).&lt;/p&gt;&lt;p&gt;&lt;p&gt;rohit@lenovo:~$ sudo gedit /etc/default/grub&amp;nbsp;&lt;/p&gt;&lt;p&gt;rohit@lenovo:~$ sudo update-grub&lt;/p&gt;&lt;p&gt;Generating grub.cfg ...&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The steps above, essentially means, I opened the grub file in a text editor, made changes and saved it. Then I ran update-grub to cement my changes. Done&lt;/div&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7587119517657647063?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7587119517657647063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/05/updating-grub-2-config.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7587119517657647063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7587119517657647063'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/05/updating-grub-2-config.html' title='Updating Grub 2 Config'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-925568646648721679</id><published>2011-05-01T18:23:00.000-07:00</published><updated>2011-05-01T18:23:00.531-07:00</updated><title type='text'>5 Things Ubuntu STILL needs your support on</title><content type='html'>&lt;p&gt;I have been an avid Ubuntu user for 4 years and Linux user for 10, there have been significant several improvements over the years that have made it a pleasure to use Linux 80% of the time.&lt;/p&gt;&lt;p&gt;But listing these will help guide the next few releases and help early adopters understand the risks.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: large;"&gt;TOP 5 Missing Features in UBUNU (and Linux)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;5. Speed&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small;"&gt;Ubuntu boots up way faster than Windows XP, Vista and Win7. However, once Gnome (or KDE) startsup the user-perception of performance lags. Ubuntu/Gnome and Kubuntu are markedly slower to start applications than Win Xp or Win7.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;img src="http://www.ulpanor.com/eton/include/images/audio_slow.png" alt="" width="256" height="256" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;4. Office 2010-like features&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;OpenOffice and OfficeLibre don't compare with Microsoft Office 2010. Features like One Note and Smart Art, MS Visio (yes, it's still better than Dia), has left the open source community challenged to meet or beat the new features provided in Office.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;img src="http://www.microsoft.com/office/make-it-great/Content/en-us/images/WhatsNew/oneNote.png" alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;3. Better screen real estate utilization&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Screen real-estate is precious, and Win Xp did an awesome job on rendering the toolbars and icons to optimize on both low resolution monitors as well as high resolution monitors. For WSXGA screens, XP is still far better that Gnome 2x. A partial workaround is to use a compact theme, but it does not suffice. KDE does a better job than Gnome, and XP does a better job than KDE in screen real estate utilziation.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;img src="http://lh5.ggpht.com/_jFVVVTW56rc/TZijsiJ6zMI/AAAAAAAABV8/fnhASnv2lF0/%5BUNSET%5D.jpg" alt="" width="250" height="188" /&gt;&lt;img src="http://thedarkmaster.files.wordpress.com/2007/04/gnome-main-menu.png" alt="" width="128" height="128" /&gt;&lt;img src="http://dot.kde.org/sites/dot.kde.org/files/category_pictures/kde.png" alt="" width="48" height="48" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;2. Support for Apple products: iPad, iPod&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;Support for iPads and iPods is essentially missing. You cannot use iTunes on Linux. Shame on Apple. Not only is iTunes a poorly designed and resource hungry software, it is not cross-platform. Windows is the only 'other' OS that is supported.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;img src="http://reviews.cnet.com/i/bto/20100125/AppleLogoBlue.png" alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;1. Support for Netflix&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Shame on MIcrosoft and Netflix. Microsoft has not allowed DRM to be ported. Netflix seems committed to Silverlight. The combination has left Linux and Android operating systems in the cold, when it comes to Netflix movies. This is major strategic risk to Netflix. Not from Linux, but from Android users. Watch for Amazon in the this space. If Amazon supports a true cross-platform movie-watching experience Netflix will have a serious competitor.&lt;/p&gt;&lt;p&gt;&lt;img src="http://blog.brothersoft.com/wp-content/uploads/2010/03/microsoft_logo.jpg" alt="" width="64" height="64" /&gt;+&amp;nbsp;&lt;img src="http://wlpfilms.com/wlpfilms/The_Two_Plates_files/Netflix_Icon.png" alt="" width="32" height="32" /&gt;&amp;nbsp;= No Linux or Android&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;If you are planning to check out Linux and any of its distributions for the first time, I strongly reccommend Ubuntu/Gnome or Kubuntu which is closer to the Windows user experience. Be aware of the missing features on the platform. In the next 3-5 years, Linux needs support from you and the corporations to be a viable platform for day to day computing needs.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="zemanta-articles"&gt;Related articles, courtesy of Zemanta:&lt;br /&gt; &lt;ul class="zemanta-articles"&gt;&lt;li&gt;&lt;a href="http://www.lockergnome.com/linux/2011/03/28/linux-office-suites/"&gt;Linux Office Suites&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://techrights.org/2011/04/02/gnome-3-0-delays/"&gt;Links 2/4/2011: Scientific Linux 6.0 Released, GNOME 3.0 Delays&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ghacks.net/2011/03/11/what-will-the-new-gnome-desktops-mean-for-other-linux-desktops/"&gt;What will the new GNOME desktops mean for other Linux desktops?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://surprinsdedumnezeu.wordpress.com/2011/03/18/gnome-3-beta/"&gt;Gnome 3 Beta&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://lucidfox.org/p/2010/10/07/the_kubuntu_wishlist"&gt;Maia Kozheva: The Kubuntu Wishlist&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.zdnet.com/blog/open-source/opensuse-114-suse-linux-revitalized/8464"&gt;OpenSUSE 11.4: SUSE Linux Revitalized&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.zdnet.com/blog/open-source/ubuntu-linux-and-gnome-the-disputes-continue/8469"&gt;Ubuntu Linux and GNOME: The Disputes continue&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-925568646648721679?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/925568646648721679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/05/5-things-ubuntu-still-needs-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/925568646648721679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/925568646648721679'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/05/5-things-ubuntu-still-needs-your.html' title='5 Things Ubuntu STILL needs your support on'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_jFVVVTW56rc/TZijsiJ6zMI/AAAAAAAABV8/fnhASnv2lF0/s72-c/%5BUNSET%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-2498963883447267497</id><published>2011-03-31T17:19:00.001-07:00</published><updated>2011-03-31T17:19:43.817-07:00</updated><title type='text'>3 rules to understand attitudes and actions</title><content type='html'>&lt;p&gt;Here are my 3 rules to understand people's attitudes and actions.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Rule #1. If you want to understand people's attitudes, first understand their motives.&lt;/p&gt;&lt;p&gt;Rule #2. If you want to understand people's actions, understand their incentives.&lt;/p&gt;&lt;p&gt;Rule #3. If you want to understand people politics, read Rule #1, Rule #2.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;----&lt;br /&gt;Case in point&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="http://lh3.ggpht.com/_jFVVVTW56rc/TZUZa7bCJ1I/AAAAAAAABV0/5s809nKHmKg/%5BUNSET%5D.jpg" alt="Health Care Reform, War " width="604" height="494" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-2498963883447267497?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/2498963883447267497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/03/3-rules-to-understand-attitudes-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2498963883447267497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2498963883447267497'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/03/3-rules-to-understand-attitudes-and.html' title='3 rules to understand attitudes and actions'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_jFVVVTW56rc/TZUZa7bCJ1I/AAAAAAAABV0/5s809nKHmKg/s72-c/%5BUNSET%5D.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7694544796035910822</id><published>2011-02-03T08:08:00.001-08:00</published><updated>2011-04-03T09:11:52.759-07:00</updated><title type='text'>When the Demon wants your Wallet</title><content type='html'>&lt;div style="text-align: left;" dir="ltr"&gt;Ubuntu 10.10 has an issue when you run Gnome and KDE.&lt;br /&gt;On startup KDE prompts&amp;nbsp;&lt;span style="font-family: verdana, arial, sans-serif; font-size: 11px;"&gt;'KDE Daemon' has requested to open the wallet 'kdewallet'.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana, arial, sans-serif; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana, arial, sans-serif; font-size: 11px;"&gt;The solution is to install WICD&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana, arial, sans-serif; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;blockquote&gt;rohit@lenovo:~$ sudo apt-get install wicd&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;[sudo] password for rohit:&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Reading package lists... Done&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Building dependency tree &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Reading state information... Done&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;The following extra packages will be installed:&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;python-iniparse python-wicd wicd-daemon wicd-gtk&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;The following NEW packages will be installed:&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;python-iniparse python-wicd wicd wicd-daemon wicd-gtk&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Need to get 562kB of archives.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;After this operation, 3,121kB of additional disk space will be used.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Do you want to continue [Y/n]? Y&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;WARNING: The following packages cannot be authenticated!&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;python-wicd python-iniparse wicd-daemon wicd-gtk wicd&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Install these packages without verification [y/N]? y&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Get:1 http://us.archive.ubuntu.com/ubuntu/ maverick/universe python-wicd all 1.7.0+ds1-5 [76.8kB]&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Get:2 http://us.archive.ubuntu.com/ubuntu/ maverick/main python-iniparse all 0.3.2-1 [19.8kB]&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Get:3 http://us.archive.ubuntu.com/ubuntu/ maverick/universe wicd-daemon all 1.7.0+ds1-5 [277kB]&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Get:4 http://us.archive.ubuntu.com/ubuntu/ maverick/universe wicd-gtk all 1.7.0+ds1-5 [147kB]&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Get:5 http://us.archive.ubuntu.com/ubuntu/ maverick/universe wicd all 1.7.0+ds1-5 [41.0kB]&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Fetched 562kB in 6s (80.3kB/s) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" href="http://4.bp.blogspot.com/_jFVVVTW56rc/TUrTaaDD3LI/AAAAAAAABVs/_ZJp0o-pgJk/s1600/wicd.png"&gt;&lt;img src="http://4.bp.blogspot.com/_jFVVVTW56rc/TUrTaaDD3LI/AAAAAAAABVs/_ZJp0o-pgJk/s320/wicd.png" border="0" alt="" width="308" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote&gt;&lt;blockquote&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Preconfiguring packages ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Selecting previously deselected package python-wicd.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;(Reading database ... 258926 files and directories currently installed.)&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Unpacking python-wicd (from .../python-wicd_1.7.0+ds1-5_all.deb) ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Selecting previously deselected package python-iniparse.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Unpacking python-iniparse (from .../python-iniparse_0.3.2-1_all.deb) ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Selecting previously deselected package wicd-daemon.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Unpacking wicd-daemon (from .../wicd-daemon_1.7.0+ds1-5_all.deb) ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Selecting previously deselected package wicd-gtk.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Unpacking wicd-gtk (from .../wicd-gtk_1.7.0+ds1-5_all.deb) ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Selecting previously deselected package wicd.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Unpacking wicd (from .../wicd_1.7.0+ds1-5_all.deb) ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Processing triggers for ureadahead ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;ureadahead will be reprofiled on next reboot&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Processing triggers for man-db ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Processing triggers for python-gmenu ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Rebuilding /usr/share/applications/desktop.en_US.utf8.cache...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Processing triggers for desktop-file-utils ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Processing triggers for hicolor-icon-theme ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Processing triggers for menu ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Processing triggers for python-support ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Setting up python-wicd (1.7.0+ds1-5) ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Setting up python-iniparse (0.3.2-1) ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Setting up wicd-daemon (1.7.0+ds1-5) ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;* Starting Network connection manager wicd &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[fail]&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Setting up wicd-gtk (1.7.0+ds1-5) ... &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Setting up wicd (1.7.0+ds1-5) ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Processing triggers for python-support ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Processing triggers for menu ...&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;localepurge: Disk space freed in /usr/share/locale: 828 KiB&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;localepurge: Disk space freed in /usr/share/man: 20 KiB&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;localepurge: Disk space freed in /usr/share/gnome/help: 0 KiB&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;localepurge: Disk space freed in /usr/share/omf: 0 KiB&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;localepurge: Disk space freed in /usr/share/doc/kde/HTML: 0 KiB&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Total disk space freed by localepurge: 848 KiB&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7694544796035910822?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7694544796035910822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/02/when-demon-wants-your-wallet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7694544796035910822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7694544796035910822'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/02/when-demon-wants-your-wallet.html' title='When the Demon wants your Wallet'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_jFVVVTW56rc/TUrTaaDD3LI/AAAAAAAABVs/_ZJp0o-pgJk/s72-c/wicd.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7869541280400638758</id><published>2011-01-30T08:47:00.001-08:00</published><updated>2011-01-30T08:47:04.311-08:00</updated><title type='text'>Weather.com Software Platform: Open Source</title><content type='html'>&lt;p&gt;&lt;em&gt;This is a snippet from a 2004 article that I never publicly published, but is serves as a good case study relevant in 2011 (and beyond).&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;In 2004, weather.com site served more than 50 million pages on stormy days, and it ran almost entirely on open-source software and commodity hardware. The Atlanta-based Web site’s adoption of a new architecture and open source products “has slashed IT costs by one-third and increased Web site processing capacity by 30%”&amp;#160; (King 2004). However cost slashing was not their primary goal of switching to an open source product. The quality of open source products was its main “selling” point. Weather.com claimed that their transition from IBM’s server software product to open source Apache Tomcat to run their website served correct operations, ease of use and better quality attributes overall. Of course, there are different organizational dynamics that lead to a decision to drop COTS (and support) to an open source solution.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="left" src="http://t3.gstatic.com/images?q=tbn:ANd9GcRVKzP_Ea7_s1H-A6suyBvqy8jo87FI2D5RXhaOdZFwGZ1ZbFi8" width="120" height="80" /&gt;&lt;/p&gt;  &lt;p&gt;Performance and scalability issues were cited as the main reasons for switching to Apache’s web server. The team switched from IBM’s commercial offering to Apache’s open source implementation primarily for its quality. Apache’s open source web servers host 68% of web servers in the world according to an August 2004 analysis of Netcraft (Gustafson, Koff). &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img alt="" align="middle" src="http://news.netcraft.com/wp-content/uploads/2010/06/wpid-overalld.png" /&gt;&lt;/p&gt;  &lt;p&gt;Graph: &lt;a href="http://news.netcraft.com/archives/2010/06/16/june-2010-web-server-survey.html"&gt;Totals for Active Servers Across All Domains June 2000 - June 2010&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;IBM has since started to use a modified version Apache Web Server in it’s commercial offerings. This is a trend that is likely to repeat itself across multiple technology domains depending on various factors: it remains to be seen if the penetration projections hold true over time.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7869541280400638758?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7869541280400638758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/01/weathercom-software-platform-open.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7869541280400638758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7869541280400638758'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/01/weathercom-software-platform-open.html' title='Weather.com Software Platform: Open Source'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7123341083550883129</id><published>2011-01-09T14:52:00.000-08:00</published><updated>2011-01-09T14:52:32.850-08:00</updated><title type='text'>6 Traits of an Impoverished Leader</title><content type='html'>Impoverished Leadership Style&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Uninvolved: Is not involved with the effort at hand&lt;/li&gt;&lt;li&gt;Unmotivated: Does not motivate and is not moved by the effort&lt;/li&gt;&lt;li&gt;Indifferent: Does not care about the outcomes or your efforts&lt;/li&gt;&lt;li&gt;Noncommittal: Does not provide straight answers and is not ready to support the effort.&lt;/li&gt;&lt;li&gt;Resigned: Is not positive about the effort and is basically non caring.&lt;/li&gt;&lt;li&gt;Apathetic: No emotion, no enthusiasm.&lt;/li&gt;&lt;/ol&gt;Have you worked for a manager in your career that you thought was disconnected and unmotivated? The  LeaderShip Grid (developed by Ohio State University) defines what they call the "Impoverished Leadership Style". Rest assured - this is a common leadership patter in dysfunctional organizations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7123341083550883129?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7123341083550883129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/01/6-traits-of-impoverished-leader.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7123341083550883129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7123341083550883129'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/01/6-traits-of-impoverished-leader.html' title='6 Traits of an Impoverished Leader'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-5861403324554350887</id><published>2011-01-02T17:11:00.000-08:00</published><updated>2011-01-02T17:11:00.417-08:00</updated><title type='text'>Offline Desktop Blog Clients for Linux</title><content type='html'>&lt;p&gt;Live Writer works like Microsoft Office (or OpenOffice Writer), once you're done writing your document, you can simply Save, and/or Publish to your blog.&lt;/p&gt;&lt;p&gt;I have Live Writer installed on my XP slice that I run on my linux laptop. Running Virtual Box does take away CPU when running XP - and frankly I wanted to be able to use Linux for all my needs.&lt;/p&gt;&lt;p&gt;I was&amp;nbsp;disappointed.&amp;nbsp;After using several offline desktop oriented blog clients for Linux , the verdict is that none of them offer the features that LiveWriter does.&lt;/p&gt;&lt;div&gt;&lt;span style="font-size: x-large;"&gt;GnomeBlog (Blog Entry Poster)&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: large;"&gt;&lt;img src="http://projects.gnome.org/gnome-blog/images/yosemite.png" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This is the User inteface - it is minimal, does not have off line save options, cannot be used by any serious blogger.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="http://lh4.ggpht.com/_jFVVVTW56rc/TReGYIoIReI/AAAAAAAABUw/f7n3eHFXjDs/%5BUNSET%5D.png" alt="" width="436" height="422" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you're looking to post casual updates, almost tweets or micro blogs - from your desktop then this may be a fit. But why bother? Just get a Twitter account and use TweetDeck that runs on Adobe Air.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: x-large;"&gt;GTKBlog&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: large;"&gt;&lt;img src="http://blogtk.jayreding.com/wp-content/uploads/2008/08/BloGTKMainWindow090805.png" alt="" /&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;For some&amp;nbsp;reason&amp;nbsp;GTK blog looked attractive but would never run on Ubuntu10.10 - I did not bother to find out why. I did get a screen shot from their website.&lt;/p&gt;&lt;p&gt;&lt;p&gt;rohit@lenovo:~$ blogtk&lt;/p&gt;&lt;p&gt;Traceback (most recent call last):&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;File "/usr/bin/blogtk", line 14, in &amp;lt;module&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;import gtkhtml2&lt;/p&gt;&lt;p&gt;ImportError: No module named gtkhtml2&lt;/p&gt;&lt;div&gt;Ok -so its missing some dependencies - and needed to be installed - it wasn't there in the repos. I don't want to compile it from source. Just.&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: x-large;"&gt;ScribeFire&lt;/span&gt;&lt;/p&gt;&lt;p&gt;So I proceed to install ScribeFire - which is an add on to both Chrome and Firefox.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: x-large;"&gt;&lt;img src="http://lh5.ggpht.com/_jFVVVTW56rc/TQ__JMIFTFI/AAAAAAAABUY/EXvJq6AuFqM/%5BUNSET%5D.png" alt="" width="761" height="312" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Let's you open it from Chrome (or Firefox) and lets you manage the text offline. &amp;nbsp;&lt;/p&gt;&lt;p&gt;You CANNOT place images in Offline mode. This is a huge flaw.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="http://lh6.ggpht.com/_jFVVVTW56rc/TQ__MNNq31I/AAAAAAAABUc/lj1ojtyXYX8/%5BUNSET%5D.png" alt="" width="770" height="157" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: x-large;"&gt;Drivel Journal Editor&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Drivel has more features but does not handle images in offline mode with any grace.&lt;/p&gt;&lt;p&gt;&lt;img src="http://lh5.ggpht.com/_jFVVVTW56rc/TReHmw4CokI/AAAAAAAABU0/Q8rJQU9GKco/%5BUNSET%5D.png" alt="" width="600" height="425" /&gt;&lt;/p&gt;&lt;p&gt;Drivel, too cannot manage images without being connected to the Internet.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: large;"&gt;Conclusion&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: large;"&gt;None of the Desktop Blog clients on Linux manage images offline with any grace. LiveWriter from Microsoft is superior to all Linux Desktop clients that I have used. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: large;"&gt;If you were to still choose, I would go with ScribeFire. Hope that someone will take the time to upgrade or write a new Desktop blog client in 2011.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-5861403324554350887?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/5861403324554350887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2011/01/offline-desktop-blog-clients-for-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/5861403324554350887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/5861403324554350887'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2011/01/offline-desktop-blog-clients-for-linux.html' title='Offline Desktop Blog Clients for Linux'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_jFVVVTW56rc/TReGYIoIReI/AAAAAAAABUw/f7n3eHFXjDs/s72-c/%5BUNSET%5D.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-8629149266715597797</id><published>2010-12-23T15:34:00.000-08:00</published><updated>2010-12-23T15:34:00.426-08:00</updated><title type='text'>DreamWeaver 3: how to publish (1999)</title><content type='html'>&lt;p&gt;&lt;em&gt;Here's a tutorial I had written back in 1999 when managing web-sites was a big thing and Dreamweaver was the most advanced tool on the market&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;strong&gt;Go to Sites&amp;gt;Define Sites&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-left: 0.25in; margin-bottom: 0in;"&gt;You will see this window&lt;/p&gt;&lt;p style="margin-left: 0.25in; margin-bottom: 0in;"&gt;Click on New&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;img src="http://lh5.ggpht.com/_jFVVVTW56rc/TQ_nNcro_SI/AAAAAAAABUA/nat4BCx3ToA/%5BUNSET%5D.png" alt="" width="282" height="215" /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;strong&gt;Fill it out as follows&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;strong&gt;&lt;img src="http://lh4.ggpht.com/_jFVVVTW56rc/TQ_niksGaaI/AAAAAAAABUE/YrGCLc_wkUE/%5BUNSET%5D.png" alt="" /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Now after you fill out the Local 	Info. Fill out the Web Server Info&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;img src="http://lh5.ggpht.com/_jFVVVTW56rc/TQ_nqZBww9I/AAAAAAAABUI/y1SBR8nG-hA/%5BUNSET%5D.png" alt="" /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Good. Now fill out the Check-in 	Check out window info&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt; &lt;/ol&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;img src="http://lh6.ggpht.com/_jFVVVTW56rc/TQ_nx2BnX3I/AAAAAAAABUM/E4QCVtxg8lU/%5BUNSET%5D.png" alt="" width="495" height="317" /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Site map layout is next&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt; &lt;/ol&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;img src="http://lh5.ggpht.com/_jFVVVTW56rc/TQ_n1nq3RbI/AAAAAAAABUQ/xV9DFWpuCr4/%5BUNSET%5D.png" alt="" width="495" height="317" /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;Home Page: enter your own path to the index.html that lives on your hard drive. (in the above picture I store it in a a folder called rohitsood.com which is in a folder called www which is under a folder called MyFolder in C drive). Give your own path or browse to it.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Next few settings are simple&lt;/p&gt;&lt;ol&gt; &lt;/ol&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;img src="http://lh4.ggpht.com/_jFVVVTW56rc/TQ_n52VpaLI/AAAAAAAABUU/iQRxVyMnExQ/%5BUNSET%5D.png" alt="" width="495" height="317" /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;strong&gt;Click OK and Done.&lt;/strong&gt; You can connect and &amp;ldquo;checkout&amp;rdquo; the site. From Dreamweaver.&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-8629149266715597797?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/8629149266715597797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/12/dreamweaver-3-how-to-publish-1999.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8629149266715597797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8629149266715597797'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/12/dreamweaver-3-how-to-publish-1999.html' title='DreamWeaver 3: how to publish (1999)'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_jFVVVTW56rc/TQ_nNcro_SI/AAAAAAAABUA/nat4BCx3ToA/s72-c/%5BUNSET%5D.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-1193726824518249174</id><published>2010-12-06T03:30:00.000-08:00</published><updated>2010-12-06T09:36:31.132-08:00</updated><title type='text'>Dream Act will Support Small Business and Entitlements</title><content type='html'>In the next two decades America will see a structural shift and displacement of its demographics that it hasn't experienced in the past 50 years. Baby Boomers will retire and depend heavily on entitlements like Medicare and Social Security. A significantly contracted workforce will threaten the stability of the United States government and it's global economic power.&lt;br /&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;img alt="" height="179" src="http://t1.gstatic.com/images?q=tbn:ANd9GcTS0_MNUSzug_jLpmM9_2m7qKIoAhnfNe-g4jFtuPbL7UNU-SG5" width="282" /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;em&gt;Fast Forward 2010: Immigrants Have a Dream&lt;/em&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Structural adaptation, and realignment is going to be&amp;nbsp;desperately&amp;nbsp;needed starting 2011.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;The Dream Act, that is currently stalled in Congress, will boost small businesses and the American economy over the next decade. The bill indirectly provides necessary relief to citizens and retirees. Here's why: as children of immigrants in schools and colleges across America graduate - a permanent residence status ("Green Card") will legally permitted them to start small businesses all over. This educated and skilled workforce will provide, fill and generate jobs at all scales of businesses and support entitlements via taxation. However, a vast majority of the American population feels threatened by a misguided notion that illegal immigrants hurt the economy and legal immigrats "take our jobs". The immigration grid lock over the past 10 years has led to a brain drain via "outsourcing" of services and manufacturing. This is not sustainable. Continuing to penalize children of immigrants is not a good way to move forward.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;img alt="" height="183" src="http://t1.gstatic.com/images?q=tbn:ANd9GcSSsDT44CeWN4uHZL9xkZUMOkuwkntxMh2OfPMuBUA7riwl_CbaAg" width="275" /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;The Dream Act supports children of illegal immigrants to gain a status that allows them to work, open a business and go to college in the United States.&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;img alt="" height="221" src="http://t2.gstatic.com/images?q=tbn:ANd9GcStrckmkVNETZzI2wTx83ARRY3p9M0y4nyJn2ejOv6_q0vYnhop" width="228" /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;em&gt;We need to legalize the next generation so they can support small businesses.&lt;/em&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Our greatest danger is to brand children of immigrants and college graduates from other countries as "aliens" who need to "go back". A regression in a skilled workforce will cause a stagnation in the U.S economy. If the policy of the new congress is to promote a reverse brain drain via a strategic policy of inaction, future congresses will face an imminent threat of economic depression. It is in our best strategic interest to allow future hardworking children of immigrants in America to realize the American Dream. &amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-1193726824518249174?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/1193726824518249174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/12/dream-act-will-support-small-business.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1193726824518249174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1193726824518249174'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/12/dream-act-will-support-small-business.html' title='Dream Act will Support Small Business and Entitlements'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-6857774028160398111</id><published>2010-12-04T22:29:00.000-08:00</published><updated>2010-12-05T08:15:37.329-08:00</updated><title type='text'>InoxMovies.com  - an example of what NOT to do</title><content type='html'>&lt;p&gt;&lt;span style="font-size: medium;"&gt;One message for "InoxMovies.com" : Establish an Exception Handling&amp;nbsp;Architecture&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote&gt;&lt;span&gt;&lt;br /&gt;&lt;h1&gt;Server Error in '/' Application.&lt;hr size="1" /&gt;&lt;/h1&gt;&lt;h2&gt;&lt;em&gt;Server was unable to process request. --&amp;gt; Object reference not set to an instance of an object.&lt;/em&gt;&lt;/h2&gt;&lt;p&gt;&lt;span style="font-family: Arial,Helvetica,Geneva,SunSans-Regular,sans-serif;"&gt; &lt;strong&gt; Description: &lt;/strong&gt;An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt; Exception Details: &lt;/strong&gt;System.Web.Services.Protocols.SoapException: Server was unable to process request. --&amp;gt; Object reference not set to an instance of an object.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Source Error:&lt;/strong&gt;&lt;/p&gt;&lt;table bgcolor="#ffffcc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt; An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Stack Trace:&lt;/strong&gt;&lt;/p&gt;&lt;table bgcolor="#ffffcc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt;[SoapException: Server was unable to process request. --&amp;gt; Object reference not set to an instance of an object.]&lt;br /&gt;   System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +431766&lt;br /&gt;   System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +204&lt;br /&gt;   WebReference.SeatBook.ShowSeats(Int64 TheatreId, Int64 BookingId, String ShowClass, Int64 NoOfTickets, String PartnerId, String PartnerPwd) +195&lt;br /&gt;   seatlayout.Seat_Layout() +743&lt;br /&gt;   seatlayout.Page_Load(Object sender, EventArgs e) +3161&lt;br /&gt;   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14&lt;br /&gt;   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35&lt;br /&gt;   System.Web.UI.Control.OnLoad(EventArgs e) +99&lt;br /&gt;   System.Web.UI.Control.LoadRecursive() +50&lt;br /&gt;   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;hr size="1" /&gt;&lt;span style="font-family: Arial,Helvetica,Geneva,SunSans-Regular,sans-serif;"&gt; &lt;strong&gt;Version Information:&lt;/strong&gt;&amp;nbsp;Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3082 &lt;/span&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-6857774028160398111?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/6857774028160398111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/12/inoxmoviescom-example-of-what-not-to-do.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6857774028160398111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6857774028160398111'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/12/inoxmoviescom-example-of-what-not-to-do.html' title='InoxMovies.com  - an example of what NOT to do'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-3238126639692157590</id><published>2010-12-01T13:49:00.000-08:00</published><updated>2010-12-01T13:49:00.609-08:00</updated><title type='text'>Removing Oxy Mouse Pointer</title><content type='html'>&lt;p&gt;I have been using Linux off an on for the past 10 years for personal needs. Having never tried KDE, I installed it on the latest Ubuntu distribution. It is quite fancy and has lots of good features, however it has its share of issues too.&lt;br /&gt;Surprisingly one of the features leaked into my Gnome sessions: the mouse pointer.&lt;/p&gt;&lt;p&gt;For whatever reason KDE's Oxygen theme with its weird mouse pointer would refuse to go away in Gnome - no matter how much I tried changing the theme.&lt;/p&gt;&lt;p&gt;&lt;img src="http://lh4.ggpht.com/_jFVVVTW56rc/TPKw3mg39rI/AAAAAAAABTU/Cmq7X26pVfI/%5BUNSET%5D.png" alt="" width="181" height="47" /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;rohit@lenovo:~$ uname -a&lt;br /&gt;Linux lenovo 2.6.32-24-generic-pae #42-Ubuntu SMP Fri Aug 20 15:37:22 UTC 2010 i686 GNU/Linux&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;After scouring the net, and not finding much help I decided to "reset"; this turned out to be difficult as well. No matter which other default theme I selected, it still did not remove the offending pointer style. Oxy persisted. Here's what worked - I &amp;nbsp;removed the theme files under ~/.theme. Brutal, but it works. Now I have a nice black pointer.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-3238126639692157590?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/3238126639692157590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/12/removing-oxy-mouse-pointer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3238126639692157590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3238126639692157590'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/12/removing-oxy-mouse-pointer.html' title='Removing Oxy Mouse Pointer'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_jFVVVTW56rc/TPKw3mg39rI/AAAAAAAABTU/Cmq7X26pVfI/s72-c/%5BUNSET%5D.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7348052009689934252</id><published>2010-11-28T06:30:00.001-08:00</published><updated>2010-11-28T06:34:37.060-08:00</updated><title type='text'>COTS versus OSS: Why</title><content type='html'>&lt;p&gt;Open Source versus Commercial Software is an important consideration that is often overlooked. This article provides a high level overview of open source considerations.&lt;/p&gt;  &lt;p&gt;Open source is being adopted by developed nations and corporations at a greater pace than developing economies. Organizations of all kinds are consciously adopting open source software for critical business needs: Deutsche Börse Group, Deutsche Bank, the Danish government, BlueScope Steel, NASA, the Associated Press, J.P. Morgan Chase and Google. &lt;/p&gt;  &lt;p&gt;There have been many government initiatives around open source software, as governments in Brazil, China, India, Korea, Japan, Europe, Australia and the United States, as well as the United Nations, considers open source policy and options. And large information technology vendors such as IBM, Intel, Hewlett- Packard, Oracle, SAP, Sun Microsystems and Dell are supporting open source (Gustafson, Koff n.d.). &lt;/p&gt;  &lt;p&gt;What is the catch? Like all software – open source too has its costs. Maintenance and support costs are left to the adopter to absorb. Koch (2003) elaborates, just because you download open-source applications for free doesn't mean you won't have a whole host of associated costs such as maintenance, integration and support. Security concerns have often been raised “because anyone can see the code” is debatable. This notion is easily dismissible.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://t3.gstatic.com/images?q=tbn:ANd9GcRjq76_utUHNGxwxK0HKf8mMLVAZxHqWg-Kv74OcdHsN73doSfQMg" /&gt; &lt;/p&gt;  &lt;p&gt;Licensing can be tricky for smaller companies who are vulnerable to lawsuits through lack of indemnity in open source products. The “as-is” aspect of open source software is risky. There is a possibility that part of open source software “copied code” from some other licensed product. It is very difficult for the companies to identify or compare open source with licensed software products to identify theft. This exposes the company using open source software to lawsuits from companies claiming that the open source software violates their intellectual property rights. New markets and emerging economies should take note of this risk. &lt;/p&gt;  &lt;p&gt;Price is another factor: since open source software can be traded in markets just like any other kind of artifact one cannot definitely tag open source software as having zero price, explain Scacchi (2003). Programmers often explain this seemingly incongruity with simple shorthand: when you hear the term “free” software, think “free speech” not “free beer”; or ‘software libre’ not ‘software gratis’. The fact that open source software is free can be confusing to skeptics and adopters. Scacchi (2003) explains the meaning of “free” in open source software. He elucidates that “Proprietary source code is the touchstone of the conventional intellectual property regime for computer software. Proprietary source code is supposed to be the fundamental reason why Microsoft can sell Windows for around $100 or why Oracle can sell its System 8 data management software for many thousands of dollars”. Open source software process “inverts this logic” (Scacchi 2003).It differs from commercial software in one fundamental aspect – source code is distributed with the runtime binaries of open source products. All documentation, source code and the runtime binaries are provided by the development community for free. &lt;/p&gt;  &lt;p&gt;Adopters must be able to bare the hidden costs associated with open source software. The success of open source software is surprisingly not attributed to its zero monitory cost of purchase. Schadler (2004) attributes the success of open source to high availability, self-training opportunity, and support. He contrasts this with commercial software and underlines the non-availability of software and self-training. &lt;/p&gt;  &lt;p&gt;Although open source is free, it is not free of obligations and lack of guaranteed support. This makes it less attractive for emerging economies and risk averse entities. Just as free speech is not intended primarily for oppressed dictatorships, in the same way open source is not intended for poor or developing nations and economies alone. Not only emerging economies, but all types of economies and corporations should consider a policy of open source software adoption.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7348052009689934252?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7348052009689934252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/11/cots-versus-oss-why.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7348052009689934252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7348052009689934252'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/11/cots-versus-oss-why.html' title='COTS versus OSS: Why'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-481204342439038349</id><published>2010-10-16T07:26:00.001-07:00</published><updated>2010-11-28T09:21:26.659-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Support Open Source Initiatives</title><content type='html'>&lt;p&gt;A survey by Boston Consulting Group in of developers using  SourceForge found that respondents were, on average, 30 years old and  had 11 years of programming experience. These were experienced  professionals contributing to quality software products for free. Open Source is so pervasive now that people don&amp;rsquo;t talk about it or discuss it anymore. The assumption is that quality software will continue to be available for free. Without donations and support this is not possible, especially in tough economies. I have been an active user of OSS at work for almost every single project. Software development projects utilize a plethora of components that are open source. Open Source Object Relational Mapping frameworks, Model-View Controller frameworks to full scale operating systems, application servers and databases are used across business applications everywhere. So what is the basic idea behind the open source movement ?&lt;/p&gt;&lt;p&gt;&amp;ldquo;The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, (and) people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.&amp;rdquo; (opensource.org)&lt;/p&gt;&lt;p&gt;Community credibility is an underlying motivator for joining an open source project. The lure of open source includes solving technical challenges; drawing of making a contribution the rest of the community can use; the enhanced skills and reputation (marketability) that comes from being an active member of the community; and the potential for providing fee-based services for open source software. Developers are motivated by the opportunity to branch out and work with products they don&amp;rsquo;t normally work with in their day jobs &amp;ndash; say, video programming &amp;ndash; and they are also motivated by pure fun (Gustafson and Koff). Every single corporate entity in the U.S. has some open source  utilization today in either a desktop environment, server environment,  in the cloud environment or all. It exists at all level and is pervasive  across the board. OSS is here to stay: did you use an OSS today? If so  consider donating to software foundation that supports it.&lt;/p&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post"&gt; &lt;input name="cmd" type="hidden" value="_s-xclick" /&gt;&lt;br /&gt; &lt;input name="hosted_button_id" type="hidden" value="UN3H8X6J6NYVS" /&gt;&lt;br /&gt; &lt;input alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" type="image" /&gt;&lt;br /&gt; &lt;img src="https://www.paypal.com/en_US/i/scr/pixel.gif" border="0" alt="" width="1" height="1" /&gt;&lt;br /&gt; &lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-481204342439038349?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/481204342439038349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/10/support-open-source-initiatives.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/481204342439038349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/481204342439038349'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/10/support-open-source-initiatives.html' title='Support Open Source Initiatives'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-8783172125598090776</id><published>2010-09-12T16:06:00.001-07:00</published><updated>2010-09-12T16:06:13.522-07:00</updated><title type='text'>Setting up Apache Ant 1.8 in Ubuntu 10.04</title><content type='html'>&lt;p&gt;There seems to be a lot of incomplete tutorials out there relative to installation and configuration of Ant on Ubuntu. Here is how to do it correctly.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Open .bashrc and add the following lines&lt;/p&gt;&lt;p&gt;#Setting some paths&lt;br /&gt;export ANT_HOME=$HOME/tools/apache-ant-1.8.1&lt;br /&gt;export JAVA_HOME=/usr/lib/jvm/java-6-sun&lt;br /&gt;# Add stuff to the path and export it in one step &lt;br /&gt;export PATH=$PATH:$ANT_HOME/bin:$JAVA_HOME&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Prerequisites: download ant and expant that into a folder (I use $HOME/tools) for all my tools.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;rohit@lenovo:~$ ant -version&lt;br /&gt;Apache Ant version 1.8.1 compiled on April 30 2010&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Done.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-8783172125598090776?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/8783172125598090776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/09/setting-up-apache-ant-18-in-ubuntu-1004.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8783172125598090776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8783172125598090776'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/09/setting-up-apache-ant-18-in-ubuntu-1004.html' title='Setting up Apache Ant 1.8 in Ubuntu 10.04'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-1717177812200856229</id><published>2010-09-12T15:11:00.001-07:00</published><updated>2010-09-12T15:11:53.199-07:00</updated><title type='text'>Point-to-point SOA</title><content type='html'>p, li { white-space: pre-wrap; }&lt;p style="margin: 12px 0px; text-indent: 0px;"&gt;Service Oriented Architectures realizations are coupling departments within large organizations. Web-Services are being developed without compliance or guidance from any actionable enterprise architecture design. Without a full soup-to-nuts solution architecture template available to teams, well-intentioned developers are unfortunately creating a web of point-to-point systems architectures with SOA tools and technologies.&lt;/p&gt;&lt;p style="margin: 12px 0px; text-indent: 0px;"&gt;Vendors, marketing, tooling and technology isn't helping integration architectures evolve and arrive at the optimal quality attribute tradeoffs. Most quality attributes, like loose coupling, high cohesion, performance, scalability etc are skewing negatively.&lt;/p&gt;&lt;p style="margin: 12px 0px; text-indent: 0px;"&gt;&lt;img src="http://media.giantbomb.com/uploads/1/17166/929047-sad_face_large.jpg" alt="" /&gt;&lt;img src="http://t1.gstatic.com/images?q=tbn:ANd9GcRzlaP7Fmx6agUh7ga43xqsA3VCCU3BExViZUUHeImjyRd2hc4&amp;amp;t=1&amp;amp;usg=__JJ-GA9SgvMK4-DowIfXmHLJIyIQ=" alt="" /&gt;&lt;/p&gt;&lt;p style="margin: 12px 0px; text-indent: 0px;"&gt;It cannot be stressed enough that SOA is more dangerous with out a proper design in place, than no SOA at all. WSDL, SOAP, XSD, REST etc are still not properly understood or realized appropriately in many organizations. Basic systems architectures are unable to evolve due to a significant lack of skills, organizational constraints, poor processes, personnel and such.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-1717177812200856229?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/1717177812200856229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/09/point-to-point-soa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1717177812200856229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1717177812200856229'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/09/point-to-point-soa.html' title='Point-to-point SOA'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-5711204426212974242</id><published>2010-09-02T14:03:00.001-07:00</published><updated>2010-09-02T14:03:29.660-07:00</updated><title type='text'>A Combination Algorithm</title><content type='html'>&lt;p&gt;The problem: Write an algorithm that can provide combinations of a given word. The combinations need not contain a new word with the same letters.&lt;/p&gt;  &lt;p&gt;Input: ABCDE&lt;/p&gt;  &lt;p&gt;OUTPUT: ABCDE, ABCD, BCDE, ABC, BCD, CDE, AB, BC, CD, DE etc.&lt;/p&gt;  &lt;p&gt;There are several algorithms out there that describe how to create effective combinations, SEPA does permutations, bubble sort and nested loops etc. &lt;/p&gt;  &lt;p&gt;After spending some time looking for what’s been done - the one I liked the most was as follows: [0,0,0], [0,0,1], [0,1,1] [1,1,1]: null, A, AB ABC etc.&lt;/p&gt;  &lt;p&gt;Incrementing decimals, start with zero, get a binary representation and map it to the array positions. This will give the combinations in constant time. A very efficient algorithm.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160; /**     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; * Take a word and return a collection of combinations      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; * @param sortedWord      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; * @return      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; */      &lt;br /&gt;&amp;#160;&amp;#160; public Collection&amp;lt;String&amp;gt; generateCombinations(String sortedWord)      &lt;br /&gt;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Collection&amp;lt;String&amp;gt; c=new HashSet&amp;lt;String&amp;gt;();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; char[] broken=sortedWord.toCharArray();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int combinationLength=new Double(Math.pow(2L, (new Long(sortedWord.length())).longValue())).intValue();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; //&amp;#160; System.out.println(&amp;quot;Combination len=&amp;quot;+combinationLength);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for(int loop=combinationLength-1;loop&amp;gt;0;loop--)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; String binary=fillWithZeros(Long.toBinaryString(loop),sortedWord.length());      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; char[] bins=binary.toCharArray();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; StringBuffer wb=new StringBuffer();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for(int a=0;a&amp;lt;bins.length;a++)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Integer binValue=new Integer(&amp;quot;&amp;quot;+bins[a]);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if(binValue.intValue()==1)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; wb.append(broken[a]);&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c.add(wb.toString());      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;While there is a nested loop, the loops can be replaced with other techniques. &lt;/p&gt;  &lt;p&gt;This is a very high performance combination creation technique. Comments/Improvements are welcome.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-5711204426212974242?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/5711204426212974242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/09/combination-algorithm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/5711204426212974242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/5711204426212974242'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/09/combination-algorithm.html' title='A Combination Algorithm'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-3712637200693630966</id><published>2010-07-03T08:00:00.001-07:00</published><updated>2010-07-03T08:00:09.157-07:00</updated><title type='text'>Tomcat, Struts, Tiles and Hibernate Migration</title><content type='html'>&lt;p&gt;&lt;font size="3" face="Courier New"&gt;I had an old ‘home’ project that was based on the following technologies:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(1) Tomcat &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(2) Hibernate&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(3) MySQL&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(4) Struts 1x&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(5) Tiles 1x&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;I had developed this in 2004-2005 for a user-experience experiment I had designed.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;I just decided to upgrade the technologies to :&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(1) Geronimo&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(2) OpenJPA&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(3) MySQL &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(4) Struts 2&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;(5) Tiles 2.2x&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;Why ? Mainly to experience what a migration path might be. &lt;/font&gt;&lt;/p&gt; &lt;font size="3" face="Courier New"&gt;   &lt;p&gt;     &lt;br /&gt;As I go through the effort – it turns out that there is no easy migration path. OpenJPA is vastly different from Hibernate. Struts 1x and Struts 2x have very little in common. It is a full rewrite. Tiles 2x has the most common features deprecated, and it too is a rewrite – given the jsp pages need to be updated. The latest version of Tiles is incompatible with the latest version of Struts (as of May 2010).&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;blockquote&gt;     &lt;pre&gt;java.lang.NullPointerException&lt;br /&gt;	org.apache.tiles.definition.UnresolvingLocaleDefinitionsFactory.getDefinition(UnresolvingLocaleDefinitionsFactory.java:102)&lt;/pre&gt;&lt;br /&gt;  &lt;/blockquote&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;WARN&amp;#160; [TilesContainerFactory] DEPRECATION WARNING! You are using parameter-based initialization, that is no longer supported! Please see docs: &lt;a href="http://tiles.apache.org/framework/tutorial/configuration.html"&gt;http://tiles.apache.org/framework/tutorial/configuration.html&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You’re better off using an older version of Tiles as long as you don’t care about Freemarker etc and are simply going to use JSPs on the view.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;All in all, there is no migration it is a full rework/refactor/rewrite and is pretty significant and directly correlated to the size of the enterprise app. This information is good to have for those looking to ‘migrate’ legacy JEE apps.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-3712637200693630966?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/3712637200693630966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/07/tomcat-struts-tiles-and-hibernate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3712637200693630966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3712637200693630966'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/07/tomcat-struts-tiles-and-hibernate.html' title='Tomcat, Struts, Tiles and Hibernate Migration'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-2470213344993994734</id><published>2010-03-31T19:27:00.001-07:00</published><updated>2010-03-31T19:27:34.608-07:00</updated><title type='text'>Debate over Domain Agnostic Connections</title><content type='html'>&lt;p&gt;&lt;font face="Courier New"&gt;I recently introduced after a proof of concept and technology Service Integration Bus to enable Event Driven Architecture style integration across the commercial enterprise. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;The first team implemented it exactly as the POC specified. The second team that was responsible to be the durable subscriber raised concerns about Domain Agnostic Connection factories.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;The claim was that using domain Specific Connection Factories makes life easier. The basic difference between the two is that one uses for example TopicConnectionFactory to create a TopicConnection, whereas the domain independent connection factory lets you look up a ConnectionFactory to create either a TopicConnection or a QueueConnection. This lets you get flexibility in the app and is basically a new feature in JMS specs.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;Anyway the second team was up in arms about using domain agnostic connection factories. “Why is architecture recommending this? It’s making life difficult for us!”. Of course the first thing you learn in software architecture school is :make life hard for the development community. The tone and attitude changed at the end of this debate – architecture was a friend and developers happily followed the direction. How ? Surprised me. This blog entry is probably a note to myself.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;img src="http://ts1.mm.bing.net/images/thumbnail.aspx?q=1428299522312&amp;amp;id=1ca7e25435edbb71653f1081b6633794&amp;amp;url=http%3a%2f%2fwww.wtpsmercer.k12.nj.us%2f44322091813722420%2flib%2f44322091813722420%2fDebate1.gif" /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;How do you convince developers to do the right thing, ‘change’ and adopt a new way of doing things? Sift through words and select the right bytes. Software architects must recognize ‘code’ in spoken language. Understanding the subtle hints and uncovering the real issues. This is the key. Sounds like management skills? Yep, a little bit. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;This is not science and they don’t teach you this in college. Negotiation and arguments must be approached uniquely each time based on context. When this ‘senior’ software dev was lamenting about how hard his life is going to get because architecture decided – he was starting getting an audience that did not understand the topic. He kept saying that we should not use Domain Agnostic Connection factories, I needed to break it down quickly and stop the nonsense. Usually when there is resistance to change, it is mostly because this new change has not really sunk in mentally. Addressing concerns objectively is the first step.&amp;#160; Use technical facts, lay it down straight. This needs to be the corner stop of every architect and a must-have skill. If you don’t know why you’re recommending something, just don’t. If you do -&amp;#160; SEI’s ATEC skills comes in pretty handy here. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;In this particular case, the facts were that the recommendation had clear advantages. However, this did not seem to satisfy the senior developer. After some social digging it turns out that the fact that the architectural decision to use Domain Agnostic Connection Factories was made without the sr developer in question being involved was a contributing factor to the resistance. This little tit-bit of information was gathered from his peer. I opined that this was the key to his constant lamenting. With this hypothesis I formulated the next steps. Now, one has to be careful because this is the type of situation when people start looking backward and not forward. Even in hindsight, it was not possible to predict this engineer’s interest in the topic. It was explained that these decisions were made along with a host of other decisions through a Proof Of Concept and technology evaluation. This was reviewed and approved by other senior stakeholders. It was documented on the wiki and the link was sent via email. I worked with the technical person senior to him in his team – and explained the matter in technical terms. He heard from him and me, saw that others were on the same page too. A few more emails with links to document and an encouraging note – things started to look better. The attention he received probably made him realize that it wasn’t a purposeful exclusion on that decision but the natural process of technology selection by a whole host of senior technologists. The technical reason for using domain agnostic connection factories is sound and makes sense for advanced JMS systems that don’t want to have 2 connection factories depending on what messaging resource they are connecting to.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;He replied back saying that he would follow this direction. It turns out that the direction was finally adopted. So what is the moral of the story ? Sometimes it matters how you make others feel about technology regardless of what the technology does for them.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-2470213344993994734?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/2470213344993994734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/03/debate-over-domain-agnostic-connections.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2470213344993994734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2470213344993994734'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/03/debate-over-domain-agnostic-connections.html' title='Debate over Domain Agnostic Connections'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7312166732954427568</id><published>2010-02-24T19:55:00.001-08:00</published><updated>2010-02-24T19:55:45.777-08:00</updated><title type='text'>Are DSLs simply XML Hell?</title><content type='html'>&lt;p&gt;DSL : what is it ? You have used a Domain Specific Language. Trust me. Demystify DSL: it simply a narrowed and specific semantic problem that solves a narrow set of problems.&lt;/p&gt;  &lt;p&gt;Model-View-Controller (MVC) is a common pattern for Web development, Apache Struts has come to the rescue in the past. Each Struts application uses a configuration file (XML). The language (dialect) of the XML specifies exactly how the MVC pattern would be implemented for the specific implementation this is DSL.&lt;/p&gt;  &lt;p&gt;Object Relational mapping was a common problem made worse by general purpose languages and APIs(e.g. Java and JDBC), along came the a natural ORM (e.g. Hibernate) with specific configuration files that mapped POJOs to Tables. The configuration file (XML) supported a dialect (ORM DSL), of course it was not called DSL back then they were simply configuration files (aka XML Hell).&lt;/p&gt;  &lt;p&gt;DSLs don’t necessarily mean XML. For example, running rules in Java was ‘simplified’ by a Rules Engine implementation e.g. Jess. This used a DSL - Jess 7 has its own declarative XML rule language called &amp;quot;JessML&amp;quot; (a DSL).&lt;/p&gt;  &lt;p&gt;What is the advice for people who are trying to learn DSLs and master them ? Don’t. Try not to master DSLs instead focus on the domain of the problem, understand the software architecture and how it fits, understand what the pattern of problems are, figure out how best to apply design patterns that solve them. Understand the pain of the domain (e.g. web-site design, object-relational mapping framework, rules etc), understand the inefficiencies, then focus on an over all design within the domain that solves most of the problems. Finally, look at the DSL as a tool to solve the problems in a specific efficient way. Then you will see there is no XML but simply a graceful solution.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7312166732954427568?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7312166732954427568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/02/are-dsls-simply-xml-hell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7312166732954427568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7312166732954427568'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/02/are-dsls-simply-xml-hell.html' title='Are DSLs simply XML Hell?'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-3494628243269964138</id><published>2010-01-17T12:33:00.000-08:00</published><updated>2010-05-20T19:40:55.831-07:00</updated><title type='text'>EJB 3.1 (Asynchronous Beans)</title><content type='html'>Enterprise Java Beans specifications have finally matured to a point where it may actually help with performance: container-managed Asynchronous beans.&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_jFVVVTW56rc/S1N0MINAWeI/AAAAAAAAA8k/xhQuw7l6rNI/s1600-h/speed%5B5%5D.jpg"&gt;&lt;img alt="speed" border="0" height="152" src="http://lh6.ggpht.com/_jFVVVTW56rc/S1N0MdexeLI/AAAAAAAAA8o/n5h7tTyMCTI/speed_thumb%5B1%5D.jpg?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="speed" width="244" /&gt;&lt;/a&gt; &lt;br /&gt;You can now specify a Session Bean (and/or a method) to be asynchronous. End-user perceived wait times can be significantly reduced with an asynchronous programming model that doesn’t force the complexity of AJAX, MoM or application-managed server threads. &lt;br /&gt;With EJB 3.1 when you call the method from your client, the container will take the request and return immediately. Then it will dispatch the request to a bean instance within the pool of SLSBs.&lt;br /&gt;The return type for async methods is either void or Future. The Future interface provides methods to check whether the operation has completed, gets the result – with options for a timeout and also cancel the operation. A concrete implementation of &lt;em&gt;Future&lt;/em&gt; is &lt;em&gt;AsyncResult&lt;/em&gt; which is available in the &lt;em&gt;javax.ejb&lt;/em&gt; package.&lt;br /&gt;Stateless EJBs may choose to return the AsyncResult object with any type returned. Transaction propagation is simple &amp;amp;&amp;nbsp; limited - REQUIRED=REQUIRES_NEW attributes. If your client is already in a transaction, or your beans are in a transaction, the async method is called in a totally new transaction with no propagation (as in synchronous methods). This makes a lot of sense, because the entire purpose of asynchronous calls are to decouple a process orchestration to speed up things. However, it does complicate compensation and atomicity. Software architects need to trade-off between transaction demarcation and generally ACID properties across various calls. Any application exception that gets thrown by the bean for a void return type cannot be handled by the client. If your bean can encounter an exception and your client cares about handling it, then return a Future&amp;lt;V&amp;gt; form the bean. The client must handle the exception on a Future.get and &lt;em&gt;getCause&lt;/em&gt; from &lt;em&gt;ExecutionException&lt;/em&gt;.&lt;br /&gt;An entire bean (itself or via it’s super class) can be marked as @Asynchronous. Sometimes it makes sense to expose the same business function as a synchronous and an asynchronous interface, using the @Asynchronous tag can provide the cohesion with a decoupled interaction model. This opens the door to multiple use-cases that need a simple way to conduct asynchronous calls without the complexity of MDBs or managing application owned threads. EJB 3.1 has built upon the POJO model for EJBs with an excellent way to realize asynchronous server-side models.&lt;br /&gt;&lt;div align="right"&gt;&lt;span class="Apple-style-span" style="color: grey;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-3494628243269964138?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/3494628243269964138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/01/ejb-31-asynchronous-beans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3494628243269964138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3494628243269964138'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/01/ejb-31-asynchronous-beans.html' title='EJB 3.1 (Asynchronous Beans)'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_jFVVVTW56rc/S1N0MdexeLI/AAAAAAAAA8o/n5h7tTyMCTI/s72-c/speed_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-8084640179940918616</id><published>2010-01-02T10:47:00.000-08:00</published><updated>2010-02-19T16:32:07.399-08:00</updated><title type='text'>Google Chrome @ 5% (almost)</title><content type='html'>Google Chrome is now the 3rd most popular browser in the world.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.gottabemobile.com/wp-content/uploads/google-chrome-navigateur-web-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="186" src="http://www.gottabemobile.com/wp-content/uploads/google-chrome-navigateur-web-1.jpg" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;According to recent reports &lt;a href="http://marketshare.hitslink.com/report.aspx?qprid=0&amp;amp;sample=11"&gt;here&lt;/a&gt; and &lt;a href="http://www.computerworld.com/s/article/9142958/Google_s_Chrome_grabs_No._3_browser_spot_from_Safari?taxonomyId=1"&gt;here&lt;/a&gt;, Google's Chrome has overtaken Apple's Safari in the browser wars.&amp;nbsp;While still at less than 5% chrome is no match for Microsoft's Internet Explorer which is slightly above 62%. Chrome is gaining strength quickly mostly due to two quality attributes: speed and reliability. Chrome is&amp;nbsp;noticeably&amp;nbsp;faster than Opera, IE, Firefox and Safari. It's reliability is unsurpassed due to its multi-process architecture.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://www.realtown.com/members/Judith2/files/three.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://www.realtown.com/members/Judith2/files/three.jpg" width="150" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Coming in at #3 just months after it's GA release is commendable. With new features like bookmark sync and support for themes and plug-ins it will rival the # 2 spot in a couple years, eating away Microsoft's and Mozilla's share.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-8084640179940918616?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/8084640179940918616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2010/01/google-chrome-5-almost.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8084640179940918616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8084640179940918616'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2010/01/google-chrome-5-almost.html' title='Google Chrome @ 5% (almost)'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-6806057240762272650</id><published>2009-12-08T18:00:00.000-08:00</published><updated>2010-12-05T08:18:16.172-08:00</updated><title type='text'>SSH and Strawberry Perl</title><content type='html'>&lt;p&gt;Strawberry Perl doesn't come with SSH modules pre-installed.&lt;/p&gt;&lt;p&gt;&lt;img src="http://t3.gstatic.com/images?q=tbn:ANd9GcRN7tiOp6LAByzwSsAJvQmtP-qgRTUjaE31BHCVY0Gq4A78FCbZ8Q" alt="" width="229" height="220" /&gt;&lt;/p&gt;&lt;p&gt;Here is how to insall&lt;/p&gt;&lt;p&gt;C:\&amp;gt;perl -MCPAN -e shell&lt;/p&gt;&lt;p&gt;cpan shell -- CPAN exploration and modules installation (v1.9304)&lt;br /&gt;ReadLine support enabled&lt;/p&gt;&lt;p&gt;cpan&amp;gt; install Net::SSH&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://cpan.strawberryperl.com/authors/01mailrc.txt.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to cpan.strawberryperl.com:80 (connect: timeout)]&lt;/p&gt;&lt;p&gt;As a last ressort we now switch to the external ftp command 'C:\WINDOWS\system32\ftp.EXE'&lt;br /&gt;to get 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp3104'.&lt;/p&gt;&lt;p&gt;Doing so often leads to problems that are hard to diagnose.&lt;/p&gt;&lt;p&gt;If you're victim of such problems, please consider unsetting the ftp&lt;br /&gt;config variable with&lt;/p&gt;&lt;p&gt;o conf ftp ""&lt;br /&gt; o conf commit&lt;/p&gt;&lt;p&gt;I would like to connect to one of the following sites to get 'authors/01mailrc.txt.gz':&lt;/p&gt;&lt;p&gt;http://www.perl.org/CPAN/&lt;br /&gt; ftp://ftp.perl.org/pub/CPAN/&lt;/p&gt;&lt;p&gt;Is it OK to try to connect to the Internet? [yes] yes&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://www.perl.org/CPAN/authors/01mailrc.txt.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to www.perl.org:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://cpan.strawberryperl.com/modules/02packages.details.txt.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to cpan.strawberryperl.com:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://www.cpan.org/modules/02packages.details.txt.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to www.cpan.org:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://www.perl.org/CPAN/modules/02packages.details.txt.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to www.perl.org:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; ftp://ftp.perl.org/pub/CPAN/modules/02packages.details.txt.gz&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://cpan.strawberryperl.com/modules/03modlist.data.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to cpan.strawberryperl.com:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://www.cpan.org/modules/03modlist.data.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to www.cpan.org:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://www.perl.org/CPAN/modules/03modlist.data.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to www.perl.org:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz&lt;br /&gt;Creating database file ...&lt;/p&gt;&lt;p&gt;Gathering information from index files ...&lt;br /&gt;Populating database tables ...&lt;br /&gt;Done!&lt;br /&gt;Running install for module 'Net::SSH'&lt;br /&gt;Running make for I/IV/IVAN/Net-SSH-0.09.tar.gz&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://cpan.strawberryperl.com/authors/id/I/IV/IVAN/Net-SSH-0.09.tar.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to cpan.strawberryperl.com:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://www.cpan.org/authors/id/I/IV/IVAN/Net-SSH-0.09.tar.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to www.cpan.org:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; http://www.perl.org/CPAN/authors/id/I/IV/IVAN/Net-SSH-0.09.tar.gz&lt;br /&gt;LWP failed with code[500] message[Can't connect to www.perl.org:80 (connect: timeout)]&lt;br /&gt;Fetching with LWP:&lt;br /&gt; ftp://ftp.perl.org/pub/CPAN/authors/id/I/IV/IVAN/Net-SSH-0.09.tar.gz&lt;br /&gt;Fetching with LWP:&lt;br /&gt; ftp://ftp.perl.org/pub/CPAN/authors/id/I/IV/IVAN/CHECKSUMS&lt;br /&gt;Checksum for C:\strawberry\cpan\sources\authors\id\I\IV\IVAN\Net-SSH-0.09.tar.gz ok&lt;br /&gt;Scanning cache C:\strawberry\cpan\build for sizes&lt;br /&gt;DONE&lt;/p&gt;&lt;p&gt;CPAN.pm: Going to build I/IV/IVAN/Net-SSH-0.09.tar.gz&lt;/p&gt;&lt;p&gt;Checking if your kit is complete...&lt;br /&gt;Looks good&lt;br /&gt;Writing Makefile for Net::SSH&lt;br /&gt;cp SSH.pm blib\lib\Net\SSH.pm&lt;br /&gt; IVAN/Net-SSH-0.09.tar.gz&lt;br /&gt; C:\strawberry\c\bin\dmake.EXE -- OK&lt;br /&gt;Running make test&lt;br /&gt;C:\strawberry\perl\bin\perl.exe "-Iblib\lib" "-Iblib\arch" test.pl&lt;br /&gt;1..1&lt;br /&gt;ok 1&lt;br /&gt; IVAN/Net-SSH-0.09.tar.gz&lt;br /&gt; C:\strawberry\c\bin\dmake.EXE test -- OK&lt;br /&gt;Running make install&lt;br /&gt;Prepending C:\strawberry\cpan\build\Net-SSH-0.09-cQfbZo/blib/arch C:\strawberry\cpan\build\Net-SSH-0&lt;br /&gt;.09-cQfbZo/blib/lib to PERL5LIB for 'install'&lt;br /&gt;Installing C:\strawberry\perl\site\lib\Net\SSH.pm&lt;br /&gt;Appending installation info to C:\strawberry\perl\lib/perllocal.pod&lt;br /&gt; IVAN/Net-SSH-0.09.tar.gz&lt;br /&gt; C:\strawberry\c\bin\dmake.EXE install UNINST=1 -- OK&lt;/p&gt;&lt;p&gt;cpan&amp;gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-6806057240762272650?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/6806057240762272650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2009/12/ssh-and-strawberry-perl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6806057240762272650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6806057240762272650'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2009/12/ssh-and-strawberry-perl.html' title='SSH and Strawberry Perl'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-1379787400759463479</id><published>2009-12-08T04:07:00.000-08:00</published><updated>2010-02-19T16:32:07.539-08:00</updated><title type='text'>ADSL on Ubuntu 9.10 (Karmic Koala)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blogmotion.fr/wp-content/uploads/2009/10/ubuntu-karmic-koala.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 590px; height: 333px;" src="http://blogmotion.fr/wp-content/uploads/2009/10/ubuntu-karmic-koala.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Working with ADSL modems on Ubuntu 9.10:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configure: &lt;/span&gt;pppoeconf&lt;/span&gt;&lt;/span&gt;  &lt;pre style="font-family: georgia;"&gt;sudo pppoeconf&lt;/pre&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; Check: &lt;/span&gt;  &lt;span style="font-family:georgia;"&gt;rohit@lenovo:/etc/network$ more interfaces&lt;/span&gt; &lt;span style="font-family:georgia;"&gt;auto lo&lt;/span&gt; &lt;span style="font-family:georgia;"&gt;iface lo inet loopback&lt;/span&gt;   &lt;span style="font-family:georgia;"&gt;iface dsl-provider inet ppp&lt;/span&gt; &lt;span style="font-family:georgia;"&gt;pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf&lt;/span&gt; &lt;span style="font-family:georgia;"&gt;provider dsl-provider&lt;/span&gt;  &lt;span style="font-family:georgia;"&gt;auto eth0&lt;/span&gt; &lt;span style="font-family:georgia;"&gt;iface eth0 inet manual&lt;/span&gt;  &lt;span style="font-size:130%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Start: pon&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:georgia;"&gt;&lt;br /&gt;rohit@lenovo:/etc/network$ sudo pon dsl-provider&lt;/span&gt; &lt;span style="font-family:georgia;"&gt; Plugin rp-pppoe.so loaded.&lt;/span&gt; &lt;span style="font-family:georgia;"&gt; RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-weight: bold;"&gt;Stop:poff&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; sudo poff&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Log:plog&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;rohit@lenovo:/etc/network$ plog&lt;/span&gt; &lt;span style="font-family:georgia;"&gt;Dec  8 16:37:45 lenovo pppd[11102]: Plugin rp-pppoe.so loaded.&lt;/span&gt; &lt;span style="font-family:georgia;"&gt;Dec  8 16:37:45 lenovo pppd[11102]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5&lt;br /&gt;&lt;br /&gt;This method works well for BSNL's ADSL lines in Kolkata.&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/2331206083453814929-1379787400759463479?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/1379787400759463479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2009/12/adsl-on-ubuntu-910-karmic-koala.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1379787400759463479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1379787400759463479'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2009/12/adsl-on-ubuntu-910-karmic-koala.html' title='ADSL on Ubuntu 9.10 (Karmic Koala)'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-732993059438119891</id><published>2009-01-11T15:45:00.000-08:00</published><updated>2010-02-19T16:32:07.562-08:00</updated><title type='text'>Download HD Trailers from Apple Trailers</title><content type='html'>Apple movies now 'stream' mov files, they cannot be saved (like they us. for example, if you view the HD movie trailer for the movie "GOOD" - the URL on the page leads to this stream:&lt;br /&gt; http://movies.apple.com/movies/ifc_films/good/good_1080p.mov&lt;br /&gt;Saving link creates a mov file of 75k - not the movie.&lt;br /&gt;&lt;br /&gt;In order to download, add the letter 'h' (Hidden) to the movie file name:&lt;br /&gt;&lt;br /&gt;wget http://movies.apple.com/movies/ifc_films/good/good_&lt;span style="font-weight: bold;"&gt;h&lt;/span&gt;1080p.mov&lt;br /&gt;&lt;br /&gt;HD-Trailers.net has an article on this and a tip for Yahoo HD Movie Trailers - which I've never used...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-732993059438119891?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/732993059438119891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2009/01/download-hd-trailers-from-apple.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/732993059438119891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/732993059438119891'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2009/01/download-hd-trailers-from-apple.html' title='Download HD Trailers from Apple Trailers'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7908181126257536127</id><published>2008-12-23T10:24:00.000-08:00</published><updated>2011-03-31T16:58:32.439-07:00</updated><title type='text'>The Green Way to Fax (paper-less)</title><content type='html'>&lt;p&gt;If you are like me and work with PDFs a lot, often times you get PDFs that you may need to PRINT and sign, then fax - because they can't accept e-mails etc.&lt;/p&gt;&lt;p&gt;PRINTing and Faxing wastes Paper on both sides.&amp;nbsp;&lt;/p&gt;&lt;p&gt;There are many FOSS tools in Linux that allow you to edit PDFs, insert Text and images.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Use PDF Editor to open a PDF document, and open it for editing&amp;nbsp;&lt;/li&gt;&lt;li&gt;You can insert text and/or images (like a scanned ink signature)&lt;/li&gt;&lt;li&gt;Once done, simply save it as a PDF, or JPG image.&lt;/li&gt;&lt;li&gt;Now you have an electronic document filled out and 'physically signed' to be faxed away&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;img src="http://livegreenct.jbakerwebdesign.com/wp-content/uploads/2010/02/green-ribbon2.jpg" alt="" width="305" height="302" /&gt;&lt;/p&gt;&lt;p&gt;PDF Editor provides a very good interface to open a PDF and edit it in multiple ways, repackage and save it as a PDF.&lt;/p&gt;&lt;p&gt;Go to Ubuntu Software Center and search for 'PDFEditor'&lt;/p&gt;&lt;ol&gt; &lt;/ol&gt;&lt;div class="zemanta-articles"&gt;Related articles:&lt;br /&gt; &lt;ul class="zemanta-articles"&gt;&lt;li&gt;http://koan.studentenweb.org/software/jpeg2pdf.html&lt;/li&gt;&lt;li&gt;&lt;a href="http://putokaz.wordpress.com/2011/03/23/edit-pdf-documents-in-linux-with-pdf-mod/"&gt;Edit PDF Documents In Linux With PDF Mod&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.makeuseof.com/tag/2-ways-annotate-pdf-files-online/"&gt;2 Ways To Annotate Your PDF Files Online&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7908181126257536127?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7908181126257536127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2008/12/green-way-to-fax-paper-less.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7908181126257536127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7908181126257536127'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2008/12/green-way-to-fax-paper-less.html' title='The Green Way to Fax (paper-less)'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-5743511462291706977</id><published>2008-11-29T13:39:00.000-08:00</published><updated>2010-02-19T16:32:07.569-08:00</updated><title type='text'>Initialize Interpid Ibex</title><content type='html'>Well well - I decided to remove Vista from the Vostro, downgraded to XP and dual-booted with Ubuntu 8.10&lt;br /&gt;&lt;br /&gt;Installation was smooth as ever and grub worked perfectly. Dell ships with these broadcom network adapters that need b43 drivers - thankfully these are provided with the new dist.&lt;br /&gt;&lt;br /&gt;There is a bunch of software that I typically need/want/desire - here are the steps to get it&lt;br /&gt;&lt;br /&gt;I don't mind free closed-source software, so edit /etc/apt/sources.list &amp;amp; enable what's disabled.&lt;br /&gt;&lt;br /&gt;Enable medibuntu:&lt;br /&gt;&lt;br /&gt;&lt;p class="command"&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="command"&gt;sudo wget http://www.medibuntu.org/sources.list.d/intrepid.list -O /etc/apt/sources.list.d/medibuntu.list&lt;/p&gt;&lt;p class="command"&gt; &lt;/p&gt;&lt;p class="command"&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install medibuntu-keyring &amp;amp;&amp;amp; sudo apt-get update&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="command"&gt;&lt;/p&gt;&lt;br /&gt;Now go for the mass install - remember Google &amp;amp; Sun want you to agree with their license terms - so keep an eye out for those when the time comes tab to Ok and hit enter.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;sudo apt-get install python python-central python-gtk2 python-compizconfig compizconfig-settings-manager amarok flashplugin-nonfree amule audacity azureus banshee bluefish dvdrip filezilla msttcorefonts gnucash gstreamer* gtkpod-aac sun-java6-bin sun-java6-javadb sun-java6-jdk sun-java6-jre sun-java6-plugin k3b kino mplayer mozilla-mplayer quanta kompozer scribus xchat-gnome bittornado bittornado-gui sound-juicer helix-player mozilla-helix-player googleearth acroread mozilla-acroread non-free-codecs ubuntu-restricted-extras libdvdcss2 opera xine-ui xine-plugin xmms2 xmms2tray xmms2-plugin-airplay xmms2-plugin-alsa xmms2-plugin-ao xmms2-plugin-asf xmms2-plugin-asx xmms2-plugin-avcodec xmms2-plugin-cdda xmms2-plugin-cue xmms2-plugin-curl xmms2-plugin-daap xmms2-plugin-faad xmms2-plugin-flac xmms2-plugin-gme xmms2-plugin-gvfs xmms2-plugin-ices xmms2-plugin-icymetaint xmms2-plugin-id3v2 xmms2-plugin-jack xmms2-plugin-karaoke xmms2-plugin-lastfm xmms2-plugin-m3u xmms2-plugin-mad xmms2-plugin-mms xmms2-plugin-modplug xmms2-plugin-mp4 xmms2-plugin-musepack xmms2-plugin-normalize xmms2-plugin-ofa xmms2-plugin-oss xmms2-plugin-pls xmms2-plugin-pulse xmms2-plugin-rss xmms2-plugin-sid xmms2-plugin-smb xmms2-plugin-speex xmms2-plugin-vocoder xmms2-plugin-vorbis xmms2-plugin-wma xmms2-plugin-xml xmms2-plugin-xspf vlc vlc-data vlc-dbg vlc-nox vlc-plugin-arts vlc-plugin-esd vlc-plugin-ggi vlc-plugin-jack vlc-plugin-pulse vlc-plugin-sdl vlc-plugin-svgalib thunderbird skype&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Note: When you run Google Earth ensure that you have not Desktop Effects enabled.&lt;br /&gt;&lt;br /&gt;This should provide nearly all the functionality that's needed for a baseline O/S installation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-5743511462291706977?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/5743511462291706977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2008/11/initialize-interpid-ibex.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/5743511462291706977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/5743511462291706977'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2008/11/initialize-interpid-ibex.html' title='Initialize Interpid Ibex'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-4208715194137961843</id><published>2008-07-20T12:51:00.000-07:00</published><updated>2010-02-19T16:32:07.583-08:00</updated><title type='text'>Recover Dual Boot XP, Ubuntu 8.04 (Hardy Heron)</title><content type='html'>Issue: I needed to reinstall Windows XP on a dual-boot machine. No new partitions were needed, there were 2 O/S partitions - one with XP and the other with Ubuntu. After reinstalling Windows - the machine would simply boot into Windows XP (no dual-boot menu)&lt;br /&gt;&lt;br /&gt;Solution: Boot from Ubuntu LiveCD - choose to demo. Then open terminal.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;rohit@rs-dimension:~$ &lt;span style="font-weight: bold;"&gt;sudo -i&lt;/span&gt;&lt;br /&gt;[sudo] password for rohit:&lt;br /&gt;root@rs-dimension:~# &lt;span style="font-weight: bold;"&gt;grub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       [ Minimal BASH-like line editing is supported.   For&lt;br /&gt;         the   first   word,  TAB  lists  possible  command&lt;br /&gt;         completions.  Anywhere else TAB lists the possible&lt;br /&gt;         completions of a device/filename. ]&lt;br /&gt;&lt;br /&gt;grub&gt; &lt;span style="font-weight: bold;"&gt;find /boot/grub/stage1&lt;/span&gt;&lt;br /&gt; (hd0,4)&lt;br /&gt;&lt;br /&gt;grub&gt;&lt;span style="font-weight: bold;"&gt; root (hd0,4)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;grub&gt;&lt;span style="font-weight: bold;"&gt; setup (hd0)&lt;/span&gt;&lt;br /&gt; Checking if "/boot/grub/stage1" exists... yes&lt;br /&gt; Checking if "/boot/grub/stage2" exists... yes&lt;br /&gt; Checking if "/boot/grub/e2fs_stage1_5" exists... yes&lt;br /&gt; Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  16 sectors are embedded.&lt;br /&gt;succeeded&lt;br /&gt; Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,4)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded&lt;br /&gt;Done.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This setup grub in hd0 on my system - bringing back the boot menu. Simple&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-4208715194137961843?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/4208715194137961843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2008/07/recover-dual-boot-xp-ubuntu-804-hardy.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4208715194137961843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4208715194137961843'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2008/07/recover-dual-boot-xp-ubuntu-804-hardy.html' title='Recover Dual Boot XP, Ubuntu 8.04 (Hardy Heron)'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-9025657297424798279</id><published>2007-12-22T11:13:00.000-08:00</published><updated>2010-02-19T16:32:07.589-08:00</updated><title type='text'>iTunes Audio only Podcast &amp; Video only Podcast SmartList</title><content type='html'>(I) Unplayed Audio Podcast smartlist that plays 100 audio unheard unskipped podcasts starting from the earliest added.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Podcast&lt;/strong&gt; is true&lt;br /&gt;&lt;strong&gt;Play Count&lt;/strong&gt; is 0&lt;br /&gt;&lt;strong&gt;Skip Count &lt;/strong&gt;is 0&lt;strong&gt;&lt;br /&gt;Kind&lt;/strong&gt; does not contain MPEG-4&lt;br /&gt;&lt;br /&gt;Limit to 100 items selected by least recently added&lt;br /&gt;&lt;br /&gt;To create a Video podcast just change the Kind parameter on the smartlist to "contains"&lt;br /&gt;&lt;br /&gt;You can sort the list so it will play by artist, album (most Podcasts have album names consistent), genre etc&lt;br /&gt;&lt;br /&gt;Setting Video Kind to Movie admits most video podcasts however others get filtered out - so avoid this parameter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-9025657297424798279?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/9025657297424798279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2007/12/itunes-audio-only-podcast-video-only.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/9025657297424798279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/9025657297424798279'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2007/12/itunes-audio-only-podcast-video-only.html' title='iTunes Audio only Podcast &amp;amp; Video only Podcast SmartList'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7008545507081347565</id><published>2007-08-08T10:38:00.000-07:00</published><updated>2010-02-19T16:32:07.548-08:00</updated><title type='text'>Mule ESB Distribution</title><content type='html'>So I started playing with Mule starting Feb 2007. Mule is an integration platform that allows for pluggable connectors to other types of systems. There are so many descriptions of ESBs and architecture styles, and almost everyone claims to be an expert in the space.&lt;br /&gt;IMO Mule  is basically a container-type framework that rests on various open source products...&lt;br /&gt;if you go to the 1.4.1 distribution's opt folder the listing is as such:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a             444,463 acegi-security-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:28a             443,432 antlr-2.7.6.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a           1,599,570 axis-1.4.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a              31,191 axis-jaxrpc-1.4.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a              18,979 axis-saaj-1.4.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a             126,771 axis-wsdl4j-1.5.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a             327,810 backport-util-concurrent-3.0.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:28a             490,136 c3p0-0.9.0.4.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a             193,391 carol-2.0.5.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:28a             324,238 cglib-nodep-2.1_3.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a              36,342 commons-attributes-api-2.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a             188,671 commons-beanutils-1.7.0.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              30,117 commons-cli-1.0.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a              46,725 commons-codec-1.3.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a             571,259 commons-collections-3.2.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:28a              33,976 commons-dbutils-1.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a             139,966 commons-digester-1.7.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              71,442 commons-discovery-0.2.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a             279,781 commons-httpclient-3.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              83,613 commons-io-1.3.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a             285,104 commons-jxpath-1.2.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:17a             245,274 commons-lang-2.3.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:27a             180,792 commons-net-1.4.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              62,086 commons-pool-1.3.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              38,830 cryptix-jce-api-20050328.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a             296,386 cryptix-jce-provider-20050328.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              30,258 cryptix-message-api-20050405.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a             276,885 cryptix-openpgp-provider-20050405.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              16,652 cryptix-pki-api-20050405.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a             486,522 dom4j-1.4.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;08/08/2007  01:41p               6,205 ds.txt&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a              19,759 geronimo-ejb_2.1_spec-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              36,396 geronimo-j2ee-connector_1.5_spec-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a              19,259 geronimo-j2ee-management_1.0_spec-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              34,263 geronimo-jaxrpc_1.1_spec-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a              31,397 geronimo-jms_1.1_spec-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              14,637 geronimo-jta_1.0.1B_spec-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a               8,097 geronimo-qname_1.1_spec-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              24,611 geronimo-saaj_1.1_spec-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a              82,923 geronimo-servlet_2.4_spec-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a           2,356,373 groovy-all-1.0.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              10,832 groovy-engine-1.0-jdk14.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:28a           2,208,240 hibernate-3.2.2.ga.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a             386,591 hivemind-1.1.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a              74,662 hivemind-lib-1.1.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a              72,741 howl-logger-0.1.11.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a             405,545 javassist-3.0.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/23/2007  08:15a             226,915 jaxen-1.1.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:28a             603,060 jbpm-3.1.4.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              11,670 jcl104-over-slf4j-1.3.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:11a             153,253 jdom-1.0.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a             124,316 jotm-2.0.10.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a               5,798 jotm_jrmp_stubs-2.0.10.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              11,292 jruby-engine-1.0-jdk14.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              10,250 js-engine-1.0-jdk14.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              31,906 jug-2.0.0-asl.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:20a             120,640 junit-3.8.2.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              10,250 jython-engine-1.0-jdk14.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;08/09/2007  08:33a                   0 list.txt&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a             367,444 log4j-1.2.14.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              56,164 mockobjects-core-0.09.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a             148,213 mx4j-impl-2.1.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a             261,174 mx4j-jmx-2.1.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a             167,410 mx4j-remote-2.1.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a             485,831 mx4j-tools-2.1.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a             149,445 nanocontainer-1.0.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:24a             167,958 ognl-2.6.9.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a             682,351 org.mortbay.jetty-5.1.12.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:19a              65,425 oro-2.0.7.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a             112,635 picocontainer-1.2.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:30a             405,607 quartz-all-1.5.2.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a             251,039 retrotranslator-runtime-1.2.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:25a              14,921 script-api-1.0-jdk14.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              12,231 slf4j-api-1.3.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a               6,869 slf4j-log4j12-1.3.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:30a             188,221 smack-2.2.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:23a           2,694,134 spring-2.0.5.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:28a              31,020 spring-modules-jbpm31-nodeps-0.8a.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a              26,514 stax-api-1.0.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a             113,780 stax-utils-20040917.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a              83,820 wrapper-3.2.3.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a             148,522 wsdl4j-1.6.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a             505,825 wstx-asl-3.2.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:28a              86,956 xapool-1.4.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a           1,212,965 xercesImpl-2.8.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a             131,384 xfire-aegis-1.2.6.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a              28,705 xfire-annotations-1.2.6.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a             423,888 xfire-core-1.2.6.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a              25,055 xfire-java5-1.2.6.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a               8,074 xfire-jsr181-api-1.0-M1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a             195,119 xml-apis-1.3.03.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:26a             127,961 XmlSchema-1.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:21a              24,677 xpp3_min-1.1.3.4.O.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;05/22/2007  08:22a             349,667 xstream-1.2.1.jar&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;              94 File(s)     24,263,547 bytes&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;94 files make up the optional open source distribution shipped with Mule.&lt;br /&gt;&lt;br /&gt;Writing a web-service is as simple as creating a POJO &amp;amp; modifying the configuration file with the right parameters.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7008545507081347565?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7008545507081347565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2007/08/mule-esb-distribution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7008545507081347565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7008545507081347565'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2007/08/mule-esb-distribution.html' title='Mule ESB Distribution'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-4963308565133909834</id><published>2007-06-29T08:16:00.000-07:00</published><updated>2010-02-19T16:32:07.600-08:00</updated><title type='text'>Dump Google Sync for FoxMarks</title><content type='html'>Just when I thought I would have to write a bookmark sync tool for my machines, I stumbled upon Foxmarks. It was like someone read my mind of the design I had thought and just coded it. Brilliant, thanks Foxmarks you have saved me weeks of coding &amp;amp; deployment! I am a happy user of it, it sync my bookmarks across machines effortlessly.&lt;br /&gt;&lt;br /&gt;Recommendation: Dump google synch, del.icio.us, tag for Foxmarks. http://www.foxmarks.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-4963308565133909834?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/4963308565133909834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2007/06/dump-google-sync-for-foxmarks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4963308565133909834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4963308565133909834'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2007/06/dump-google-sync-for-foxmarks.html' title='Dump Google Sync for FoxMarks'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-3425378728961236718</id><published>2007-02-04T11:31:00.000-08:00</published><updated>2010-02-19T16:32:07.607-08:00</updated><title type='text'>Web 2.0</title><content type='html'>A good video that explains Web 2.0 (without the particular technology implementation details)&lt;br /&gt; &lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6gmP4nk0EOE"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/6gmP4nk0EOE" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-3425378728961236718?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/3425378728961236718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2007/02/web-20.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3425378728961236718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3425378728961236718'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2007/02/web-20.html' title='Web 2.0'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-6130390600125961671</id><published>2006-11-12T07:22:00.000-08:00</published><updated>2010-02-19T16:32:07.529-08:00</updated><title type='text'>Corporate Politics</title><content type='html'>Corporate politics, what the heck is that ?&lt;br /&gt;&lt;br /&gt;Consider this statement: "Achieving a goal is often not as important as the way its achieved". Balderdash? Confused? Disagree? Read on.&lt;br /&gt;&lt;br /&gt;If you don't know what corporate politics is yet, then you are either new to the job market, naive, or an agnostic. If you are new to the job market - you will learn over time, unless you are naive and continue to be one. If you are agnostic then you must think that you can find a small cubicle in your company and get into "heads-down" work, try not to bother anyone, not let anything or anyone bother you. My friend, you have a lesson to learn. I used to be an agnostic. When it comes to politics, I say you should not be agnostic.&lt;br /&gt;&lt;br /&gt;If you are one, the symptoms are telling.  Things &lt;span style="font-style: italic;"&gt;happen&lt;/span&gt; to you at work, i.e. you are not in control of those things or your own career. You never decide the work you want to do, things don't fall in place as you would expect. You aspire to get to the next level, but simply can't shake off the isolation you are in.&lt;br /&gt;&lt;br /&gt;It is time to get up from you easy office chair and look beyond your gloomy cubicle walls. People in your office are out and about. They are talking to key individuals, they are comparing notes, going out to lunch, golf and beer. You are working hard, producing results and hoping your manager will notice how great you are at what you do. You are in great danger. If you stay the course you are bound to get into conflicts, distance people, be primarily task-oriented and pigeon-holed for the rest of you career. You will be labeled if you aren't already.&lt;br /&gt;&lt;br /&gt;You will do what you are doing for the rest of you life if you are lucky. If you are like the rest of us, things will change, and the change may not be what you agree with. Learn about politics, because that is what I have done &amp; recommend strongly. Importantly, don't learn destructive politics. I believe in karma, and I believe politics can be positive for the organization. Negative politics is destructive &amp;amp; in the long run is a "lose-lose".&lt;br /&gt;&lt;br /&gt;Politics in this context of can be defined as "the total complex of relations between people ..." [ref &lt;a href="http://www.webster.com/dictionary/politics"&gt;Webster's&lt;/a&gt;]. The age old adage explains politics - "It is not what you, it is who you know that matters". According to Kathleen Kelly Reardon it's all politics. She believes that winning in a world where hard work &amp; talent aren't enough is possible.  In her book "It's All Politics. Winning in a world where hard work and talent aren't enough", she describes several political advantages one should work to develop:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Develop an uncanny attentiveness to what others say &amp;amp; how they act&lt;/li&gt;&lt;li&gt;Develop empathy - what others have to say &amp; how they think and feel&lt;/li&gt;&lt;li&gt;Prepare in advance all outcomes of a discussion. Prepare, prepare, prepare.&lt;/li&gt;&lt;li&gt;Ability to see things as others do is critical&lt;/li&gt;&lt;li&gt;Convey a strong interest in what other people are saying. Don't impose views - rather manage interactions to synergize&lt;/li&gt;&lt;li&gt;Each of us is at least 75% responsible for the way we're treated&lt;/li&gt;&lt;li&gt;Become a skilled interpreter of meanings at a number of levels&lt;/li&gt;&lt;li&gt;If it quacks like a duck it is a duck. Be able to communicate with a duck&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Once these principles are learned, they must be practiced. Books &amp;amp; blogs may teach you about a topic, unless you practice it, you will never truly learn it. Try to learn it, not about it.&lt;br /&gt;&lt;br /&gt;Learn positive politics. Basically, craft your skills to achieve. Get things done. Reardon proposes the ACE method. What is it ?&lt;br /&gt;&lt;br /&gt;The ACE Method:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Appropriateness - what others are doing&lt;/li&gt;&lt;li&gt;Consistency - what a person like you would do&lt;/li&gt;&lt;li&gt;Effectiveness - what will get you what you want&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;These are boundaries within which one must operate. Learning to be appropriate (with seniors, peers, juniors &amp; external team members) is critical. As a leader, consistency and effectiveness are the other two sides of the triangle.&lt;br /&gt;&lt;br /&gt;You may cringe when you hear the word "power", this seems to conjure up several negative images &amp;amp; feelings. However, I do believe that power in the right hands is a blessing. In order to achieve what you need in your job, you need to acquire and craft enough power to intrinsically influence a group or another person to do what needs to be done.  Reardon describes clean power crafting &amp; maintaining strategies.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Power crafting/maintaining strategies&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Appearances&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Impression Management: craft your reputation&lt;/li&gt;&lt;li&gt;    Surroundings: attend to the decor of your office/work area&lt;/li&gt;&lt;li&gt;    Credibility: Aim to get the respect, trust &amp; confidence of your co-workers&lt;/li&gt;&lt;li&gt;    Commitment: Be busy &amp;amp; in demand - but not overwhelmed&lt;/li&gt;&lt;li&gt;    Charisma: Be charming &amp; humorous&lt;/li&gt;&lt;li&gt;    Value: Link what you do to company/division goals&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Relationships&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Attraction: Make people feel good about working with you or for you&lt;/li&gt;&lt;li&gt;    Similarity: Be like "the duck" in some important way&lt;/li&gt;&lt;li&gt;    Favor bank: Remember the value of reciprocity&lt;/li&gt;&lt;li&gt;    Mentors: Seek out advisors. If you don't have one - get one. Select carefully though&lt;br /&gt;&lt;/li&gt;&lt;li&gt;    Connections: Get to know people in power who can be helpful to your career&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Communication&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   Information control: Use caution when giving information to others&lt;/li&gt;&lt;li&gt;   Conversation management: Avoid dysfunctional habits &amp; going offtrack&lt;/li&gt;&lt;li&gt;   Style management: Adjust your style to facilitate conversation&lt;/li&gt;&lt;li&gt;   Open to input: Do more listening than telling&lt;/li&gt;&lt;li&gt;   Facework: Avoid causing other people to lose "face"&lt;/li&gt;&lt;li&gt;   Flexibility: Remain open to creative ways to achieve your goals&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Structural Power&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   Job status: Assess the power of your position and ask yourself where you career is headed&lt;/li&gt;&lt;li&gt;   Limit access: Be a team player but don't tell everyone everything you're thinking&lt;/li&gt;&lt;li&gt;   Rewarding allies: Be sure to thank people who help you, and remember to help them too&lt;/li&gt;&lt;li&gt;   Selective availability: Help out, but don't be over available&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Knowledge Power&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   Keep learning: Never stop learning from people at every level of the organization&lt;/li&gt;&lt;li&gt;   Recognize: "Regimes of Truth": Identify organizational philosophies&lt;/li&gt;&lt;li&gt;   Be where knowledge emerges: location informational sources and be around them&lt;/li&gt;&lt;li&gt;   Create knowledge dependence: Find out what areas of expertise those in power look for&lt;/li&gt;&lt;/ul&gt;Caution! Don't flaunt power. Acquiring respect &amp; power is a lot of hard work. Don't blow it away by being cocky and insolent. Having a helping nature, zero ego and a respectful attitude are primary ingredients to maintaining power.  Respecting others is to let others make mistakes and not penalize them punitively. Let the other person save face. Spare the reputation of others.&lt;br /&gt;&lt;br /&gt;Recognize negative &amp; destructive politics: "credit snatching", "career threats", "targeting", "scapegoating", "patronizing", "double bind" or moving target, "lording" or when everything is a power issue, "embedded spy", "gossip", "belittling", etc. Reardon cites examples of each and suggests specific things to say and combat each scenario.&lt;br /&gt;&lt;br /&gt;One principal concept of politics is the art of persuasion. Aligning thoughts is a way of doing this. Reardon calls this "Framing", A framing effect happens in a communication. When a person sees a situation in a different light and expresses his frame of reference. Others react and realign. This is framing.&lt;br /&gt;&lt;br /&gt;Several such techniques exist and there are lots to learn. Your intrinsic attitude and disposition will dictate much of your career path. Just be aware there is something called corporate politics that plays a major role in your work life. First know about it and learn to participate. Remember there is the right side &amp;amp; dark side to politics. Positive constructive politics is the only long term sustainable path.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-6130390600125961671?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/6130390600125961671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/11/corporate-politics.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6130390600125961671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6130390600125961671'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/11/corporate-politics.html' title='Corporate Politics'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-684271543392804608</id><published>2006-06-19T17:39:00.000-07:00</published><updated>2010-02-19T16:32:07.615-08:00</updated><title type='text'>Bookmark Sync by Google is Disappointing</title><content type='html'>Goggle labs have offered a Firefox plug-in that promises to automatically synchronize the state of the browser across machines. To download it &lt;a href="http://tools.google.com/firefox/browsersync/install.html"&gt;Click here&lt;/a&gt;&lt;br /&gt;I installed the plugin on 2 Firefox browsers&lt;br /&gt;(1) Firefox 1.5.x on a Windows 2000 SP4 2.5GHz 1.5GB RAM&lt;br /&gt;(2) Firefox 1.5x on a Windows Home SPx 1.60GHz 760MB RAM&lt;br /&gt;(3) Firefox 1.5x on a Windows 2000 SP4 1.8GHZ 1GB RAM&lt;br /&gt;&lt;br /&gt;The first machine was run behind a firefall and proxy server, the other was connected to the internet with no proxy. Depending on the network I connected the first machine in&lt;br /&gt;I was disappointed by a major flaw in the plug-in. If the browser cannot connect the Internet, then it will not work.&lt;br /&gt;Uninstalling the browser is easy, but once you re-install it the Google browser synch is not uninstalled. YOu can delete it from the extensions either because to do that you will have to start the browser, but the browser does not start.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-684271543392804608?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/684271543392804608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/06/bookmark-sync-by-google-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/684271543392804608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/684271543392804608'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/06/bookmark-sync-by-google-is.html' title='Bookmark Sync by Google is Disappointing'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-1547919357139153362</id><published>2006-06-13T10:28:00.000-07:00</published><updated>2010-02-19T16:32:07.510-08:00</updated><title type='text'>Reputation: Guard It</title><content type='html'>&lt;span style="font-weight: bold;"&gt;So Much Depends on Reputation – Guard it with your Life &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    According to &lt;a href="http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?z=y&amp;isbn=0140280197&amp;amp;itm=1"&gt;Robert Greene’s 48 Laws of Power&lt;/a&gt;, reputation is the cornerstone of power.  Reputation alone can intimidate and win. Vulnerability will invite attacks from all sides.  Reputations should be unassailable; one should be alert to potential attacks and thwart them before they happen. According to Greene, one should destroy enemies by opening holes in their own reputations and after the holes are opened, stand aside and let public opinion take over.&lt;br /&gt;Notably a person in recent political history was a victim of such reputation damage. He was not able to recover from it and finally offered his resignation; of course a different reason was cited for this.&lt;br /&gt;       Colin Powel is a highly decorated military personnel. Before &lt;span style="font-weight: bold;"&gt;Operation Desert Storm&lt;/span&gt; was executed, he publicly opposed several of George H.W. Bush's administration officials who advocated the deployment of troops to the Middle East to force Iraqi president Saddam Hussein to withdraw his armies from neighboring Kuwait. Powel believed that the dictator could instead be contained through sanctions and a buildup of forces around Kuwait.&lt;br /&gt;    Before the War on Terror in Iraq, Powell, who was by then a prominent figure on President Bush’s cabinet where he served as the Secretary of State, was able influence Bush to present a case for war at the United Nations. Powell also found himself presenting questionable intelligence to the U.N. to make a case of WMD presence in Iraq.  The intelligence was proven to be false; no WMDs were found and the weapon sites revealed nothing. Powel, with his reputation severely bruised, decided to step down from the Bush administration's cabinet. Powell, who had an impeccable record, found his reputation tarnished by this. But it was too late.&lt;br /&gt;Could he have done things differently?&lt;br /&gt;    On one hand he had to support his president and on the other hand he had to support his core values and beliefs of war. He was probably torn between the two choices. He went in half-sure. He was vulnerable. He should have guarded his reputation with his life. He should have quit sooner, with honor. Had he not appeared before the United Nations at all, the history books would be kinder to him. When we will look at Colin Powell, as a highly decorated individual, we will also see a vulnerability that was exposed through political ineptitude that caused his reputation to take a severe beating on the world stage. Guard your reputation with your life.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You can &lt;a href="http://www.amazon.com/gp/product/0140280197/sr=8-2/qid=1150219631/ref=pd_bbs_2/102-6565962-4413705?%5Fencoding=UTF8"&gt;buy the book&lt;/a&gt;, first read the heartless list of the &lt;a href="http://www2.tech.purdue.edu/cgt/courses/cgt411/covey/48_laws_of_power.htm"&gt;laws&lt;/a&gt;. If you read the book, read it with a grain of salt. Do not loose your values, beliefs and ethics.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-1547919357139153362?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/1547919357139153362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/06/reputation-guard-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1547919357139153362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1547919357139153362'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/06/reputation-guard-it.html' title='Reputation: Guard It'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-2475536228250979176</id><published>2006-06-06T16:21:00.000-07:00</published><updated>2010-02-19T16:32:07.492-08:00</updated><title type='text'>The Eccentrics Versus the Uncouths</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.physics.uiowa.edu/adventure/spring_2005/einstein/einstein-tongue.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://www.physics.uiowa.edu/adventure/spring_2005/einstein/einstein-tongue.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;The Eccentrics Versus the Uncouths.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This article is inspired by &lt;a href="http://www.techdarkside.com/?p=31"&gt;this one&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I argue that the difference between a Geek versus Nerd is the same difference that separates the eccentrics from the uncouths. Also, most often the nerds are the ones that are geeks, the geeks are often nerds, some nerds are not geeks, and some geeks are not nerds. A nerd is an uncouth person a geek is an eccentric. I think geeks are odd, and are not really the talented few who run the show in corporate America. The genius may be a nerd,  a geek, neither, or both. The leader in corporate America may not be nerdy nor geeky, unless the leader is a perceived genius.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Eccentricity.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Webster defines someone who is eccentric as:&lt;br /&gt;a: deviating from an established or usual pattern or style&lt;br /&gt;b : deviating from conventional or accepted usage or conduct especially in odd or whimsical ways&lt;br /&gt;&lt;br /&gt;Take notice that an eccentric is not uncouth, just bizarre. Oddities in behavior are often traits of the genius. The reverse does not work. So if you acquire odd behavior, that does not make you a genius. Such people are pretentious and once discovered they attract disdain.&lt;br /&gt;&lt;br /&gt;Scientists, mathematicians, engineers, software gurus are often seen as eccentrics. In corporate America, most IT staff thrive on geekdom. Most border on nerdiness, however I can say that most of the people I know are &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; nerdy. They (the geeks) enjoy being perceived as problem solvers.  Geeks often carry the latest gadget on them. Cellphones, PDAs, &amp; blackberrys are always within bluetooth range. They are always ready to receive a call, send an e-mail, plan the next meeting. Geeks derive power from skill. Ccommunication is usually not their forte. Geeks are simply eccentrics. They are well mannered, well meaning corporate citizens. They don't burn bridges and they don't knowingly step on other poeple's toes. They are the unsung heroes of corporate America. These are the analysts, production support personnel, engineers &amp;amp; programmers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Uncouth&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Webster defines someone who is uncouth as:&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt; a&lt;/b&gt; &lt;b&gt;:&lt;/b&gt; strange or clumsy in shape or appearance &lt;b&gt;: &lt;a href="http://www.webster.com/dictionary/outlandish"&gt;&lt;span style="font-size:-1;"&gt;OUTLANDISH&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;b&lt;/b&gt; &lt;b&gt;:&lt;/b&gt; lacking in polish and grace &lt;b&gt;: &lt;a href="http://www.webster.com/dictionary/rugged"&gt;&lt;span style="font-size:-1;"&gt;RUGGED&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;  &lt;&lt;i&gt;uncouth&lt;/i&gt; verse&gt; &lt;b&gt;&lt;br /&gt;c&lt;/b&gt; &lt;b&gt;:&lt;/b&gt; awkward and uncultivated in appearance, manner, or behavior&lt;br /&gt;&lt;br /&gt;Nerds are not oriented towards solving problems, rather they are inclined towards "technology for the sake of technology" they are not usually self-aware and are neither aware of their surroundings (people, reactions etc). They talk a lot.  Loud. Such behavior results in faux pas, ill manners and eventual social boycott. Nerdiness directly translates into bad manners. Nerds=Uncouths.  Sometimes they are pompous uncouths.&lt;br /&gt;&lt;br /&gt;Geeks are Eccentrics, Nerds ands Uncouths.  Uncouths can be eccentrics, and eccentrics can be uncouth, people can be neither or both. Corporate IT citizens, please try harder to be neither.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-2475536228250979176?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/2475536228250979176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/06/eccentrics-versus-uncouths.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2475536228250979176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2475536228250979176'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/06/eccentrics-versus-uncouths.html' title='The Eccentrics Versus the Uncouths'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-3214305636002729290</id><published>2006-05-23T21:53:00.000-07:00</published><updated>2010-02-19T16:32:07.519-08:00</updated><title type='text'>Leadership by heuristics or empirical research ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3519/643/1600/LTP.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/3519/643/400/LTP.jpg" alt="" border="0" /&gt;&lt;/a&gt;    Leadership has been studied from various perspectives. The first recorded approach to leadership was embedded in traits. It was believed that leaders are born not made, "Kings are born, not made", it was said. "Greatness is in the blood", was commonly believed. Several views on leadership emerged as our civilization evolved. Over the past 30 years our understanding of leadership went through a major shift. Our collective new understanding of leadership has been presented nicely by &lt;a href="http://search.barnesandnoble.com/booksearch/results.asp?z=y&amp;ath=Peter+G%2E+Northouse"&gt;Peter Northouse&lt;/a&gt;. He provides a very good overview of leadership in his book &lt;a href="http://www.amazon.com/gp/product/076192566X/qid=1151344497/sr=1-1/ref=sr_1_1/103-1557013-2385440?s=books&amp;amp;v=glance&amp;n=283155"&gt;Leadership Theory &amp;amp; Practice&lt;/a&gt; (LTP). Various perspectives on leadership have been acquired over time through scientific research. Northouse writes about several approaches to leadership in his book including the trait approach, skills approach, style approach, situational approach, contingency theory, path-goal theory, leader-member exchange theory, transformational leadership, and team leadership. The book presents captivating work in the field of leadership. Each approach to leadership is well cited, documented, explained and critiqued. The reader will find it easy to associate the theory with his daily practice. My favorite theory is the style approach to leadership, the famous &lt;a href="http://www.symlog.com/internet/how_symlog_relates/Leadership_Grid.htm"&gt;Leadership Grid&lt;/a&gt; is the product of research conducted by Ohio State University and Michigan University.&lt;br /&gt;Diametrically opposite to empirical research in leadership is a heuristic approach to leadership. To summarize this approach is akin to the live and learn approach, learn by your mistakes approach, and a generalize by personal experience approach. Belasco &amp; Stayer have written an oddly titled best-selling book in first&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3519/643/1600/FlightOfBuffallo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3519/643/320/FlightOfBuffallo.jpg" alt="" border="0" /&gt;&lt;/a&gt; person based on these principles of leadership. Flight of the buffalo (FOTB ) is a joint venture that dives head first into experiences of running companies, heuristics of leadership, visual analogies, gut feel, earthly common sense and best practices of "leadership". The oddity of the title is explained early in the book.&lt;br /&gt;The book begins with the authors' journeys into leadership and various related concepts &amp; ideas. Amongst others ideas like intellectual capitalism, leadership vision, focus, direction, obstacles (removing them), developing ownership in employees, self-directed action &amp;amp; learning to be the leader (lead goose) are discussed. Every chapter is littered with short stories and a moral. There is an &lt;a href="http://www.umass.edu/aesop/fables.php"&gt;Aesop's Fables&lt;/a&gt; like feel to the book. Real-life examples are touching and real, however, if you have read Northouse's LTP previously, you can draw parallels to Belasco and Stayer's experiences. Specific leadership theories presented in LTP can easily experience the wise words the authors present. The book is enjoyable, and almost actionable. Some of the advice is basically common sense best practices in action. The writing style is patterned by "try,try again until you succeed, or decide to do things differently".&lt;br /&gt;   The authors introduce interesting words and concepts. I liked the word authors invented to mean the inverse of leadership - "status-quo-ship". Another favorite is the concept of "lead goose" in the "intellectual capitalism era". Good advice is provided on every page of the book, obvious common sense is prescribed often. For example, "Leaders proact, not react" is treated as a chapter, the basic premise is that leaders should prevent problems rather than solve problems. Basic management tenets are also provided for the uninitiated, Deliverable (What will be delivered ?), Measurement (How will we know it is done ?), Date (When will it be done ?), Person Responsible (Who will do it ?). The authors recommend that every employee do a process analysis by asking "what can i stop doing?" - remove obstacles. Expectation setting on staff, customers and oneself is disccussed. Henry Kissinger is cited as asking "Is this your best work?". The author(s) push for excellence through action.&lt;br /&gt;   I found the authors doing a good job in the area of potential and reaching it. What's the difference between those who reach their potential and those who don't ? Those who do, bring a discipline with them to every task they face. They are willing continuously to challenge themselves. They keep learning how to get better because they do not accept falling short of their potential.&lt;br /&gt;   This book can become suddenly interesting and intensely revealing if you decide to read Northouse's LTP first.  It is the perfect anti-dote to analysis by knowledge (knowing too much, but acting too little).&lt;br /&gt;But really, what is the best approach to leadership ? Heuristics or empirical ? IMO learn the theory, read about experiences (it is cheaper than having your own) then go out to the field armed with your knowledge and the experience of the authors. Practice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-3214305636002729290?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/3214305636002729290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/05/leadership-by-heuristics-or-empirical.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3214305636002729290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3214305636002729290'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/05/leadership-by-heuristics-or-empirical.html' title='Leadership by heuristics or empirical research ?'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-1722159038806678881</id><published>2006-04-03T20:06:00.000-07:00</published><updated>2010-02-19T16:32:07.622-08:00</updated><title type='text'>Directed Project/Thesis Defense</title><content type='html'>The thesis defense was succesful. I was looking forward to it. Tanya and Nikhil accompanied me for the presentation. Mark set up the projector, Dr.Newton, Dr.Latif, and Dr.Newton entered Knoy 569. I introduced all to Nikhil and Tanya. Dr.Elliott played with Niknil and said that they were gathered to meet with him and my presentation was just a side show.&lt;br /&gt;After everyone settled, the proceedings began. The light was dimmed, and I began. After about three slides into the presentation Nikhil started acting up. Tanya took stolled him out and waited in the lobby.&lt;br /&gt;For the next hour I was in the groove, slide after slide I talked and answered questions interactively. At one point, during the presentation Dr.Newton murmed, "This is important work". The professors were satisfied.&lt;br /&gt;At the end of the presentation, the lights were switched back on. Everyone was beaming with satisfaction. Dr.Newton asked if she could use the statistical part of my paper to teach her six hundered level course. I responded before she could complete her request with a confident smile and a blunt "YES". She commented further to the department head that this is definitely worth a PhD. Dr.Elliott, my chair said he was very pleased with the work and saw no issues. He offered to co-author an artcile to be published in a scientific journal. Dr.Latif, the department head, said that I was young and I should consider teaching, if I ever decide to teach at Purdue, even part-time, this would be a great help. He asked me what I thought of the program and I answered honestly. Mark took down my feedback, not sure why. Over all it was a satisfactory defense. I am quite pleased with myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-1722159038806678881?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/1722159038806678881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/04/directed-projectthesis-defense.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1722159038806678881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1722159038806678881'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/04/directed-projectthesis-defense.html' title='Directed Project/Thesis Defense'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-8987609011137851496</id><published>2006-03-05T06:10:00.000-08:00</published><updated>2010-02-19T16:32:07.628-08:00</updated><title type='text'>EJB 2.0 SLSB versus SFSB</title><content type='html'>Almost every engineer I talk with is riddled with apprehensions about EJBs. I can understand why they would consider Entity Beans as "useless", "c&lt;br /&gt;&lt;br /&gt;One benefit of SFSB is that they can receive transaction notifications by implementing SessionSynchronization interface.  The transactions can span multiple methods, across multiple calls (with BMT).&lt;br /&gt;&lt;br /&gt;The interface provides 3 hooks "afterBegin","beforeCompletion", and "afterCompletion", these methods provide significant control over the transactions. Horizontal application functionality can be placed in these hooks for transactions.&lt;br /&gt;&lt;br /&gt;Several applications of this interface come to mind, one could log certain transactions, notify support on all rollbacks, add a simple layer of authorization etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-8987609011137851496?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/8987609011137851496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/03/ejb-20-slsb-versus-sfsb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8987609011137851496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/8987609011137851496'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/03/ejb-20-slsb-versus-sfsb.html' title='EJB 2.0 SLSB versus SFSB'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-1287683956760879693</id><published>2006-02-27T18:25:00.000-08:00</published><updated>2010-02-19T16:32:07.472-08:00</updated><title type='text'>Ethical Power</title><content type='html'>According to Paula Caproni, author of "Management Skills For Everyday Life", there are six universal forms of influence.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Reciprocation&lt;/li&gt;&lt;li&gt;Committment &amp;amp; consistency&lt;/li&gt;&lt;li&gt;Authority&lt;/li&gt;&lt;li&gt;Social proof&lt;/li&gt;&lt;li&gt;Scarcity&lt;/li&gt;&lt;li&gt;Liking&lt;/li&gt;&lt;/ul&gt;Power emanating from these forms of influence can be considered ethical.&lt;br /&gt;&lt;br /&gt;Founding principles:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You should tell people explicitly what you want.&lt;/li&gt;&lt;li&gt;Organization's interest and others' interest is at par or above your own.&lt;/li&gt;&lt;li&gt;You treat everyone fairly, follow process and do not abuse.&lt;/li&gt;&lt;li&gt;You leave yourself reasonably open to be influenced by others.&lt;/li&gt;&lt;li&gt;You back your points with valid data.&lt;/li&gt;&lt;/ul&gt;These founding principles and ethical form of influence is in direct contrast to the Robert Greene's "The 48 Laws Of Power" in which he shockingly suffocates any breath of ethics. The book is laced with a dark sense of human power perversion. For instance, #31 Control the options: Get others to play with the cards you deal. #32 Play to people's fantasies and #36 Disdain things you cannot have do not play to long term interests nor do they breed contributors who care for the greater good.&lt;br /&gt;&lt;br /&gt;Caproni's book brings a breath of fresh air to the taboo "Power", it certainly explains in detail, and backed by research, the ethics associated with power - and how it can be put to good ethical use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-1287683956760879693?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/1287683956760879693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/02/ethical-power.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1287683956760879693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/1287683956760879693'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/02/ethical-power.html' title='Ethical Power'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-630104232292773399</id><published>2006-02-18T09:56:00.000-08:00</published><updated>2010-02-19T16:32:07.449-08:00</updated><title type='text'>Breaking Trust: A Tutorial</title><content type='html'>&lt;span style="font-size:180%;"&gt;Trust Breakers&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Here is a list of behaviors &amp; traits you should demonstrate, practice and implement at work in order to break the trust of your employer, employees, co-workers and clients :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Advance your own interest at the expense of others.&lt;/li&gt;&lt;li&gt;Be blatantly and pompously self-promoting.&lt;/li&gt;&lt;li&gt;Use inconsistent standards to evaluate employees.&lt;/li&gt;&lt;li&gt;Allow some people to break the rules and expect others to follow them.&lt;/li&gt;&lt;li&gt;Do not care about performance problems until the time to rate your employee.&lt;/li&gt;&lt;li&gt;Enable poor-performers to stay in your organization unchallenged.&lt;/li&gt;&lt;li&gt;Pigeon-hole your employees.&lt;/li&gt;&lt;li&gt;Take credit of your employee's work.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3519/643/1600/dilbert2002035151214.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3519/643/400/dilbert2002035151214.jpg" alt="" border="0" /&gt;&lt;/a&gt;&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;br /&gt;&lt;ul&gt;&lt;li&gt;Withold important information.&lt;/li&gt;&lt;li&gt;Be closed minded to diverse ideas.&lt;/li&gt;&lt;li&gt;Act disrepectfully towards others.&lt;/li&gt;&lt;li&gt;Lie or cover up, rather than admit to mistakes.&lt;/li&gt;&lt;li&gt;Break promises, or use words cheaply.&lt;/li&gt;&lt;li&gt;Betray confidence by saying one thing and doing another.&lt;/li&gt;&lt;li&gt;Spin by communicating selective facts, and by lacing tone to imply a different context.&lt;/li&gt;&lt;li&gt;Act inconsistently; be incongruent in body language and intent.&lt;/li&gt;&lt;li&gt;Have frequent negative interactions with co-workers and subordinates.&lt;/li&gt;&lt;li&gt;Hide incompetence by making excuses.&lt;/li&gt;&lt;li&gt;Plagerize others' ideas and work.&lt;/li&gt;&lt;li&gt; Don't listen to others' opinions then punch holes without understanding the issue completely.&lt;/li&gt;&lt;li&gt;Don't teach others to fish, rather bring them the fist.&lt;/li&gt;&lt;li&gt;Make people dependent on you for daily work.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Be unconcerned about personal needs, be pompous and self-promoting.&lt;/li&gt;&lt;li&gt;Don't be humble or meek.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;There are surely more ways to break trust and it is fairly simple to do so. Remember, that establishing trust is a time consuming process that requires consistency, congruency and solid principles. Leaders who are meek rise to the top and stay there. Read about meekness in Jim Collin's "Good To Great". &lt;/span&gt;Humility and meekness are different attributes, but I think both are equally important. &lt;span style=";font-family:georgia;font-size:100%;"  &gt;"People with humility don't think less of themselves, they just think of themselves less" - Ken Blanchard and Norman Vincent Peale in the Power of Ethical Management.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:78%;" &gt;&lt;br /&gt;The above is  synthesized from Fernando Bartalome's "Nobody Trusts the Boss Completely, Now What?" (Harvard Business Review)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-630104232292773399?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/630104232292773399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/02/breaking-trust-tutorial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/630104232292773399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/630104232292773399'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/02/breaking-trust-tutorial.html' title='Breaking Trust: A Tutorial'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-4670969300677469160</id><published>2006-02-02T14:21:00.000-08:00</published><updated>2010-02-19T16:32:07.634-08:00</updated><title type='text'>Diffusion Rates Will Increase in 2006</title><content type='html'>We have seen more advances in science and technology in the last 60 years than in all of previous history. The rate of technology diffusion has progressively increased as well. &lt;br /&gt;According to K.H.Hammond (2001), it took the telephone 35 years to get into 25% of all homes in the United States. It took TV 26 years. It took radio 22 years. It took PCs 16 years. It took Internet 7 years. It probably took cellphones less than 5, DVDs less than 3, and iPod, XBox, PlayStation, less than 2 years. In a hyper-competitive global market, technology will seamlessly cross boundaries quicker than ever before.&lt;br /&gt;By the end of 2006, I think that successful technology products will proliferate markets in months, not years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-4670969300677469160?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/4670969300677469160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/02/diffusion-rates-will-increase-in-2006.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4670969300677469160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/4670969300677469160'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/02/diffusion-rates-will-increase-in-2006.html' title='Diffusion Rates Will Increase in 2006'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-2824328856940210338</id><published>2006-01-26T17:51:00.000-08:00</published><updated>2010-02-19T16:32:07.442-08:00</updated><title type='text'>How to make people like you in 90 seconds or less.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3519/643/1600/985962.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3519/643/320/985962.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;An intriguing title for a book! This small book (less than 200 pages) is written by Nicholas Boothman. It covers a pretty broad range of topics. From my perspective, the book did a decent job of bringing body language, communication skills, and behavior together. It covers a lot of ground with everyday examples. One of the acronyms that is fascinating is KFC. Know what you want, Find out what you are getting, Change what you do until you get what you want. The key is the "K" know what you want. Once you know what you want, you can direct your attitude, synchronize appropriately, communicate effectively by using the preferred senses.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Attitude&lt;/span&gt;&lt;br /&gt;The book focuses on achieving rapport when it does not come naturally. Boothman calls his technique "Rapport by Design". In this technique, you the reader, will assume the characteristics of the person you are engaged with temporarily,"The key to establish rapport with strangers is to become like them". He describes various ways of doing that, especially through body language and the right attitude. The author describes to general types of attitudes. A "Really Useful Attitude" and a "Really Useless Attitude".&lt;br /&gt;&lt;table style="border: solid 1px;"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;b&gt;Really Useful Attitude&lt;/b&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;b&gt;Really Useless Attitude&lt;/b&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Warm&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enthusiastic&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Confident&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Supportive&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Relaxed&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Obliging&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Curious&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Resourceful&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Comfortable&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Helpful&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Engaging&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Laid back&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Patient&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Welcoming&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Cheery&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Interested&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Angry&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Sarcastic&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Impatient&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Bored&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Disrespectful&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Conceited&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Pessimistic&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Anxious&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Rude&lt;/li&gt;&lt;br /&gt;&lt;li&gt;suspicious&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Vengeful&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Afraid&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Self-conscious&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Mocking&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Embarrassed&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Dutiful&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;The whole idea to list the useful and useless attitudes is to get a picture of what is needed and what must be avoided. Attitude is the core of interpersonal skill.&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Synchronization&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There is significant talk about body language and synchronization at the subliminal level. Boothman states "When you meet someone new, immediately point your heart warmly at that person's heart. ". Such gestures, he claims are universal and cross-cultural. He adds, "There is magic in this.". He explicitly calls out on closed body language and gives examples of what not to do.&lt;br /&gt;He cites Albert Mehrabian, professor at UCLA, who has studied communication in detail. His studies suggest that 55% of what we respond to takes place visually; 38% of what we respond to is the sound; and 7% is the content. The author suggests that we synchronize our attitudes,body language (gestures, posture, gesticulations, movement, tilts, nods, expressions, breathing and rhythms), and voice (tone, volume, speed, pitch, rhythm, words).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Communication&lt;/span&gt;&lt;br /&gt;Boothman declares two types of communication methods, one that opens up the conversation (through open-ended questions) and the other, that closes the conversation (questions that ask for a yes/no response). The author encourages questions that begin with "who, what, when, why, where, how" compared to "did you, are you , have you".&lt;br /&gt;A "location/occasion" conversation methodology is recommended to break the ice. It is even better to use sensory specific words like "See, Tell, Feel" in a conversation. The author offers situational advice for regular day-to-day scenarios. The strongest point the author makes about communication is that most people do not know what they want out of a communication. It is of paramount importance that you know what you want before you open your mouth. If you do not want anything, make sure the other person knows and ensure that you are not wasting any time theirs or yours.&lt;br /&gt;Boothman explains nicely the difference between "active" listening and "parrot phrasing" by providing excellent examples. All facets of communication are touched upon, at one point in the book Boothman explains how to receive compliments and advises not to flatter, "cheap flattery, tired cliches, and patronizing remarks reek of insincerity &amp; can be insulting".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Senses&lt;/span&gt;&lt;br /&gt;What makes this book different from other books is how Boothman classifies people by their preferred senses. He claims that there are three type of people: Visuals (55%), Auditories(15%) &amp; Kinesthetics (30%). The author claims that it is more effective to select words in a conversation depending on which type of person you are talking with. The book offers techniques to determine the type of person. There is a good description of the type of eye-movement to expect when a person is visualizing, re-hearing, or re-feeling to retrieve information. A self-test is also offered in the form a questionnaire that determines your favorite sense. From a communication perspective, Boothman says to use metaphors, he claims that it appeals to all types because metaphors exercise all senses.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;br /&gt;&lt;/span&gt;This book concludes easily by bringing all the four major components together. It ends with food for thought. The author urges his readers to get their imagination under control and  install some Really Useful Assumptions. Assume rapport and trust, assume likability, assume synchronicity, assume forgiveness, assume impact, assume positivity and above all assume disposition to connectivity. He reminds us that when greeting someone new use this metaphor: Open-Eye-Bean-"Hi!"-Lean.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-2824328856940210338?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/2824328856940210338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/01/how-to-make-people-like-you-in-90.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2824328856940210338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2824328856940210338'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/01/how-to-make-people-like-you-in-90.html' title='How to make people like you in 90 seconds or less.'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-7144146811450073395</id><published>2006-01-22T11:14:00.000-08:00</published><updated>2010-02-19T16:32:07.435-08:00</updated><title type='text'>Management Skills for Everyday Life : The Practical Coach (2nd Edition)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3519/643/1600/management%20skills.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3519/643/320/management%20skills.jpg" alt="" border="0" /&gt;&lt;/a&gt;    An excellent book by Paula J. Caproni. This book covers important topics that will impact your personal and work life.&lt;br /&gt;   Topics covered by the author include success predictors, self-awareness, trust building, effective communication, ethical power &amp;amp; influence, relationship management, cultural diversity, creating high-performance teams, and crafting a life. Sounds a lot for 459 pages ? It is. The material is covered in sufficient detail.&lt;br /&gt;   One thing that strikes you while you read the book are the quotes. Famous quotes are printed on the margins, contextualized and related to the content. One of my favorite quotes can be found in the first chapter. "Learn as if you were to live forever. Live as if you were going to die tomorrow" - Mahatma Gandhi.&lt;br /&gt;   Every chapter is well researched. The end-notes are documented at the end of each chapter. This book should appeal to all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-7144146811450073395?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/7144146811450073395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/01/management-skills-for-everyday-life.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7144146811450073395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/7144146811450073395'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/01/management-skills-for-everyday-life.html' title='Management Skills for Everyday Life : The Practical Coach (2nd Edition)'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-6135848536917683509</id><published>2006-01-22T08:01:00.000-08:00</published><updated>2010-02-19T16:32:07.656-08:00</updated><title type='text'>IT Timeline</title><content type='html'>Information Technology Timeline&lt;br /&gt;&lt;br /&gt;1642 - Blaise Pascal invented the mechanical calculator&lt;br /&gt;1834 - Charles Babbage designed the analytical engine&lt;br /&gt;1890 - Herman Hollerith created the statistical tabulator&lt;br /&gt;1936 - Alan Turing described the universal machine&lt;br /&gt;1947 - Bardeen, Shockley, and Brattain invented the transistor&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(To Be Continued...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-6135848536917683509?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/6135848536917683509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/01/it-timeline.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6135848536917683509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/6135848536917683509'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/01/it-timeline.html' title='IT Timeline'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-3993755386611814192</id><published>2006-01-22T07:13:00.000-08:00</published><updated>2010-02-19T16:32:07.650-08:00</updated><title type='text'>IBM WebSphere 5 Classloaders</title><content type='html'>Abundant articles are available on WebSphere classloaders.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Just to reiterate one important point:&lt;br /&gt;&lt;br /&gt;Several issues in WebSphere version 4.x have been resolved in WebSphere 5.x.&lt;br /&gt;For example: If in a WAS5 ear there are multiple WARs and each WAR needs to reuse a utility jar and the reference is given in the manifest, the jar class loader will load up the utility only ONCE.&lt;br /&gt;&lt;br /&gt;In a project I was working there was debate and almost certainly a hack was planned by delinking wars from their manifests and adding those manifests in a shell EJB projects (!)&lt;br /&gt;&lt;br /&gt;Here is a sample classloader hierachy:&lt;br /&gt;Application is set to Parent First&lt;br /&gt;War is set to Parent last.&lt;br /&gt;&lt;br /&gt;EJB ClassLoaders&lt;br /&gt;com.ibm.ws.classloader.ExtJarClassLoader&lt;br /&gt;sun.misc.Launcher$ExtClassLoader&lt;br /&gt;sun.misc.Launcher$AppClassLoader&lt;br /&gt;com.ibm.ws.bootstrap.ExtClassLoader&lt;br /&gt;com.ibm.ws.classloader.ProtectionClassLoader&lt;br /&gt;com.ibm.ws.classloader.CompoundClassLoader&lt;br /&gt;&lt;br /&gt;WAR Classloaders&lt;br /&gt;&lt;br /&gt;com.ibm.ws.classloader.CompoundClassLoader&lt;br /&gt;com.ibm.ws.classloader.ExtJarClassLoader&lt;br /&gt;sun.misc.Launcher$ExtClassLoader&lt;br /&gt;sun.misc.Launcher$AppClassLoader&lt;br /&gt;com.ibm.ws.bootstrap.ExtClassLoader&lt;br /&gt;com.ibm.ws.classloader.ProtectionClassLoader&lt;br /&gt;com.ibm.ws.classloader.JarClassLoader&lt;br /&gt;&lt;br /&gt;You can view your hierarchy with the classloader viewer, read and download from here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-3993755386611814192?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/3993755386611814192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/01/ibm-websphere-5-classloaders.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3993755386611814192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3993755386611814192'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/01/ibm-websphere-5-classloaders.html' title='IBM WebSphere 5 Classloaders'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-664546553445366146</id><published>2006-01-22T07:11:00.000-08:00</published><updated>2010-02-19T16:32:07.641-08:00</updated><title type='text'>What is Architecture ?</title><content type='html'>"Architecture is a set of structuring principles that enables a system to be comprised of a set of simpler systems each with its own local context that is independent of but not inconsistent with the context of the larger system as a whole."&lt;br /&gt;&lt;br /&gt;This definition can be easly contextualized to information systems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-664546553445366146?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/664546553445366146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2006/01/what-is-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/664546553445366146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/664546553445366146'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2006/01/what-is-architecture.html' title='What is Architecture ?'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-3712120607057734016</id><published>2005-12-29T17:34:00.000-08:00</published><updated>2010-02-19T16:32:07.419-08:00</updated><title type='text'>A good film on ethics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3519/643/1600/30m.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3519/643/200/30m.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I really enjoyed a film a while ago and I have always forgotten its name. While I did rememeber the vivid details of the motion picture. Facts that glue the movie together - for example Shutruk Nahunte the King of Elam. The movie is a must see&lt;br /&gt;&lt;br /&gt;This movie focusses on the ethics issues that have been ingnored by corporate America. This film looks at the lives of a middle-school class of a private school and follows them through their successful careers. A close look at values of the students, especially one is questioned. Without revealing any more details, this movie is a must-see.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Emperor's Club&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;2 Thumbs Way Up&lt;/blockquote&gt; - Rohit Sood&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-3712120607057734016?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/3712120607057734016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2005/12/good-film-on-ethics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3712120607057734016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/3712120607057734016'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2005/12/good-film-on-ethics.html' title='A good film on ethics'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2331206083453814929.post-2440961766150576698</id><published>2005-05-22T07:52:00.000-07:00</published><updated>2010-02-19T16:32:07.501-08:00</updated><title type='text'>Communication Skills : Males -  Females</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Suggestions for Women (when you talk to men)&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;   &lt;ul&gt;     &lt;li&gt;Be more competitive&lt;/li&gt;     &lt;li&gt;Use less tag lines&lt;/li&gt;     &lt;li&gt;Say what you mean&lt;/li&gt;     &lt;li&gt;Speak with assertiveness&lt;/li&gt;     &lt;li&gt;Sit side by side&lt;/li&gt;     &lt;li&gt;Ask questions when you are looking for answers&lt;/li&gt;     &lt;li&gt;Be more direct use less emotions&lt;/li&gt;     &lt;li&gt;Speak up offer more opinions&lt;/li&gt;     &lt;li&gt;Don't be submissive&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Suggestions for Men (when you talk to women)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;   &lt;ul&gt;     &lt;li&gt;Don't interrupt&lt;/li&gt;     &lt;li&gt;Make eye contact&lt;/li&gt;     &lt;li&gt;Not a win-lose situation&lt;/li&gt;     &lt;li&gt;Make listening noises/gestures&lt;/li&gt;     &lt;li&gt;Actually listen (read between the lines)&lt;/li&gt;     &lt;li&gt;Stop what you are doing&lt;/li&gt;     &lt;li&gt;Ask indirect questions&lt;/li&gt;     &lt;li&gt;Pay attention to body language&lt;/li&gt;     &lt;li&gt;Don't dominate conversation&lt;/li&gt;     &lt;li&gt;Start conversations&lt;/li&gt;     &lt;li&gt;Don't focus on solving the problem right way&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt; &lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2331206083453814929-2440961766150576698?l=www.structureofstructures.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.structureofstructures.com/feeds/2440961766150576698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.structureofstructures.com/2005/05/communication-skills-males-females.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2440961766150576698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2331206083453814929/posts/default/2440961766150576698'/><link rel='alternate' type='text/html' href='http://www.structureofstructures.com/2005/05/communication-skills-males-females.html' title='Communication Skills : Males -  Females'/><author><name>Techlogix</name><uri>http://www.blogger.com/profile/14308374064700914258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
