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 ".

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

Arch Linux sound problem

One popular sound problem which occurs due to wrong configurations is one sound device blocking another device. Its something like one device at a time. Following is a quick temporarily fix for it;

First execute the following command to make sure sound drivers are installed, sound cards are properly configured and working properly.

speaker-test -c 2

Above command should give the following result.

Playback device is default
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Playback open error: -16,Device or resource busy

Then issue following command and discover currently active applications which uses the default sound card.

fuser -v /dev/snd/* /dev/dsp*

For me it gave a result like this

                   USER        PID ACCESS COMMAND
/dev/snd/controlC0:  soori      1365 F.... pulseaudio
                     soori      1988 F.... xmms
                     soori      2304 F.... alsamixer
/dev/snd/pcmC0D0p:   soori      1560 F...m plugin-containe

Now what you have to simply do is terminating the above processes as below.

sudo kill 1365 1988 2304 1560