Wednesday, December 7, 2011

Rooting Kindle Fire using Ubuntu 11.10

1. Download KindleFireRootMacLinux.zip from http://downloadandroidrom.com/file/KindleFire/root

2. Extract KindleFireRootMacLinux.zip

3. Open Terminal (Ctrl+t)

biboyatienza@ubuntu11.10:~$ cd Downloads/
biboyatienza@ubuntu11.10:~/Downloads$ cd KindleFireRootMacLinux/
biboyatienza@ubuntu11.10:~/Downloads/KindleFireRootMacLinux$ cp adb_usb.ini ~/.android
biboyatienza@ubuntu11.10:~/Downloads/KindleFireRootMacLinux$ sudo cp adb_usb.ini ~.android
[sudo] password for biboyatienza:
biboyatienza@ubuntu11.10:~/Downloads/KindleFireRootMacLinux$ sudo sh runmelinux.sh
---------------------------------------------------------------
Easy rooting toolkit (v2.0)
created by DooMLoRD
Modified for Kindle Fire for Linux/Mac by Max Lee at RootKindleFire.com
using exploit zergRush (Revolutionary Team)
Credits go to all those involved in making this possible!
---------------------------------------------------------------
[*] This script will:
(1) root ur device using latest zergRush exploit (10 Nov)
(2) install Busybox (1.18.4)
(3) install SU files (binary: 3.0.3 and apk: 3.0.6)
[*] Before u begin:
(1) enable USB DEBUGGING
from (Menu\Settings\Applications\Development)
(2) enable UNKNOWN SOURCES
from (Menu\Settings\Applications)
(3) [OPTIONAL] increase screen timeout to 10 minutes
(4) connect USB cable to PHONE and then connect 2 computer
---------------------------------------------------------------
--- STARTING ----
--- WAITING FOR DEVICE
* daemon not running. starting it now *
* daemon started successfully *
--- cleaning
rm failed for *, No such file or directory
--- pushing zergRush
566 KB/s (23056 bytes in 0.039s)
--- correcting permissions
--- executing zergRush

[**] Zerg rush - Android 2.2/2.3 local root
[**] (C) 2011 Revolutionary. All rights reserved.

[**] Parts of code from Gingerbreak, (C) 2010-2011 The Android Exploid Crew.

[+] Found a GingerBread ! 0x00015118
[*] Scooting ...
[*] Sending 149 zerglings ...
[+] Zerglings found a way to enter ! 0x10
[+] Overseer found a path ! 0x000151e0
[*] Sending 149 zerglings ...
[+] Zerglings caused crash (good news): 0x40119cd4 0x0054
[*] Researching Metabolic Boost ...
[+] Speedlings on the go ! 0xafd195cb 0xafd3937f
[*] Popping 24 more zerglings
[*] Sending 173 zerglings ...

[+] Rush did it ! It's a GG, man !
[+] Killing ADB and restarting as root... enjoy!
--- WAITING FOR DEVICE TO RECONNECT
if it gets stuck over here for a long time then try:
disconnect usb cable and reconnect it
toggle USB DEBUGGING (first disable it then enable it)
--- DEVICE FOUND
--- pushing busybox
4702 KB/s (1075144 bytes in 0.223s)
--- correcting permissions
--- remounting /system
--- copying busybox to /system/xbin/
2099+1 records in
2099+1 records out
1075144 bytes transferred in 0.074 secs (14528972 bytes/sec)
--- correcting ownership
--- correcting permissions
--- installing busybox
--- pushing SU binary
542 KB/s (22228 bytes in 0.039s)
--- correcting ownership
--- correcting permissions
--- correcting symlinks
--- pushing Superuser app
1995 KB/s (785801 bytes in 0.384s)
--- cleaning
--- rebooting
--- WAITING FOR DEVICE
5841 KB/s (3104805 bytes in 0.519s)
Error: Could not access the Package Manager. Is the system running?
All Done, Kindle Fire ROOTED!!!
Check out RootKindleFire.com for more cool hacks!

Wednesday, November 30, 2011

Disable ENTER Key javascript

javascript:



Add the following attribute into each TextBox in your form that should disable ENTER key :
onkeypress="return noenter()"

Thursday, November 24, 2011

ASP.NET TextBox MultiLine plus MaxLength

Solution:

javascript:
function checkTextAreaMaxLength(textBox,e, length)
{

var mLen = textBox["MaxLength"];
if(null==mLen)
mLen=length;

var maxLength = parseInt(mLen);
if(!checkSpecialKeys(e))
{
if(textBox.value.length > maxLength-1)
{
if(window.event)//IE
e.returnValue = false;
else//Firefox
e.preventDefault();
}
}
}
function checkSpecialKeys(e)
{
if(e.keyCode !=8 && e.keyCode!=46 && e.keyCode!=37 && e.keyCode!=38 && e.keyCode!=39 && e.keyCode!=40)
return false;
else
return true;
}


How to used:

asp:TextBox Rows="5" Columns="80" ID="txtCommentsForSearch" MaxLength='1300' onkeyDown="checkTextAreaMaxLength(this,event,'1300');" TextMode="multiLine" runat="server"

Monday, November 14, 2011

Invalid gemspec in [/var/lib/gems/1.8/specifications

Environment:
Ubuntu 11.10


Problem:
Invalid gemspec in [/var/lib/gems/1.8/specifications/json-1.6.1.gemspec]: invalid date format in specification: "2011-09-18 00:00:00.000000000Z"
Invalid gemspec in [/var/lib/gems/1.8/specifications/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00.000000000Z"
Invalid gemspec in [/var/lib/gems/1.8/specifications/json-1.6.1.gemspec]: invalid date format in specification: "2011-09-18 00:00:00.000000000Z"
Invalid gemspec in [/var/lib/gems/1.8/specifications/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00.000000000Z"


Solution:
sudo sed -i 's/ 00:00:00.000000000Z//' /var/lib/gems/1.8/specifications/*

Whenever you install some new gem and encounter similar message, just run the script again.

Tuesday, November 8, 2011

Friday, November 4, 2011

.htaccess Redirect/Rewrite Tutorial

How do I redirect all links for www.domain.com to domain.com ?

Description of the problem:

By default your website can be accessed with both www.domain.com and domain.com. Since Google penalizes this due to duplicated content reasons, you should restrict the access to either www.domain.com or domain.com. Some links may be outside of your website scope and/or the search engines may have already indexed your website under both addresses.

Solution:

Create a 301 redirect forcing all http requests to use either www.domain.com or domain.com:

Example 1 - Redirect domain.com to www.domain.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

Example 2 - Redirect www.domain.com to domain.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
Explanation of this .htaccess 301 redirect:

Let's have a look at the example 1 - Redirect domain.com to www.domain.com. The first line tells apache to start the rewrite module. The next line:

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
specifies that the next rule only fires when the http host (that means the domain of the queried url) is not (- specified with the "!") www.domain.com.
The $ means that the host ends with www.domain.com - and the result is that all pages from www.domain.com will trigger the following rewrite rule. Combined with the inversive "!" is the result every host that is not www.domain.com will be redirected to this domain.

The [NC] specifies that the http host is case insensitive. The escapes the "." - because this is a special character (normally, the dot (.) means that one character is unspecified).

The final line describes the action that should be executed:

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
The ^(.*)$ is a little magic trick. Can you remember the meaning of the dot? If not, this can be any character(but only one). So .* means that you can have a lot of characters, not only one. This is what we need because ^(.*)$ contains the requested url, without the domain.
The next part http://www.domain.com/$1 describes the target of the rewrite rule. This is our "final" used domain name, where $1 contains the content of the (.*).

The next part is also important, since it does the 301 redirect for us automatically: [L,R=301]. L means this is the last rule in this run. After this rewrite the webserver will return a result. The R=301 means that the webserver returns a 301 moved permanently to the requesting browser or search engine.