RPi resurrection – Pt. III – Plex Media Server

The third good use one could put the Pi to, and use it thoroughly is as a Media Server. And that’s where Plex comes into the picture! I know, it’s nothing new — since probably the inception of RPi, there have been numerous such apps and OSs which have done the same — XBMC ports, Kodi, and likewise. But I have had mixed experiences with them — beyond the initial “aha!”, the experience wasn’t what one could “delightful!” in the long run. I think the biggest hassle for me was loading the media, to start with. This was followed by other aspects, like account management, supported formats (or the lack of it), and what not.

Plex interface on Chrome mobile browser

However, Plex seems to have upped the game several notches. Or maybe the people at Plex know how to impress this Netflix-addicted population — the ones who would want to be stream on any. device, support both app and browser based streaming, continue from where they left off, be able to load media directly, share their (in-house) media server with their friends/family, be able to restrict content per account, etc. (I am sure you see what I did there.)

Again, I will abstain from listing down the installation steps for Plex — there are numerous websites that have those.

Loading the media just requires following a specific and simple directory format. A spare hard disk which could auto-mount could be attached to the RPi for it. Of course, the advantage of using portable media is that one could attach it to any other media source, and directly modify the media to be made available via Plex. Or, for the geeky ones — a cron job could be written to rsync the media over ssh to this Pi.

There is however, restrictions on the “Free lunch”. If one wants to use the Plex client app, one would have to pay a nominal fee. This, of course, enables a host of features not available otherwise.
The “Free” option, of course, is the browser based client, which can do everything that the app can do, albeit at a slightly less of a convenience. I am not complaining, though. ๐Ÿ˜‰

Microsoft++

Although, maybe, I am obligated to be loyal to AWS for various reasons (my work is AWS-centric, plus the fact that it facilitated my foray in the cloud), but still, over the short span of time that I have been in this field — I am getting increasingly impressed with Microsoft. Their documentation on aspects like cloud design patterns, microservices, etc., is simply impeccable — to say the least!

Moreover, since I am a huge fan of MOOC websites like Coursera, edX, etc, not very long ago, I came across a very nice course on edX, being offered by Microsoft, called Architecting Distributed Cloud Applications, which, again, I loved!

Apart from cloud-specific courses, they have a lot of other, general CS courses in the offing, which are also pretty good.

Overall, I think MS has come of age under Mr. Nadela, and is delivering how it should. Kudos to the teams, who keep such useful artefacts updated, as well as open to the world.

After all, the age of silos is long gone, and collaboration is the key!

N900

My love for my phone resurfaced, when I had to flash it today (due to a reason outside of the context of this post). Anyway, in my quest for restoring whatever I had lost — applications mostlyย  — came across ‘Humanity theme’ (of Ubuntu fame) and decided to give it a go. The result is what you see in this image. I loved it instantly!

Screenshot-20120626-224448.png by pugmarx

n900_home, a photo by pugmarx on Flickr.

ย Yes, in this age of Ice-cream Sandwiches, Honeycombs and iOSx’s — I am still fond of my phone. (This is in spite of the fact that Nokia abandoned Maemo.)

Books!

Two books I want to get my hands on:

  1. The Pragmatic Programmer
  2. Object Oriented Software Construction

Unfortunately, both of them do the second one does not have Eastern Economy Editions for some inexplicable reason; and the non-economy version — is, well — not exorbitant, but still on the higher side. Nevertheless, I consider both of them a must-have for anyone even remotely connected to software development.

Jaunty


Jaunty – ui1
Originally uploaded by pugmarx

Upgraded from Ubuntu 8.04 to 9.04 (Jaunty) beta over the weekend. It had to be a two-step process because first I had to upgrade to 8.10 (Intrepid). All that patience paid off well when I saw the result. No sound driver issues, and the machine’s nVidia card was detected without any hassle (a big relief from the woes of 8.04 I think).

Using internal HDD as external HDD

[Disclaimer: Please exercise adequate precaution if at all you try to duplicate what is given below.]

Since long I was chewing upon an idea, something which would help me connect my old hard-disks directly (without having to boot the CPU). The old CPU that I had 2 hard drives, an 8.4GB and an 80GB one, and they had been lying unused as I had shelved my desktop about an year back.
More than a need, the thought fascinated me.

I remembered having connected IDE hard disks when from the desktop whenever my friends used to give me their machines for repairing. It was a simple task of making the new drive a slave, and using the CD-ROM IDE cable to connect the additional drive. Then I used to enter POST and get the new drive detected, and voila!, everything worked.

The requirement was different here in that I wanted to be able to connect the hard drives without having to fiddle with the internals of the laptop. Few days ago, came across a post by Joel in which he had mentioned about being able to connect his SATA HDD using a docking station. This was the rise of the phoenix.

I began looking for a similar option for IDE, and a random search got me a number of options. By the next day, I was a proud owner of a USB-IDE connector cable, which additionally supports SATA HDDs. Connecting and getting the HDD recognized was a no brainer. The only thing to take care of is that the jumper had to be kept at master (see illustration here). The partitions were recognized with ease, except for the fact that since I was on Windows, the linux (ext3) partition had some issue in being recognized (more about that later).
I repartitioned the disk and it was good to go afresh!

I was, however, more interested in getting both the HDDs to work simultaneously. Here there were some issues: firstly, the USB-to-IDE cable had come with a power adapter, which had a single 12V DC output, and couldn’t be connected. Secondly, I needed an option which is extensible — say, in future if I wanted to be able to add another device (for example CD-ROM (hypothetical scenario)), it should be possible.
Thus came a need for a power supply which would help me connect a number of devices at the same time. Yes, SMPS it is. So I took off the SMPS from the CPU, and, thus came an interesting issue. I had no clue about the way to boot it. I had an idea, that it had something to do with the 20-pin female connector (ATX), which had a slot on the motherboard. I also obviously didn’t want to short an incorrect combination and blow up the SMPS — that would have spoiled all the fun! After a considerable amount of googling, I got to learn that the 13th (Green wire -> Power-on) and 14th (Black wire -> Ground) pin had to be shorted in order to simulate a power signal (see this). I plugged-in the SMPS, and shorted the two pin slots which got the SMPS working. [It was however warned on a number of sites and forums that there should always be some load on the SMPS, before that is done. Alteast one HDD.]

The above got both the hard disks running. The only issue that I didn’t anticipate earlier was that the IDE-to-USB as well as IDE cable are all female ports — this kept me from being able to connect both the HDDs recognized at the same time, through the typical master-slave combination, and connecting the IDE to the IDE-to-USB. I’m still on the lookout for a IDE cable that would have one male port.

I was also concerned about the HDD overheating because it was out in the open, so the heat sinking provided by the CPU case was gone. CPU processors have a heat sink attached to them, so I thought it would be a good idea if I could use the same for cooling the HDD. I got the heat-sink off the processor and the motherboard. The  other good thing about this heat-sink was that it had a fan attached to it. Once I got it off, I detached the fan, and cleaned it thoroughly, and fit it back. Thus came up the next issue to get the fan running. The fan had a 3-pin female connector, off which I was unsure that which were the power ones. The fan label said nothing about it, or the polarity. What it did say was that it needed 12V DC, which I was a relief because I had plenty of it to spare. ๐Ÿ™‚ The SMPS also had 2 4-pin connectors (for devices like Floppy drives etc.) The issue was how to connect this 4-pin female to a 3-pin female (Fan). Apparently there are 3-pin to 4-pin adapters available, but I didn’t have the patience to wait another day to lookout for it.

Next round of googling led me to understand that the three wires are classified as: Yellow (+12V), Black (Ground), and Green (Signal). Since the 4-pin SMPS connector (known as berf) also had Yellow and Black wires, I used an old wire to connect the corresponding ports between the two pins. The result was a delight — Now my HDDs were running, and my heat-sink (if at all it’s serving any purpose) sits atop one of the HDD, with fan running over it. As of now this arrangement looks a bit flimsy — with the heat-sink just kept over it, but I guess it’s much better than having the HDD without it. Also, seems there’s a thermal paste which could help me affix the heat-sink, but that’s a low priority.

OK, coming back to the issue of repartitioning the HDD — the ext3 partition apparenly had some issue while formatting using Partition Magic 8.0 (WinXP). I switched to Ubuntu, where all the linux partitions got recognized, and Ubuntu has a wonderful utility called GParted, which formatted the ext3 partition without any hassle.

All of the above, left a much more satisfied me! ๐Ÿ™‚