Blogs
This page serves as an aggregator for a couple of my blogs. Featured blogs are:
This page serves as an aggregator for a couple of my blogs. Featured blogs are:
I've recently been playing with some android tablets and phones, and was looking for the best OS for my TF201, Transformer Prime (IMO, it's Virtuous Prime). In the process, I installed a number of Cyanogen Mod versions, but each one had some weird quirks: auto-rotate never worked, GPS didn't work, WiFi was flakey... all in all, a terrible tablet experience.
On my way back to Virtuous Prime, I asked Cyanogen Mod to reboot into recovery mode. This was a huge mistake.
I don't know if it's a bug in Cyanogen Mod, or a bug in Clockwork Recovery, but from that point on, any reboot, cold boot, hard boot, you name it, would bring me into the CWM recovery prompt. I tried installing numerous other images, but I was still stuck with this very basic issue.
A couple websites suggested holding the power + volume down buttons to do a cold boot, and boot the OS from there. On my setup, CWM seems to have bypassed this extremely useful functionality, and instead would always take me to CWM Recovery.
I found the correct workaround on this blog: http://hmastuff.com/blog/?p=65, however I couldn't do that first cold boot step.
To workaround, I plugged in my TF201 to my computer via USB, booted into CWM Recover (like I had any choice...), and started up adb. I had this lying around from my initial rooting efforts. If you don't know how to get it, try installing the Android SDK, and looking for it in platform-tools. Anyways, I confirmed that my devices was connected with 'adb devices' and used 'adb shell' to implement the workaround I had found, and unstick my boot loop.
To summarize here's the steps:
adb shell
echo boot | dd of=/dev/block/mmcblk0p3 bs=1 seek=0
reboot
Hope that helps someone!
function customTime() {
// Get form element values
param1 = document.getElementById('param1').value;
...
// Initialize the XMLHttpRequest object
var xmlHttp = ajaxInit();
if (xmlHttp) {
// Define what to do when data is ready
xmlHttp.onreadystatechange=function() {
if(xmlHttp.readyState == 4) {
// Note that even though I get bogus data,
// I still get data... confusing!
var xmlDoc = xmlHttp.responseXML.documentElement;
var nmarkers = xmlDoc.getElementsByTagName("marker");
alert('Number of results: ' + nmarkers.length +
'\nSome data: ' + nmarkers[0].getAttribute("number"));
}
};
// Send the request...
try {
xmlHttp.open("POST", 'custom_data.php', true);
xmlHttp.setRequestHeader('Content-Type', "text/xml");
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded; charset=UTF-8");
xmlHttp.send('param1=' + param1 + ...);
} catch (e) {
alert("Unable to make request, please try later... Error:"
+ e.message);
}
}
}
// Send the request...
try {
xmlHttp.open("POST", 'custom_data.php?param1='
+param1+ ..., true);
xmlHttp.setRequestHeader('Content-Type', "text/xml");
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded; charset=UTF-8");
xmlHttp.send(null);
} catch (e) {
alert("Unable to make request, please try later... Error:"
+ e.message);
}