HOME | Blog | YouTube | LinkedIn | About Me         || Calculators    | SoftEng/Tech Posts    | Code/Scripts

Saturday, May 31, 2014

2008 Porsche Cayman - My Test Drive

......Posting my write-up on this test-drive from 2011 when I had it on my old site:

Today's car is a 2008 Porsche Cayman with manual transmission. Let's find out.

What's the verdict? My initial feel about it was all positive, but what is it after some thoughts and analysis?


Let's start with the engine. The specs on the engine are: 2.7L H6 with 245hp@6500rpm / 201LB-ft@4600rpm. For a car that was listed for $39,900 as three years old, that is relatively low horsepower for that much money; however, it is not all about horsepower numbers and track numbers. Then what is it about? Let me start with one analogy, but before I get to it, here is a message to my fellow Porsche drivers:
"Don't take the following comparison as an insult; it is a compliment".

  • Have you ever driven a VW GTI 2.0T Mk5 or Mk6 (2006-2011)? Well, if you drive this car, you will be impressed with the overall HP delivery and especially with the low-end torque. However, you end up going home saying: "Hmm, I wish that GTI engine revved a bit more quicker, a bit more higher and more freely".
  • Have you ever driven a 2006 Acura RSX Type S with the K20 motor? Well, if you drive this car, you will be impressed with the free-revving engine and the 8000+rpm red line. However, you end up going home saying: "Hmm, I wish that K20 motor had more torque especially at the low end".

You may wonder why he is talking about GTIs and RSX Type S. My point is that the engine in this 2008 Porsche Cayman is a marriage of RSX Type S K20 engine and GTI's 2.0T engine, but with more characteristics of the engine from RSX Type S. What I am saying is that this 2.7L H6 Cayman engine has enough torque at the low-mid range so that you don't feel disappointed, but oh my gash, this engine revs fast and freely, and it just keeps going. As you push it up the RPM scale, the engine has this little voice telling you: "I want more and more and don't stop. Keep going". This engine is a pleasure to push hard and it is a pleasure to listen to. The Porsche-specific exhaust note is just music to my ears. I can't imagine what the Cayman S would feel like or Cayman R; what about 911 GT3; how much more fun can it be?

Suspension / Steering / Handling:

The steering on this car is very precise. Where you turn, that's where the car goes. To a novice driver, this statement might sound ridiculous, but to other drivers out there, you know what I am talking about. I took some sharp 2nd gear corners and some high-speed 3-4th gear corners and this car does NOT have any oversteer on the road conditions and there is NO understeer either. So the handling on this car is very neutral and I really like this. I have a feeling that if I pushed it on the track, I would get it to oversteer, but it would still be easily predictable. So sharpness in the handling of this car is a blast.

That's all my initial feel about this car. Then I started thinking about it a bit more. I know Porsche says "There is no substitute". Well, if you don't have $39,900 to buy a used 2008 Cayman, you have to find yourself a substitute.

  • What about Honda S2000 with some minor VTEC reprogramming?
  • What about a modified Acura RSX Type S. I drove a RSX Type S with slightly tuned suspension and it was a blast. K20 motor also has tons of potential.
  • What about a VW GTI with a Stage2 performance upgrade and a set of performance springs, shocks and rear sway-bar?

What is the verdict? Everybody is different; it is yours to determine.

- almirsCorner.com - 

#cars #carreviews #Porsche #Cayman #driving #CarComparison #GTI #TypeS #Acura #VW #S2000 

Wednesday, May 28, 2014

2002 Porsche Boxster - my test-drive

......Posting my write-up on this test-drive from 2011 when I had it on my old site:

Today's car was a 2002 Porsche Boxster with manual transmission and a short-shifter kit installed by a Porsche dealer.

Let's get down to the point right away. Even though this car is 9 years old, it felt like a new car. Based on a short drive, it felt the same as the 2008 Porsche Cayman that I test-drove a few weeks ago. Please read the Cayman review below to see what I mean by "same". Even though this Boxster has 217hp compared to Cayman that has 245hp, they felt about the same in power in city driving conditions.

If I just look at the power and handling in terms of numbers in city driving condition, both Cayman and this Boxster felt the same; however, this Boxster was more fun to drive and that's all because of a short-shifter that this Boxster had.

The short-shifter gave me the confidence and most importantly quicker shifts which equates to more fun. It has a notch every time you shift into a gear and shifting it every day makes your daily commute as if you are on a race track. Don't get me wrong, you can still drive and shift the gears in lazy mode if you don't feel like driving fast. Since I've owned VWs and Hondas, I will explain it the following way: This specific Boxster had a VW clutch feel (medium/heavy) which I really like and the shifter was very precise and similar to Honda shifters which I also liked on my previous cars. So it is a best of two worlds for me. After driving this Boxster with the short-shifter makes me realize how much I enjoy driving manuals and it makes me realize that it will be very hard to switch to automated manuals with paddle shifters when it really comes down to it. The time will show and the basketball left jumping knee will tell me how it feels.

I am not a big convertible fan for a few reasons, but when I think about it, I realize that I could get a used Boxster between $15k and $20k that would give me more fun than a $30K+ Cayman; however, I would have to install a short-shifter right away.

- almirsCorner.com -

#cars #carreviews #Porsche #Boxster #testdrive #driving #shortshifter 

Monday, May 26, 2014

Loosely-coupled code - what does it really mean?

What is "loosely-coupled" code?

  • Does this mean it is configurable?
  • Is loosely-coupled code necessarily a product of a smart developer?
  • Is the code loosely-coupled because you used a cool new feature in your platform?
  • Does it mean that you used a cool design pattern?

A lot of times we developers believe that if you write code that is configurable, it is automatically loosely-coupled code. The configuration is sometimes taken to extreme levels that it takes a long time to edit configuration files or configuration tables in database. It gets so complicated that for example the XML configuration in the config files becomes its own programming language that a human cannot maintain properly.

Let me answer one of above questions. No, a configurable application does not necessarily have loosely-coupled code.

Let me use the following analogy. Let's say you have a car engine with all necessary parts: the engine block, alternator, water pump, air filter, radiator and other parts. You can decide to change your air filter and replace it with another stock filter or an aftermarket filter. If you decide to change the water pump, any mechanic can change that easily for you. The conclusion is that you can change some stuff without major re-work; this is a good example of how things are configurable down at the low-level (i.e. changing an air filter with a different one), but the configuration here does not mean that the overall design of this engine and other parts is loosely-coupled. What would make it more loosely-coupled? If I wanted to change the location of the air filter totally, can I do that? If I wanted to change the location of the water pump, can I do that easily. None of this would be a simple task and it would require some major re-work.

The same applies to software applications. Let's say you developed an application and this application performs a set of tasks. I am sure you would make the items configurable within each task and that you would make some high-level features in the application configurable, but does it really make it loosely-coupled? You need to take it a step further. What about if I asked you that I don't want to be forced to use all the these tasks and that I want to build another smaller application that would only perform a smaller number of tasks of my choice. Would I be able to do that easily? If your response is that you have to re-work some of your code to make it reusable, then we know that the code is not loosely-coupled enough.

If I had to describe "loosely-coupled" code in a few bullet points, I would say the following:
  • modular
  • integration points would need to be as weakly typed as possible
  • keeping it simple
  • coding to solve a problem and not to use features from a programming tool that are cool.
  • usage of enterprise products instead of re-inventing the wheel, but not marrying yourself too much with third party tools
What does "modular" mean? It does not mean that you just break your code into methods/function. It means that you break it into meaningful modules that are small enough that you can utilize as building blocks.

Integration points? If you component X is making a call to a web service Y, you need to design it in such a way that you don't have to introduce new signatures of your methods every time a new requirement comes your way. You could use the concepts of overloading and utilizing the code between the overloaded methods; however, if you find yourself overloading too much, then you need to question your design.

Keeping it simple? It is exactly what it says: "simple". Don't get over-excited and start over-configuring things and making the code less maintainable. Step back and think about your fellow teammates and ask yourself: "what trouble would my teammate need to go through in order to work in this code that I am about to write?". How would they feel making changes in this code 6 months from now? There is more on this in this post:  Keeping it Simple.

Coding to solve a problem instead of coding to use new features from a programming language/tool?? A lot of times we developers fall in the trap of wanting to code on the new stuff or the cool stuff; this is what looks good on our resumes. When you have a problem to solve, we need to focus on coming up with a solution and if that solution ends up being a specific design pattern and a use of a specific feature in your selection of tools, that is great; however, please don't start by saying "let me see what design pattern or tool I should use to solve the problem".

If all of the above is done right, then you have more loosely-coupled code and the key word is "more" because there is no code that is perfectly loosely-coupled. It is a constant learning process for all of us, and keep in mind that the code is as good as it is maintained.

Thanks for reading and Happy Coding !!!

- almirsCorner.com -

#programming #programmer #softwareengineering #softwaredevelopment #architecture #tools #designpatterns #keepitsimple #code #coding #coding101 #programming101

Saturday, May 24, 2014

Tennis Forehand - Tell Me How To Improve Series

Tennis Forehand - Tell Me How To Improve Series.

I am a 3.5/4.0 tennis player and I would like to improve my forehand. Tell me what I need to do to take it to next level.


- almirsCorner.com -

#tennis #forehand #tennisforehand   #CoachMe   #TennisCoach  #Coaching   #Coach   #tennisplayer   #almirsCorner  

Friday, May 23, 2014

Responsive vs. Adaptive Web Design in a nutshell ?? What about CMS?

What is RWD (Responsive Web Design)?
What is AWD (Adaptive Web Design)?
How does it all fit into CMS (Content Management System)?

Responsive web design is often misunderstood. It is often loosely used in conversation without full understanding because it has been a buzz word for last year or two. What does it mean? It means that the server is pushing all the html to the client and client has some fancy logic based your device to render different layout to flow areas of the page slightly differently. It could mean that a two column page on desktop device renders as a single column page on your mobile devices. Responsive web design is not a perfect solution because you are pushing the same amount of data (html, images, CSS) to the client (your browser) whether you are on desktop or mobile device. That does not make sense if you are browsing over slow 3G connection with your phone. 

Adaptive Web Design is the way to go because it is taking the concepts of RWD, some new concepts, and some new features in CSS. You can do AWD on the client or server side. If you detect the device on the server, then you have the luxury of having the desktop view totally different from the mobile view; for some websites it makes sense that you totally simplify the mobile experience and have different content and that's when you would have two totally different views on the server side. If you do it on the client, then you can use new features of CSS to NOT push big desktop images to mobile devices and drastically increases performance. The overall intent of AWD on the client side is to make the presentation for desktop and mobile devices optimized and to also share content. If you product owners decide to share content for desktop and mobile devices, then AWD on the client side is the way to go. Once you start getting to major content differences between desktop and mobile devices, then you have to choose AWD on the server side.

- almirsCorner.com - 

#web #webdesign #html5 #AWD #RWD #AdaptiveWebDesign #ResponsiveWebDesign #Adaptive #Responsive #programming #webdevelopment #tech #almirsCorner 

POC - Nothing more final than a Proof Of Concept

There is nothing more final than a POC.

A proof of concept can gain traction very quickly and before you blink, it ends up quickly in production with minimal changes.

Proof Of Concept (POC) gaining traction and becoming production code could be a good thing in short term, but if it happens often, it complicates the platform stability and support in long term.

What do you think?

- almirsCorner.com -

#POC #softwareengineering #softwaredevelopment #programming #tech #almirsCorner

Sunday, May 11, 2014

BBM (BlackBerry Messenger) - Common Denominator - Can it unify people from all platforms?

Can BBM unify people from all platforms?

Back in the day most of us used Windows Messenger to communicate with people directly in real time. Those were the days when you could find all your friends online in a single application. Then generation of MySpace, Facebook and Twitter arrived and kind of took away live communication and made it more of a display of your activities without talking to anybody directly.

These days a lot of people are on Facebook, but Facebook does not have a reputation as a trusted service with our information. 

Google+ is getting more popular, but you probably don't have a lot of your friends there. When you ask people to join, they are very reluctant because they might not be big users of Gmail and to have Google+ service, you obviously have to have Gmail as your Google account. Some people are big Gmail users but they are not fans of Goolge+.

Twitter is used by a lot of people, but its platform is not to share pictures with your family. You could that, but it has a different purpose. It is much more public than other services.

Yahoo / Hotmail / Outlook.com / Skype are also used a lot.

All these services have their place and they are useful in their own ways. People generally choose and associate themselves with one of these platforms and we all wish that our friends and family are all on the same platform that we choose as the main platform. However, that is not feasible.

What can internet user and smartphone users do? Could BBM (BlackBerry Messenger) have a chance to be the common denominator?

BBM has more secure and private approach to communication. BBM app exists for iPhones, Android, BlackBerry phones and it is very soon going to be released for Windows phones. BBM could be used as a replacement for text messaging for all your friends across the world without extra charge.

If you have all your friends as contacts in your BBM app, then you can communicate with them one on one or have group conversations with them. You don't have to pay attention what country they are in. 

You can organize your contacts in categories.

You can create BBM groups and invite your certain contacts from your list to this group. For example, I have a Family group that I created where all my family contacts can be added. Within this group, I can post pictures and events without directly text messaging family members. When they open their BBM app, they can browse to the Family group and see all the posts. I can also choose to have a group conversation in real time with all group members.

You can see that this is designed by default to be private.

Nobody can search in BBM app looking for people online. The only way to be somebody's contact on BBM is the following two ways:
  • You know them and you exchange BBM PIN in person by scanning each other's bar-code.
  • You email your friend and exchange the BBM PIN and then add contacts by PIN.

In a nutshell, your BBM app becomes the communication tool with people that are part of your lives from personal or business point of view.

BBM for Business:
I think that BBM also has a very good chance of becoming a common communication solution for business. Let's say you have a team of 20 people. Maybe 7-8 of your team members are in different geographic locations. Having company email on phones is one way of communicating with team members, but not every member of your team can have a company phone. However, they definitely have a their own personal smart phones. They all can install BBM application on their company/personal phones and exchange the BBM PINs. In your contact list, you can categorize all your co-workers and now you can easily reach out to your teammates one on one or even via a group chat. Everybody is busy with meetings, and email communication might not be the best solution to reach out to your teammates when it is important because the response on emails is expected within a business day. Calls could be very distracting especially if you are receiving them during a meeting. However, receiving a BBM message is efficient and not as disturbing. For example, I often have a need to reach out to my product managers in Europe. I don't carry a company phone and I can't call long-distance. I can't text message them either for free. However, I could send them a BBM message if I wanted to reach out to them to discuss important matter on short notice.

Can BBM unify people from all platforms? Can it be the common denominator?
I think it has a huge potential. I will continue using it on my iPhone and see how well it does. You need to try it out and determine if it works. We spend a lot of time playing with many apps on our phones and I think that BBM deserves some of our time because it could increase your productivity.

- almirsCorner.com - 

#BBM #BlackBerry #BlackBerryMessenger #communication #teams #gmail #facebook #skype #googleplus #hotmail #Outlook