Saturday, December 8, 2012

Nested Folders for PicasaWeb, now Google Plus, now Google Photos

I have always been a fan of Google's products, but was not willing to spend the kind of money that most android devices cost.  However, Ting changed all that; I was able to get an android phone with a plan I liked at a price I liked.

I have always used Google's online picture storage applications, first PicasaWeb, and more recently Google+.  And I have always been bothered by the fact that I was unable to have nested folders in them.  I understand that the world is moving away from the folder mentality for base storage, but it still exists as a viewing option in most applications.  The desktop application Picasa even offers this feature, but for some reason it was left out of PicasaWeb.

With my android phones auto upload feature for photos I started taking a lot more pictures, and my online picture storage started getting messier and messier.  Finally I could not handle it and decided that if Google was not going to fix the issue after five years of people asking, then I would fix it.  I have always liked PicasaWeb more than Google+, probably just personal preference, but I decided to write a plugin for PicasaWeb to give me the folders I wanted.

The original Labs project for GMail folders gave me the idea.  After a few hours of hacking apart the PicasaWeb HTML interface I had a nice little Chrome extension that worked in the background and turned:

Vacations/2012/Beach

Into the three level folder hierarchy I wanted.  Now granted it was not quite perfect, no flash icon or anything like that, but I decided to put it into the Chrome web store for others to have if they wanted.  A day later I went to look at it and the lack of images looked horrible, so I went back, added a setting feature to remove the right side bar and create more view-able area for the folders, added an icon and an example image and uploaded the second version.

Now this little tool works great for me and does what I need.  Before I started putting a lot of effort into it I figured I would wait and see if others felt the same way.  So now I wait, this major missing feature is now available for Chrome users, time will tell just how major others feel the feature is.

Edit (5/2013): I have finally found the time to port this extension over to Google+.  The project ended up being more difficult than I had anticipated.  Google+ makes it very difficult to modify the pages DOM, so I ended up having to actually replace all the album objects with my own custom version.  The port is pretty good for a first version.  The biggest complaint I have is that sometimes the javascript navigation that Google+ uses doesn't trigger it to run.  But it works for now.

Edit2 (5/2016): I, once again, have found the time to port this extension to Google's newest photo product Google Photos.  You can download the newest version here.  For those of you who have a really large number of albums, like myself, the plugin will scroll to the bottom of the list of albums, wait 2 seconds, then scroll to the bottom again.  It will repeat this process until all your albums have been loaded; otherwise you would have missing albums on the page.  You can adjust the delay time in the plugin settings.

Friday, September 28, 2012

Ting: The customizable cell plan

I have spent the last year looking for a cell phone plan that was right for me.

I used to have Verizon, but I feel like they are becoming more and more tailored to businesses rather than individuals.  The do have the best network in the USA, but that network comes at a very steep price.  Their plans are very expensive, far more than I feel they are worth, and they don't reduce the cost of the plan when you finally finish paying off the subsidized cell phone you purchased from them. They don't allow any other phones on their network so you are stuck getting a device from them; this is actually a complaint I have about all of the major cell networks, there is no reason not to accept phones just because they were branded by another network.  They come up with all sorts of excuses as to why they can't accept other phones, but in the end they are just that, excuses.  Also, they lock you into plans, typically 2 years, which is a very long contract for a cell phone.

Anyway, so on my recent deployment to Afghanistan, I cut all ties with Verizon and told myself I would never get into a contract for a cell phone again.  I also wanted more flexibility in my plan.  Because I know a little bit about technology I started playing around with various prepaid options trying to see what I could build for myself using the VOIP and SIP technologies available to me.

Finally, I found republicwireless.com who promised everything I wanted.  Their phone was a bit expensive, but their plan was $20/month unlimited everything.  It relied on a home wireless network to offset the usage costs on the cell phone.  So I got on their waiting list and started monitoring their forums for months to see how things were going.  I started seeing reports of horrible customer service and a few problems with the phones.  Now I can live with one or two issues for a really great plan, but an over priced cell phone (even for being un-subsidized) along with customer service issues when trying to work out cell problems was too much for me.  I was right on the border still liking the idea, but not sure that this company was for me.

Then I found ting.com.  Ting was running a $50 off special, so I purchased a $65 LG Optimus droid from them for a grand total of $15.  Then they allowed me to fully customize my plan taking off all minutes, and text messaging, and just keeping a small amount of data.  I figured I could make this work since texting, email, and gps was what I primarily did on my phone.  My total cost came to $20/month for 500MB.  It may not seem like a fantastic deal, but as long as I am using less than 1GB in normal usage then my cost is far cheaper than a regular plan.  Also, Tings customer service is great.

In comparison, Ting is overall more expensive than republicwireless if you are a heavy cell user.  However, Ting has much better customer service, and they have a wide selection of phones at a far cheaper price.  And there is no waiting list with Ting.  These two options should give you some great choices for finally breaking away from contracts with the big cell providers and actually getting what you want.

Both Ting and republicwiress run on Sprints network.  Ting allows roaming in the USA for minutes and text messages, but not for data; you won't get charged roaming fees at all, data simply will not work.  If you allow roaming on a Ting phone and a Verizon tower is closer than a Sprint tower, it will choose the Verizon tower for better signal and you will lose data connectivity.  This is resolved by simply not allowing roaming (you might have to restart your phone after turning it off).  From what I have heard, republicwireless does allow unlimited roaming in the USA for everything, but I have not had the chance to verify that.

Saturday, July 28, 2012

Convert e-books without loosing file names

I managed to get my hands on a few star wars books, unfortunately they were all in .epub format which couldn't be read on my Kindle.

I tried using the calibre software to convert them, which worked, but it threw away all the file names so I lost a lot of the meta data stored there.  To get around this I created a script which loops through the files in a folder and coverts them into another folder keeping the same file name.

A copy of the script can be found here

Friday, July 20, 2012

Recover Windows Files Using Linux

A friend of mine recently corrupted some files on his Windows XP laptop.  The fix is fairly simple and can be handled by a Windows XP recovery CD.  Unfortunately one was not readily accessibly and he needed access to his files.

Since I run a few linux systems I thought I would try booting to a live CD and mounting his local drive from there.  It was a very simple process with lots of documentation all over the web.  I am posting the commands here because it was so useful that it was a must have post for my blog.


mkdir /mnt/mountpoint
mount /dev/sda? /mnt/mountpoint (you need to find the correct number of your partition here: use fdisk -l)
cd /mnt/mountpoint/home/username (puts you in your home directory)

Monday, July 16, 2012

Wireless Network Crashing DHCP


PROBLEM:
I recently had a rather odd problem with my network.  When trying to connect to my wireless network my device would either get rejected entirely, or it would connect to the wireless network but never receive an IP address from the routers DHCP server.  This problem only exists with the wireless network, the wired network has no issues at all, even with receiving DHCP addresses.

TROUBLESHOOTING:
To fix the issue I tried two different wireless routers, both have the same issue randomly.

Next I tried using two routers tied together, one running DHCP and wireless, the other running wired.  But the issue still existed.

I discovered that by unplugging one of my computers I was able to resolve the issue which lead me to believe the router was simply getting overloaded.  Splitting the load between the two routers was supposed to be the fix for that.  However, a home router should be able to handle the load of 6 devices just fine. They aren't all streaming, and it was handling 5 devices just fine before.

I started to wonder if it was simply the DHCP server crashing.  Even though I had reserved specific IPs for most of the MAC addresses, it was still work on the routers part handing them out.  So next I tried staticing all the routers and hard wired computers.  But that didn't work either.

BAND-AID FIX:
I was finally able to fix the issue by separating the wireless network from the wired network with the hardware firewall built into the linksys router.  While this did solve the issue it still didn't tell me what had caused the odd issue in the first place.

RESOLUTION:
After more research and not a little luck I discovered that one of my hardwired computers was causing problems for my network because it was having connectivity trouble. The router port and the cable to the computer don't seem to be the issue so I assume the NIC card is going out and re-transmitting so many packets that it was overloading the router.

Thursday, July 5, 2012

Flash plugin crashing in Chromium on Linux

I have been having random luck with the flash player running in Chromium on my Lubuntu computers.  I have 5 different machines and two of them refused to run flash.  Any time I went to a flash enabled website the plugin would crash.


After reading this website I checked out chrome://plugins but only saw one instance installed.  I tried disabling that instance and the crashing would stop but the site would then tell me I needed to install the plugin.  I tried making it ask me before running, and it would ask, then crash.


Finally I tried going to chrome://plugins and expanding the details and disabling the flash plugin from there, even though it seems to do the same thing as disabling it without the details open, the results are different.  If I disable the main plugin for some reason it still doesn't work, but going into details and disabling it there fixed the issue.

Thursday, June 28, 2012

Linux Start Application on Boot

Since being in the army I haven't had a lot of time to mess around with my personal computers.  However, I am back in the states and settled down for a bit so I decided to built myself a desktop computer.  I didn't have a lot of money, so older hardware and Linux was the route I took.

On a recommendation from a friend I researched a program called Synergy which was supposed to allow you to use a single mouse, keyboard, and clipboard across multiple computers and OSs via TCP-IP.

I cobbled together three older machines with about one gig of RAM a piece and loaded Lubuntu ( a lite version of Ubuntu Linux ) on each of them.  The Synergy program worked great and I was able to have a three monitor three machine system that felt much like one machine when using it.

Unfortunately, I ran into a small headache.  Every time I restarted a machine Synergy would shutdown.  On windows it has the option to start with the computer, but Linux is pretty much all manual configuration.  Some versions of Linux GUIs now have session managers which allow users to setup custom programs through a nice GUI app, but Lubuntu doesn't yet come with that.  After a little research I came across a website with a very nice detailed answer, which is copied below in case their site goes down.

There are two main steps:


  1. Create a text file named firefox.desktop in your ~/.config/autostart directory. (~ represents the current users home directory, typically /home/user; you will also have to click on View/Show Hidden in the File Manager to see folders starting with a period.)
  2. Fill the new file with contents.


Obviously rename the first part of the filename to whatever description best fits the program you are trying to start.  Below are 4 different examples to start up various programs, firefox and thunderbird were the examples on the site, chromium and synergy are the files I built for my needs.  Use or modify them to fit your needs.

One additional bonus, by creating this file you will also make an entry appear in the "Start menu"/Preferences/"Desktop Session Settings" program allowing you to easily toggle it on or off without having to delete and recreate the file.


[Desktop Entry]
Version=1.0
Name=Firefox Web Browser
Comment=Browse the World Wide Web
GenericName=Web Browser
Exec=firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox


[Desktop Entry]
Version=1.0
Name=Thunderbird Email Client
Comment=Email Client
GenericName=Email Client
Exec=thunderbird -%u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=thunderbird


[Desktop Entry]
Version=1.0
Name=Chromium Web Browser
Comment=Access the Internet
GenericName=Chromium
Type=Application
Exec=/usr/bin/chromium-browser %U
Terminal=false
X-MultipleArgs=false



[Desktop Entry]
Version=1.0
Name=Synergy Client
Comment=Connect to the keyboard network
GenericName=SynergyC
Type=Application
Exec=synergyc 192.168.111.114
Terminal=true
X-MultipleArgs=false



Thursday, May 31, 2012

Lubuntu on an old Compaq machine

I recently decided I wanted to fire up an old compaq machine for a spare computer.  Due to life circumstances I was down to one machine and really needed to start building the collection back up.

After a little research on stripped versions of Linux I settled on Lubuntu, primarily because of its association with Ubuntu.  I figure with the development support behind the Ubuntu distro there would be updates and fixes coming out for it for awhile still.

I burned a live CD of Lubuntu and started up the Machine:
512MB RAM
120GB HD
AMD Sempron processor 3400+

It had previously run Windows XP very successfully, so I was fairly confident that I wouldn't have any problems.  True to expectations it booted and ran very well off of the CD.  So I clicked the install button figuring that this would be the easiest setup ever.  But the installer couldn't make it past the partitioner, it gave a couple of different errors and refused to format the HD.  After trying every configuration I could think of I gave up for the day.

The next day, on a hunch, I started the computer back up with the live CD, launched a terminal window, and used fdisk to manually format all the partitions on the drive to a Linux format.  After that the installer ran perfectly with no problems.

My next issue came when I tried to boot the newly installed OS.  It would let me into the command prompt on first boot after taking the CD out, but after that it wouldn't even let me get that far.  The error it was throwing was:
drm_crtc_helper_set_config failed crtc:6

After Googling for awhile I finally found someone else who had a similar issue and had posted a fix.
Their post can be seen here.. I have copied the steps below:

There is no other way than adding a parameter to the kernel line before booting. In your case it is probably "nomodeset" or "nomodeset noapic".
1. Restart your PC
2. Hold down SHIFT (if it doesn't work, try 'Esc' or any other key) to display the hidden menu during boot (Note: SHIFT only works for single-OS systems)
3. When you see GRUB menu, highlight the Linux Mint entry and press the 'E' key
4. Use the cursor keys to navigate to the line that ends with "quiet splash", and add nomodeset (like this: quiet splash nomodeset)
5. When you are done editing the kernel line, press Ctrl-X to boot


I held the shift key, got to the Grub menu, pressed E and was on my way.  The line I needed to edit didn't End with "quiet splash" there was a variable after that text, I inserted "nomodeset" between the quiet splash and the variable.  When I pressed Ctrl+X the system booted normally.

Friday, February 3, 2012

Google Voice and Secondary IPs

Have you ever had a problem getting your google voice and video to work?  Perhaps you can make the call but the other side can't see you, or you can try videoing but you can't see each others video feeds.

So far I have found two things to try to fix this issue.  One is a definite issue, the other is a suspected issue.

First, the definite issue:
If you add a secondary IP address to your computer ( I was using 172.160.0.100 to connect to a secondary private device ), then it causes this issue.  Remove the secondary ip and your problem should be resolved.

Second, the suspected issue:
I was putting off running my windows updates which had been downloaded and were waiting to be installed.  I did try restarting my computer during the troubleshooting.  After fighting with the Google voice issue for awhile I installed the updates and restarted fixing the issue.  This particular problem was more likely an issue specific to one of the updates that was installed rather than an issue with the Microsoft update service itself.