Pages

Tuesday, March 26, 2013

SONY VAIO - SVE14A390X Premium Plus - Review and Enhancements

First of all this is not an "expert review" and it will be totally bias.  Not that I am a fan boy of one brand or another, but I really dedicate myself to find what I want.

REVIEW

For this round I needed to find a laptop that fits all my needs like:

  • Power for development (lots of RAM, decent CPU, lots of memory)
  • Small and light so it can be with me almost everywhere (work, home, on the go...)
  • Touch screen and Windows 8 (to have latest technology changes)


In my wish list of laptops before I found the VAIO SVE14A390X the contenders were:  MacBook Pro - Retina Display and Asus Zenbook - UX51VZ.  But after considering issues I felt with those machines, not having touch screen for Windows 8, and the excessive price (at the moment $2500+), I finally hit the spot with the VAIO SVE14A.  The VAIO SVE14A390X Premium Plus is a customized version direct from Sony Store.  For flat $2000 I got a machine with very similar specs to the ones I was looking for and more...


These are some of the highlights:
  • 3rd gen Intel® Core™ i7-3632QM quad-core processor (2.20GHz / 3.20GHz with Turbo Boost)
  • 16GB RAM DDR3 @1600MHz
  • AMD Radeo HD 7670M (2GB) hybrid graphics
  • 1TB Hard disk @ 5400 RPM
  • Touch screen
  • Windows 8 Pro
  • 2 year SONY Protection plan (covers fall, spills, etc..)
  • Customization / additions included in the $2000 budget

My benchmark for performance was the Asus Zenbook - UX51VZ.  After switching the hard disk for SSD, I got to say the results are very close.  Also not having a RAID 0 SSD configuration is mind easing.  SSD are dangerous still for reliability so adding RAID 0 to the mix is not really something I am looking for.  Plus many reports questions RAID 0 over SSD, but this is just derailing the focus.  Graphics performance are satisfactory but I don't play games so I am good.  The noise of the fan is ok when hot but otherwise is silent.  Surprisingly the temperature of the machine never gets hot bottom or top wise, and this was after installing software for hours.   


So comparing Windows Experience Index we can see the following results:

UX51VZ



SVE14A390X Premium Plus
Look at the hard disk transfer rate increasing from 5.9 to 8.1.  Also the memory operation per second went down, but I am guessing this part of not being good benchmark test process.  Just simple execute and done tests.

OEM Hardware




With Custom SSD



ENHANCEMENTS

Swap HDD for SSD

The only major customization is swapping the HDD (hard disk) for the SSD (solid state drive).  Before I did it myself, I google around for DIY / tutorials about what is needed.  Unfortunately the information I found can be quite confusing for such an easy process.  For this scenario we are keeping the original configuration from the recovery disk and do a new install in the SSD.  Please don't just install an image in the SSD as this can result in bad performance and premature damage to your SSD.

1. Create the Recovery Media

Sony doesn't distribute the Recovery Disks anymore.  Instead they exists in a partition of your OEM disk.  All you have to do is follow the instructions in this link to burn the recovery disks.


2. Swap the HDD for SSD

Below are some images of the swap, but this should be plug and play.  Just take your time and don't force anything.  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.







3. Re-install the system with Recovery Media

Once you finish placing the SSD now you need to install Windows 8 OS.  Follow this link for the instructions.  I got to say I am surprise with how easy is with Windows 8 to re-install the OS.  No questions about disk partition, file system format, etc...  Even no need to specify the activation as with Windows 8 this is kind of built in into the hardware (I think motherboard).



Replace DVD  for HDD

Now for the other modification of converting the DVD player into a secondary HDD.  For that we need the caddy to hold the HDD.  The process is simple but take your time!  There are plenty of tiny screws and the face plate is fragile.  Read the following instructions prior to starting the swap.

The only "hard" steps is shown below in the photos.  The trick for taking the face plate out press the tab down while pulling the plate in a rotational motion.  I don't remember the exact direction of the rotation, but just don't pull straight.  This is plastic so if you break it, you are going to be sorry.

The results.  Well the machine is a little heavier but not enough to make a real difference because this is not an ultrabook light.  Actually, having the hard drive makes the machine more sturdy when I grab it on that side versus feeling hollow.  Meaning I can hold it with a solid grip without worrying.  Having a 1TB disk is awesome for system image backups, store movies, ISOs, etc.  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.  Noise and heat is the same or none.

Only weird finding is that I can access my old user account in Windows 8 partition.  I don'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.



Press the tab:




While pulling in a rotational manner because the tabs have hooks:





Sunday, February 17, 2013

iPhone 5 - ProClipUsa - AV cable adaptation

My wife listens to music from her iPhone 4 by docking it in the ProClipUsa cradle.  The cradle connects the iPhone to the AV cable and connects to the SUV sound system.  With the iPhone 5 the cable connections have change so I had to figure out a new configuration.

In order to avoid changing the existing iPhone RCA AV cable, I bought the iPhone 5 Lightning to 30-pin Adapter which converts output of digital to analog.  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.  The iPhone 5 cables had different width at the phone plug side, which made the fitting non-generic.

FYI - as I wrote this post, I found ProClipUsa  now has an option to buy a cradle which will fit the AV cable.  So no need to do this modification anymore.  But if you have the original ProClipUsa cradle for the power cable, then keep going to see how easy is to modify.

ProClipUsa - iPhone 5 cradles


Quick How To:

First get the tools for stripping the phone plug in the Lightning to 30-pin Adapter.  For this I used a vice-grip and a picker tool with a sharp edge.



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.  Insert the picker in between the plastic coat and the other inner coating.  The idea is to insert in between and break the plastic by pressuring outward such that the cable doesn't get harmed.



This is how it looks once the plastic is stripped.



Now the cable is too thin for staying lock in the cradles opening.  Let's fix that!
 


Roll a little of electrical tape over where the plastic shield existed.  This will protect the cable plus give the thickness we need to keep the cable in place.



Insert the cable in the cradle and make sure it sits firm.  Then test the cradle a couple of times to make sure the phone plugs and disconnects smoothly.



Sunday, December 23, 2012

Recipe - Coquito Boricua

The Coquito is one of the traditional Christmas drinks of Puerto Rico.  Usually this drink is compare with the American Eggnog.  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.  Mine is yet another variation of this common recipe using Fat Free ingredients and "huevo-less" (Spanglish for no egg).


Recipe:

  • 1/2 Regular can of Coco Lopez coconut cream
  • 1/2 Large can of Borden Fat Free condense milk
  • 3/4 Large can of Borden Fat Free evaporated milk
  • 1 Regular can of Thai coconut milk
  • 1 small spoon of Pure Vanilla Extract
  • 1 small spoon of Coconut Extract
  • 1/4 cup of Bacardi Select spice rum
  • 1/2 cup of Bacardi white rum
  • Dash of Cinnamon
  • Pinch of sal
This recipe is not an exact science and very easy to adjust to either sweeter or stronger.

 

Very Important: - Have fun with it!!!







Friday, December 21, 2012

Design Documents - My Cheat Sheet...

Design documents are something many of us as engineers write to express how business needs will be solved.  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.  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.

Unfortunately, I have seen through my career that the continuous process of the SDLC dims the importance of design documents for various reasons.  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't know how to express.  I think the latter is the most common one and my focus in this article.

A design is not expected to be perfect, but it should have the following:
  • Express what the problem is and the business requirements
  • Understand who are affected by the problem
  • How will the problem be solved in a non-technical way
  • Only include important technical details and don't code the design
  • Try to interest your audience by expressing their focus, not yours

I decided writing about design documents after helping a teammate with reviewing his paper.  Below is a "copy / paste" of what I wrote to him.  Hopefully this helps others because writing documents is something that really has aid my career when presenting projects.  Remember, don't get stuck in making it perfect but instead spend the time in making it concise and attractive.

Letter to my teammate:

"In general, you should learn to organized your thoughts when expressing an idea.  It doesn’t have to be perfect, but at least help the audience understand why is this important for them.  This is something I think we all learn as we progress in the career.  The sooner you master this, the quicker you will build professional documents.


Here are some tips:
  • Start your paragraphs with functional description.  Forget the computer for a moment and explain what is needed and how you plan to achieve it.  Technical implementations come and go, but the concept of what we are trying to achieve is the core of the project. 
  • Personally, I try defining an Outline of ideas..  What is needed?  Which bits and pieces are required to achieve it?  Any questions or gaps?  Dependencies to think of?  Possible blockers?  So far I have not talk in computer terms but project focus. 
  • Once I have that outline, I try writing paragraphs explaining the bullet points and connecting the parts.  I go through several iterations myself...
  • 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. 
  • Another thing I learned with time is not to get hanged in writing technical information.  Why?...
    • When you are the developer.  You know how to do it and you are better off writing it directly in code. 
    • When you it hand off to an experience developer.  In this case the experience developer knows the tools and knows the system.  Usually they want just the different technical points.  They benefit more from understanding the idea and not how to achieve it.  Actually too much details becomes two cooks in the kitchen… 
    • When the developer doesn’t know the technology.  At that point giving them the code and technical details will not solve anything for them.  They will need guidance and is better to don’t even give them code so they can’t copy / paste it blindly.  And yes, I have seen that happen.  I think the best approach here becomes train and code.  Where you as the designer need to do some code work with the developer so they can learn from you.

Hope you find this helpful.
"


Thursday, August 23, 2012

Geronimo 3 - OracleConnection unwrap AbstractMethodError - JDBC4

I will update and post more information about this later...

But meanwhile I will  post links to the forums I wrote to resolve the problem.
TranQL - https://jira.codehaus.org/browse/TQL-31?focusedCommentId=306715#comment-306715
Spring - http://forum.springsource.org/showthread.php?129311-Cast-ConnectionHandle-to-OracleConnection
Geronimo - https://issues.apache.org/jira/browse/GERONIMO-6383

If you are going through the same and need some help, just post a comment.

Related Errors:

java.lang.AbstractMethodError: org.tranql.connector.jdbc.ConnectionHandle.unwrap(Ljava/lang/Class;)Ljava/lang/Object;

java.lang.ClassCastException: org.tranql.connector.jdbc.ConnectionHandle cannot be cast to oracle.jdbc.OracleConnection

Tuesday, July 31, 2012

Spring - Making a self configurable project

In my projects I prefer having self configurable solutions and avoid any additional involvement for deploying an enterprise application (EAR file).  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).  Or you might need specific settings in each environment like DEV where you want to have more traces and debug information.  Imagine having to configure each setting every time you deploy...  plus this is prone to errors.


So how to make the solution self configurable?

In my case I use a combination of the JAVA env variable and Spring.

Set ENV Variable

Configure the JVM which hosts your application and set the vm argument:  -Denv <name>.

For example if using Geronimo application server, I will set this in the Launch Configuration where the VM arguments are configured.

-javaagent:"$(GERONIMO_HOME)/lib/agent/transformer.jar" -Djava.ext.dirs="$(GERONIMO_HOME)/lib/ext;$(JRE_HOME)/lib/ext" -Djava.endorsed.dirs="$(GERONIMO_HOME)/lib/endorsed;$(JRE_HOME)/lib/endorsed" -Xms512m -Xmx1024m -XX:MaxPermSize=512m -Dorg.apache.geronimo.home.dir="$(GERONIMO_HOME)" -Dkaraf.home="$(GERONIMO_HOME)" -Dkaraf.base="$(GERONIMO_HOME)" -Djava.util.logging.config.file="$(GERONIMO_HOME)/etc/java.util.logging.properties" -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=false -Denv=dev

Spring - ENV Configuration

I use Spring Framework to handle many of the dynamic characteristics of the project.  With Spring I can read the JVM env variable and do the following inside the applicationContext.xml file to achieve a self-configurable solution.

Spring - ApplicationContext.xml

This file is used by Spring to configure the application being loaded.  In the configuration I list two files:  application.properties and application.${env}.properties.  Notice the property files are bundle in the compiled JAR, so they are not easily visible nor accessible.  Plus you don't have to worry about the physical path since the files will be in the classpath.  The reason for having two files is that I can use one for all the general properties and another for environment specific settings.  Be careful that the order of the property files is important in the applicationContext.xml for how values are overridden.


    
    classpath:com/jonnazario/myapp/properties/application.properties
    classpath:com/jonnazario/myapp/properties/application.${env}.properties
    






    
    
    

For my preference I have a SystemProperties 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.

Properties file

These are example values for the general and environment specific application properties files.  See how some properties are overridden while other are not defined at all.

Configuration - General
# -- General Properties
app.Version=2012.07.01.00
app.devModeEnabled=false

Configuration - DEV
# -- DEV Properties
app.Version=work.in.progress
app.devModeEnabled=true

Configuration - PROD
# -- PROD Properties
app.hostname=www.myapp.com


Hope this helps.

Wednesday, July 11, 2012

Android WebTop - CarPc Setup

For a while I have been working on integrating my phone into the car.  I thought about doing a full CarPC project like the ones in mp3car.com, but the reality is that I am cheap plus I want something "maintenance" free.  Well really.. what project is maintenance free?....  :)

The easy route to accomplish my goal was to use my aftermarket head unit display (Avic Z110BT) mixed with Motorola Atrix Webtop.  When I connect my "rooted phone" 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.  This allows me to take advantage of the Android applications like:  Google Maps, Pandora, Trapster, etc..  For aid, I use Vilingo to read text messages and voice commands.  Another future I like a lot is remote desktop to my in car notebook for running car diagnostics.

Too much talk...  Let me just show it and ask.  :)

Connection:


In this clip I show how the connection occurs between the Android WebTop and the the car's console.  For this project you need a head unit with video / audio input, hdmi to rca converter, power supply for phone and converter, phone mount.

Apps:



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.  Also Vilingo developers.. please make the activation voice command to be always listening for "Hey! Vilingo" instead of only when app is open....


Car Monitoring:

In this clip I show how I monitor my car from within my phone.  I have a separate notebook computer which boots when car is on and hibernates when car shuts down.  From the phone I use WiFi AdHoc tethering so the PC and the phone can communicate wireless and I can remote desktop in.  The program shown is RossTech Vag-Com which is an OBDII monitoring tool for Audi.

My Car:  (Love Audi!)




Major progress:
  • Fix resolution of the rendered screen by updating Webtop X11 config
  • Hardwire the notebook computer used for monitoring the car
  • Setup tethering between notebook and phone (automatic)
  • Setup remote desktop and aspect ratio to be manageable from phone
  • Configure the remote Windows machine to have bigger icons, fonts, etc...



TODO:
  • Automatize the expansion of Android screen in head unit upon Webtop connection
  • Use something like Tasker which starts / stops Android apps upon detecting head unit bluetooth (just for knowing I am in car and is ON)
  • Better hands-free automation