Fight for the Internet 1!

Wednesday, May 29, 2013

Firefox sessionstore.js recovery

So randomly today Firefox corrupted itself while I was using Google Drive. It stopped allowing me to edit the document, then refused to reload the page, or any other Google Drive document. Then when I closed and reopened the browser, all my 100+ tabs in various tab groups were gone, including my pinned tabs. I suspect it was because I had two Firefox windows open at the same time that might have caused the problem, but I'm honestly not sure.

Here is the simple way I managed to restore the tab data.

For those who don't know, the sessionstore.js is where Firefox keeps your tab data. Checking my Firefox profile's directory (which was ~/.firefox/MyBrowser/), luckily my sessionstore.js and sessionstore.bak file were both large and full of the tab data. You should find those two files and make a backup of them immediately.

The sessionstore.js is in fact one big JSON file.

On Ubuntu, I installed the package "yajl-tools" which stands for "Yet Another JSON Library". I did this to give me the JSON commands: json_verify and json_reformat.

My first thought was the sessionstore.js was somehow corrupt, but json_verify did not agree with me. Sending my sessionstore.js to json_reformat


I ran this command from command line to check if my file was okay:
cat sessionstore.bak| json_verify
If you get a message saying okay, then proceed to the next step. This command reformats the
cat sessionstore.bak | json_reformat >sessionstore.js
Next open the  sessionstore.js. I found that all the tabs were not being restore because they had been moved to the '_closedWindows' section.

View of my sessionstore.js from the top:
 {
    "windows": [
        {
            "tabs": [
                {
                    "entries": [
                        {
            ..........

This section had no real tabs. I could tell this should have been filled with data but was empty. Lower down in the file was the "_closedWindows":, which is where all my tabs had gone.

  "_closedWindows": [                                                                                                                 
        {
            "tabs": [
                {
                    "entries": [
                        {
                            "url": "https://mail.google.com/mail/u/0/?ui=2&shva=1#inbox?compose=new",
                            "title": "Inbox (7) - bob@gmail.com - Gmail",
                            "subframe": true,
                            "ID": ....,
                            "docshellID": ....,
                            "docIdentifier": ...
                        },
                        {
                            "url": "https://mail.google.com/mail/u/0/?ui=2&shva=1#inbox?compose=new",
                            "title": "Inbox (7) - bob@gmail.com - Gmail",
                 ..............

So I opened the file in sessionstore.js, copied the the 'tabs' section(including the header) under '_closedWindows' to 'windows' where it should have been, deleted the original and everything is running smoothly again.

Final form of my of my sessionstore.js from the top:
 {
    "windows": [
        {  
            "tabs": [
                {
                    "entries": [
                        {
                            "url": "https://mail.google.com/mail/u/0/?ui=2&shva=1#inbox?compose=new",
                            "title": "Inbox (7) - bob@gmail.com - Gmail",
                            "subframe": true,
                            "ID": ....,
                            "docshellID": ....,
                            "docIdentifier": ...
                        },
                        {
                            "url": "https://mail.google.com/mail/u/0/?ui=2&shva=1#inbox?compose=new",
                            "title": "Inbox (7) - bob@gmail.com - Gmail",
                 ..............
 Hope that helps. Source taken from here: http://dag.wieers.com/blog/what-if-firefox-loses-your-tabs


Friday, May 10, 2013

Kmix Volume Increment

I recently upgraded to KDE 4.10 and noticed that when I scroll over Kmix to increment/decrement the volume, I no longer had the fine control I liked. It would jump the volume by a whopping 15% with each scroll!

Now that's way too much for me, so here's how to give yourself finer control of Kmix's volume changes.

  1. Close and quit Kmix.
  2. Open the file ~/.kde/share/config/kmixrc
  3. In the [Global] section, add this line:

    VolumePercentageStep=1.0
  4. Close the file.
  5. Open Kmix
  6. Enjoy

The 1.0 supposedly means 1.0%, but don't call me on that one.

Friday, December 28, 2012

Compiling btnx for Ubuntu 12.04 and 12.10 and beyond (and Fedora too)

This is a quick and dirty guide how to compile btnx for yourself to get it to work on your Ubuntu or Kubuntu or Fedora systems.

You will need to compile both the program btnx and the program btnx-config.

This guide isn't necessarily for beginners but I will try to keep it simple.

UPDATE: I have found someone who is taking stewardship of the btnx project. He has moved the code from the derelict bazaar repos on Launchpad (one of which has permanently disappeared) and created a github repository for the project(s). He has also mainlined my patches and is tracking down other bugfixes on forks. I tested his code on Fedora 18, 19, Ubuntu 12.04, 13.04 and 13.10. All worked.

https://github.com/cdobrich/btnx
https://github.com/cdobrich/btnx-config

The instructions have been simplfied accordingly.

Compiling on Ubuntu

The compilation process for Ubuntu is almost exactly the same as for Fedora.

(0) In general, you will need to be able to compile programs on your Ubuntu machine. You should have the package "build-essential" installed already.

(1) Grab the program source files.

For the btnx-config page, you want to download
https://github.com/cdobrich/btnx-config

For the btnx page, you want to download
https://github.com/cdobrich/btnx

(2) Open up your favorite terminal. To install the btnx dependencies, do the following:
sudo apt-get install libdaemon-dev libgtk2.0-dev libglade2-dev
(3)  Navigate there and run './configure' (without quotes), and then 'make' (without quotes) and finally 'make install' (without quotes).

(4) Now both programs of btnx and btnx-config are installed on your system.

Compiling on Fedora

The compilation process for Fedora is almost exactly the same as for Ubuntu.

(0) In general, you will need to be able to compile programs on your Ubuntu machine. You should have the packages to compile and build programs installed already. To this in Fedora, run the following command:
sudo yum groupinstall "Development Tools" "Development Libraries"
This might be a bit overkill since it installs a lot, and you can remove this group when you are done.

(1) Grab the program source files.

For the btnx-config page, you want to download
https://github.com/cdobrich/btnx-config
For the btnx page, you want to download
https://github.com/cdobrich/btnx
(2) Open up your favorite terminal. To install the btnx dependencies, do the following:
sudo yum install libdaemon-devel gtk2-devel libglade2-devel
(3)  Navigate there and run './configure' (without quotes), and then 'make' (without quotes) and finally 'make install' (without quotes).

(4) Now both programs of btnx and btnx-config are installed on your system.


Errors

Error message:
failed to execute command /etc/init.d/btnx restart
Cause: You probably don't have the little dongle for the USB mouse plugged in. At least I always get this error if I try to use the btnx-config program and don't have my mouse plugged in yet.

Warning

It may appear in your applications-menus, but I have noticed a problem with using inside KDE. It asks for the ROOT password, not my user password with elevated privileges. I'm not sure how to fix this, but I'd love to find out. It's not a big deal for me though.

Hope that helps anyone.

Friday, December 14, 2012

HTTPS Everywhere Tweak



In the latest version of the Firefox Plugin "HTTPS Everywhere" I have been inundated with very annoying alerts asking me to save a discovered rule for HTTPS, even including saving an already existing rule. [It has asked me to save YouTube no again and again less than 20 times in the past month.]

So finally I had enough of this and I opened the almighty Firefox page "about:config" (without quotes). Then I searched through the options until I found what I was looking for.

The option to toggle is:

extensions.httpsfinder.noruleprompt

I set it to "true" and now I am no longer prompted to accepting or saving a rule in Firefox. It seems to work like I want, though I find it still suffers from the same problem the add-on had before. You can disable a rule, and generally it doesn't seem to work, auto-redirecting you to an HTTPS connection. This might be fixed if you close and reopen the tab or browser, but I haven't tried.

Friday, December 7, 2012

iTunes vs. DVD Information for the Quality Concnered

Overview


The purpose of this article is to discuss the merits of iTunes video quality and theoretical longevity of improving quality, versus buying DVDs with their quality.

It compares DVD Quality video (most specifically in this comparison from Amazon's DVD on-demand) and iTunes SD video. This isn't exactly Linux related, though I use iTunes through VirtualBox occasionally when I need things and *ahem* deal with the Draconian freedom suppression from Apple appropriately so I can enjoy it in Linux.

Why is this important?

Simple: If you want the best video quality you can purchase for your media, it is important to know what you will get if you purchase DVDs, or buy from online services such as iTunes, Google Video, Amazon Video, or elsewhere. In all my research online no one had concisely put all the important facts together in one place. So I had to do my own research and compile the facts, which are herein reported.

Movies (especially those available on Blu-Ray)

BluRay discs at this point are not being considered because the average BluRay movie blows iTunes off the map in terms of quality, plus you can get all sorts of extras sometimes. So a BluRay movie when you can get it is still a great cost-to-value ratio, far higher than iTunes currently. It is also unlikely that iTunes will be raising the digital quality (H26 video codec choice, audio and video quality bitrate levels, etc.) any time soon, since they just hit the 1080p mark for some content.

Results Summary

The situation simplifies down to two scenarios:
  1. If the content is available on iTunes in HD (meaning High Definition with 720p/1080p), the iTunes options is superior to even the best quality DVD you can find.
  2. If the content is available on iTunes in SD (meaning Standard Definition with 480p), the DVD options is almost certainly going to be superior to iTunes video.

    There is one potential caveat to mention. See below.
If you want more details on how I reached this conclusion, see below for some file specific comparisons.

My opinion on the matter: When  SD videos become available in HD, so will Blu-Rays of the media. Just buy those.

DVD Longevity Caveat

There is one potential caveat to mention. With iTunes there is potential for longevity. Apple recently upgraded many of their 720p iTunes videos to 1080p for free! So if you already owned it, you get it in higher quality. That's really nice. A DVD won't do that for you. But there is a twist to this generosity.

However there is no guarantee that SD video will ever be available in HD. Converting older media to remastered quality is costly and time consuming. Usually when it is done, there are also Box-sets released on the latest media. So when you see SD video remastered into HD video, you might also see a Blu-Ray Box-set for sale simultaneously.

The 1080p Twist by Apple's iTunes

This is merely an informational section: Apple very likely had the 1080p video available dating back years and years, but refrained from making it available due to playability limitations on some of their various devices. As far as the scuttlebutt on the Internet goes, Apple is handicapping content lower for one reason: compatibility with the 5th generation iPod's.

Their recent action should not be seen as a move forward, since they were consciously and actively preventing the vastly greater majority of users from enjoying superior quality, because of a very tiny few legacy users. In essence, this move was not one of going forward; it was of ceasing to suppress quality.

iTunes vs. DVD Comparison Details

iTunes does have a very very large selection of media, but not all the media is in High-Definition. In fact, most of the older media is only in Standard-Definition. For example, Hey Arnold!, El Tigre: The Adventures of Manny Rivera, Daria, and My Life as a Teenage Robot, are all only available in SD Version.
I had difficulty finding technical specs documentation. Here is what I have found so far [info source here]:

iTunes Rentals:
Apple TV HD - Main Progressive Profile at 1280xN at 4-5mps, 5.1 AC-3 Pass Through.
Apple TV SD - Main Progressive Profile at 720xN Anamorphic (creates 853xN files), likely 2.5 mbps.
iTunes SD - iPod/Basic Progressive Profile at 640xN - Now Anamorphic (which creates 853xN files), 1.5 mbps (maybe higher).

Purchases:
iTunes/Apple TV - iPod/Basic Progressive Profile at 640xN, 1.5 mbps.

Of course, Megabytes per second (mbps) are intimately tied to the codec in use. In the case of Apple Content as far as I know, it is H.264. DVDs are encoding using the MPEG-2 video methods.

Researching on Wikipedia I found this (and though it doesn't cite many sources I generally know this to be true from personal experience mucking about in video):

DVD-Video discs have a raw bitrate of 11.08 Mbit/s, with a 1.0 Mbit/s overhead, leaving a payload bitrate of 10.08 Mbit/s. Of this, up to 3.36 Mbit/s can be used for subtitles and a maximum of 9.80 Mbit/s can be split amongst audio and video. In the case of multiple angles the data is stored interleaved, and so there's a bitrate penalty leading to a max bitrate of 8 Mbit/s per angle to compensate for additional seek time. This limit is not cumulative, so each additional angle can still have up to 8 Mbit/s of bitrate available.
Professionally encoded videos average a bitrate of 4-5 Mbit/s with a maximum of 7–8 Mbit/s in high-action scenes.

So what does this mean? Well, the average DVD, even something with only 4.7GB of disc space capacity, has a considerably higher average video bitrate per second, compared against the average SD video from iTunes.

But bitrate doesn't include the differences in the video codecs for each data source, so I needed a better test.

Side by Side Comparison

For the comparison of the quality, I picked an episode from my Hey Arnold! DVDs. In particular, this episode is from Season 3, episode 11 Part 2 (or 11b), title "Hey Harold."

[Of note, iTunes may use a different episode numbering system than the established wide-spread one, based on date of initial public release.]

Below is a side-by-side comparison of the visual video quality:


As you can see there are notable differences in the visual quality. The color schemes are different, and there is noticeable picture compression on some of the subtle textures. The interlacing between the two videos is varied in sections, so I don't think I would label one as overall superior to the other for interlacing.

Obviously there is a slight frame size difference as well.

DVD episode

The video dimensions were 720x480. The framerate was 29.970 fps.

The video data amounted to 420MB for 11:48 of time. Doing the math that is 420 MB divided by 708 seconds, which is an average bitrate on screen of 0.5932 mbps.

Video format MPEG-2.

Of note, the audio quality was 16.20MB of AC3 192kbps of data.

iTunes SD episode

I put my money where my research is and bought the same episode of Hey Arnold! in SD using iTunes 10.5.

The video dimensions were 640x480. The framerate was 23.976 fps.


The video data amounted to 117.12 MB for 11:48 of time. Doing the math that is 420 MB divided by 708 seconds, which is an average bitrate on screen of 0.1654 mbps.

Video format is H.264.

Of note, the audio quality was 10.68MB of AAC 128kbps of data.

Conclusion

This conclusion is pretty straightforward for me. Looking at video bitrate alone, as well as visual quality, even non-remasterd DVDs like this can trump iTunes SD. I'm aware this is only one sample, but the cartoon Hey Arnold! has over 100 episodes that mirror this data out. That's a lot of conforming data. Even disregarding the visual differences, for the shear bitrate differences I would still go with DVD. Plus there is the freedom of playing the DVD anywhere and everywhere, contrasted against Apple's Draconian control model.

For iTunes only offers SD media, buy the DVDs instead. Otherwise, buy the iTunes HD media.

The situation simplifies down to two scenarios:
  1. If the content is available on iTunes in HD (meaning High Definition with 720p/1080p), the iTunes options is superior to even the best quality DVD you can find.
  2. If the content is available on iTunes in SD (meaning Standard Definition with 480p), the DVD options is almost certainly going to be superior to iTunes video.
iTunes SD video may be quite good for its size but it isn't as quality as most DVD video sources.

Video Alternatives

Currently these best alternative options you can find are listed below. But my conclusion is that either DVDs or iTunes are still your best bet for pure video quality. See above details for where and which.

A good table comparison is also available here: High-definition video - HD on the World Wide Web - HD Streaming

Google Video

In short summary: As of writing this (December 2012), Google Video disregarding selection of available video titles compared to its competitors, I'm actually having serious trouble finding the specifications for HD and SD video purchased through Google Play.

Some reports I have read from only several months ago claim that Google also has less HD (720p/1080p) video than their competitor(s). Unfortunately my notes don't have the citations and current Google searches fail to confirm or deny this information. If anyone wants to furnish me with detailed specs, I will be happy to list them here.

Amazon Video

In short summary: As of writing this (December 2012), Amazon Video it isn't even up to average DVD standard quality [video bitrate per second]. You can check Wikipedia articles for better details and explanation on this matter.

Furthermore, at this time Amazon Video isn't even half the quality of 720p video from iTunes.

Amazon Video appears more geared towards streaming, and their strategy currently is less about the highest quality of video available, most likely due to bandwidth limitations for most customers.

Saturday, December 1, 2012

Kubuntu Hidden Wireless Network

Problem
There seems to be general issue with KDE's Network Manager and hidden wireless networks. [You can see (and vote for!) the bug here: https://bugs.kde.org/show_bug.cgi?id=209464.] You are trying to connect to a hidden network, and you create a profile for the specific wireless network in the KDE Network Manager. But for some reason you still can't connect.

I have encountered this problem for a while (Kubuntu 9.10, 10.04, 10.10, 11.04, 11.10, 12.04, and 12.10], but I finally found a solution today. A quick look tells me this bug has been around existed at least for 2 years. Pity they haven't fixed it.

Solution
Quick solution is to run this from command line:
sudo iwconfig wlan0 essid name_of_the_hidden_essid
This works even better if you have used KDE Network Manager to create a wireless profile with this hidden network's name already. You can setup password and such. This command only invokes connection to it, which is the real bug in the manager. It will read the profile you have previously stored.

Other solutions are to use a different network Manager, such as the network manager from Gnome/Ubuntu.

An even easier solution would be to just start broadcasting the SSID.

Tuesday, November 6, 2012

Disable Firefox Save Images to Changing Directories

Overview
Here is how to disable a feature in Firefox that can be really annoying if it doesn't work properly. [For me it only worked correctly 1/6th of the time, resulting in more work overall.]

Problem
The feature: Save Location Assistance/Guessing - Some time ago Firefox added a feature where it would try to guess which you wanted to save the current image/file to on your harddrive. It jumps to a previous location where you saved something that it thinks is similar, in the hopes of saving you the time for navigation your folder structure to save it.

The algorithm Mozilla uses unfortunately doesn't work much of the time. (I have to admit I think whatever implementation they used it is fairly dumb, meaning very ineffective.)

Solution
Here is how to disable this well meaning but ultimately inefficient and annoying (and somewhat destructive) feature behavior.

1). Open the about:config page. To open the about:config page, type about:config in the location (address) bar and press the "Enter" key, just like you type the url of a website to open a website.
If you see a warning then you can confirm that you want to access the about:config page.

2) Create a new value, of type Boolean, via the right-clicking with mouse to bring up the right-click menu. The name for the new Boolean value should be  "browser.download.lastDir.savePerSite" (without the quotes).

3) Set the value to "false" (again without the quotes). You can do this by right clicking on the item you just created.

Some extra info on navigating the about:config page:
  • Use the Search (Filter) bar at the top of the about:config page to locate preferences more easily.
  • Preferences that have been modified show as bold (user set).
  • Preferences can be reset to the default via the right-click mouse menu if they are user set
  • Preferences can be changed via the right-click context menu: Modify (String or Integer) or Toggle (Boolean) or by double-clicking the line with the pref