"If you need some help installing a new recovery, I put together a tutorial on how to install ClockworkMod Touch for free. It's nice having a touch recovery, because your finger won't go numb pressing the volume up/down keys to navigate the recovery menus. It makes the process of installing new ROMs & managing backups a lot faster and easier. If you don't want the touch version, you can download and install ROM Manager for Android, which will install the regular version of ClockworkMod recovery."
- GeekLad
"Damn... I wish another JavaScript developer would run into the same issues w/ their own history so they could help me debug. The one disadvantage of the fact that this script does everything within the browser, is I cannot debug it when it encounters histories that break the script. :("
- GeekLad
"Yeah, let me know if any oddities in the data stick out at you. Perhaps some special characters, empty records, or something is tripping up my code."
- GeekLad
"It's more likely caused by a bug in the script... There have been some people that have encountered issues with it, but unfortunately I haven't been able to reproduce the problem with my history. I was able to download over 130K records without issue."
- GeekLad
"It must be something odd with the data beyond that month that is breaking the script. Does it appear to go all the way back to 2005, but just break when it's creating the download button? If it does go all the way back to 2005, does it output the stats info at least? This may help me to figure out more or less where it's breaking. If it gets to a certain section of stats info where it dies, let me know where that's happening."
- GeekLad
"Yeah, there was at one point, but each time I upgraded Disqus it would overwrite my changes and make it nofollow once again. I got tired of making it dofollow over and over again. Yes, I'm the pot calling the kettle black. :-D"
- GeekLad
"D'oh, I just read that you deleted your history yesterday, so I guess you'll be unable to test. Perhaps v2.1 will work for Erjoalgo now though."
- GeekLad
"No, your script was pretty solid for the most part. The only problem was where it was trying to run the .replace() method for undefined properties in the object containing the feed data. I've made some updates by making it a bit easier/more robust to add new parameters. Now, I extract the headers for each data item, and assign the properties for each datum according to the extracted headers. If a header isn't found, it simply assigns an empty string to that property. Try replacing the JavaScript URL string in my bookmarklet to http://geeklad.com/tools/googl... to test it out. I'm not sure if the changes will fix the problems Erjoalgo has been experiencing, but it is possible they may. After I get confirmation it's working for you, I'll update the main script to v2.1. Thanks for your help with this!"
- GeekLad
"You're almost there... In the CSV export method is dying where the script attempts to call the .replace() method on the .video_length attribute when it is undefined. You'll need to add some checks for when any of the attributes are undefined them. The easiest thing would be to assign an empty string ("") so that the .replace method will not fail."
- GeekLad
"There must be something odd in the search history that is tripping up my code and preventing it from ever getting to the CSV generation code, which creates the output variable. That's why you're getting a blank page, because I haven't yet passed the data to the CSV creation object, which is why you're never seeing the button. Unfortunately, it's very difficult for me to debug without being able to reproduce the problem. :-/metal123 is working on a modification of the script to include some additional data, but it is crashing on him. Perhaps I might see the issue in reviewing his code and fixing his problem, but I cannot promise anything."
- GeekLad
"Yeah, there must be a bug somewhere that I'm not seeing when I extract the data from my account. I wonder if there's something in my regular expressions that's getting tripped up by characters within certain records or something. Can you tell where it's crashing on you? Can you post your modified JS file to obtain guid and query_guid? I can take a look and see if I can figure out where things are going wrong."
- GeekLad
"The CSV data is stored in a JavaScript variable called output. You could output it all to a new window. Here's a bookmarklet you can use to do that (if Disqus doesn't mangle the URL): Google History CSV Just put that on your toolbar like the other bookmarklet, and see if it works for you."
- GeekLad
"You're right, unfortunately CSV isn't the most convenient form for visualization or searching. You could try importing the file into Google Fusion tables, which would provide better accessibility."
- GeekLad
"I believe there are tools for exporting Gmail. You could also log into your Gmail using IMAP and download your history that way. All of your chat history should reside within one of the folders."
- GeekLad
"I'm not sure why it's not working. If you have Flash installed and enabled, when you click cancel, you should see the screen with some summary stats and the Download to CSV button down below. I've gotten it to work in Firefox and Google Chrome without a problem."
- GeekLad
"I'm not sure, it could have something to do with the way the flash block is implemented. Try disabling all your flash block extensions, enable flash, clear your cache, and try again. It could be that with the flash block enabled, something was cached that is messing things up."
- GeekLad
"Yeah, initially I had the same problem as well. The start parameter doesn't seem to obtain all the data and only brings back about 4k records. You need to use the date parameters (yr, month, day) to extract everything. Check out my update for more info on these parameters."
- GeekLad
"Very odd... Do you have Flash installed on your computer? You need Flash, because there is a small Flash file that helps make it possible to convert the downloaded data into a CSV file."
- GeekLad
"I haven't tried takeout for exporting data. Perhaps their thought is no one would be interested in exporting "spam". However, in the case of phone numbers, it would be useful if you ever want to create a list of callers to avoid. Extracting the data probably could be automated by scraping the Voice website itself, but it would take a lot of work and it could break if ever they change the look/feel of the site. There's a lot of chatter here: http://www.reddit.com/r/techno... That the real reason to consolidate the privacy policies is to allow uniform access to data across all their services. I wouldn't be surprised if that was the case, because collectively they have a lot of very valuable user data."
- GeekLad
"Exporting to CSV was the easiest option, because it didn't take much to combine all of the records into a flat file, using the Downloadify JavaScript library. If there is a JavaScript library for creating Excel files, it could be utilized in my script to output to Excel. I have converted data into Excel before, but only using PHP on the server-side. I have my doubts as to whether or not there is a library create Excel files within the browser. Unfortunately, unwieldy as it is, I think that creating a CSV in the browser window may be the best option as far as keeping it all within the browser. Thanks for sharing your thoughts."
- GeekLad
"No, I'm doing nothing with it. You will need a Flash-enabled browser for it to work. If you're using iOS (iPad, iPhone, or iPod Touch) it will not work. If you have Flash disabled on your browser, you'll need to enable it for it to work. A small Flash file is what makes it possible to convert the data to CSV within your browser, without having to transmit it to a third-party server."
- GeekLad
"I agree that earning a living with a regularly engaged subscriber base is becoming exceedingly difficult, unless you have huge numbers following your blog. However, as you stated, it can be done with how-to and tidbits of interesting information others are seeking. Search is the gift that keeps on giving, but the gift of audiences following blogs is indeed dwindling. It also depends on the topic of your blog. Technology is one of the most competitive blogging topics, making it a very tough nut to crack. Social networking, although a bit more niche within technology, is still extremely competitive. It is easier to compete in niche markets with fewer competitors, although markets with few competitors are becoming fewer."
- GeekLad
"I've blogged about the update here: http://geeklad.com/updated-scr... One thing of note that you'll be interested to learn is that I may have uncovered a bug in the RSS feed. If you're not careful, you can end up in an infinite loop with consecutive days with a lot of history. For example, you load the feed starting at July 1 and the last record is June 30. You load the next page starting at June 30, but instead it loads starting at July 1, and you end up in an infinite loop. This is something to watch out for if you develop your own script to pull the history the way I'm doing it."
- GeekLad
"Ok, I've made the updates and it appears to be working quite well. My entire history came out to 28.5MB as a CSV! I also improved the cancellation process by adding a cancel button that would allow for a partial download and resumption. It also handles time-outs and re-login requests gracefully. Thanks again for the tip on the date parameters. I hadn't seen those posted anywhere. I'll work up a blog post describing the updates to the script. If you have a blog you'd like me to link to (and/or another handle you'd like me to reference), let me know so I can give you props in the new blog post."
- GeekLad
"The solution just hit me like a ton of bricks. It will require parsing the dates and a good bit of extra code, but here's what we do: First, load the first 1000 results as I'm doing now. Then parse out the month, day, and year for the very last result. Load the next 1000 records starting there, parse out the month, day, and year for that result and then continue with the iteration. I'll work on it and then post an update. Thanks again for your help!"
- GeekLad
"The password and security settings would need to be set on the main wireless router. Then you set the security settings on the wireless laptop to match those on the main wireless router."
- GeekLad
"You're right. It does not bring in everything, only the most recent ~4k records or so. So you load in every other day, with the assumption that you have fewer than 1000 searches every two days, a good assumption to make. I wish we could devise a way to do it without downloading so much superfluous data. This would especially be good for a browser-based solution, because a browser user doesn't have the convenience (nor patience) of just kicking off a script and let it run while they go off and do other things. If you do find a better way, please let me know and I'll update the code accordingly. Thanks very much for sharing your experience with this. Perhaps others will chime in and we'll find a working solution."
- GeekLad