Monday, July 29, 2013

TrueCrypt (Open Source Encryption) - Very elegant solution for personal computing and small businesses

TrueCrypt is an open source encryption solution. It got my attention so I wanted to write a quick post about it.

Before finding out about TrueCrypt, I have been using WinZip over the years and no complaints about it. WinZip is easy to use and it allows you to do AES-256-bit encryption which is what matters to me. It is good for compressing the files and safely sending the zip files in an email or uploading to your cloud. Let's assume you wanted keep a set of files on your hard-drive encrypted. With WinZip, you can compress the files into a single zip file and delete the original files. So if you want to edit a file, you have to open the zip file and edit file or unzip the zip file and then edit the file.

TrueCrypt takes a different approach. The end result of your TrueCrypt setup is that you have a mounted drive (i.e. M:  )  on your Windows computer. Any folders/files that you place on that drive is automatically encrypted; you don't have to worry about compressing and unzipping any files. It is all seamless to you once everything is set up.

So if somebody ends up stealing your computer/laptop, they are stuck with a hard-drive that has encrypted information for the volume that represented your mount/drive. Assuming that you used a very strong password for your mount/drive, it could take months or years for somebody to decrypt that information.

How do you set it up?
- Install TrueCrypt desktop application  (
- Create a Volume and assign the size.
- Mount the volume onto a drive letter (i.e. M: )
- Start using it as any other drive on your computer and put files on it. It is that simple.

Small Businesses and TrueCrypt?

Let's assume you a real-estate agent, or a loan officer, or a lawyer who keeps the personal information of their clients on the work computers. If you don't have an IT department in your company and an Information Security department, then you need to definitely consider using TrueCrypt and implementing it yourself.

Enjoy !

Keywords: #TrueCrypt #Encryption #Decryption #AES #security #software #smallbusiness

Monday, July 15, 2013

Rapper's cheat-sheet for providing the best estimates - Software Development

What is an important prerequisite for providing good estimates in software development?

Simple answer is: You need to have a good list of features which is what your product is all about. I am not talking about a feature list at a customer level. I am talking about a feature list from the engineering level that maps to the high-level feature list that product management owns.

So now that you know what you need, the question is how to get it if you don't have it available off the shelf in your documentation.

Simple answer is:

1. Create what I call a rapper's cheat-sheet.
2. Read through your project requirements and circle the features/components on the rapper's cheat-sheet.
3. Consolidate all the information into a nice list and then start the process of estimating.

If you are still wondering what "a rapper's cheat-sheet" is, here is what I mean. It is one sheet of paper where you list all the engineering features/components without specific organization. The point is to put as much on that paper without trying to organize it. This can be achieved in a brainstorming session with between you as the technical lead/manager and your teammate engineers.

Happy estimating !!!

Keywords: #estimates #LOE #development #software #softwaredevelopment #softwareengineering

Saturday, July 13, 2013

Cars and Coffee in Irvine (2013-07-13)

There was a great turn-out at Cars and Coffee in Irvine early this morning. There were a lot of great supercars, classic cars and muscle cars. The following stood out for me:

- DeLorean (Back to the Future original movie car)
- Porsche 911 (997 II) race car with PDK
- Mini Cooper old-school with Honda's DOHC Vtec motor
- Motorcycle (with a turbocharger) built by a high-school teacher and his students

ALBUM - Cars and Coffee in Irvine 2013-07-13

Keywords:  #cars #coffee #irvine #supercar #racecar 

Saturday, July 6, 2013

Myth about Manual Transmissions and Saving Gas

Myth about Manual Transmissions and Saving Gas

There is a myth about driving manual transmission cars. The myth is:
- Shift from 1st to 2nd and then to 5th gear to save gas.

I spent a lot of time in Europe and I have noticed this trend a lot. I never questioned it until cars became my hobby. My engineering background and interest in cars got me thinking about this years ago.

My theory was that shifting gears on time (not to soon, not to late) and always keeping it in the right/optimal gear (optimal RPM) was the way to save gas properly.

As you know the original automatics used to be only with 3 gears and manuals at that time were 4 or 5 gears. The manual transmission cars always rated better in gas mileage. With recent introduction of 5,6,7,8 speed automatics/double-clutch transmissions, the sides have changed. Nowadays, automatics are being rated better in gas mileage than manuals. The reason is because the car is constantly shifting through gears and finding the most optimal gear for gas mileage. 

I still wanted to prove my theory scientifically.

Recently I was able to purchase a ScanGauge device that can track many different things and one of them being the real-time gas mileage.

After driving the car and running it through many gas tanks, the conclusion is that shifting from 1st to 2nd and then to 5th gear does NOT give you the best gas mileage. In my Mini Cooper, the best results are achieved by constantly shifting between 2,500rpm and 3,100rpm and never being in the gear that is too high or too low. This obviously requires more concentration and that's why a lot of shiftable automatics are better if you leave them in the true automatic mode. Leaving it up to the car computer to do your job is most likely better choice.


The myth is proven incorrect

#cars #carreview #autoreview #transmissions #manuals #automatics #myth #RPM #gears #shifting


Wednesday, July 3, 2013

Value of Integration Testing vs. Unit-Testing - Biggest bang for the buck !!!

Unit-testing is being emphasized a lot in the IT industry. How much can it benefit us? Do we get the return on it?

The best way to discover this is to ask somebody to deliver something quicker than how it was originally estimated. What is the first thing that will be given up in order to meet the deadlines; it is the detailed unit-testing. Some unit-testing will be done, but not to the level that software developers would like to. To keep the stability in this project, you cut down on the detailed unit-testing and focus more on the integration testing which is the one that matters at the end of the day. Integration testing is the testing where you discover if your module works well with the modules that other developers coded. The sooner you put focus on this the more stable the product will be for the official QA testing and ultimately for your end customer.

So what is the point that I am trying to emphasize here. It is the following:

Write code with the approach of understanding what the top integration tests you need to pass.

Do the positive and negative integration testing as you are closer to finishing up your code; this naturally requires the coordination with other developers to provide you the stubbed versions of their code if they are not ready to provide you the full functionality.

Go back into your code and make sure you do your unit-testing by having the full proof code coverage.

#softwaredevelopment #softwareengineering #developers #development #QA #quality #integration #testing #unit-testing 

Monday, July 1, 2013

Quality in Software Development Life Cycle

Here are the steps should be taken to keep or improve the quality of your product in SDLC:

- Code review as project happens.

- Governance around CORE code and impact analysis

- Early integration testing: provide stubs on your code early so other
teammates start using it. If short on time, tune down a bit on unit-testing and use that
energy/time for integration testing.

- Allow bigger projects to be released into QA environment in small phases.

- Allow soft-launching methodology to production for bigger projects
so you don't risk and introduce bugs by doing everything in one big

- Monitor QA environment and truly understand what gets pushed into it: have a
clean dashboard of all the activities that are taking place. This
prevents tickets to be dragged into production by accident and keeps
the quality in the current environment.

- QA team to do free form testing with full understanding of the product.

- QA team doing load testing in Stage and Production.

- Prevent bad quality code to sit in production by monitoring the
production for PERCENTAGE change in low-level errors. If greater than
some threshold, then roll back.

- Have ability to introduce new features to certain group of customers (demographics, geo-location....)
to slowly roll out new features.

#softwaredevelopment #softwareengineering #developers #development #QA #quality