Monday, August 17, 2009

Facebook IPhone app new update 3.0 is comming


The facebook app one of the most popular IPhone applications available via App Store is about to be updated.
The new version of Facebook applcation (the 3.0 version) is going to add a bunch of features like:
  • The “new” News Feed
  • Like
  • Events (including the ability to RSVP)
  • Notes
  • Pages
  • Create new photo albums
  • Upload photos to any album
  • Zoom into photos
  • Easier photo tagging
  • Profile Pictures albums
  • A new home screen for easy access to all your stuff, search, and notifications
  • Add your favorite profiles and pages to the home screen
  • Better Notifications (they link to the comments so you can reply)
  • Quickly call or text people right from the Friends page
  • Messages you are typing will be restored if you quit or are interrupted by a phone call
No Push Notifications for this update but will be included in version 3.1 that will be released shortly after 3.0


Read more!

Monday, June 8, 2009

Build your own Ubuntu Kernel. The Fast guide.


What follows is a quick guide of how to make your custom ubuntu kernel.

First you need to install all the required packages:
sudo apt-get install ncurses-dev kernel-package linux-source build-essential
Next go into /usr/src and extract the kernel source:
cd /usr/src
sudo bzip2 -dc linux-source-2.6.28.tar.bz2 |tar xf -
cd /usr/src/linux-2.6.28
NOTE: You the to change the above lines to match your kernel source file name and extracted kernel source directory name.
Get the existing kernel config used by ubuntu.
sudo cp /boot/config-2.6.15-26-386 .config
Then run the kernel configuration utility.
sudo make menuconfig
Select the Load an Alternate Configuration File and point to .config Exit the utility and save your configuration. You are almost finished. Type the below commands and just sit back and relax while your kernel is building.
sudo make-kpkg clean
sudo make-kpkg --initrd --append-to-version=custom1 kernel_image kernel_headers
When the process completed you will find 2 .deb files in your /usr/src that you can install using the dpkg -i command.
cd /usr/src/
sudo dpkg -i *.deb
You are finished. If you want you can use the update-grub command to make your grub bootloader to update its list with kernel(and make it default selection).
sudo update-grub



Read more!

Thursday, May 28, 2009

PHP relative include solution

I does not matter how much a advanced or experienced PHP developer you are to know the strange behavior in PHP's include or require paths. Sooner or later as you code grows larger and larger you will split your code in many smaller include files. And then one include file will include another include file which is in a different path. If you include the first include file(that includes another php) and you just used relative paths then you will face the problem. You cannot use a relative path because the paths in include and require commands are relative to the main php file the includes everything.

Ok it seems complicated but lets give an example. We have this directory structure.

[root]

include_a.php --> include "a/a.php";
main.php --> "include_a.php"
;
[a]
---- a.php

[d]
---- d.php --> include "../include_a.php";

In this example we have a php named include_a.php that includes a php named a.php in a folder named a. Please notice that the include path is relative. If you used absolute paths you will have no problems but it is better if your code was not depended in the install location.
The the main.php includes the include_a.php and main.php will run without errors. But let's see what will happen with d.php that rests in d folder. It also includes include_a.php and include_a.php includes a.php in folder name a. If you execute d.php you will get an error saying the a.php cannot be found. Why? Because the d.php will try to include a.php(via include.php) in folder a that will be a sub folder of folder named d in which the main execution php file rests. So every relative include is relative to the main php execution file.
So is the absolute paths the only solution to this problem. No.
You can still have all your code location independent in php. How?
The __FILE__ constant is your solution. The __FILE__ constant always point the full pathname of the php file that uses __FILE__(and not the main php execution file). So by using the line below you can include a php in a relative path.

include dirname(__FILE__)."relative_path";

The dirname is a useful function that will extract the directory component of a full file path and then you can insert the rest of the relative path.
So change the include "a/a.php" to include dirname(__FILE__)."a/a.php" in include_a.php and your d.php will run without errors.

Read more!

Monday, May 25, 2009

Boost SSD performance

So you have bought this Aspire One netbook with SSD(solid state disk) instead of hard disk. Or maybe you just bought the ASUS Eee or even one of the dozens of those netbooks.
If you did and you picked the SSD version with Windows XP then you surely noticed that the write speed suffers.
So you will find a lot of guides how to fine tune your Windows XP disabling services, stopping the always useful system restore and many other useful features.
And the total gain is just a something better response but still you will experience freezes during disk writes. And don't you dare to install a antvirus because you will ruin your hard earned gains.
All that came to an end just by installing this brilliant software called FlashPoint.
But before you proceed in testing this software please remember to get a backup of your windows installation because it is still beta.

For example if you have an Acer Aspire One 8GB SSD version then it is better to stick to the Beta 3 Patch 1 version.
What you will get is a very fast SSD operation and also smooth that will make you forget all the disadvantages of SSD.
To begin downloading just go to http://zflashpoint.blogspot.com/ which the official page of FlashPoint driver.
If the ugly registry corruption failure happens to you don't get despaired. Follow the instructions here and you should solve this problem.


Last Update: It seems a problem with registry corruption can be easily solved but just using the upper filter version of the driver.


Read more!