Press and hold power and volume down button together. This is the way to take screenshot in the new Android system 4.0 Ice Cream Sandwich. After the Samsung Galaxy S2 updated to this new version, it uses this method instead of the way mentioned in my old post.
Finally, the blog moved back to NicholasWorkshop.com!
Today, I moved my nicholasworkshop.wordpress.com to my owned domain nicholasworkshop.com, integrated with my old portfolio website. Thanks to my subscribers, my blog has been having a steady viewing rate over time. However, all those traffics went to wordpress.com as the blog was hosted there. To redirect them back to my domain, I have been preparing the things needed for a long time.
As a record, I had my blog in BlogSpot and WordPress before, and now they are redirected to NicholasWorkshop.
Anyways, it is finally here and thank you for checking out my blog!
Find the User Agent Strings of any Mobile Devices
It’s quite often for a developer to make use of the user agent to determine what browser does a user used, especially for those who develop web services and websites. Recently I found a website which has a huge database of mobile device information, including the user agent string and even the functions supported in the device browser.
http://www.tera-wurfl.com/explore/search.php?action=browse
Tera-WURFL Explorer – Samsung GT-9100 (Galaxy SII)
http://www.tera-wurfl.com/explore/?action=wurfl_id&id=samsung_gt_i9100_ver1
InstaMusic Got 10,000 Downloads over Lunar New Year!
![]()
Happy lunar new year to all.
I am flattered. In less than a month since I put the InstaMusic to the Android Market on 27 Dec 2011, today it has already more than 10,000 downloads. To be honest, I never expected this.
If you are uninitialized, InstaMusic is a music player android application with simple and stylish outlook.
There are all kinda music player in the world, in my opinion, a player with style and an pleasant appearance would always become the famous one. Here I would like to thank you for downloading and trying InstaMusic. Especially those fans of minimalism who supported me and AndroidStatic who gave InstaMusic a pleasant review in the post “Instamusic Is A Minimal, Slick Music Player That You Should Download Now“.
Looking back the day that I began my developmement, the reason for me to kick started is that I was really unstatisfied with the music players on the Android Market. Admittedly, I am a perfectionist and I want every part of a music player to meet user’s ways of thinking. So, I hate album artworks to be scratched and unable to tell what album is it. I also hate a song sung by different artists will be will be isolated from the album. And millions of things to list.
Okay, let’s get back to talk about the my next build of InstaMusic. I am sorry for the long waited update. In code level, I really did an upside down on InstaMusic. And as expected, lock screen player is implemented already, but there are just some bug and pressure testing work to do before it can really come out to meet its users.
Caffeine on Mac and Ubuntu
Caffeine has been a very useful app to instantly disable or enable the screensaver on mac. At least for me, I am using multiple computers in office and all of them except the one I am using will usually get idle. Getting into screensaver, however, is bad sometimes especially I was reading from that screen and type things on another screen, and not to mention the password input after the screen lock. Well anyway, I highly recommend it.
Mac
On mac, we can install it easily with the app store.
Ubuntu
But in ubuntu, it is not available on the software center. But you can still get it through command line. Turn on terminal and input the following one by one.
sudo add-apt-repository ppa:caffeine-developers/ppa sudo apt-get update sudo apt-get install caffeine
Detecting browsers of iPhone, iPod, iPad, Android and BlackBerry with JavaScript and PHP
To begin with, we need to understand that in the HTTP protocol, browser send its identity called user agent to the server to request the wanted webpage. Every browser has its only unique user agent value, and therefore we can check that value to identify the user browser. So, first we have to take a look at some examples of user agents of mobile devices.
iPhone user agent
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
iPod Touch user agent
Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A101a Safari/419.3
iPad user agent
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10
Android user agent
Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2 Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
BlackBerry user agent
BlackBerry9000/4.6.0.266 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/120
After all, in programming, we gather these data to do the checking. First in JavaScript:
if (/(iPhone|iPod|iPad)/.test(navigator.userAgent)) {
/* This is iOS */
}
if (/Android/.test(navigator.userAgent)) {
/* This is Android */
}
if (/BlackBerry)/.test(navigator.userAgent)) {
/* This is BlackBerry */
}
if (/(iPhone|iPod|iPad|BlackBerry|Android)/.test(navigator.userAgent)) {
/* This is one of the mentioned mobile device browsers */
}
And this is how it works in PHP:
if (preg_match('/iPhone|iPod|iPad/', $_SERVER['HTTP_USER_AGENT'])) {
/* This is iOS */
}
if (preg_match('/Android/', $_SERVER['HTTP_USER_AGENT'])) {
/* This is Android */
}
if (preg_match('/BlackBerry/', $_SERVER['HTTP_USER_AGENT'])) {
/* This is BlackBerry */
}
if (preg_match('/iPhone|iPod|iPad|BlackBerry|Android/', $_SERVER['HTTP_USER_AGENT'])) {
/* This is one of the mentioned mobile device browsers */
}
Show completions and quick help tips in Xcode
I know it is troublesome, tedious, or just like hell. Apple has his own way to do a common task. Very often, we need to use the autocompletion in IDE to assist coding so we do not need to memorize the billions of function names. In Eclipse, everything is automatic. A list of function names linked together with descriptions next to it pops up as soon as you type. In Xcode, where is it? Yes, you need to press shortcuts. For the completions, press “control + space”. But, where are the descriptions? It’s called “quick help”, press “control + command + ?” to open it. Look at the figure then you will understand. Good luck for your fatigued fingers.

How to rotate gizmos to fit a game object in Unity
While you are making a cube in unity which is transparent in gameplay, you would probably want to make it visible only in editor mode with gizmos. However, gizmos doesn’t rotate with the object transform. So you can use the following tricks to rotate the gizmos to fit your object. The code shown is to draw a cube which is totally the same as your object. By setting up the matrix of gizmos, we can transform gizmos to the local position, scale and rotation.
Gizmos.color = Color.green; Gizmos.matrix = transform.localToWorldMatrix; Gizmos.DrawWireCube(Vector3.zero,Vector3.one);
Change author info for old commits in Git
While using hit, it is really usual to have regrets on the commits done, especially the name used. In order to change those information in your repository, open terminal (or cmd in windows), go to the folder of your git repositoy, and run the following commands. Remember, replace “old_name”, “new_name” and “new@email.address” with your own information.
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_NAME" = "old_name" ];
then
GIT_COMMITTER_NAME="new_name";
GIT_AUTHOR_NAME="new_name";
GIT_COMMITTER_EMAIL="new@email.address";
GIT_AUTHOR_EMAIL="new@email.address";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
Ssh with password saved
Ssh is a very convenient way to remotely command or control other devices. We use ssh to push commits to git server, to access remote server, and even to manipulate the content of our iphones and ipads. However it’s usually distributing to type your long and elusive password every time. Therefore here I would like introduce a way to create a steady relationship between your computer and the remote server you wanna connect with.
The principle is this, ssh connection establishments requires verification using the computer unique key of both devices. in order to simplify this step, we can generate a public key of your computer in advanced and which allows other to identify you. While you put that public key in the remote device as authorized key, you can kinda fast forward the process.
step 1: open terminal and “ssh-keygen -t dsa”
step 2: open “.ssh/id_dsa.pub” and copy content inside
step 3: open new tab in terminal and ssh server
step 4: paste all content into /home//.ssh/authorized_keys
a@A:~> ssh-keygen -t rsa
a@A:~> ssh b@B mkdir -p .ssh
a@A:~> cat .ssh/id_rsa.pub | ssh b@B ‘cat >> .ssh/authorized_keys’
Top Posts
- Take a Screenshot on Samsung Galaxy S2
- Home page
- Samsung Kies for Mac OS X Lion
- Mbox Mail for Mac on Lion Fix, works with Apple Mail 5
- Take a Screenshot on Samsung Galaxy S2 with Android 4.0 Ice Cream Sandwich Updated
- InstaMusic
- Crack Mbox Mail for Mac
- Mbox Mail for Mac works on Lion with Thurderbird
- How to rotate gizmos to fit a game object in Unity
- Get temporary folder path in VBA
Recent Comments
- Sonia on Take a Screenshot on Samsung Galaxy S2
- Sharif Hall on InstaMusic
- Tom on Take a Screenshot on Samsung Galaxy S2
- Robin on Mbox Mail for Mac on Lion Fix, works with Apple Mail 5
- thejas on InstaMusic
- David on InstaMusic
- ceeaitchtee on InstaMusic
- Jeff on InstaMusic
- Krystle Roe on Take a Screenshot on Samsung Galaxy S2
- paul on Crack Mbox Mail for Mac













