bsodmike's photostream @ www.flickr.com
            

CyanogenMOD v6.0.0-RC3 ~ Froyo FRF91

30/08/2010

This is running extremely smoothly on my Nexus One. Get it here.

No Comments

Partagas Serie P No. 2 Pirámide Vitola

25/08/2010

A fellow aficionado recommend that I give the Partagas Serie D No. 4 a try, however, I’ve yet to make the trip to the Sheraton to accomplish this. Whilst walking back to my apartment I noticed there was a tobacconist in the mall next door…ended up walking out with pack of three (tubos) where they worked out to around £11 per stick.

I also managed to finally hunt down those sulphur free cigar matches; they carried two kinds of Davidoff matches. Being fresh out of their humidity controlled kiosk, the burn was quick with decent draw. I was instantly surprised how ’smooth’ this cigar was in comparison to the Montecristo 4, Petit Edmundo, and El Rey del Mundo Choix Supreme.

Another point to note is the 52 ring size of the Torpedo format ~ the thickest cigar I’ve tried to date; I couldn’t really imagine being able to enjoy anything larger. This smoke lasted close to an hour and half; as it reached about 3 inches in length, the taste became far too bitter for my palette.

A highly recommended smoke, one that has made its way onto my “top five” list.

No Comments

Just beautiful…

14/08/2010

No Comments

The Sterling Silver Collection

31/07/2010

I decided to give the sterling pieces a polish this morning.


Left to right: MB Charles Dickens WE with B nib, Montegrappa Extra 1930 Turtle Brown celluloid and Ebonite feeder with M nib, MB F. Scott Fitzgerald WE with BB nib, MB LeGrand Solitaire Pin Stripe with B nib, MB Barley with B nib and a 0.035ct G VVS2 channel set diamond in its Platinum/PT950 plated clip (not Rhodium plated).

Here’s a close up of the Montegrappa. This brand is not that well known, and is quite similar to that of Patek Philippe in comparison. One could compare Montblanc to Rolex in terms of popularity.

Montegrappa’s roots are quite Italian, as is its design. The clip in particular is very similar to even some of the designs used by Visconti; the little roller is quite classically of Italian design. It also features an authentic Ebonite feeder; this is not very common among modern FPs. Of course, Richemont are the owners of the Montegrappa brand and as of late they are manufactured in the Montblanc ateliers in Germany.

I think I was one of the lucky few to pick up my MG when I did, before Richemont started to shift all their production over to MB, as there have been reports of low QC standards in their more recent models. Thankfully, the Extra 1930 is the only MG model that ever caught my eye and my piece does not have the horrifying ‘Made in Germany’ marking.

That’s as bad as Panerai’s faux history; invented for the Italian Frogmen aiding their skirmishes against allied vessels. The part Panerai conveniently leave out is that those pieces had Rolex movements, and therefore all PAMs since with ETA movements – including their so-called in house movements – are just tributes to the real deal.

Personally, I cannot stand fakes; pretending to be the real deal is…well…just as fake! I’d therefore take an in-house developed Rolex movement over anything ETA and the Swatch group has to offer…but I guess, I’ll reserve my ranting for a different post.

What I enjoy most of this sub-collection of mine, is that each nib writes quite differently. One could say that each nib has its own “soul”, thanks to the way the nibs have been ground. Some are rather stubbish B nibs – this is a particular trait of MB B nibs that always has me going back for more. The BB nib on the Fitzgerald is silky smooth as the greater surface area allows for greater lubrication by the increased ink flow.

No Comments

Secure MySQL Installation in Ubuntu 10.04 LTS

28/07/2010

This step is quite easy to overlook,

After installing MySQL, it’s recommended that you run mysql_secure_installation, a program that helps secure MySQL. While running mysql_secure_installation, you will be presented with the opportunity to change the MySQL root password, remove anonymous user accounts, disable root logins outside of localhost, and remove test databases. It is recommended that you answer yes to these options. If you are prompted to reload the privilege tables, select yes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist
 ... Failed!  Not critical, keep moving...
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Reference: Linode.

No Comments

MoDaCo Custom ROM for Nexus One with Online Kitchen – Froyo FRF91

11/07/2010

FRF91 is out for fellow N1 fans; click here to load up on the new ROM by @paulobrien

I’ve just flashed over r20; will grab r21 tomorrow.

No Comments

Review: Montecristo Petit Edmundo (x10)

12/06/2010

I decided to ‘christen’ the box of ten Montecristo Petit Edmundo that I purchased in May. Its presentation and packaging is the ubiquitous wooden box, marked with a manufacture date of March 09 on its bottom.

Over the years I have preferred a brief smoke in comparison to the long hauls I’ve experienced with the Trinidad Ingenios EL (Edicion Limitadas) 2007s in their Cervantes format of 165 mm and a ring of 42.

It is due to this reason that I took a particular interest in the smaller formats and the Petit Edmundo in particular is a much nicer 110 mm with a ring of 52; in comparison, your garden variety MC No. 4’s Mareva format is 129 mm with a ring of 42 – the same thickness as the Trinidad earlier mentioned.

Interestingly, one takes the ring size/64 to calculate the width, or the thickness, in inches. The Petit Edmundo works out at 0.66 inches and therefore is categorised as a thick gauge. The El Rey Del Mundo Choix Supreme I reviewed in February was of the Hermoso No. 4 format at 127 mm with a ring of 48.

In terms of colour, this MC has a deep leathery tone, much deeper than that of the Choix Supreme or even the Por Larranaga Petit Corona; those were much milder smokes in comparison. Even the Davidoff 2000’s (Machine made in Geneve) are darker then the MC Petit Edmundo, but that is a whole different affair and one simply could not even begin to compare the Davidoff’s with a decent cuban.

Unfortunately, my hunt for sulphur free cigar matches is one that has yet to come to a conclusion and I therefore resorted to regular matches. I tend to avoid “lighters” as their fuel tend to be rather overbearing and do not want to ruin the experience as such. This particular cigar lit quite easily and drew quite well; it seemed to have good construction of the filler. Personally, burn and construction are my main concerns; the flavour – the raison d’être of cigar smoking – and experience tends to take care of itself if these are spot on.

I was able to quite easily discipline myself to an average draw per minute, whilst enjoying a coke of course, without the fear of it going out. Yes, its burn was good as well. On to the experience! Considering the smaller form factor, yet thicker girth, this 30-minute nicotine powered roller coaster ride was the most fun during the initial 20 minutes.

The beginning was extremely creamy to the point it had me wondering that this was going to be a rather mild smoke, with hints of cocoa. ~5-10 minutes in and it felt like I had started to reach the sweet spot with leathery tones and hints of spice mixed in with the MC’s signature bitter-sweet undertones. At around the 20 minute mark, the cigar was now in its stub form moment away from reaching the ring; it was evident that the fun had come to end. The draw deteriorated at this point and even the burn struggled; I no longer cared to continue as the best of it was history.

On the whole, I would say this was an enjoyable smoke, one that I definitely see myself indulging in from time to time. Some Remy XO swirling in a cognac balloon would have definitely had the carriage coming of the tracks…one can only dream :)

Next review: the Siglo IV Tubos Cohiba.

No Comments

HOWTO: Ruby on Rails with Apache + Passenger (Mod_Rails) ~ Ubuntu Lucid Lynx 10.04

5/06/2010

To get up and running I followed (1) and had a basic RoR setup with Mongrel, but I really wanted to get Passenger setup as well. This was of course a much more involved process.

I started off by following the very basic install guide on the dedicated page for Passenger. However, Mozketo (2) indicated that I needed to get a few more libs first.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@ubuntuServer:~/Desktop/RoR/myapp/app/views/users$ sudo apt-get install apache2-prefork-dev libapr1-dev libaprutil1-dev
[sudo] password for administrator:
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-2.6.32-21 linux-headers-2.6.32-21-generic-pae
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  comerr-dev krb5-multidev libdb4.8-dev libexpat1-dev libgssrpc4
  libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkrb5-dev libldap2-dev
  libmysqlclient-dev libpcre3-dev libpcrecpp0 libpq-dev libpq5 libssl-dev
  uuid-dev zlib1g-dev
Suggested packages:
  krb5-doc db4.8-doc krb5-user postgresql-doc-8.4
The following NEW packages will be installed:
  apache2-prefork-dev comerr-dev krb5-multidev libapr1-dev libaprutil1-dev
  libdb4.8-dev libexpat1-dev libgssrpc4 libkadm5clnt-mit7 libkadm5srv-mit7
  libkdb5-4 libkrb5-dev libldap2-dev libmysqlclient-dev libpcre3-dev
  libpcrecpp0 libpq-dev libpq5 libssl-dev uuid-dev zlib1g-dev
0 upgraded, 21 newly installed, 0 to remove and 22 not upgraded.
Need to get 9,968kB of archives.
After this operation, 36.9MB of additional disk space will be used.
Do you want to continue [Y/n]? Y

finally,

1
@ubuntuServer:~/Desktop/RoR/myapp/app/views/users$ sudo gems install passenger

The passenger installer was quite interactive,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
@ubuntuServer:~/Desktop/RoR/myapp$ sudo passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v2.2.13.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here'
s what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'
ll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.

--------------------------------------------

Checking for required software...

 * GNU C++ compiler... found at /usr/bin/g++
 * Ruby development headers... found
 * OpenSSL support for Ruby... found
 * RubyGems... found
 * Rake... found at /usr/bin/rake
 * rack... found
 * Apache 2... found at /usr/sbin/apache2
 * Apache 2 development headers... found at /usr/bin/apxs2
 * Apache Portable Runtime (APR) development headers... found at /usr/bin/apr-1-config
 * Apache Portable Runtime Utility (APU) development headers... found at /usr/bin/apu-1-config

--------------------------------------------
Compiling and installing Apache 2 module...
cd /usr/lib/ruby/gems/1.8/gems/passenger-2.2.13
.
.
.
--------------------------------------------
The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.13/ext/apache2/mod_passenger.so
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.13
   PassengerRuby /usr/bin/ruby1.8

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!

Press ENTER to continue.


--------------------------------------------
Deploying a Ruby on Rails application: an example

Suppose you have a Rails application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:

   <VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to '
public'!
      <Directory /somewhere/public>
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      </Directory>
   </VirtualHost>

And that'
s it! You may also want to check the Users Guide for security and
optimization tips, troubleshooting and other useful information:

  /usr/lib/ruby/gems/1.8/gems/passenger-2.2.13/doc/Users guide Apache.html

Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
http://www.modrails.com/

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.

At this stage I knew that these directives were rather dated as Apache2 handles things rather differently now, especially when it comes to virtual hosts and enabling mods. Mozketo (2) details how to create the following two files – you will notice how the strings are the updated versions compared to those given on Mozketo…

1
2
3
4
5
6
7
8
9
10
11
# /etc/apache2/mods-available/passenger.load
# http://mozketo.com/phusion-passenger-on-ubuntu-9-10/

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.13/ext/apache2/mod_passenger.so

# /etc/apache2/mods-available/passenger.conf:

<IfModule passenger_module>
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.13
   PassengerRuby /usr/bin/ruby1.8
</IfModule>

I setup the virtual host as follows,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# /etc/apache2/sites-available/webapps.local
<VirtualHost *:80>
     ServerName webapps.local
     ServerAlias *.webapps.local
     DocumentRoot "/home/mike/Desktop/webapps/"
     RailsEnv development
     RailsBaseURI /myapp
     <Directory "/home/mike/Desktop/webapps/">
        AllowOverride all
        Options -MultiViews
     </Directory>
</VirtualHost>

@ubuntuServer:/etc/apache2/$ sudo a2ensite webapps.local
@ubuntuServer:/etc/apache2/$ sudo a2enmod rewrite
@ubuntuServer:/etc/apache2/$ sudo a2enmod passenger
@ubuntuServer:/etc/apache2/$ sudo /etc/init.d/apache2 restart

To make development a bit easier I setup the following symlink,

1
2
# sym link
ln -s ~/Desktop/railapps/myapp/public ~/Desktop/webapps/myapp

The hosts file on the server needed a bit of changes as well

1
2
3
4
5
6
7
8
9
10
11
12
13
@ubuntuServer:/etc/apache2/$ cat /etc/hosts

# /etc/hosts
127.0.0.1   localhost
127.0.1.1   ubuntuServer
127.0.0.1   webapps.local

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

…and on my iMac as well,

1
2
3
4
5
6
7
8
9
10
11
12
13
@iMac27:~$ cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
10.0.0.20       webapps.local

255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost

Here’s a snippet of an active rails app,

1
2
3
4
5
6
7
8
@ubuntuServer:~/Desktop/railapps/myapp$ tail -f log/development.log
# ..
Processing UsersController#index (for 172.16.7.113 at 2010-06-03 11:32:37) [GET]
  User Load (1.1ms)   SELECT * FROM "users"
Rendering template within layouts/application
Rendering users/index
Completed in 29ms (View: 16, DB: 1) | 200 OK [http://webapps.local/myapp/users]
# ..

To restart an app, one only needs to ‘touch’ it…how cute!

1
@ubuntuServer:~/Desktop$ touch webapps/myapp/tmp/restart.txt

References

(1) [all variants] Install Ruby on Rails – Lucid Lynx
(2) Phusion Passenger on Ubuntu 9.10
(3) Installing Ruby on Rails on Debian/Ubuntu
(4) Replacing Mongrel with Passenger (mod_rails)
(5) Passenger

No Comments

Better VNC in Ubuntu 10.04 Lucid Lynx with x11vnc

1/06/2010

Been working with Ubuntu Lucid a bit over the past few days and am not a big fan of the Vino VNC “Remote Desktop”. The problem is that it doesn’t persist when logged out. To get around this I setup x11vnc as per the HOWTO referenced at the end of this post.

Running it is quite simple, first ssh as follow:

1
ssh -L 5900:localhost:5900 yourUserName@serverIP

To bring up the login window for your ‘user’ account, run the following as root:

1
root@ubuntuServer:~# x11vnc -auth /home/someuser/.Xauthority -rfbauth ~/.vnc/passwd -display :0

At this stage, simply connect with ChickenVNC. VNC login password has been setup as per the referred guide and stored in the above mentioned location. Remember, when running the above at root, you need to recreate the password in ‘/root/.vnc’ – the root users home directory.

VNC Tunneling via SSH

In the very first ssh command, by using the ‘-L’ flag we bind the a port on the server we SSH to with a port defined on our host – localhost. This port has, for this example at least, chosen as 5900. We also force X11 forwarding,

1
ssh -X -L 5900:localhost:5900 yourUserName@serverIP

Ensure your /etc/ssh/ssh_config file is edited properly as well (here) & (here).

Achieve SSH tunnelling by using the ‘-localhost’ flag as follows:

1
root@ubuntuServer:~# x11vnc -auth /home/someuser/.Xauthority -rfbauth ~/.vnc/passwd -localhost -display :0

Now just connect ChickenVNC, or your VNC viewer of choice, to localhost:0 (with the chosen password if needed) to connect with SSH tunnelling!

Reference:

(1) HOWTO: Share desktops with x11vnc instead of built-in Remote Desktop

No Comments

Patching CyanogenMOD v5.0.6 to Froyo FRF50

25/05/2010

Android 2.2 “Froyo” was announced officially announced on the 20th of May, less than a week back.

Just yesterday, I decided it was time that I looked into upgrading to Froyo and decided to first check with my mate Doug (@dougedey) and he directed me to this thread on MoDaCo.

Step one was to ensure the downloaded file’s hash matched that listed next in the thread:

1
2
bsodmike@iMac27:~/Desktop$ openssl md5 update-nexusone-FRF50-signed.zip
MD5(update-nexusone-FRF50-signed.zip)= 946229291ed8e24cd80aeb4a66ca2fc7

It was quite straight forward from this point. I simply copied the zip to the root of the SD card on my Nexus One and checked the MD5 hash on the device as well – after copying it across. It took a bit longer considering mine is a Class 2 Sandisk 8 GB MicroSDHC card.

My apps had already been backed up, and any new ones were automatically copied to the SD card thanks to App2SD in CyanogenMOD v5.0.6. Everything else was backed up too (from SMSs to Call Logs); the rest was of course synced with the Google cloud.

The screen changed to this icon for a while as the radio was updated, I just had to wait it out…

The process terminated at this prompt, with nothing else. I noticed that Amon_RA’s Recovery menu was active again and just did a reboot.

Observations:

1 Comment

About

For the past couple years I lived in the UK, reading in BEng (Hons) Electronic and Computer Engineering at The University of Leeds and MSc (Dist) Mechatronics at King's College London.

My interests and hobbies include writing with Fountain Pens on various ink and paper, Swiss and German wristwatches, authoring articles in Mathematics, Physics, and Engineering, and Gundam modeling.

I have been following much Anime over the years as well as TV Shows with the likes of 24, Smallville, Dexter, and NCIS becoming favourites.