<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3872443124478444419</id><updated>2024-10-04T19:08:15.409-07:00</updated><category term="SDLC"/><category term="Software Engineering"/><category term="project management"/><category term="Android"/><category term="JAVA"/><category term="business process"/><category term="team management"/><category term="840 Pro"/><category term="A4"/><category term="ASUS"/><category term="AV Cable"/><category term="AbstractMethodError"/><category term="Agile"/><category term="Atrix"/><category term="Audi"/><category term="Avic"/><category term="BIRT"/><category term="Boricua"/><category term="CarPC"/><category term="Chef QueJon"/><category term="Christmas"/><category term="Configuration"/><category term="ConnectionHandle"/><category term="Coquito"/><category term="Design Documents"/><category term="Drink"/><category term="Files Connect"/><category term="Geronimo 3"/><category term="IE9 Compatibility Mode"/><category term="IE9 Issues with legacy ASP .Net"/><category term="IE9 Rollback to IE8"/><category term="JDBC"/><category term="Lightning to 30-pin Adapter"/><category term="OracleConnection"/><category term="Phone"/><category term="Photo Transfer"/><category term="ProClipUsa"/><category term="PropertyPlaceholderConfigurer"/><category term="Puerto Rico"/><category term="Receta"/><category term="Recipe"/><category term="Review"/><category term="SMB"/><category term="SONY"/><category term="SSD"/><category term="SVE"/><category term="SVE14A"/><category term="SVE14A390X"/><category term="Samba"/><category term="Samsung"/><category term="Spring"/><category term="Sweet Home"/><category term="TranQL"/><category term="U500VZ"/><category term="UX51VZ"/><category term="VAIO"/><category term="VM Arguments"/><category term="Waterfall methodology"/><category term="WebTop"/><category term="Xmas"/><category term="Z110BT"/><category term="Zenbook"/><category term="caddy"/><category term="connection profile"/><category term="connection profile store url"/><category term="cradle"/><category term="design"/><category term="dock"/><category term="dynamic data source"/><category term="env variable"/><category term="generics"/><category term="iPhone"/><category term="iPhone 5"/><category term="newmodeus"/><category term="parameter"/><category term="properties"/><category term="property binding"/><category term="report engine"/><category term="unwrap"/><title type='text'>Jon Nazario</title><subtitle type='html'>A multi-purpose blog dedicated to software, projects, diy, and other random topics.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-1237850972788257754</id><published>2015-08-27T06:53:00.001-07:00</published><updated>2015-08-27T06:53:23.532-07:00</updated><title type='text'>Amazon Echo - Alexa - Orange Ring - Disconnect WiFi</title><content type='html'>Amazon Echo is a great tool for our family! &amp;nbsp;Such a simple idea and well designed. &amp;nbsp;Hope for more voice functionality keeps getting added.&lt;br /&gt;
&lt;br /&gt;
But life is not perfect. &amp;nbsp;I see many people complaining about &quot;Alexa&quot; disconnecting constantly. This was true even in my house WiFi configuration. &amp;nbsp;Every day after work I was having to re-connect the gadget to the network which was annoying&lt;br /&gt;
&lt;br /&gt;
You will know this is your problem if you have an Orange ring:&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; class=&quot;a-bordered&quot; id=&quot;GUID-E669653D-9B60-424B-8ED6-0486D1C4F40B__GUID-4C10FBB0-ADBE-4DFB-AA85-197BB9AD3695&quot; style=&quot;background-color: white; border-collapse: collapse; border-left-color: rgb(231, 231, 231); border-left-width: 1px; border-right-color: rgb(231, 231, 231); border-right-width: 1px; border-spacing: 0px; border-style: solid solid none; border-top-color: rgb(234, 234, 234); border-top-width: 1px; box-sizing: border-box; color: #111111; font-family: Arial, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 14px; table-layout: fixed; width: 600px;&quot; summary=&quot;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box;&quot;&gt;
&lt;tr style=&quot;background-color: #f6f6f6; box-sizing: border-box;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(234, 234, 234); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; padding: 7px 14px 6px; vertical-align: top; word-wrap: break-word;&quot;&gt;Orange light spinning clockwise&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(234, 234, 234); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; padding: 7px 14px 6px; vertical-align: top; word-wrap: break-word;&quot;&gt;Amazon Echo is connecting to your Wi-Fi network.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;div&gt;
&lt;b&gt;The solution:&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Just assign a Static IP to Alexa - Amazon Echo in my router. The steps will vary based on your router but the idea is the same. &amp;nbsp;Find Alexa network MAC address and give it a permanent / static IP address in your router and don&#39;t use DHCP for giving it an automatic IP.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/1237850972788257754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2015/08/amazon-echo-alexa-orange-ring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/1237850972788257754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/1237850972788257754'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2015/08/amazon-echo-alexa-orange-ring.html' title='Amazon Echo - Alexa - Orange Ring - Disconnect WiFi'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-964670717036274552</id><published>2015-05-18T19:26:00.001-07:00</published><updated>2015-07-26T08:07:40.776-07:00</updated><title type='text'>Sony Xperia Z3 - Annoying issues fixed by wiping phone cache...</title><content type='html'>So I have a Sony Z3 Compact (USA), and I do love the phone! &amp;nbsp;But really it has bitten me a couple of times... &amp;nbsp;On the good side this annoyances have been resolved by wiping the phone cache. &amp;nbsp;In this post I will like to list the situations that have been fixed by doing these. &amp;nbsp;Hopefully others find this post and get saved from factory reset as Xperia Support was guiding me to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Problems fixed by wiping phone cache:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Audio: &amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;speaker volume too low and couldn&#39;t switch to loud speaker&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;SD Card:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;can&#39;t move files into it as it was stuck in read-only mode&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;** Update on this: &amp;nbsp;The SD Card was going bad and acting only as read only until it failed completely.&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/964670717036274552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2015/05/sony-xperia-z3-annoying-issues-fixed-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/964670717036274552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/964670717036274552'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2015/05/sony-xperia-z3-annoying-issues-fixed-by.html' title='Sony Xperia Z3 - Annoying issues fixed by wiping phone cache...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-8020365763897146988</id><published>2013-03-26T21:15:00.001-07:00</published><updated>2013-03-29T20:50:29.201-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="840 Pro"/><category scheme="http://www.blogger.com/atom/ns#" term="ASUS"/><category scheme="http://www.blogger.com/atom/ns#" term="caddy"/><category scheme="http://www.blogger.com/atom/ns#" term="newmodeus"/><category scheme="http://www.blogger.com/atom/ns#" term="Review"/><category scheme="http://www.blogger.com/atom/ns#" term="Samsung"/><category scheme="http://www.blogger.com/atom/ns#" term="SONY"/><category scheme="http://www.blogger.com/atom/ns#" term="SSD"/><category scheme="http://www.blogger.com/atom/ns#" term="SVE"/><category scheme="http://www.blogger.com/atom/ns#" term="SVE14A"/><category scheme="http://www.blogger.com/atom/ns#" term="SVE14A390X"/><category scheme="http://www.blogger.com/atom/ns#" term="U500VZ"/><category scheme="http://www.blogger.com/atom/ns#" term="UX51VZ"/><category scheme="http://www.blogger.com/atom/ns#" term="VAIO"/><category scheme="http://www.blogger.com/atom/ns#" term="Zenbook"/><title type='text'>SONY VAIO - SVE14A390X Premium Plus - Review and Enhancements</title><content type='html'>&lt;i&gt;First of all this is not an &quot;expert review&quot; and it will be totally bias. &amp;nbsp;Not that I am a fan boy of one brand or another, but I really dedicate myself to find what I want.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
REVIEW&lt;/h2&gt;
For this round I needed to find a laptop that fits all my needs like:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Power for development &lt;span style=&quot;color: #666666;&quot;&gt;(lots of RAM, decent CPU, lots of memory)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Small and light so it can be with me almost everywhere&lt;span style=&quot;color: #666666;&quot;&gt; (work, home, on the go...)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Touch screen and Windows 8 &lt;span style=&quot;color: #666666;&quot;&gt;(to have latest technology changes)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
In my wish list of laptops before I found the &lt;a href=&quot;http://store.sony.com/webapp/wcs/stores/servlet/SYCTOProcess?catalogId=10551&amp;amp;storeId=10151&amp;amp;langId=-1&amp;amp;LBomId=8198552921666528652&amp;amp;categoryId=8198552921644859012&quot;&gt;VAIO SVE14A390X&lt;/a&gt; the contenders were: &amp;nbsp;&lt;a href=&quot;http://store.apple.com/us/configure/ME665LL/A?&quot;&gt;MacBook Pro - Retina Display&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href=&quot;http://www.notebookcheck.com/Test-Asus-Zenbook-UX51VZ-U500VZ-Notebook.84091.0.html&quot;&gt;Asus Zenbook -&amp;nbsp;UX51VZ&lt;/a&gt;. &amp;nbsp;But after considering issues I felt with those machines, not having touch screen for Windows 8, and the excessive price (at the moment&amp;nbsp;$2500+), I finally hit the spot with the VAIO SVE14A. &amp;nbsp;The&amp;nbsp;&lt;a href=&quot;http://store.sony.com/webapp/wcs/stores/servlet/SYCTOProcess?catalogId=10551&amp;amp;storeId=10151&amp;amp;langId=-1&amp;amp;LBomId=8198552921666528652&amp;amp;categoryId=8198552921644859012&quot;&gt;VAIO SVE14A390X Premium Plus&lt;/a&gt;&amp;nbsp;is a customized version direct from Sony Store. &amp;nbsp;For flat $2000 I got a machine with very similar specs to the ones I was looking for and more... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are some of the highlights:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;3rd gen Intel® Core™ i7-3632QM quad-core processor (2.20GHz / 3.20GHz with Turbo Boost)&lt;/li&gt;
&lt;li&gt;16GB RAM DDR3&amp;nbsp;@1600MHz&lt;/li&gt;
&lt;li&gt;AMD Radeo HD 7670M (2GB) hybrid graphics&lt;/li&gt;
&lt;li&gt;1TB Hard disk&amp;nbsp;@ 5400 RPM&lt;/li&gt;
&lt;li&gt;Touch screen&lt;/li&gt;
&lt;li&gt;Windows 8 Pro&lt;/li&gt;
&lt;li&gt;2 year SONY Protection plan (covers fall, spills, etc..)&lt;/li&gt;
&lt;li&gt;Customization / additions included in the $2000 budget&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=2&amp;amp;cad=rja&amp;amp;sqi=2&amp;amp;ved=0CHoQFjAB&amp;amp;url=http%3A%2F%2Fwww.samsung.com%2Fus%2Fcomputer%2Fmemory-storage%2FMZ-7PD512BW&amp;amp;ei=gmVSUeXMCLCB0QHv8IDoCg&amp;amp;usg=AFQjCNHDmB3Uu1b4RKS3iE1IGyd531nyhQ&amp;amp;sig2=R9-WaEn9Wbv7oNMQLeBaVg&amp;amp;bvm=bv.44342787,d.dmQ&quot;&gt;Samsung 840 PRO SSD - 512GB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.newmodeus.com/shop/index.php?main_page=product_info&amp;amp;products_id=513&quot;&gt;NewModeUS Caddy&lt;/a&gt; - for substituting the DVD player for the extra HardDisk&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://store.sony.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10551&amp;amp;storeId=10151&amp;amp;langId=-1&amp;amp;productId=8198552921666348828&quot;&gt;VAIO Messenger Case&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
My benchmark for performance was the&amp;nbsp;&lt;a href=&quot;http://www.notebookcheck.com/Test-Asus-Zenbook-UX51VZ-U500VZ-Notebook.84091.0.html&quot;&gt;Asus Zenbook -&amp;nbsp;UX51VZ&lt;/a&gt;. &amp;nbsp;After switching the hard disk for SSD, I got to say the results are very close. &amp;nbsp;Also not having a RAID 0 SSD configuration is mind easing. &amp;nbsp;SSD are dangerous still for reliability so adding RAID 0 to the mix is not really something I am looking for. &amp;nbsp;Plus many reports questions RAID 0 over SSD, but this is just derailing the focus. &amp;nbsp;Graphics performance are satisfactory but I don&#39;t play games so I am good. &amp;nbsp;The noise of the fan is ok when hot but otherwise is silent. &amp;nbsp;Surprisingly the temperature of the machine never gets hot bottom or top wise, and this was after installing software for hours. &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So comparing &lt;b&gt;Windows Experience Index&lt;/b&gt; we can see the following results:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;UX51VZ&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBk3T3KI3Y4DBkn4wLp5llfgAtV6qdixpA0W0wodjScr8dis23dzJIDgSR5uI3pPUTjcrrlho88dwtyz251y1eBnjagVOdPiLnNXO5yxosKJsLf3Vagadj-OMKZ29shznsDmmqQ9HXXK4/s1600/winperf-asus.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;124&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBk3T3KI3Y4DBkn4wLp5llfgAtV6qdixpA0W0wodjScr8dis23dzJIDgSR5uI3pPUTjcrrlho88dwtyz251y1eBnjagVOdPiLnNXO5yxosKJsLf3Vagadj-OMKZ29shznsDmmqQ9HXXK4/s640/winperf-asus.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;SVE14A390X Premium Plus&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style=&quot;color: #a64d79;&quot;&gt;Look at the hard disk transfer rate increasing from &lt;b&gt;5.9 to 8.1&lt;/b&gt;. &amp;nbsp;Also the memory operation per second went down, but I am guessing this part of not being good benchmark test process. &amp;nbsp;Just simple execute and done tests.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b style=&quot;background-color: #d5a6bd;&quot;&gt;OEM Hardware&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_bDpTV7LxNQBO2JJYeuosLuG0nJtu9zs7-pAhqPBvVYNd3o-b5G1yeYaqIdSQrI4_-PUFt2smyWj8NlvOvIGV1IOASON-5m-h3SKpeNdnjv81xeFqzCUjobj50hLV5TESEg07TZ8ydbk/s1600/vaio-performance-oem.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_bDpTV7LxNQBO2JJYeuosLuG0nJtu9zs7-pAhqPBvVYNd3o-b5G1yeYaqIdSQrI4_-PUFt2smyWj8NlvOvIGV1IOASON-5m-h3SKpeNdnjv81xeFqzCUjobj50hLV5TESEg07TZ8ydbk/s640/vaio-performance-oem.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b style=&quot;background-color: #d5a6bd;&quot;&gt;With Custom SSD&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhthxCcKtHIpCEEU8A9kHtvT28cZcKvI49RbioPbVEkTEse-1qp54Pn_yXAPpUqd5lCHVF6aZBOgxJ6y5y_Z8FtDxA2VmNPEFdZqqIQs2sVOZr_t_DCsVn2lT1ALUoQitPacVjTMKKWJ9Q/s1600/winperf-vaio.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;144&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhthxCcKtHIpCEEU8A9kHtvT28cZcKvI49RbioPbVEkTEse-1qp54Pn_yXAPpUqd5lCHVF6aZBOgxJ6y5y_Z8FtDxA2VmNPEFdZqqIQs2sVOZr_t_DCsVn2lT1ALUoQitPacVjTMKKWJ9Q/s640/winperf-vaio.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
ENHANCEMENTS&lt;/h2&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;span style=&quot;background-color: #d5a6bd;&quot;&gt;Swap HDD for SSD&lt;/span&gt;&lt;/h3&gt;
The only major customization is swapping the HDD (hard disk) for the SSD (solid state drive). &amp;nbsp;Before I did it myself, I google around for DIY / tutorials about what is needed. &amp;nbsp;Unfortunately the information I found can be quite confusing for such an easy process. &amp;nbsp;For this scenario we are keeping the original configuration from the recovery disk and do a new install in the SSD. &amp;nbsp;&lt;i&gt;Please don&#39;t just install an image in the SSD as this can result in bad&amp;nbsp;performance&amp;nbsp;and premature damage to your SSD&lt;/i&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
1. Create the Recovery Media&lt;/h4&gt;
&lt;div&gt;
Sony doesn&#39;t distribute the Recovery Disks anymore. &amp;nbsp;Instead they exists in a partition of your OEM disk. &amp;nbsp;All you have to do is &lt;a href=&quot;http://www.kb.sony.com/selfservice/documentLink.do?externalId=C1034757&quot;&gt;follow the instructions in this link&lt;/a&gt; to burn the recovery disks.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
2. Swap the HDD for SSD&lt;/h4&gt;
&lt;div&gt;
Below are some images of the swap, but this should be plug and play. &amp;nbsp;Just take your time and don&#39;t force anything. &amp;nbsp;The only important note is to swap the bracket holding the HDD in place and place it in the SSD as shown in the photos below.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuKeDTgfT_FZtOOgfa_qLZtfnzvtWLjLMzY1nzVFhIXgDSlhv94ow-VuoVN81GS9K20a9q7hUN44nAkP0J0YRgVlWi91DgihO1ZMO9vsvq3iuCBRCXRLKgCEUGlMJZOUaamO-72egjFDE/s1600/IMAG0196.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuKeDTgfT_FZtOOgfa_qLZtfnzvtWLjLMzY1nzVFhIXgDSlhv94ow-VuoVN81GS9K20a9q7hUN44nAkP0J0YRgVlWi91DgihO1ZMO9vsvq3iuCBRCXRLKgCEUGlMJZOUaamO-72egjFDE/s400/IMAG0196.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizMQ7bJongVAj_wNAweXYv_9HbsvIf62DDJiTO7pyvPKg40X3V1uvjl5qqdcJVOHc5M9E3g2pezQoWFk3yKBaAx2hyIuJBNDSv-8Lbcy7T6rU_LxtRZ3E_8XfRMrfGVY3Z9teWRLT8ROI/s1600/IMAG0197.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizMQ7bJongVAj_wNAweXYv_9HbsvIf62DDJiTO7pyvPKg40X3V1uvjl5qqdcJVOHc5M9E3g2pezQoWFk3yKBaAx2hyIuJBNDSv-8Lbcy7T6rU_LxtRZ3E_8XfRMrfGVY3Z9teWRLT8ROI/s400/IMAG0197.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
3. Re-install the system with Recovery Media&lt;/h4&gt;
&lt;div&gt;
Once you finish placing the SSD now you need to install Windows 8 OS. &amp;nbsp;&lt;a href=&quot;http://www.kb.sony.com/selfservice/documentLink.do?externalId=C1031321&quot;&gt;Follow this link for the instructions&lt;/a&gt;. &amp;nbsp;I got to say I am surprise with how easy is with Windows 8 to re-install the OS. &amp;nbsp;No questions about disk partition, file system format, etc... &amp;nbsp;Even no need to specify the&amp;nbsp;activation as with Windows 8 this is kind of built in into the hardware (&lt;i&gt;I think motherboard&lt;/i&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;background-color: #d5a6bd;&quot;&gt;Replace DVD &amp;nbsp;for HDD&lt;/span&gt;&lt;/h3&gt;
Now for the other modification of converting the DVD player into a secondary HDD. &amp;nbsp;For that we need the &lt;a href=&quot;http://www.newmodeus.com/shop/index.php?main_page=product_info&amp;amp;products_id=513&quot;&gt;caddy to hold the HDD&lt;/a&gt;. &amp;nbsp;The process is simple but &lt;u&gt;take your time&lt;/u&gt;! &amp;nbsp;There are plenty of tiny screws and the face plate is fragile. &amp;nbsp;Read the following &lt;a href=&quot;http://www.newmodeus.com/pics/OBHD/9mm-ODD-faceplate-installation-guide.pdf&quot;&gt;&lt;b&gt;instructions&lt;/b&gt;&lt;/a&gt; prior to starting the swap.&lt;br /&gt;
&lt;br /&gt;
The only &quot;hard&quot; steps is shown below in the photos. &amp;nbsp;The trick for taking the face plate out press the tab down while pulling the plate in a rotational motion. &amp;nbsp;I don&#39;t remember the exact direction of the rotation, but just &lt;b&gt;&lt;u&gt;don&#39;t pull straight&lt;/u&gt;&lt;/b&gt;. &amp;nbsp;This is plastic so if you break it, you are going to be sorry.&lt;br /&gt;
&lt;br /&gt;
The results. &amp;nbsp;Well the machine is a little heavier but not enough to make a real difference because this is not an ultrabook light. &amp;nbsp;Actually, having the hard drive makes the machine more sturdy when I grab it on that side versus feeling hollow. &amp;nbsp;Meaning I can hold it with a solid grip without worrying. &amp;nbsp;Having a 1TB disk is awesome for system image backups, store movies, ISOs, etc. &amp;nbsp;Since this is the OEM disk, it contains partitions for recovery and even Windows 8 still installed for the case my SSD fails and I need to react quick. &amp;nbsp;Noise and heat is the same or none.&lt;br /&gt;
&lt;br /&gt;
Only weird finding is that I can access my old user account in Windows 8 partition. &amp;nbsp;I don&#39;t know what credential Windows 8 in the SSD found to give me access to the old user account, but that sounds like security breach to me.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Press the tab:&lt;/u&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9YerWcQjDd4htLXk_g6ZhhkrlWDE49r9BZMy-6-I3bWlmesO8ZyzOeAngz9UIRt2Kbug3kweAsXqg06lGcvfBarD1giVjPP8peVO-KaaGx2OJyuxEWxvW-Gjgc3H8o4wCfHjcwnAml4o/s1600/IMAG0228_resized.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9YerWcQjDd4htLXk_g6ZhhkrlWDE49r9BZMy-6-I3bWlmesO8ZyzOeAngz9UIRt2Kbug3kweAsXqg06lGcvfBarD1giVjPP8peVO-KaaGx2OJyuxEWxvW-Gjgc3H8o4wCfHjcwnAml4o/s640/IMAG0228_resized.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While pulling in a rotational manner because the tabs have hooks:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYrw-QVagN5uAG3rkwgsQqKHMgO9SQ0N8BZwrOfiw5b2MQkgHmYNLCStXOfskGJzrXI2Y2X9BSD2TKfJaoR-YxocnLrpWXKvm_DKjkC9KUrItb4foKSCQn1NDWvoyPAmCszTZOU3IoXyE/s1600/IMAG0231_resized.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYrw-QVagN5uAG3rkwgsQqKHMgO9SQ0N8BZwrOfiw5b2MQkgHmYNLCStXOfskGJzrXI2Y2X9BSD2TKfJaoR-YxocnLrpWXKvm_DKjkC9KUrItb4foKSCQn1NDWvoyPAmCszTZOU3IoXyE/s640/IMAG0231_resized.jpg&quot; width=&quot;440&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/8020365763897146988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2013/03/sony-vaio-sve14a390x-premium-plus.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/8020365763897146988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/8020365763897146988'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2013/03/sony-vaio-sve14a390x-premium-plus.html' title='SONY VAIO - SVE14A390X Premium Plus - Review and Enhancements'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBk3T3KI3Y4DBkn4wLp5llfgAtV6qdixpA0W0wodjScr8dis23dzJIDgSR5uI3pPUTjcrrlho88dwtyz251y1eBnjagVOdPiLnNXO5yxosKJsLf3Vagadj-OMKZ29shznsDmmqQ9HXXK4/s72-c/winperf-asus.png" height="72" width="72"/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-8729984067972797865</id><published>2013-02-17T15:40:00.001-08:00</published><updated>2013-02-17T15:40:08.330-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AV Cable"/><category scheme="http://www.blogger.com/atom/ns#" term="cradle"/><category scheme="http://www.blogger.com/atom/ns#" term="dock"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone 5"/><category scheme="http://www.blogger.com/atom/ns#" term="Lightning to 30-pin Adapter"/><category scheme="http://www.blogger.com/atom/ns#" term="ProClipUsa"/><title type='text'>iPhone 5 - ProClipUsa - AV cable adaptation</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;
My wife listens to music from her iPhone 4 by docking it in the ProClipUsa cradle.&amp;nbsp; The cradle connects the iPhone to the AV cable and connects to the SUV sound system.&amp;nbsp; With the iPhone 5 the cable connections have change so I had to figure out a new configuration.&lt;br /&gt;
&lt;br /&gt;
In order to avoid changing the existing iPhone RCA AV cable, I bought the &lt;a href=&quot;http://store.apple.com/us/product/MD824ZM/A/lightning-to-30-pin-adapter-02-m?fnode=45&quot; target=&quot;_blank&quot;&gt;iPhone 5 Lightning to 30-pin Adapter&lt;/a&gt; which converts output of digital to analog.&amp;nbsp; The problem I ran was that the cradles for the iPhone 5 were limited to the original power cable and non of the cradle at that moment will fit the AV cable required for iPhone 5.&amp;nbsp; The iPhone 5 cables had different width at the phone plug side, which made the fitting non-generic.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: magenta;&quot;&gt;&lt;i&gt;FYI - as I wrote this post, I found ProClipUsa&amp;nbsp; now has an option to buy a cradle which will fit the AV cable.&amp;nbsp; So no need to do this modification anymore.&amp;nbsp; But if you have the original ProClipUsa cradle for the power cable, then keep going to see how easy is to modify.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
ProClipUsa - iPhone 5 cradles&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.proclipusa.com/?sectionpath=383&amp;amp;pageid=16737&amp;amp;processor=content&amp;amp;pcategoryid=13759&amp;amp;categoryid=19045&amp;amp;lightwindow=true&amp;amp;usermode=_dualselect&amp;amp;v_pcat=&amp;amp;v_cat=&amp;amp;year=&amp;amp;d_pcat=13759&amp;amp;d_cat=19045&amp;amp;have_holder=false&amp;amp;have_mount=true&amp;amp;p_pageid=1&amp;amp;dtype=&quot; target=&quot;_blank&quot;&gt;Original - Power cable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.proclipusa.com/?sectionpath=383&amp;amp;pageid=16743&amp;amp;processor=content&amp;amp;pcategoryid=13759&amp;amp;categoryid=19045&amp;amp;lightwindow=true&amp;amp;usermode=_dualselect&amp;amp;v_pcat=&amp;amp;v_cat=&amp;amp;year=&amp;amp;d_pcat=13759&amp;amp;d_cat=19045&amp;amp;have_holder=false&amp;amp;have_mount=true&amp;amp;p_pageid=1&amp;amp;dtype=&quot; target=&quot;_blank&quot;&gt;New - AV Cable&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Quick How To:&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
First get the tools for stripping the phone plug in the Lightning to 30-pin Adapter.&amp;nbsp; For this I used a vice-grip and a picker tool with a sharp edge.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKjOxsBFpY3S8vrSMB0ZYOWITb7O8o6vFF9pfi7Xc6mXRl4XFgCQ9GMEaUBW8laYWjv849Rue59bbbVqLN2opUKFEoN-eCUsuqRKbMuCbKlxyL4oY6t08-MrK8YUi6cwXN7wAR2OuOggo/s1600/CameraZOOM-20121215215914187.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKjOxsBFpY3S8vrSMB0ZYOWITb7O8o6vFF9pfi7Xc6mXRl4XFgCQ9GMEaUBW8laYWjv849Rue59bbbVqLN2opUKFEoN-eCUsuqRKbMuCbKlxyL4oY6t08-MrK8YUi6cwXN7wAR2OuOggo/s320/CameraZOOM-20121215215914187.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
With the vice-grips hold the phone plug close to the bottom so you have room on the upper side to break the protecting plastic coating.&amp;nbsp; Insert the picker in between the plastic coat and the other inner coating.&amp;nbsp; The idea is to insert in between and break the plastic by pressuring outward such that the cable doesn&#39;t get harmed.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTVg9h4sbenI-c5rkeHemdf5eHRxC1_xvoXVJiS_vddjMkt_W32kkMwUJjhHVAJa5E-gdMCLBXMc1y411JJ3MOQHqkrQzq3EnAK_IQgE61wzj0UJ_MIKa4A2xSSFLjQxUlUiXSsbgpwWg/s1600/CameraZOOM-20121215221005818.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTVg9h4sbenI-c5rkeHemdf5eHRxC1_xvoXVJiS_vddjMkt_W32kkMwUJjhHVAJa5E-gdMCLBXMc1y411JJ3MOQHqkrQzq3EnAK_IQgE61wzj0UJ_MIKa4A2xSSFLjQxUlUiXSsbgpwWg/s320/CameraZOOM-20121215221005818.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
This is how it looks once the plastic is stripped. &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCWq-7bB5exb39hdbD5iSY51bin8A_47qgpqj5hkMoJZiv_IWV0z0E1zZ6L-3BO97sKwbR1VvhcH72djuaH-oQoPEBeeFP1pkkn4CFsMRYk-qCur9xWNn3VxRyKff_bu9H_TB4nYE8MC0/s1600/CameraZOOM-20121215221118495.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCWq-7bB5exb39hdbD5iSY51bin8A_47qgpqj5hkMoJZiv_IWV0z0E1zZ6L-3BO97sKwbR1VvhcH72djuaH-oQoPEBeeFP1pkkn4CFsMRYk-qCur9xWNn3VxRyKff_bu9H_TB4nYE8MC0/s320/CameraZOOM-20121215221118495.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt; &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Now the cable is too thin for staying lock in the cradles opening.&amp;nbsp; Let&#39;s fix that!&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ASXPp2cHHNYfn4c3XLlQevW-7SlGwVfnmQ8ERm97GbYSdMOypKdXVEsT8m9U3bEMtRKCYI3-UBb6VvqYeBXpmCUtumIDc41mtBrnNdJ_BT0mvonBbH48Ww33tF9ptz3h14_-KxHNVDs/s1600/CameraZOOM-20121215221146745.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ASXPp2cHHNYfn4c3XLlQevW-7SlGwVfnmQ8ERm97GbYSdMOypKdXVEsT8m9U3bEMtRKCYI3-UBb6VvqYeBXpmCUtumIDc41mtBrnNdJ_BT0mvonBbH48Ww33tF9ptz3h14_-KxHNVDs/s320/CameraZOOM-20121215221146745.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Roll a little of electrical tape over where the plastic shield existed.&amp;nbsp; This will protect the cable plus give the thickness we need to keep the cable in place.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV7XGGAanKOIrzMDYcTaMBiqAmzzGaRDGqfiK14g_XxWxCKzWRJ5yMtzCrXtIoon2zwmn7e-vA3qetMzIzgovy5x9qFQNPbxVD0TFtMaMHD71AG2uwowVrq8iP5NA72CCrqElTf_EtvIE/s1600/CameraZOOM-20121215221404020.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV7XGGAanKOIrzMDYcTaMBiqAmzzGaRDGqfiK14g_XxWxCKzWRJ5yMtzCrXtIoon2zwmn7e-vA3qetMzIzgovy5x9qFQNPbxVD0TFtMaMHD71AG2uwowVrq8iP5NA72CCrqElTf_EtvIE/s320/CameraZOOM-20121215221404020.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt; &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Insert the cable in the cradle and make sure it sits firm.&amp;nbsp; Then test the cradle a couple of times to make sure the phone plugs and disconnects smoothly.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP_BEQ1UHPIlUEbDc7CccsT0gG3bZ20MotBtNrfDL-2pSAiK0ziwrLRmZhZWv0U69-rcuAGxTMPH2mLCllsrGb_cq9NmP02tDBE-EYDogQI6K3Wspkl9wDIIF_SY-s4Hn2b4qyO6ziSLA/s1600/CameraZOOM-20121215222034997.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP_BEQ1UHPIlUEbDc7CccsT0gG3bZ20MotBtNrfDL-2pSAiK0ziwrLRmZhZWv0U69-rcuAGxTMPH2mLCllsrGb_cq9NmP02tDBE-EYDogQI6K3Wspkl9wDIIF_SY-s4Hn2b4qyO6ziSLA/s320/CameraZOOM-20121215222034997.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/8729984067972797865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2013/02/iphone-5-proclipusa-av-cable-adaptation.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/8729984067972797865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/8729984067972797865'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2013/02/iphone-5-proclipusa-av-cable-adaptation.html' title='iPhone 5 - ProClipUsa - AV cable adaptation'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKjOxsBFpY3S8vrSMB0ZYOWITb7O8o6vFF9pfi7Xc6mXRl4XFgCQ9GMEaUBW8laYWjv849Rue59bbbVqLN2opUKFEoN-eCUsuqRKbMuCbKlxyL4oY6t08-MrK8YUi6cwXN7wAR2OuOggo/s72-c/CameraZOOM-20121215215914187.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-128269785655481342</id><published>2012-12-23T15:11:00.001-08:00</published><updated>2012-12-23T15:11:41.493-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Boricua"/><category scheme="http://www.blogger.com/atom/ns#" term="Chef QueJon"/><category scheme="http://www.blogger.com/atom/ns#" term="Christmas"/><category scheme="http://www.blogger.com/atom/ns#" term="Coquito"/><category scheme="http://www.blogger.com/atom/ns#" term="Drink"/><category scheme="http://www.blogger.com/atom/ns#" term="Puerto Rico"/><category scheme="http://www.blogger.com/atom/ns#" term="Receta"/><category scheme="http://www.blogger.com/atom/ns#" term="Recipe"/><category scheme="http://www.blogger.com/atom/ns#" term="Xmas"/><title type='text'>Recipe - Coquito Boricua</title><content type='html'>The &lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Co&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;qui&lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;to&lt;/span&gt;&lt;/b&gt; is one of the traditional Christmas drinks of Puerto Rico.&amp;nbsp; Usually this drink is compare with the American Eggnog.&amp;nbsp; There are many recipes in the web about how to do the Coquito, and even some debate about the drink having egg yolk or not.&amp;nbsp; Mine is yet another variation of this common recipe using Fat Free ingredients and &quot;huevo-less&quot; &lt;i&gt;(Spanglish for no egg&lt;/i&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTXCXy-dFkqfYbWYa8kOSO-NlBu_AIKm8y8UKKbbcwCJj_KM-3BV87abJYBZmKL78-_VkmW7Q102muhwNgxbHGItEV_TdJz8ZtOeyaT6f6_v5hyphenhyphen9BhFZUp-Pjwhd1-eDS-ZD2ylB7LWzg/s1600/CameraZOOM-20121223143136993_resized.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTXCXy-dFkqfYbWYa8kOSO-NlBu_AIKm8y8UKKbbcwCJj_KM-3BV87abJYBZmKL78-_VkmW7Q102muhwNgxbHGItEV_TdJz8ZtOeyaT6f6_v5hyphenhyphen9BhFZUp-Pjwhd1-eDS-ZD2ylB7LWzg/s320/CameraZOOM-20121223143136993_resized.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Recipe:&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1/2 Regular can of Coco Lopez coconut cream&lt;/li&gt;
&lt;li&gt;1/2 Large can of Borden Fat Free condense milk&lt;/li&gt;
&lt;li&gt;3/4 Large can of Borden Fat Free evaporated milk&lt;/li&gt;
&lt;li&gt;1 Regular can of Thai coconut milk&lt;/li&gt;
&lt;li&gt;1 small spoon of Pure Vanilla Extract&lt;/li&gt;
&lt;li&gt;1 small spoon of Coconut Extract&lt;/li&gt;
&lt;li&gt;1/4 cup of Bacardi Select spice rum&lt;/li&gt;
&lt;li&gt;1/2 cup of Bacardi white rum &lt;/li&gt;
&lt;li&gt;Dash of Cinnamon &lt;/li&gt;
&lt;li&gt;Pinch of sal &lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;color: #444444;&quot;&gt;&lt;i&gt;This recipe is not an exact science and very easy to adjust to either sweeter or &lt;u&gt;stronger&lt;/u&gt;.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: lime;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: lime;&quot;&gt;V&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color: lime;&quot;&gt;y&lt;/span&gt; &lt;span style=&quot;color: red;&quot;&gt;Im&lt;/span&gt;&lt;span style=&quot;color: lime;&quot;&gt;por&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;tant&lt;span style=&quot;color: black;&quot;&gt;&lt;i&gt;: - &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: lime;&quot;&gt;Have fun&lt;/span&gt; &lt;span style=&quot;color: red;&quot;&gt;with it!&lt;span style=&quot;color: black;&quot;&gt;&lt;i&gt;!!&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbIvI7SkkG49lqwuwK8byx8lfRYyc2ANG2Kdb_6ccMNCT-fAgeyXRsUeu6YU53jeK93LHDQ1VZapibGJVJLEZHCNa5GKvZLZXYsy_gwcmyxulU31eZ5supf3VdhMHuKfEC8Y6dAN71z54/s1600/CameraZOOM-20121223135532327_resized.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbIvI7SkkG49lqwuwK8byx8lfRYyc2ANG2Kdb_6ccMNCT-fAgeyXRsUeu6YU53jeK93LHDQ1VZapibGJVJLEZHCNa5GKvZLZXYsy_gwcmyxulU31eZ5supf3VdhMHuKfEC8Y6dAN71z54/s320/CameraZOOM-20121223135532327_resized.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTXCXy-dFkqfYbWYa8kOSO-NlBu_AIKm8y8UKKbbcwCJj_KM-3BV87abJYBZmKL78-_VkmW7Q102muhwNgxbHGItEV_TdJz8ZtOeyaT6f6_v5hyphenhyphen9BhFZUp-Pjwhd1-eDS-ZD2ylB7LWzg/s1600/CameraZOOM-20121223143136993_resized.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;/h2&gt;
</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/128269785655481342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/12/recipe-coquito-boricua.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/128269785655481342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/128269785655481342'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/12/recipe-coquito-boricua.html' title='Recipe - Coquito Boricua'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTXCXy-dFkqfYbWYa8kOSO-NlBu_AIKm8y8UKKbbcwCJj_KM-3BV87abJYBZmKL78-_VkmW7Q102muhwNgxbHGItEV_TdJz8ZtOeyaT6f6_v5hyphenhyphen9BhFZUp-Pjwhd1-eDS-ZD2ylB7LWzg/s72-c/CameraZOOM-20121223143136993_resized.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-3065368955170960531</id><published>2012-12-21T21:35:00.000-08:00</published><updated>2012-12-23T14:20:58.660-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design Documents"/><category scheme="http://www.blogger.com/atom/ns#" term="project management"/><category scheme="http://www.blogger.com/atom/ns#" term="SDLC"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Engineering"/><title type='text'>Design Documents - My Cheat Sheet...</title><content type='html'>Design documents are something many of us as engineers write to express how business needs will be solved.&amp;nbsp; These documents are very important for the business because they are what drives the direction of the current development and explains how the goal will be achieved.&amp;nbsp; A design document is a very important worksheet which captures the requirements, the domain knowledge, the vision, and the implementation idea of what a team will be working to make a reality.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, I have seen through my career that the continuous process of the SDLC dims the importance of design documents for various reasons.&amp;nbsp; Sometimes is just time frame, others the people are not interested with the project, and in many of them the person writing the design just doesn&#39;t know how to express.&amp;nbsp; I think the latter is the most common one and my focus in this article.&lt;br /&gt;
&lt;br /&gt;
A design is not expected to be perfect, but it should have the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Express what the problem is and the business requirements&lt;/li&gt;
&lt;li&gt;Understand who are affected by the problem&lt;/li&gt;
&lt;li&gt;How will the problem be solved in a non-technical way&lt;/li&gt;
&lt;li&gt;Only include important technical details and don&#39;t code the design&lt;/li&gt;
&lt;li&gt;Try to interest your audience by expressing their focus, not yours &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
I decided writing about design documents after helping a teammate with reviewing his paper.&amp;nbsp; Below is a &quot;copy / paste&quot; of what I wrote to him.&amp;nbsp; Hopefully this helps others because writing documents is something that really has aid my career when presenting projects.&amp;nbsp; Remember, don&#39;t get stuck in making it perfect but instead spend the time in making it concise and attractive.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;i&gt;&lt;u&gt;Letter to my teammate:&lt;/u&gt;&lt;/i&gt;&lt;/h3&gt;
&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;color: #444444;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;In general, you should learn to organized your thoughts when expressing an idea.&amp;nbsp; It doesn’t have to be perfect, but at least help the audience understand why is this important for them.&amp;nbsp; This is something I think we all learn as we progress in the career.&amp;nbsp; The sooner you master this, the quicker you will build professional documents.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;&lt;u&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Here are some tips:&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Start your paragraphs with functional description.&amp;nbsp; Forget the computer for a moment and explain what is needed and how you plan to achieve it.&amp;nbsp; Technical implementations come and go, but the concept of what we are trying to achieve is the core of the project.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Personally, I try defining an Outline of ideas..&amp;nbsp; What is needed?&amp;nbsp; Which bits and pieces are required to achieve it?&amp;nbsp; Any questions or gaps?&amp;nbsp; Dependencies to think of?&amp;nbsp; Possible blockers?&amp;nbsp; So far I have not talk in computer terms but project focus.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Once I have that outline, I try writing paragraphs explaining the bullet points and connecting the parts.&amp;nbsp; I go through several iterations myself...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;The good thing of writing all these functional paragraphs is that later you can go one by one and as you read them, you will get all the ideas and requirements for the technical sections of the document.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Another thing I learned with time is not to get hanged in writing technical information.&amp;nbsp; &lt;span style=&quot;color: #e06666;&quot;&gt;&lt;b&gt;Why?...&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span style=&quot;color: #e06666;&quot;&gt;When you are the developer.&lt;/span&gt;&amp;nbsp; You know how to do it and you are better off writing it directly in code.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span style=&quot;color: #e06666;&quot;&gt;When you it hand off to an experience developer.&lt;/span&gt;&amp;nbsp; In this case the experience developer knows the tools and knows the system.&amp;nbsp; Usually they want just the different technical points.&amp;nbsp; They benefit more from understanding the idea and not how to achieve it.&amp;nbsp; Actually too much details becomes two cooks in the kitchen…&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span style=&quot;color: #e06666;&quot;&gt;When the developer doesn’t know the technology.&lt;/span&gt;&amp;nbsp; At that point giving them the code and technical details will not solve anything for them.&amp;nbsp; They will need guidance and is better to don’t even give them code so they &lt;span style=&quot;font-size: small;&quot;&gt;ca&lt;/span&gt;n’t copy / paste it blindly.&amp;nbsp; And yes, I have seen that happen.&amp;nbsp; I think the best approach here becomes train and code.&amp;nbsp; Where you as the designer need to do some code work with the developer so they can learn from you.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Hope you find this helpful.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;color: #444444;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/3065368955170960531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/12/design-documents-my-cheat-sheet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/3065368955170960531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/3065368955170960531'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/12/design-documents-my-cheat-sheet.html' title='Design Documents - My Cheat Sheet...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-4990102366885349612</id><published>2012-08-23T07:57:00.003-07:00</published><updated>2012-08-23T08:12:05.778-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AbstractMethodError"/><category scheme="http://www.blogger.com/atom/ns#" term="ConnectionHandle"/><category scheme="http://www.blogger.com/atom/ns#" term="Geronimo 3"/><category scheme="http://www.blogger.com/atom/ns#" term="JDBC"/><category scheme="http://www.blogger.com/atom/ns#" term="OracleConnection"/><category scheme="http://www.blogger.com/atom/ns#" term="TranQL"/><category scheme="http://www.blogger.com/atom/ns#" term="unwrap"/><title type='text'>Geronimo 3 - OracleConnection unwrap AbstractMethodError - JDBC4</title><content type='html'>I will update and post more information about this later...&lt;br /&gt;
&lt;br /&gt;
But meanwhile I will &amp;nbsp;post links to the forums I wrote to resolve the problem.&lt;br /&gt;
TranQL -&amp;nbsp;&lt;a href=&quot;https://jira.codehaus.org/browse/TQL-31?focusedCommentId=306715#comment-306715&quot;&gt;https://jira.codehaus.org/browse/TQL-31?focusedCommentId=306715#comment-306715&lt;/a&gt;&lt;br /&gt;
Spring -&amp;nbsp;&lt;a href=&quot;http://forum.springsource.org/showthread.php?129311-Cast-ConnectionHandle-to-OracleConnection&quot;&gt;http://forum.springsource.org/showthread.php?129311-Cast-ConnectionHandle-to-OracleConnection&lt;/a&gt;&lt;br /&gt;
Geronimo -&amp;nbsp;&lt;a href=&quot;https://issues.apache.org/jira/browse/GERONIMO-6383&quot;&gt;https://issues.apache.org/jira/browse/GERONIMO-6383&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you are going through the same and need some help, just post a comment.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Related Errors:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #f0f0f0; font-family: Arial, FreeSans, Helvetica, sans-serif; font-size: 13px; line-height: 17px;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;java.lang.AbstractMethodError: org.tranql.connector.jdbc.ConnectionHandle.unwrap(Ljava/lang/Class;)Ljava/lang/Object;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #f0f0f0; font-family: Arial, FreeSans, Helvetica, sans-serif; font-size: 13px; line-height: 17px;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: #f0f0f0; line-height: 17px;&quot;&gt;&lt;span style=&quot;color: #cc0000; font-family: Arial, FreeSans, Helvetica, sans-serif; font-size: x-small;&quot;&gt;java.lang.ClassCastException: org.tranql.connector.jdbc.ConnectionHandle cannot be cast to oracle.jdbc.OracleConnection&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/4990102366885349612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/08/geronimo-3-oracleconnection-unwrap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/4990102366885349612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/4990102366885349612'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/08/geronimo-3-oracleconnection-unwrap.html' title='Geronimo 3 - OracleConnection unwrap AbstractMethodError - JDBC4'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-771175637337836865</id><published>2012-07-31T20:51:00.000-07:00</published><updated>2012-07-31T20:55:48.999-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="env variable"/><category scheme="http://www.blogger.com/atom/ns#" term="JAVA"/><category scheme="http://www.blogger.com/atom/ns#" term="properties"/><category scheme="http://www.blogger.com/atom/ns#" term="PropertyPlaceholderConfigurer"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><category scheme="http://www.blogger.com/atom/ns#" term="VM Arguments"/><title type='text'>Spring - Making a self configurable project</title><content type='html'>In my projects I prefer having self configurable solutions and avoid any additional involvement for deploying an enterprise application (EAR file). &amp;nbsp;For example, if the project needs to call some web services but the host address depends of the environment where the deploying is occurring (i.e. DEV, QAT, UAT, PROD). &amp;nbsp;Or you might need specific settings in each environment like DEV where you want to have more traces and debug information. &amp;nbsp;&lt;i&gt;&lt;b&gt;Imagine having to configure each setting every time you deploy... &amp;nbsp;plus this is prone to errors.&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;h2&gt;
So how to make the solution self configurable?&lt;/h2&gt;
In my case I use a combination of the JAVA env variable and Spring.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Set ENV Variable&lt;/h3&gt;
Configure the JVM which hosts your application and set the vm argument: &amp;nbsp;&lt;b style=&quot;background-color: yellow;&quot;&gt;-Denv &amp;lt;name&amp;gt;&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
For example if using Geronimo application server, I will set this in the Launch Configuration where the VM arguments are configured.
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;geronimo.config.vm&quot;&gt;-javaagent:&quot;$(GERONIMO_HOME)/lib/agent/transformer.jar&quot; -Djava.ext.dirs=&quot;$(GERONIMO_HOME)/lib/ext;$(JRE_HOME)/lib/ext&quot; -Djava.endorsed.dirs=&quot;$(GERONIMO_HOME)/lib/endorsed;$(JRE_HOME)/lib/endorsed&quot; -Xms512m -Xmx1024m -XX:MaxPermSize=512m -Dorg.apache.geronimo.home.dir=&quot;$(GERONIMO_HOME)&quot; -Dkaraf.home=&quot;$(GERONIMO_HOME)&quot; -Dkaraf.base=&quot;$(GERONIMO_HOME)&quot; -Djava.util.logging.config.file=&quot;$(GERONIMO_HOME)/etc/java.util.logging.properties&quot; -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=false -Denv=dev
&lt;/pre&gt;
&lt;br /&gt;
&lt;h3&gt;
Spring - ENV Configuration&lt;/h3&gt;
I use Spring Framework to handle many of the dynamic characteristics of the project. &amp;nbsp;With Spring I can read the &lt;u&gt;JVM env variable&lt;/u&gt; and do the following inside the &lt;b&gt;applicationContext.xml&lt;/b&gt; file to achieve a self-configurable solution.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Spring - ApplicationContext.xml&lt;/h4&gt;
This file is used by Spring to configure the application being loaded. &amp;nbsp;In the configuration I list two files: &amp;nbsp;&lt;b&gt;application.properties&lt;/b&gt; and &lt;b&gt;application.${env}.properties&lt;/b&gt;. &amp;nbsp;Notice the property files are bundle in the compiled JAR, so they are not easily visible nor accessible. &amp;nbsp;Plus you don&#39;t have to worry about the physical path since the files will be in the classpath. &amp;nbsp;The reason for having two files is that I can use one for all the general properties and another for environment specific settings. &amp;nbsp;Be careful that the order of the property files is important in the applicationContext.xml for how values are&amp;nbsp;overridden.&lt;br /&gt;
&lt;pre class=&quot;brush:xml&quot; name=&quot;spring.application.context&quot;&gt;&lt;bean class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot; id=&quot;applicationProperties&quot;&gt;
&lt;property name=&quot;locations&quot;&gt;
    &lt;list&gt;
    &lt;value&gt;classpath:com/jonnazario/myapp/properties/application.properties&lt;/value&gt;
    &lt;value&gt;classpath:com/jonnazario/myapp/properties/application.${env}.properties&lt;/value&gt;
    &lt;/list&gt;
&lt;/property&gt;
&lt;property name=&quot;ignoreUnresolvablePlaceholders&quot; value=&quot;false&quot;&gt;
&lt;/property&gt;&lt;/bean&gt;


&lt;bean class=&quot;com.jonnazario.framework.util.SystemProperties&quot; id=&quot;systemProperties&quot;&gt;
    &lt;constructor-arg name=&quot;appVersion&quot; value=&quot;${app.Version:&#39;0.0.0&#39;}&quot;&gt;
    &lt;constructor-arg name=&quot;devModeEnabled&quot; value=&quot;${app.devModeEnabled:&#39;false&#39;}&quot;&gt;
    &lt;constructor-arg name=&quot;resultResMaxStackTraceLines&quot; value=&quot;${app.hostname:&#39;localhost&#39;}&quot;&gt;
&lt;/constructor-arg&gt;&lt;/constructor-arg&gt;&lt;/constructor-arg&gt;&lt;/bean&gt;&lt;/pre&gt;
&lt;br /&gt;
For my preference I have a &lt;b&gt;SystemProperties&lt;/b&gt; class which I load with values that are important for the application (i.e. Version, DevModeEnabled, HostName).  For this I pass the property values as arguments to the constructor and if they are not defined in the property files, I still set the default values within the applicationContext.xml file.
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Properties file&lt;/h4&gt;
These are example values for the general and environment specific application properties files. &amp;nbsp;See how some properties are&amp;nbsp;overridden&amp;nbsp;while other are not defined at all.
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Configuration - &lt;span style=&quot;color: #6aa84f;&quot;&gt;General
&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;spring.config.general&quot;&gt;# -- General Properties
app.Version=2012.07.01.00
app.devModeEnabled=false
&lt;/pre&gt;
&lt;br /&gt;
&lt;u&gt;Configuration - &lt;span style=&quot;color: blue;&quot;&gt;DEV
&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;spring.config.envDEV&quot;&gt;# -- DEV Properties
app.Version=work.in.progress
app.devModeEnabled=true
&lt;/pre&gt;
&lt;br /&gt;
&lt;u&gt;Configuration - &lt;span style=&quot;color: blue;&quot;&gt;PROD
&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;spring.config.envPROD&quot;&gt;# -- PROD Properties
app.hostname=www.myapp.com
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this helps.</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/771175637337836865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/07/spring-making-self-configurable-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/771175637337836865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/771175637337836865'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/07/spring-making-self-configurable-project.html' title='Spring - Making a self configurable project'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-1813770829628766620</id><published>2012-07-11T19:55:00.000-07:00</published><updated>2012-07-11T20:07:01.798-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="A4"/><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Atrix"/><category scheme="http://www.blogger.com/atom/ns#" term="Audi"/><category scheme="http://www.blogger.com/atom/ns#" term="Avic"/><category scheme="http://www.blogger.com/atom/ns#" term="CarPC"/><category scheme="http://www.blogger.com/atom/ns#" term="WebTop"/><category scheme="http://www.blogger.com/atom/ns#" term="Z110BT"/><title type='text'>Android WebTop - CarPc Setup</title><content type='html'>For a while I have been working on integrating my phone into the car. &amp;nbsp;I thought about doing a full CarPC project like the ones in &lt;a href=&quot;http://mp3car.com/&quot;&gt;mp3car.com&lt;/a&gt;, but the reality is that I am cheap plus I want something &quot;maintenance&quot; free. &amp;nbsp;&lt;i&gt;Well really.. what project is maintenance free?....&lt;/i&gt; &amp;nbsp;:)&lt;br /&gt;
&lt;br /&gt;
The easy route to accomplish my goal was to use my aftermarket head unit display (Avic Z110BT) mixed with Motorola Atrix Webtop. &amp;nbsp;When I connect my &quot;rooted phone&quot; to the HDMI, the Webtop application takes over and I can see the Android screen in the head unit and the phone becomes a mouse and keyboard. &amp;nbsp;This allows me to take advantage of the Android applications like: &amp;nbsp;Google Maps, Pandora, Trapster, etc.. &amp;nbsp;For aid, I use Vilingo to read text messages and voice commands. &amp;nbsp;Another future I like a lot is remote desktop to my in car notebook for running car diagnostics.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Too much talk... &amp;nbsp;Let me just show it and ask. &amp;nbsp;:)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


Connection:&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;object class=&quot;BLOGGER-youtube-video&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot; data-thumbnail-src=&quot;http://i.ytimg.com/vi/owUxtJ_PxRU/0.jpg&quot; height=&quot;266&quot; width=&quot;320&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/owUxtJ_PxRU?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;embed width=&quot;320&quot; height=&quot;266&quot;  src=&quot;http://www.youtube.com/v/owUxtJ_PxRU?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;In this clip I show how the connection occurs between the Android WebTop and the the car&#39;s console. &amp;nbsp;For this project you need a head unit with video / audio input, hdmi to rca converter, power supply for phone and converter, phone mount.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


Apps:&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/YzStSX9x5j4?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;In this clip I show a basic idea of the apps. Something I missed recording is the usage of Vilingo for aiding in the hands free solution. &amp;nbsp;Also Vilingo developers.. please make the activation voice command to be always listening for &quot;Hey! Vilingo&quot; instead of only when app is open....&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;


Car Monitoring:&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/g9QITvGelc0?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;In this clip I show how I monitor my car from within my phone. &amp;nbsp;I have a separate notebook computer which boots when car is on and hibernates when car shuts down. &amp;nbsp;From the phone I use WiFi AdHoc tethering so the PC and the phone can communicate wireless and I can remote desktop in. &amp;nbsp;The program shown is RossTech Vag-Com which is an OBDII monitoring tool for Audi.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


My Car: &amp;nbsp;&lt;span style=&quot;color: #ea9999;&quot;&gt;(Love Audi!)&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGwSlTR-AkvBvDsiTZBxRkAC1VyFiTkLU-Hd9kJlEiAq_mLk6eCoTWO53uR1c7vJVzj-FsTb5N9hd7xD39yaY6VPPH3TkiKrnZYvpLBwmYaE0ODHZRGe7e4BIMLe_SlvGPnyeF9v1heQI/s1600/myAudiA4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGwSlTR-AkvBvDsiTZBxRkAC1VyFiTkLU-Hd9kJlEiAq_mLk6eCoTWO53uR1c7vJVzj-FsTb5N9hd7xD39yaY6VPPH3TkiKrnZYvpLBwmYaE0ODHZRGe7e4BIMLe_SlvGPnyeF9v1heQI/s320/myAudiA4.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #282828; font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 22px;&quot;&gt;&lt;u&gt;Major progress:&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;&quot;&gt;Fix resolution of the rendered screen by updating Webtop X11 config&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;&quot;&gt;Hardwire the notebook computer used for monitoring the car&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;&quot;&gt;Setup tethering between notebook and phone (automatic)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;&quot;&gt;Setup remote desktop and aspect ratio to be manageable from phone&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;&quot;&gt;Configure the remote Windows machine to have bigger icons, fonts, etc...&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #282828; font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 22px;&quot;&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #282828; font-family: helvetica, arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 22px;&quot;&gt;&lt;u&gt;TODO:&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;&quot;&gt;Automatize the expansion of Android screen in head unit upon Webtop connection&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;&quot;&gt;Use something like Tasker which starts / stops Android apps upon detecting head unit bluetooth (just for knowing I am in car and is ON)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;&quot;&gt;Better hands-free automation&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/1813770829628766620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/07/android-webtop-carpc-setup.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/1813770829628766620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/1813770829628766620'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/07/android-webtop-carpc-setup.html' title='Android WebTop - CarPc Setup'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGwSlTR-AkvBvDsiTZBxRkAC1VyFiTkLU-Hd9kJlEiAq_mLk6eCoTWO53uR1c7vJVzj-FsTb5N9hd7xD39yaY6VPPH3TkiKrnZYvpLBwmYaE0ODHZRGe7e4BIMLe_SlvGPnyeF9v1heQI/s72-c/myAudiA4.jpg" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-56991450289308173</id><published>2012-07-01T10:43:00.000-07:00</published><updated>2012-07-04T07:30:59.919-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BIRT"/><category scheme="http://www.blogger.com/atom/ns#" term="connection profile"/><category scheme="http://www.blogger.com/atom/ns#" term="connection profile store url"/><category scheme="http://www.blogger.com/atom/ns#" term="dynamic data source"/><category scheme="http://www.blogger.com/atom/ns#" term="parameter"/><category scheme="http://www.blogger.com/atom/ns#" term="property binding"/><category scheme="http://www.blogger.com/atom/ns#" term="report engine"/><title type='text'>BIRT 3.7 - Dynamic connection profiles</title><content type='html'>The other day I used&amp;nbsp;&lt;a href=&quot;http://download.eclipse.org/birt/downloads/build.php?build=R-R1-3_7_0-201106151818&quot;&gt;BIRT 3.7 Report Engine Runtime&lt;/a&gt;&amp;nbsp;for generating reports over the web. &amp;nbsp;The reports creation and access will occur from different clients using technologies like .Net, JAVA, etc... &amp;nbsp;And the report design will use web services as the data source for populating the report information (data, images, etc..).&lt;br /&gt;
&lt;br /&gt;
Something I had a little trouble when making the dynamic report was &lt;b&gt;how to specify the data source connections dynamically?&lt;/b&gt; &amp;nbsp;In my case the solution is self-configure through having an environment variable which identifies the system as DEV, QAT, UAT, PROD. &amp;nbsp;All the different projects could be built one time and deploy to different environment without any configuration change. &amp;nbsp;I wanted the same for the reporting solution.&lt;br /&gt;
&lt;br /&gt;
The ideas I read for making dynamic connections required to:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Define the connection profiles pointing to the data sources&lt;/li&gt;
&lt;li&gt;Pass the connection profile name in the URL&lt;/li&gt;
&lt;/ol&gt;
This solves most of my problems, except when I found out that &lt;u&gt;refreshing the web service WSDL schema will failed&lt;/u&gt; due to not knowing the connection profile to use. &amp;nbsp;For this I made a simple scripts which always defaults to the development connection and overrides when the connection profile parameter is passed in.&lt;br /&gt;
&lt;pre class=&quot;brush:javascript&quot; name=&quot;jsConnProfStoreUrl&quot;&gt;var profName = &quot;DEV-Localhost.conn&quot;;

try { 
    profName = params[&quot;connProfileName&quot;]; 
} 
catch (err) 
{  /* continue... */ }

reportContext.getAppContext().get(&quot;birt.viewer.resource.path&quot;) 
    + &quot;/report/config/&quot; + profName;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;



Putting it all together...&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Create the dynamic web project to host the BIRT report engine runtime. &amp;nbsp;In my setup I have &lt;b&gt;&quot;&lt;/b&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;b&gt;birt.viewer.resource.path&quot;&lt;/b&gt; pointing to the WebContent folder. &amp;nbsp;So I just need to point the report designers in &lt;b&gt;&amp;lt;path&amp;gt;/report/design/&lt;/b&gt; and the connection profiles in&amp;nbsp;&lt;/span&gt;
&lt;b&gt;&amp;lt;path&amp;gt;/report/config/&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLauRWBBiMSKImiaGdkxeeAusFnjYOgIaxXNGbsP1KWe_PyvmZoisU5XagTaaK6nCpYAslQHcjDCH_x83hzVC2TiFKjq2Jb6FmwgTrVuFaNxBqo_l2aXr3phHGiU-Z9GkInLsdnMxt80U/s1600/projectStructure.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLauRWBBiMSKImiaGdkxeeAusFnjYOgIaxXNGbsP1KWe_PyvmZoisU5XagTaaK6nCpYAslQHcjDCH_x83hzVC2TiFKjq2Jb6FmwgTrVuFaNxBqo_l2aXr3phHGiU-Z9GkInLsdnMxt80U/s400/projectStructure.png&quot; width=&quot;163&quot; /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Define a connection profile for the data source.&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkxAh8_I1RsBBQqJGfsKx64pac3vv7CpNIbAPeQjO07i4OZGDVLGiQlm8JdQdRh3ojeK8GyqO9D9tFy9V3WECc4yFpRASUIu0h1t93xpChlvN4OXR9ZopslSoD3OT3FKsIW7WMFzF4P_M/s1600/rptConnProfile.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;117&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkxAh8_I1RsBBQqJGfsKx64pac3vv7CpNIbAPeQjO07i4OZGDVLGiQlm8JdQdRh3ojeK8GyqO9D9tFy9V3WECc4yFpRASUIu0h1t93xpChlvN4OXR9ZopslSoD3OT3FKsIW7WMFzF4P_M/s400/rptConnProfile.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Define a report parameter for the connection profile name.&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfP8-86lCdHL6ErC1dlZo4_wc3HoTH4xzgxb3YcnXCT27zUjv-EN4qCWARq7e3B6B69kwl1_z0XBmhQXrTeYUB0JTMsY2ALT-AO2McPyuIriK2MExTbkVpQBDrAPNvbLUOV1UIJt0zT9Q/s1600/rptParameterConnProf.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;147&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfP8-86lCdHL6ErC1dlZo4_wc3HoTH4xzgxb3YcnXCT27zUjv-EN4qCWARq7e3B6B69kwl1_z0XBmhQXrTeYUB0JTMsY2ALT-AO2McPyuIriK2MExTbkVpQBDrAPNvbLUOV1UIJt0zT9Q/s400/rptParameterConnProf.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Duplicate the profile connection file and edit the URI address to the data source.&lt;/li&gt;
&lt;b&gt;Dev-Localhost.conn&lt;/b&gt;
&lt;pre class=&quot;brush: xml; highlight: [5];&quot;&gt;&lt;datatools.serverprofiles version=&quot;1.0&quot;&gt;
    &lt;profile autoconnect=&quot;No&quot; desc=&quot;BL web services&quot; id=&quot;1df8b260-df15-11e0-b539-90f45ba58d68&quot; name=&quot;BL Web Services Data Source&quot; providerid=&quot;org.eclipse.datatools.enablement.oda.ws&quot;&gt;
    &lt;baseproperties&gt;
        &lt;property name=&quot;wsdlURI&quot; value=&quot;http://localhost:8080/BL/MyWebService?wsdl&quot;&gt;
    &lt;/property&gt;&lt;/baseproperties&gt;
    &lt;/profile&gt;
&lt;/datatools.serverprofiles&gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;li&gt;Go back to the data source and add&amp;nbsp;
in the property binding section&amp;nbsp;the connection profile store script from above.&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz1e5o1yUeAnwMwbiYC-lIaim1HD9C9RCJQ7QwFX8cgcc0DXvhh_l2WkbE68kOiX8pVALgtUpAqxY0ewCfnLAPxjOkNdgyLC1au2nBg9NOgy2oWgjGGy2QTuEI659jtDU3XgjtOIHTPlA/s1600/rptPropertyBindConnProfStore.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;114&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz1e5o1yUeAnwMwbiYC-lIaim1HD9C9RCJQ7QwFX8cgcc0DXvhh_l2WkbE68kOiX8pVALgtUpAqxY0ewCfnLAPxjOkNdgyLC1au2nBg9NOgy2oWgjGGy2QTuEI659jtDU3XgjtOIHTPlA/s320/rptPropertyBindConnProfStore.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Test the report by passing as an argument the different connection profiles in the report generation URL.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;brush: html;&quot;&gt;http://localhost:8080/WR/frameset?connProfileName=DEV-Localhost.conn&amp;amp;__report=report/design/MyReport.rptdesign
http://localhost:8080/WR/frameset?connProfileName=QAT-Server.conn&amp;amp;__report=report/design/MyReport.rptdesign
http://localhost:8080/WR/frameset?connProfileName=ETC-Server.conn&amp;amp;__report=report/design/MyReport.rptdesign
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/56991450289308173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/07/birt-37-dynamic-connection-profiles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/56991450289308173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/56991450289308173'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/07/birt-37-dynamic-connection-profiles.html' title='BIRT 3.7 - Dynamic connection profiles'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLauRWBBiMSKImiaGdkxeeAusFnjYOgIaxXNGbsP1KWe_PyvmZoisU5XagTaaK6nCpYAslQHcjDCH_x83hzVC2TiFKjq2Jb6FmwgTrVuFaNxBqo_l2aXr3phHGiU-Z9GkInLsdnMxt80U/s72-c/projectStructure.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-7091881011754146668</id><published>2012-06-28T21:18:00.001-07:00</published><updated>2012-06-29T07:41:28.751-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="design"/><category scheme="http://www.blogger.com/atom/ns#" term="generics"/><category scheme="http://www.blogger.com/atom/ns#" term="JAVA"/><title type='text'>JAVA - Generics and design</title><content type='html'>&lt;h2&gt;



What is generics?&lt;/h2&gt;
Is a programming functionality which allows a
type or method to operate on objects of various types while providing
compile-time type safety.&amp;nbsp;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;a href=&quot;http://docs.oracle.com/javase/1.5.0/docs/guide/language/index.html&quot;&gt;[1]&lt;/a&gt;&lt;/span&gt;&amp;nbsp; Generics add stability to your code by making more of your bugs detectable at compile time.&amp;nbsp;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/generics/generics.html&quot;&gt;[2]&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The basic syntax in JAVA is &lt;b&gt;&amp;lt;T extends MyClass&amp;gt;&lt;/b&gt;, where T is the generic variable to be used in the function implementation which in this case it will handle MyClass and all&amp;nbsp;subclasses. &amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;Imagine you need a function to sort objects of MyClass type and all their subclasses.&amp;nbsp; Without generics you will need a function per type.&amp;nbsp; But thanks to generics you can have only one function to handle all subclasses.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Example:&lt;/b&gt;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Non-Generic&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Generic&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;public void MyFunction(&lt;b&gt;MyClass&lt;/b&gt; aClass);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;public void MyFunction2(&lt;b&gt;AnotherClass&lt;/b&gt; aClass);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;.... &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;public &lt;b&gt;&amp;lt;T extends MyClass&amp;gt;&lt;/b&gt; void MyFunction(T aClass);&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;i&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Duplicate code to handle each subclass&lt;/span&gt;&lt;/i&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;Only one function can handle all classes derived from MyClass&lt;/i&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
For detail implementaion information:&lt;/h3&gt;
&lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/generics/index.html&quot;&gt;http://docs.oracle.com/javase/tutorial/java/generics/index.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;



Generics are useful for...&lt;/h2&gt;
The power of generics can be appreciated when designing components that other developers will use.&amp;nbsp; I find this specially important when you need to &lt;b&gt;constrain the domain, but leaving it generic enough&lt;/b&gt;. &amp;nbsp;So why constrain the domain if we are talking about generics usage? &amp;nbsp;Because in my experience, developers take nasty shortcuts (&lt;i&gt;supposedly&amp;nbsp;to save time...&lt;/i&gt;) and use arguments type of strings or objects, or any wtfClass to hack there needs. Having a well define generic function will help other developers understand better the input of a method and avoid errors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;



Example:&amp;nbsp; Generics and Design&lt;/h2&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;In this example application we have an &lt;/span&gt;&lt;b style=&quot;background-color: white;&quot;&gt;Activity&lt;/b&gt;&lt;span style=&quot;background-color: white;&quot;&gt; which processes a &lt;/span&gt;&lt;b style=&quot;background-color: white;&quot;&gt;ResultRes&lt;/b&gt;&lt;span style=&quot;background-color: white;&quot;&gt; container.&amp;nbsp; The only purpose of an Activity is to modify the values of the ResultRes object.&amp;nbsp; You will see how using generics avoids unexpected errors and help developers understand better the classes needed to interact with an activity.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://docs.google.com/open?id=0B7k6_WmiT7i5aURmdlFGbWZQUmc&quot;&gt;&lt;b&gt;Download:&lt;/b&gt;&amp;nbsp; Source Code&lt;/a&gt;
&lt;br /&gt;
&lt;i&gt;&lt;span style=&quot;color: #e69138;&quot;&gt;Read the comments in the code for insight about the&amp;nbsp;demonstration...&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;




&lt;span style=&quot;color: #666666;&quot;&gt;Parts of the application:&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;color: #666666;&quot;&gt;
&lt;li&gt;&lt;span class=&quot;EOP SCX8561298&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt;&quot;&gt;&lt;b&gt;ResultRes&lt;/b&gt; - is the generic results container.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;TextRun SCX8561298&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt;&quot;&gt;&lt;b&gt;IntegerRes &amp;amp; StringRes&lt;/b&gt; - are sub-classes of ResultRes with different value types.&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;TextRun SCX8561298&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt;&quot;&gt;&lt;b&gt;ExecTemplate&lt;/b&gt; - is the generic class for activity execution&lt;/span&gt;&lt;span class=&quot;TextRun SCX8561298&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt;&quot;&gt;.&lt;br /&gt;&lt;i style=&quot;color: #e06666;&quot;&gt;Notice how the template definition is the main issue in the design.&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;TextRun SCX8561298&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt;&quot;&gt;&lt;b&gt;ActivityInt &amp;amp; ActivityString&lt;/b&gt; - are implementations of the ExecTemplate.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;TextRun SCX8561298&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt;&quot;&gt;&lt;b&gt;ExecGenerics&lt;/b&gt; - is just the Main() for testing the project.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span class=&quot;TextRun SCX8561298&quot; style=&quot;font-family: Calibri, sans-serif; font-size: 11pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;Main Program - usage of generics...&lt;/h4&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;generics.main&quot;&gt;package generics.main;
public class ExecGenerics {

 /**
  * Example application about design and usage of generics.
  * The functionality is just to present how a background processing 
  * can cause exceptions due to bad design implementation which could
  * been avoided.
  */
 public static void main(String[] args) {
  
  boolean isUsingOriginal = true;
  
  // Set starter values...
  // This value will be modified by execute()
  IntegerRes i = new IntegerRes();
  i.setFieldValue(123);   
  StringRes s = new StringRes();
  s.setFieldValue(&quot;123&quot;);

  // print original values
  System.out.println(i.getFieldValue());
  System.out.println(s.getFieldValue());
 
  if (isUsingOriginal) {
   new generics.original.ActivityInt().execute(i);
   new generics.original.ActivityInt().execute(s); 
   // -- ^^^ this is LEGAL &amp;amp; PROBLEM.. execution will fail!
   new generics.original.ActivityString().execute(s);
  }
  else {
   new generics.improved.ActivityInt().execute(i); 
   // -- ^^^ watch how the helper shows the correct input class 
   // -- ^^^ (Ctrl+Space) inside parenthesis
   // new generics.improved.ActivityInt().execute(s); 
   // -- ^^^  this is NOT LEGAL NOW.. (won&#39;t compile)
   new generics.improved.ActivityString().execute(s); 
   // -- ^^^  watch how the helper shows the correct input class 
   // -- ^^^  (Ctrl+Space) inside parenthesis
  }
 
  // print values after processing
  System.out.println(i.getFieldValue());
  System.out.println(s.getFieldValue());  
 }
}

&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;h4&gt;Execution Results&lt;/h4&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr style=&quot;color: #e69138;&quot;&gt;
&lt;td&gt;&lt;b&gt;original&lt;/b&gt; (isUsingOriginal = &lt;b&gt;true)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;pre class=&quot;brush:java&quot; name=&quot;resultsOriginal&quot;&gt;123
123
EXEC:  START    - class generics.original.ActivityInt
EXEC:  COMPLETE - class generics.original.ActivityInt
EXEC:  START    - class generics.original.ActivityInt
Exception in thread &quot;main&quot; java.lang.ClassCastException:
 generics.shared.StringRes cannot be cast to generics.shared.IntegerRes
 at generics.original.ActivityInt.performAction(ActivityInt.java:10)
 at generics.original.ExecTemplate.execute(ExecTemplate.java:11)
 at generics.main.ExecGenerics.main(ExecGenerics.java:32)
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #e69138;&quot;&gt;
&lt;td&gt;&lt;b&gt;improved&lt;/b&gt; (isUsingOriginal = &lt;b&gt;false)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;pre class=&quot;brush:java&quot; name=&quot;resultsImproved&quot;&gt;123
123
EXEC:  START    - class generics.improved.ActivityInt
EXEC:  COMPLETE - class generics.improved.ActivityInt
EXEC:  START    - class generics.improved.ActivityString
EXEC:  COMPLETE - class generics.improved.ActivityString
999
999
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;h4&gt;Execute Template - Generic template design...&lt;/h4&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr style=&quot;color: #e69138;&quot;&gt;
&lt;td&gt;&lt;b&gt;original&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;pre class=&quot;brush:java&quot; name=&quot;generics.original.ExecTemplate&quot;&gt;package generics.original;
public abstract class ExecTemplate {

 protected abstract void performAction(ResultRes res);
 
 public void execute(ResultRes res) {
   System.out.println(&quot;EXEC:  START    - &quot; + this.getClass().toString());
   this.performAction(res);
   System.out.println(&quot;EXEC:  COMPLETE - &quot; + this.getClass().toString());  
 }
}
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #e69138;&quot;&gt;
&lt;td&gt;&lt;b&gt;improved&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;pre class=&quot;brush:java&quot; name=&quot;generics.improved.ExecTemplate&quot;&gt;package generics.improved;
public abstract class ExecTemplate&amp;lt;T extends ResultRes&amp;gt; {

 protected abstract void performAction(T res);
 
 public void execute(T res) {
   System.out.println(&quot;EXEC:  START    - &quot; + this.getClass().toString());
   this.performAction(res);
   System.out.println(&quot;EXEC:  COMPLETE - &quot; + this.getClass().toString());  
 }
}
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;h4&gt;Activity - No casting needed when well designed...&lt;/h4&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr style=&quot;color: #e69138;&quot;&gt;
&lt;td&gt;&lt;b&gt;original&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;pre class=&quot;brush:java&quot; name=&quot;generics.original.ActivityInt&quot;&gt;package generics.original;
public class ActivityInt extends ExecTemplate {

 @Override
 protected void performAction(ResultRes res) {
  IntegerRes r = (IntegerRes) res;  // &amp;lt;-- Casting is required and not safe...
  r.setFieldValue(999);
 }
}
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;color: #e69138;&quot;&gt;
&lt;td&gt;&lt;b&gt;improved&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;pre class=&quot;brush:java&quot; name=&quot;generics.improved.ActivityInt&quot;&gt;package generics.improved;
public class ActivityInt extends ExecTemplate&amp;lt;IntegerRes&amp;gt; {

 @Override
 protected void performAction(IntegerRes res) {
  res.setFieldValue(999);  // &amp;lt;-- No casting required and enforces type
 }
}
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;br /&gt;&lt;/h3&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/7091881011754146668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/06/java-generics-and-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/7091881011754146668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/7091881011754146668'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/06/java-generics-and-design.html' title='JAVA - Generics and design'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-5940300701375570686</id><published>2012-06-06T21:00:00.000-07:00</published><updated>2012-06-27T21:27:02.704-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IE9 Compatibility Mode"/><category scheme="http://www.blogger.com/atom/ns#" term="IE9 Issues with legacy ASP .Net"/><category scheme="http://www.blogger.com/atom/ns#" term="IE9 Rollback to IE8"/><title type='text'>IE9 - Corporate applications - Warning! - Rollback to IE8</title><content type='html'>&lt;div&gt;
&lt;h2 style=&quot;font-weight: normal;&quot;&gt;

IE9, a more beautiful web...&amp;nbsp; But does it works?&lt;/h2&gt;
Preamble, this rant starts with my frustration over a legacy 3rd party solution used in the company which works in IE8 but NOT in IE9.&amp;nbsp; No compatibility mode or anything like it will fix the JavaScript failures / misbehaviours produced after switching to IE9.&amp;nbsp; So be careful and test your legacy corporate applications prior to rolling IE9.&lt;br /&gt;
&lt;br /&gt;
In my case I had the source code for the legacy ASP .NET application and gave it a try to solve the issue.&amp;nbsp; For me the problem was the interaction between ASP .Net UpdatePanel and JavaScript execution.&amp;nbsp; For a moment I was able to hack something out and get it working..... &lt;b&gt;BUT!!!....&lt;/b&gt; then an IE9 security update came in and whatever that did, it totally mess up the &quot;hack / fix&quot;.&amp;nbsp; Since fixing it wasn&#39;t my job, I had to move on and wait for the 3rd party to come up with the IE9 update which of course they want to get paid for.&lt;br /&gt;
&lt;br /&gt;
Meanwhile I have to roll back to IE8 because IE9 was pushed to me over updates.&amp;nbsp; To my surprise, &lt;a href=&quot;http://windows.microsoft.com/en-US/internet-explorer/downloads/ie-8&quot;&gt;IE8 is not supported for Windows 7&lt;/a&gt;. In order to roll back IE8 in Windows 7, you need to know&amp;nbsp;&lt;a href=&quot;http://arstechnica.com/civis/viewtopic.php?f=15&amp;amp;t=1152060&quot;&gt;the trick&lt;/a&gt;.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: #666666;&quot;&gt;
&lt;i&gt;&lt;b&gt;&lt;u&gt;From nquinnell:&lt;/u&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li style=&quot;color: #666666;&quot;&gt;Go to Control Panel, Uninstall Programs, then choose the option for Turn Windows Features On or Off.&lt;/li&gt;
&lt;li style=&quot;color: #666666;&quot;&gt;Uncheck the box before Internet Explorer 9. Let it uninstall.&lt;/li&gt;
&lt;li style=&quot;color: #666666;&quot;&gt;Go back to View Installed Updates on the left.&lt;/li&gt;
&lt;li style=&quot;color: #666666;&quot;&gt;Scroll down to Microsoft Windows until you see Internet Explorer 9. Uninstall it.&lt;/li&gt;
&lt;li style=&quot;color: #666666;&quot;&gt;Reboot.&lt;/li&gt;
&lt;li style=&quot;color: #666666;&quot;&gt;Go back to Control Panel, Uninstall Programs, and choose Turn Windows 
Features On and Off. This time, instead of showing Internet Explorer 9, 
it will show Internet Explorer 8. Check the box.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666;&quot;&gt;IE8 installs. Reboot, and then put the icons back on your desktop. &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/5940300701375570686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/06/ie9-corporate-business-applications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/5940300701375570686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/5940300701375570686'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/06/ie9-corporate-business-applications.html' title='IE9 - Corporate applications - Warning! - Rollback to IE8'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-2776402196192048149</id><published>2012-05-22T20:43:00.001-07:00</published><updated>2012-05-22T20:43:30.972-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="business process"/><category scheme="http://www.blogger.com/atom/ns#" term="project management"/><category scheme="http://www.blogger.com/atom/ns#" term="SDLC"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Engineering"/><category scheme="http://www.blogger.com/atom/ns#" term="team management"/><title type='text'>Software Engineering Tips</title><content type='html'>&lt;div&gt;
These are tips &amp;amp; ideas I have learn through my career which help me daily with the thought process in situations I am in.&amp;nbsp; I will like to thanks all those out there who influence me in a positive way.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;



80/20 Productivity to Effort Ratio&lt;/h2&gt;
What this means is you can accomplish 80% of the work with about 20% of the effort.&amp;nbsp; But to accomplish the remaining 20% work you need an 80% effort.&lt;br /&gt;
&lt;br /&gt;
For me this relates to a new software project when building it from scratch.&amp;nbsp; With little work you build the base architecture but you still have a long way to complete the actual project. Using the architecture you can quickly add most of the implementations for the final project and most certain that will get you the 80% work done with 20% effort.&amp;nbsp; But then you hit the corner cases and you have to re-think how to implement them trying to follow the existing architecture.&amp;nbsp; These cases fall in the 20% work left and it takes an 80% work to actually integrate correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;


Take the bull by the horns!&lt;/h2&gt;
Early in my career the company was growing too quickly and my manager had too much on his plate.&amp;nbsp; But he wanted me to grow with him and gave me great opportunities by being the main contact between some of the customers and the company.&lt;br /&gt;
&lt;br /&gt;
I remember being shy because I have never handle business, so I was afraid to fail.&amp;nbsp;&amp;nbsp; One day he gave me&amp;nbsp; a great advice saying: 
&quot;Jon, you have to take the bull by the horns!  Be the driver and own 
it!&quot; &lt;br /&gt;
&lt;br /&gt;
This was like a wake-up call for me.&amp;nbsp; He trusted me and wanted me to take charge to make things happens.&amp;nbsp; He push me to think &quot;out of the box&quot; and do things my own way or any other way to get things done.&lt;br /&gt;
&lt;br /&gt;
With time I realize how important is &quot;to take the bull by the horns!&quot;.&amp;nbsp; When you really do it, you own the game.&amp;nbsp; You are on top of the requirements, design, and implementation.&amp;nbsp; For me owning it makes the job easier because you know all the angle and probably better than anyone else since you are now the expert.&lt;br /&gt;
&lt;br /&gt;
But just remember that &quot;with power, there comes great responsibilities&quot;.&amp;nbsp; So when you make calls don&#39;t take them slightly.&amp;nbsp; People will look to you and drive by your direction.&amp;nbsp; So is your fault if you sink the ship.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;

The Team Lead&lt;/h2&gt;
When you have a team, it stops being about you and the game becomes being a real leader.&amp;nbsp; For this you need to try knowing your team, what they are capable of, and what they are interested in.&amp;nbsp; Help them get their tasks complete by offloading obstacles and avoiding any interruptions which disturbs focus in the main goal.&amp;nbsp; Trust them because most people really want to do their job right.&amp;nbsp; At the end, as a group is better to have only 1 person behind (yourself) than 4 to 8 people with their tasks half done.&lt;br /&gt;
&lt;br /&gt;
I have big shoes to fill compare to the team leader I had once.&amp;nbsp; He always was there for the team and earn our respect for that.&amp;nbsp; The relative small team we had was able to achieve pretty big tasks in the company because he kept us focus and he handled must of the business needs.&amp;nbsp; He was a great listener who adjusted to feedback from his peers as well as his team.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Listen &amp;amp; Be Respectful&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
We all have ideas and see things differently. A problem can have more than one solution, so the trick is listen for ideas.&amp;nbsp; My best friend and I are totally different customers and designing something brings always the best conversations.&amp;nbsp; His appreciation for how a solution should work is so different from mine but we both are good listeners and discuss both approaches (&lt;i&gt;by trying NOT to endanger ourselves&lt;/i&gt;).&amp;nbsp; Like I tell my daughter:&amp;nbsp; &quot;Need to use&amp;nbsp; your listener ears!&quot;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Not everyone has this skill so sometimes you have to put an extra effort to listening at others first.&amp;nbsp; That will give you time to think about your proposal and how to present your idea better.&amp;nbsp; At the end, the only real time to push hard is when a decision is about to be made.&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
So listen, because there best knowledge is built collectively.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h2&gt;
I can do it too...&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
If one can do it, I can do it too!&amp;nbsp; This is a motto which have taken me long way.&amp;nbsp; It got me into computers, electrical, mechanics, building, cooking, design, blogging, and who knows what else.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
At the end, &lt;u&gt;trust yourself and try&lt;/u&gt;.&amp;nbsp; Some topics are harder than others.&amp;nbsp; Especially if is a field you have never dealt with.&amp;nbsp; But guess what, as you keep trying you will build knowledge and experience.&amp;nbsp; The things you learn from one field, most certain will help you in another.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It can be scary not knowing and failing.&amp;nbsp; But guess what, is even more satisfying to learn, stand for yourself, and conquer the subject!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
-------------------------------------------------------------------------------&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;
To my readers, thanks for letting me talk to you.&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
Hope this post helps you and please share your tips as well.&amp;nbsp; :)&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/2776402196192048149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/05/software-engineering-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/2776402196192048149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/2776402196192048149'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/05/software-engineering-tips.html' title='Software Engineering Tips'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-8044938190039171510</id><published>2012-05-20T21:12:00.001-07:00</published><updated>2015-03-08T11:51:09.253-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Files Connect"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="Phone"/><category scheme="http://www.blogger.com/atom/ns#" term="Photo Transfer"/><category scheme="http://www.blogger.com/atom/ns#" term="Samba"/><category scheme="http://www.blogger.com/atom/ns#" term="SMB"/><category scheme="http://www.blogger.com/atom/ns#" term="Sweet Home"/><title type='text'>Phone - Photo transfer direct to share folder</title><content type='html'>Personally I still store photos in my own server and not in cloud computing.&lt;br /&gt;
&lt;i&gt;Maybe I should try looking for a cloud back up service later...&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
But for those out there who have the same practice, you probably notice that phones really don&#39;t have too much support for transferring photos directly to a share folder.&amp;nbsp; Lots of apps do the same like uploading to certain services or making your phone a host to access from the PC browser.&amp;nbsp; In my case I like simplicity and control.&amp;nbsp; I just want to select the photos from my phone and send to local server over wi-fi... done!&lt;br /&gt;
&lt;br /&gt;
So far these are the best options I found.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Android:&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=sweesoft.sweethome&amp;amp;feature=nav_result&quot;&gt;&lt;b&gt;&lt;/b&gt;Sweet Home WiFi Picture Backup&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;http://1.bp.blogspot.com/tpyMz27nEgcxaK2ewY1GhenAr49NWKcEHNRt5nLAGgkNg89MxqEqw2iknAqesHGKCgvf=h230&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/tpyMz27nEgcxaK2ewY1GhenAr49NWKcEHNRt5nLAGgkNg89MxqEqw2iknAqesHGKCgvf=h230&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://1.bp.blogspot.com/8BjZGWnM9Ldv4ZRWA-Y-4U-ZjFa_1zllHsk_JCoVBByRmBGRHlkUjsdR_QqReWTX3Lc=h230&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/8BjZGWnM9Ldv4ZRWA-Y-4U-ZjFa_1zllHsk_JCoVBByRmBGRHlkUjsdR_QqReWTX3Lc=h230&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Sweet Home is a simple application which once configured to access your shared folder, it allows you to send the new photos by clicking &quot;Upload Now&quot;. And also has an option to automatically upload whenever the phone is connected to the network.&amp;nbsp; Simple!&lt;br /&gt;
&lt;br /&gt;
This application works really well for me using:&amp;nbsp; &lt;i&gt;Motorola Atrix 4G &amp;amp; Windows 7 for home server&lt;/i&gt;.&amp;nbsp; It has a&amp;nbsp;&lt;a href=&quot;https://play.google.com/store/apps/details?id=sweesoft.sweethome&amp;amp;feature=nav_result#?t=W251bGwsMSwyLDNd&quot;&gt;free&lt;/a&gt; version for try out, but please support the developers and&amp;nbsp;&lt;a href=&quot;https://play.google.com/store/apps/details?id=sweesoft.prohome&amp;amp;feature=more_from_developer#?t=W251bGwsMSwyLDEwMiwic3dlZXNvZnQucHJvaG9tZSJd&quot;&gt;purchase&lt;/a&gt; it if you like!&amp;nbsp; :)&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;h3&gt;
&lt;b&gt;iPhone:&lt;/b&gt;&amp;nbsp; &lt;a href=&quot;http://itunes.apple.com/us/app/files-connect/id404324302?mt=8&quot;&gt;Files Connect&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;http://a5.mzstatic.com/us/r1000/104/Purple/a4/47/25/mzl.zdqggagp.320x480-75.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://a5.mzstatic.com/us/r1000/104/Purple/a4/47/25/mzl.zdqggagp.320x480-75.jpg&quot; height=&quot;320&quot; width=&quot;222&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://a4.mzstatic.com/us/r1000/060/Purple/3b/3b/d4/mzl.llwxeqcj.320x480-75.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://a4.mzstatic.com/us/r1000/060/Purple/3b/3b/d4/mzl.llwxeqcj.320x480-75.jpg&quot; height=&quot;320&quot; width=&quot;222&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
This application is not as simple as Android&#39;s&amp;nbsp;&lt;a href=&quot;https://play.google.com/store/apps/details?id=sweesoft.sweethome&amp;amp;feature=nav_result#?t=W251bGwsMSwyLDNd&quot;&gt;Sweet Home&lt;/a&gt; for sending photos to the share folder, but it does carry a lot of functionality.&amp;nbsp; &lt;a href=&quot;http://itunes.apple.com/us/app/files-connect/id404324302?mt=8&quot;&gt;Files Connect&lt;/a&gt; is more like a general network file transfer application as the name suggests.&lt;br /&gt;
&lt;br /&gt;
At the end, it is really easy to send photos to the shared folder once this is configured.&amp;nbsp; You only need to browse for the photos in you phone and &quot;select / copy&quot; them to later &quot;paste&quot; them at the share folder.&amp;nbsp; Something I liked a lot was the transfer activity monitor which allowed me to see the transfer was not hanged.&lt;br /&gt;
&lt;br /&gt;
In my case I had an iPhone 4G and the share folder in Windows 7 home server.&amp;nbsp; The application was able to transfer over 1,500 photos with no hangs in a descent amount of time.&amp;nbsp; It took a little to start the transfer but still less than 1 minute.&amp;nbsp; I am happy from purchasing the application.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;u&gt;Quick note:&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
In order to transfer even faster, I browse the phone from the server. &amp;nbsp;Then PULL the content instead of pushing it. &amp;nbsp;This significantly reduced the transfer time be 66%. &amp;nbsp;Just look in your router for the IP the phone is connected to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;General Comment:&lt;/b&gt;&lt;/h3&gt;
If you need applications which directly communicates with your share folder, then search for &lt;a href=&quot;http://en.wikipedia.org/wiki/Server_Message_Block&quot;&gt;Samba client&lt;/a&gt; applications.&amp;nbsp; Both of these applications supports the &lt;a href=&quot;http://en.wikipedia.org/wiki/Server_Message_Block&quot;&gt;SMB protocol&lt;/a&gt; which is what allows the direct access between phone and PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this helps others.</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/8044938190039171510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/05/phone-photo-transfer-direct-to-share.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/8044938190039171510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/8044938190039171510'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/05/phone-photo-transfer-direct-to-share.html' title='Phone - Photo transfer direct to share folder'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/tpyMz27nEgcxaK2ewY1GhenAr49NWKcEHNRt5nLAGgkNg89MxqEqw2iknAqesHGKCgvf=s72-h230-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3872443124478444419.post-6222254392095121134</id><published>2012-05-20T19:15:00.001-07:00</published><updated>2012-05-20T19:15:34.832-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agile"/><category scheme="http://www.blogger.com/atom/ns#" term="business process"/><category scheme="http://www.blogger.com/atom/ns#" term="project management"/><category scheme="http://www.blogger.com/atom/ns#" term="SDLC"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Engineering"/><category scheme="http://www.blogger.com/atom/ns#" term="team management"/><category scheme="http://www.blogger.com/atom/ns#" term="Waterfall methodology"/><title type='text'>Business over Engineering</title><content type='html'>This post is a retrospection of a simple concept for managers, but something new engineers tend to struggle with.&amp;nbsp; I include myself in that group when I recall being a fresh graduate and ready to do things the best possible and try saving the world.. (&lt;i&gt;but I never got the cool flying cape)&lt;/i&gt;. &lt;br /&gt;
&lt;br /&gt;
Early in my career I struggled with the problem of:&lt;br /&gt;
&lt;b&gt;Business &amp;gt; Engineering&lt;/b&gt; (&lt;i&gt;business over engineering&lt;/i&gt;).&lt;br /&gt;
&lt;br /&gt;
I
 think this is a very common problem for most technical oriented people.&amp;nbsp; 
Why?&amp;nbsp; Because they know the in &amp;amp; out requirements to solve the 
problem, but not always have the best resources or scenarios to give it 
an &quot;engineering solution&quot;.&amp;nbsp; They only know business is pressuring and 
that causes to deliver a &quot;non-optimal&quot; solution.&amp;nbsp; :(&lt;br /&gt;
&lt;br /&gt;
I remember this struggle kept me asking &lt;b&gt;WHY?..&lt;/b&gt;&amp;nbsp; Why can&#39;t I deliver a &quot;perfect&quot; solution?...&lt;br /&gt;
&lt;br /&gt;
For me to understand this, I had to understand the Business problems.&lt;br /&gt;
&lt;br /&gt;
That&#39;s when I realize:&lt;br /&gt;
&lt;b&gt;Sales &amp;gt; Business&lt;/b&gt; &lt;i&gt;(sales over business).&lt;/i&gt;&lt;br /&gt;
In
 order to have business, we need sales.&amp;nbsp; Why?&amp;nbsp; Because sales is what 
makes the $$$ money we all need.&amp;nbsp; But shouldn&#39;t it be Business &amp;gt; 
Sales because we sell &quot;our businesses&quot;.&amp;nbsp; The reality is NO!&amp;nbsp; If there is
 a Sale to make $$$ profits, we will make our business to tap there.&lt;br /&gt;
&lt;br /&gt;
This gets us to pretty much the top of the chain:&lt;br /&gt;
&lt;b&gt;Customer &amp;gt; Sales&lt;/b&gt; &lt;i&gt;(customer over sales)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Ever
 heard the expression &quot;the customer has the reason&quot;?&amp;nbsp; Well, they are the
 ones $$$ paying after all.&amp;nbsp; So what the Customer wants is what Sales 
will try to fit and pitch in for getting the contracts made.&amp;nbsp; And 
if an engineer needs to jump through hoops to get there, &quot;they better&quot;.&lt;br /&gt;
&lt;br /&gt;
So in summary the chain of business can be summarized as:&lt;br /&gt;
&lt;b&gt;Customer &amp;gt; Sales &amp;gt; Business &amp;gt; Engineering&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Of course this is a super simplified version of how things work, and devil is on the details of how the actual chain executes.&amp;nbsp; But it&#39;s important for managers to communicate well with their team and get them in the real context of how things work.&lt;br /&gt;
&lt;br /&gt;
Personally I think the key is in &lt;u&gt;identifying&lt;/u&gt; where the real engineering is required and &lt;u&gt;separate&lt;/u&gt; it from the softer business requirements.&amp;nbsp; That way your team can focus in building a better core and avoid over engineering functionalities which tend to be more flexible.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonnazario.blogspot.com/feeds/6222254392095121134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jonnazario.blogspot.com/2012/05/business-over-engineering.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/6222254392095121134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3872443124478444419/posts/default/6222254392095121134'/><link rel='alternate' type='text/html' href='http://jonnazario.blogspot.com/2012/05/business-over-engineering.html' title='Business over Engineering'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03445603144209159908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>