MacBook Top Case

I am one of those victim of Apple Macbook’s Top Case Dilemnas. I never knew about this until I experienced one myself with my Macbook. Just recently, I suddenly heard sort of a soft crack or tick while I was using my Macbook. I looked for it and noticed a small crack just near the corner of the laptop (see attached photo). I’ve read that the later Macbooks don’t have this problem but just to be on the safe side, careful when you lower your laptcop screen when closing it. I’m going to have my cousin buy it probably next year. The whole incase for the Macbook costs only like 50$ if you buy it in Apple Store. Don’t buy it here in the Philippines because it’s so expensive. A Whopping P5,500
when I inquired in Cebu’s I-Store for the top case only. Plus a P500 charge for changing it. If that would be its price, how much more for the whole case itself, yikes! That thought is financially scary hahaha. Apple should provide a replacement top case for customers who bought these laptops. It’s unfair that I have to depend on warranty (which just expired 2 months ago) and this was a case defect to begin with while I bear the fact that I’ll have to buy a new top case for replacement. It’s Apple’s responsibility to sell durable stuffs. Even my in case have small cracks on the side. Best bet for me is to buy a whole new case for the laptop.

Like what you see? Buy me a cup of coffee. I love cappuccinos.


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Hug A Programmer

Like what you see? Buy me a cup of coffee. I love cappuccinos.


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Google Chrome Out

Oh man! As if 2 browsers waging against each other isn’t enough, we have another one on board the browser wars. Google Chrome is finally out, Google’s very own internet browser. What’s nice about this browser is it maximizes your whole screen and does away with those useless icons and stuffs. What I really need visible in a browser is the menu bar, the address bar and the status bar. The browser does look weird with its UI interface because you don’t see a menu bar here. The menu items that you see in the other browsers are all clamped down in the 2 icons on the upper right side of the browser, just beside the address bar. The browser’s design for tab holders is sleek and is positioned at the top part of the browser (like IE’s design).

When running Chrome on startup, it redirects you to its speed page, like Opera’s feature. I prefer though that they provide an option what default page the browser should load upon startup. I want a blank page on startup rather than this speed dial-like page feature. My biggest disappointment with this browser is that it doesn’t have a status bar. When you hover your mouse cursor on top of, say, a hyperlink, a sort of tool tip label appears on the lower left corner of the browser. No matter what, I want a status bar in the browser he he he. The overall design of the browser makes you think that it’s a lightweight program since its UI make it look thin.

Now comes the hard part. I haven’t tested this browser for programming purposes but I hope that having Firefox and IE give different results are enough. Having another browser give more is a pain. Though I’m certain Chrome follows the standard.

Like what you see? Buy me a cup of coffee. I love cappuccinos.


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

iTouch: TanZen

TanZen is the name of the iPhone/iTouch version of a Tangram puzzle game, which is a dissection game. It consists of seven pieces, called tans, which fit together to form a shape of some sort. The objective is to form a specific shape with seven pieces. The shape has to contain all the pieces, which may not overlap. Tanzen’s version helps a lot because the shape to follow is shaded dark, hence you will have a guide on matching it. This is a pretty old game and I never was fond of playing this with real tans because without the shaded shape to follow, I couldn’t focus on it much. With TanZen, I found out that I matched them pretty quick because of the shape’s shade. I hope to finish this game soon, I have been addicted to it lately. When you start off playing this game, you need to at least check out the help section to know how to use the tans.

When you click on a tan, a circular halo would appear. Dragging it makes you move the tan. If you wish to rotate it, press your thumb while using your other finger to rotate it. Double clicking on the tan will alter its direction (where the object is facing).

This game is worth it as it features lots of puzzles to offer you. I did encounter a bug. There was one tan missing and the game treated it as a cleared game. They missed this one out in quality assurance lolz. The game saves your current puzzle and state if you leave the program. You can also play a cleared puzzle again if you wish. Just tap on to the finished game and it will prompt you for it. One of the must-have games that is very worth it.


Like what you see? Buy me a cup of coffee. I love cappuccinos.


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Internet Explorer 8 Beta’s Cookies

I never care about Internet Explorer. I never even knew there was a version 8 beta out. I only found out about it after my boss told me the owner installed it and our web applicatins got messed up (since he’s an IE user). So off I went to debug and find out why. Sigh, why in the first place did he have to install it when it’s just a beta version. I never use beta or evaluation softwares as I find them dirty hanging around in my desktop PC. More and more debugging until I finally found the culprit. The browser itself has cookies turned off. My web application couldn’t pop open a new window because once the page loads it doesn’t see the session because it’s never been passed, hence it deems the user accessing the page not logged in. Even turning on cookies in its options under privacy doesn’t do the trick. The workaround I did was to add the site to its list and allow cookies to be used. Here are the steps to do it.

  1. go to TOOLS menu, then INTERNET OPTIONS
  2. choose PRIVACY tab
  3. click SITES button
  4. add the URL and click ALLOW button
  5. click OK button
  6. restart ie8

I hope this would help others in knowing right away that this is how IE8 works by default. Else, you’d be up all night finding out why some of your codes do not work anymore. Who reads the releases list right? Haha! I don’t.

Like what you see? Buy me a cup of coffee. I love cappuccinos.


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Google set to introduce its own Web browser

Wow I didn’t see this one coming. From the Reuturs website, “Google Inc is set to introduce on Tuesday a new Web browser designed to more quickly handle video-rich applications, posing a challenge to browsers designed originally to handle text and graphics”. It’s going to be called Google Chrome and Google had officially confirmed this. One of its new features is a Javascript Virtual Machine called v8 which was created for the purpose of speeding up Javascript code. Considering that lots of websites (and especially Google) are heavily using AJAX (they are a great help by the way), this would be put to good use.

This new browser’s address bar comes with auto-completion features known as “omnibox”. It was said that Google will offer search suggestions and top visited pages using the “omnibox”. IE8 also has this, but well, this feature is pretty useless to me. I find it annoying haha.

As a default homepage, the browser presents you with a kind of “speed dial” feature similar to the Opera browser like the photo shown below. Though in my case, this is really not useful to me. I pretty much like to type the url since auto-completion is turned on all the time.

From Xavier Lur’s blog, his post mentions that one of its other features is web applications can easily be launched without the use of the address bar or toolbar. Google Chrome also constantly downloads lists of harmful sites to fight malware and phishing attempts giving you more protection and security.

Like what you see? Buy me a cup of coffee. I love cappuccinos.


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Java: Roman Numeral Tool

I was looking for a tool to check if a given String is a valid roman numeral or not. Remember old Math? Like IV = 4, or V = 5 or X1 = 11 and so on. I got lucky and chanced upon this link. I did a little modification to cater the code to my needs. This class has 2 public methods namely getRomanNumeral and isRomanNumeral. getRomanNumeral takes in an int parameter and converts it to its roman numeral equivalent. If the value is less than 1 or greater than 3,999, it throws a NumberFormatException. isRomanNumeral meanwhile, takes in a String parameter and checks if the given data is a valid roman numeral or not. It’s a great helper class to handle roman numeral issues.

/*
	An object of type RomanNumeral is an integer between 1 and 3999.  It can
	be constructed either from an integer or from a string that represents
	a Roman numeral in this range.  The function toString() will return a
	standardized Roman numeral representation of the number.  The function
	toInt() will return the number as a value of type int.
*/
 
public class RomanNumeralTool {
 
	private static int num;	// The number represented by this Roman numeral.
 
	/* The following arrays are used by the toString() function to construct
	  the standard Roman numeral representation of the number.  For each i,
	  the number numbers[i] is represented by the corresponding string, letters[i].
	*/
 
	private static int[]  numbers = { 1000,  900,  500,  400,  100, 90, 50, 40, 10,  9,  5,  4,  1 };
 
	private static String[] letters = {"M",  "CM",  "D",  "CD", "C",  "XC", "L",  "XL",  "X",  "IX", "V",  "IV", "I" };
 
 
	public static String getRomanNumeral(int arabic) {
		// Constructor.  Creates the Roman number with the int value specified
		// by the parameter.  Throws a NumberFormatException if arabic is
		// not in the range 1 to 3999 inclusive.
		if (arabic < 1) throw new NumberFormatException("Value of RomanNumeral must be positive.");
		if (arabic > 3999) throw new NumberFormatException("Value of RomanNumeral must be 3999 or less.");
		num = arabic;
		return convertIntToRomanNumeral();
	}
 
 
	public static boolean isRomanNumeral(String roman) {
		boolean isRomanNumeral = true;
 
		// Constructor.  Creates the Roman number with the given representation.
		// For example, RomanNumeral("xvii") is 17.  If the parameter is not a
		// legal Roman numeral, a NumberFormatException is thrown.  Both upper and
		// lower case letters are allowed.
 
		if (roman.length() == 0) {
			isRomanNumeral = false;
			//throw new NumberFormatException("An empty string does not define a Roman numeral.");
		}
 
		roman = roman.toUpperCase();  // Convert to upper case letters.
 
		int i = 0;  // A position in the string, roman;
		int arabic = 0; // Arabic numeral equivalent of the part of the string that has
						// been converted so far.
 
		while (i < roman.length()) {
 
			char letter = roman.charAt(i);    // Letter at current position in string.
			int number = letterToNumber(letter);  // Numerical equivalent of letter.
 
			if (number < 0) {
				isRomanNumeral = false;
				//throw new NumberFormatException("Illegal character \"" + letter + "\" in roman numeral.");
			}
 
			i++;  // Move on to next position in the string
 
			if (i == roman.length()) {
				// There is no letter in the string following the one we have just processed.
				// So just add the number corresponding to the single letter to arabic.
				arabic += number;
			 } else {
				// Look at the next letter in the string.  If it has a larger Roman numeral
				// equivalent than number, then the two letters are counted together as
				// a Roman numeral with value (nextNumber - number).
				int nextNumber = letterToNumber(roman.charAt(i));
				if (nextNumber > number) {
					// Combine the two letters to get one value, and move on to next position in string.
					arabic += (nextNumber - number);
					i++;
				} else {
					// Don't combine the letters.  Just add the value of the one letter onto the number.
					arabic += number;
				}
			}
		}
 
		if (arabic > 3999) {
			//throw new NumberFormatException("Roman numeral must have value 3999 or less.");
			isRomanNumeral = false;
		}
 
		num = arabic;
 
		return isRomanNumeral;
	}
 
	private static int letterToNumber(char letter) {
		// Find the integer value of letter considered as a Roman numeral.  Return
		// -1 if letter is not a legal Roman numeral.  The letter must be upper case.
		switch (letter) {
			case 'I':  return 1;
			case 'V':  return 5;
			case 'X':  return 10;
			case 'L':  return 50;
			case 'C':  return 100;
			case 'D':  return 500;
			case 'M':  return 1000;
			default: return -1;
		}
	}
 
	private static String convertIntToRomanNumeral() {
		// Return the standard representation of this Roman numeral.
		String roman = "";  // The roman numeral.
		int N = num;    // N represents the part of num that still has
							// to be converted to Roman numeral representation.
		for (int i=0; i<numbers.length; i++) {
			while (N >= numbers[i]) {
				roman += letters[i];
				N -= numbers[i];
			}
		}
		return roman;
	}
 
	private static int toInt() {
		// Return the value of this Roman numeral as an int.
		return num;
	}
 
 }

Like what you see? Buy me a cup of coffee. I love cappuccinos.


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...