Running windows on MacBook Retina

Running windows on MacBook Retina

Why you still are still run crappy windows on crappy hardware? . Is it the additional cost Apple Hardware costs? Or rumors like Apple Hardware (world best Ultra Books) do not doing a good job when running windows.
Here I thought of sharing detailed performance overview of running windows on MacBook Pro Retina 15 inch.

Approach 1

Apple Inc. supports installing windows on MacBook using OSX pre installed tool BootCamp. Latest BootCamp supports windows 8 as well. Windows drivers for the latest MacBook is available on Apple website and comes as a package when downloading BootCamp.

Running  Boot Camp Assistance  

  • Applications -> Utilities -> Boot Camp Assistance
Boot camp supports creating a bootable USB with windows ISO. It is also possible to download windows drivers for Mac through Boot Camp Assistant. Also this process guide through creating a separate NTFS partition for windows OS as well.

Following is a detailed performance overview. It is simply under the category of 7.0 -7.8 which is reserved for high-end systems with SSD, High-end graphics cards and multicore processors.

Approach 2

MacBook Pro 15 inch retina is more than to powerful to run windows parallel which mean running windows on a virtualized environment. Advantages of this approach are it is easy to run windows and windows application as if it were just another application on mac OS.  
I am using parallel as virtualization tool .It has several advantages over other popular virtualization software’s.
Following is a detailed performance overview when running parallel. Of course allocated resources were bit low specially RAM wise and graphics. Still system perform extremely good 

XCODE: Open source files in assistance editor

Xcode by default feature of opening new files is open on primary editor. This is painful when u needs to work two different source files in same time.

Open files on assistance editor
Change navigation to – Use Focus Editor. Then clicking on assistance editor makes it focus editor.

Mocking with OCMock – Setting up environment

Mocking with OCMock – Setting up environment  

OCMock is the objective-C version of mock objects. Following is a briefing to setup OCMock for objective-C development.
  •  Download pre compiled libraries
  • Link downloaded OCMock.framework   to the test target ( eg:OCMockDemoTests ) .
  • Change status to Optional

MacBook Battery Life

Mac Book Battery Life

MacBook pro Retina is coming with a cycle count of 1000. Once this amount is consumed it is time for a replacement.

Need a long life time for your MacBook battery? 

It is always recommend to use your MacBook plugged in when it is possible. This helps to maintain less number of cycles used.

When he needs a Calibration?

Newer MacBook’s comes pre calibrated and a calibration is not necessary.  Find whether your MacBook needed a calibration though this link .

Learning a Programming Langauge

Learning a new programming language won't take hours for a software engineer . But this learning curve differs from software engineer ,programmer and to a student . A beginner to programming can start with a language like C or python . Ultimate idea of this level is learning basic principles of programming . Once you are familiar with basics like "conditions " , "loops" , simple data structures like arrays and data types you can further learn new concepts like object oriented programming using a language like "C++" . At this level one should be very much confident on using a programming language for varies algorithmic tasks. Now try to learn and get familiar  with varies programming paradigms like  OOP ,Functional Programming, Concurrent Programming , Event driven programming . 
A good software engineer can write programs using multiple programming languages and a strong intelligent fruitful engineers use multiples programming languages inside a product alining the concept of "right tool for the right job ".
When I was a 12 years kid I wrote my first code using BASICS and at university it was C. I became very confident with programming after learning C++.  Learning functional programming using Haskell and Event driven programming with advance Java Scripts bought me to the next level of programming .

GIT : source Code Control the way it meant to be


Linus Torvald's Tech talk on git @ Google is one my favorite tech talk . It's really amazing how he throw out subversion and CVS users considering they are set of idiots in earth .
He started the talk saying "If there is any SVN or subversion users in audience you might want to leave." and i felt what going to happen :D . And then he says "I see subversion is the most pointless project ever started " lol  xd. "One reason why subversion is pointless is it thinks as CVS is correct and I say it is wrong ".

I Sharing ; I do personal Branding

I am the laziest in this word to write things . Explaining this  when I was for exams some times I had a deadline of number of minutes /hours I stay on writing , in blogging I have so much of drafts which I did't continue.

Here I started to write . OK yeah now my previous statement is expiring  .. 

I am big fan of learning to scratch of anything . Being undergraduate when lecturers asking to compile a code I wanted find how it happen . But in undergraduate life I hadn 't a interface to show it as I know (personal branding) . While life goes so a I got really mind-blowing written feedback as an  advice from one of  brilliant lecturer of university  which changed above my thoughts for writing . It as following . 
"You clearly have great amount of knowledge; you must work hard at projecting yourself as a confident knowledgeable person".
Another lecturer repeated it at the last meeting of university ..
OK. Trigger was smart enough to make me to write and again I continued blogging ..butonly for two or three months ;) . ...My mind started to say don't waste your time for those writing bullshit ... 

Today 2012.05... and I starting to blog again as my company forcing me to do so ( personal branding) . Explaining it we are a product engineering company which build products and we need set of geeky profiles for our business model .

Authentication problem with Egit and Github

Git is the best source code control system for me which written using C language . Eclipse provide a way to integrate Git with eclipse and based on JGit , a Java port for Git .
There is a issue when authenticating EGit on eclipse indigo with Github . Egit failed with identifying paraphrase for ssh authentication. A simple solution for this is adding ssh (/usr/bin/ssh) to Environment variables .
export GIT_SSH=/usr/bin/ssh

Few reasons that made me more interested in opensource

  1. When debugging a complex application , nothing can be easier than drilling a source code.
  2. People has different coding styles . But the beauty of coding style depend of experience . One way to tackle this latency is reading those different beautiful codes written by experts and learning the fashion .
  3. Some times third party libraries can not be use as a bunch . Most of the time it need tweak .Having a source code always simplify this task.
  4. Most of open-source software contain high quality code because of people continuously working on bug reporting and fixing .

Quotes I follow

  1. If you passionate about what you do, your work stops being 'just work'.
  2. I have a belief in myself to do anything I chose to .
  3. Believe in your ability. Ignore the noise. March forward.

Arch and automatic build

I addicted to Arch few months back and decided to live as a full time Arch user . It was awesome period and managed to learn most of the crazy stuff that hidden the by beginner friendly layer of destros like Ubuntu .

Arch is a rolling release based distribution and so always managed to run with very much newest packages . This is a really good experience since it allow users to work with new releases very early when comparing with other destros.

But problem arise when it come to automatic building of packages . Most of the building scripts configured to run with stable releases . So most of the time those build failed since Arch always has the future versions of package releases. True its Linux and you can manually fix those problems . But then why we use automatic build scrips ? .

Install maven in arch linux

  1. install maven using package manager
    sudo pacman -S maven
  2. In a command terminal, add the M2_HOME environment variable, 
    e.g. export M2_HOME=/opt/maven/
  3. Add the M2 environment variable, 
    e.g. export M2=$M2_HOME/bin.
  4. Add M2 environment variable to your path,
    e.g. export PATH=$M2:$PATH.
  5. Run mvn --version and  result should be something like following ..

[soori@lapi ~]$ mvn --version
Apache Maven 3.0.3 (rNON-CANONICAL_2011-03-19_21-46_root; 2011-03-20 03:16:53+0530)
Maven home: /opt/maven
Java version: 1.7.0, vendor: Oracle Corporation
Java home: /opt/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.0-arch", arch: "amd64", family: "unix"

Linux VLC media player not loading

When I start VLC media player using terminal I got following error
Blocked: call to unsetenv("DBUS_ACTIVATION_ADDRESS")
Blocked: call to unsetenv("DBUS_ACTIVATION_BUS_TYPE")
Blocked: call to setlocale(6, "")
Blocked: call to setlocale(6, "")
[0xe8e580] skins2 interface: skin: subX  author: Martin Poehlmann
[0x1dca9e0] qt4 interface error: cannot start Qt4 multiple times
[0x1dca9e0] main interface error: no suitable interface module
[0x11618a0] signals interface error: signal 17 overridden (0x7fdf4ac4e4f0)
[0x11618a0] signals interface error:  /usr/lib/[(nil)]
[0x1158ca0] qt4 interface error: cannot start Qt4 multiple times
[0x1158ca0] main interface error: no suitable interface module
[0xda4120] main libvlc error: interface "default" initialization failed

Execute following commands for a quick recovery 
rm -rf ~/.config/vlc/

Fix the 30 minutes latency in system clock (Sri Lanka)

1) Install  OpenNTPD

OpenNTPD is a application that synocronize system clock with a timer server using Network Time Protocol .
$pacman -S openntpd
2 )Open /etc/ntpd.conf and add following lines


3) Add OpenNTPD deamon list
DAEMONS=(openntpd)         (Arch Linux)
4) Restart the deamon
sudo /etc/rc.d/openntpd restart

The mysql extension is missing

This is really mean php installation missing the required extension for MySQL . You need to add particular extension for required by MySQL to php.ini file .

1) open the /etc/php/php.ini file with super user privileges , find and uncomment following lines . 

2) Restart Apache
/etc/rc.d/httpd restart