New in the podcast list: Internet History Podcast

There’s a new podcast on my listening list: Internet History Podcast.

I learned about it when a couple people in the Charleston Tech Slack mentioned it a few weeks ago. After reading a little bit about the podcast, I added it to the list.

Although it’s called the Internet History Podcast, after listening to the first few episodes, it’s really more the World Wide Web History Podcast.

The 20th anniversary of the Internet Era as we know it is this year, 2014.

I know, the Internet was invented long before, and even the web was born a few years previous… but 1994 was when Netscape was founded. And I think we can all agree that Netscape, and the Netscape IPO represent the birth of the Internet Era (in capital letters) as we’ve all lived through it the past decades.

I’m only 7 episodes into the series so far, but it’s been pretty good listening. It’s pretty neat hearing the stories of the people who were at the bleeding edge of developing and creating the Web

RadDB: Radiology Equipment Tracker

Long ago, when I first started at MUSC, I inherited a stack of binders that contained all the reports for the imaging equipment that needed to be tested annually.

There was a total of about 50-55 or so  units, and for the first couple of years, I’d find a few units here and there that weren’t in the binders, but still needed annual testing. By the time I was reasonably sure I had all of them accounted for, there were around 70 units.

For a while, I could keep track of all the units and when they needed testing in my head for the most part. I knew I was going to need a better system to keep track of things though.

Around mid-2001, I came up with what seemed to me to be a reasonable database schema to store everything in, and cobbled together a bunch of PHP scripts (back when PHP was used mostly for templating and generating dynamic HTML pages) to serve as the front end.

It worked pretty nicely, but adding anything new was a fair bit of work and my scripts didn’t really interact with each other. On my list for a long time was to rewrite the whole thing as a more self-contained web application that would be easier to maintain and enhance. Work and life kept me busy, and my scripts worked well enough that there wasn’t a whole lot of motivation to revamp everything (“If it ain’t broke…”).

Fast forward 15 years later to 2016. With my equipment inventory at around 175 units, people discovering my project, and asking for new functionality, there was significantly more motivation to rewrite everything. I spent a few months in early 2016 checking out various PHP frameworks before settling on Laravel.

The RadDB project kicked off around May of 2016. With most of my programming time happening during short windows between testing equipment, and after work, I managed to replicate about 80% of the functionality of my original hodge podge of scripts by the end of 2016. With the start of the new year and a new round of testing, I decided that RadDB was ready for production, so I set it up on my desktop at work and released it into the wild.

I use it to:

  • keep an inventory the imaging units and x-ray tubes I need to lay hands on each year
  • add/edit new imaging units and tubes
  • generate reports on the types of machines, where they’re located, and who made them
  • track when they were tested
  • track any problems I might have found during testing
  • tell me what machines
    • still need to be tested
    • which ones have been scheduled for testing
    • which ones have already been tested
  • store test reports and service reports
  • track calibration dates for my test equipment

Still a lot of work that needs to be done on the project. Most of the other features I want to implement involve learning other parts of Laravel (authentication, services, unit testing) so I don’t think those will be too hard to get done.

I’ve really enjoyed working on this rewrite, and learning how to use Laravel in the process. It’s a pretty cool framework and easy to learn. For the most part, I can imagine what I want, think about how to do it and then code it up without having to do a lot of mental gymnastics and translating to get it to work. I’m looking forward to doing other projects in Laravel.

 

Climbing the Laravel learning curve

After checking out several different PHP frameworks, I settled on using Laravel for redoing the x-ray equipment tracker that I use at work. It’s been a TODO project on my list for quite a while now and for the past couple of months, I’ve been studying the Laravel docs, writing up the redesign of my project and trying to put together some code.

I’ve managed to learn how to use Laravel enough to implement some simple tasks such as displaying lists of the x-ray units stored in the database. It’s actually been surprisingly easy, and I haven’t really had to write a whole lot of code. For the simple tasks that I’ve implemented so far, Laravel has done most of the heavy lifting. I just write the code to say what I want and how to display it, and Laravel does the rest.

So far most of the work I’ve had to do was in redoing the database schema to match the conventions used by Laravel’s Eloquent ORM. That mostly involved renaming tables and indexes, and trying to figure how to define the relationships in the model files.

Still have lots of learning and work to do, but I’m making progress. Baby steps.

Going wireless on the desktop

Broadband Internet service at the new house comes from Home Telecom in the form of their Velocity Fiber service. They offer up to 1Gbps service, but we opted for the more modest 50 Mbps plan which is more than sufficient for our needs.

Installation at the house went pretty smoothly, but could only be installed at one point in the house in the form of a CAT5e cable. I was expecting something similar to Comcast where the broadband would come in via coax and cable modem. In retrospect, I probably should have asked.

I chose to have the installer put the drop in the structured wiring box, figuring I could route it through the rest of the house pretty easily from there using the CAT5e wiring that was run through the house for phone (there turned out to be some kinks in that plan, but that’s a story for another post).

The room that’s become my office and where my desktop is, unfortunately, doesn’t have a CAT5e drop in it (oversight on my part during the planning process). That meant to get online, my computer would have to go wireless for the first time.

Since I couldn’t find where an older USB WiFi adapter got packed away, I did some shopping around and picked up a TP-Link Archer T8E PCIe card from Newegg. Looked like it would be a decent performer and the reviews mentioning Linux said the card worked fine under Fedora and Ubuntu.

Installation of the card was quick and painless, but I couldn’t get Fedora to bring up the card, even after a fresh install of Fedora 24. The kernel detected the card, but the drivers wouldn’t work with it.

A bit of digging showed the adapter uses a Broadcom BCM4360 chipset, which wasn’t supported by the b43 drivers.

Network controller [0280]: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)

A little more searching brought me to this gist containing a script for installing Broadcom’s wl driver. Downloaded the driver source, compiled and installed, and the WiFi interface popped up. Didn’t even have to reboot the computer. The computer was back online.

The Broadcom wl driver and associated kmod/akmod files are also in the RPMFusion non-free repo, which seems to be catching up with the Fedora 24 release now.

With the proper drivers installed the T8E card is performing pretty well, even with the computer chassis almost directly between the card’s antennas and my wireless router. I’m able to get pretty much the full 50 Mbps from the Internet and can see about 7 other WiFi access points in the neighbourhood. Not sure about what kind of signal strength the card is seeing from my WiFi router, but it’s at least enough for a solid connection. Haven’t tested transfer speeds on the internal network yet but that should still be pretty speedy.

speedtest_20160702

Despite the minor driver snafu, I’m pretty happy with the way the card is performing in the computer and under Fedora. Not quite the “works out of the box” experience I was expecting but still pretty painless.

New mouse

The Logitech MX1100 mouse I had started behaving unreliably on most surfaces, and would only reliably track on the vertical side of the computer case for some reason.

I decided since I had just replaced the keyboard, why not the mouse too.

I wanted something with a similar shape and weight as the MX1100 and ended up going with another Logitech mouse, the MX Master. It’s a wireless mouse that can connect using Logitech’s Unifying receiver (one of those tiny USB dongles) or via Bluetooth.

It looks similar to the MX1100, with a few changes to the buttons and scroll wheels. The top scroll wheel no longer tilts to the left or right. The tilting has been replaced with a thumb scroll wheel. The two forward/back thumb buttons are arranged behind the scroll wheel and the hidden thumb rest button is gone. I find the two forward/back buttons are somewhat awkwardly placed, and aren’t as convenient or easy to press as the MX1100 buttons were.

The battery is built into the mouse instead of the replaceable AA battery in the MX1100. A microUSB port at the front of the mouse allows for charging (charge level is indicated by three lights near the thumb rest of the mouse.

One interesting feature is that apparently the mouse can be used with three separate computers through the Logitech Unifying receiver. This isn’t something I can test out though.

So far the feel of the MX Master is similar to the MX1100 that I’m used to and is pretty comfortable to use. Should be a good mouse to use. Now to get all the buttons set up and usable in Fedora.