Test article for testing RSS Feed updates in dashboards. 

Have you ever wanted to have a single URL with a standard web port to access all the web services you run on your NAS? Most consumer Network Attached Storage (NAS) devices come with a built-in web server which can be used to share all of your services under one address.


How does this work you might ask? Web servers can route traffic to other servers using what’s called a “Reverse Proxy.” A proxy is a server or device which can act as an intermediary for other devices. In this case, the web server in your NAS can proxy traffic from other web servers on the same machine or even in the network. This allows you to have a single base URL like which you can use for all your traffic. Each of your servers will then either be accessible via a subdomain or path.



Reolink, the manufacturer of several IP camera and Network Video Recorder (NVR) products, recently released a firmware update for their line of IP cameras enabling the ability to view the camera streams through HTML 5 enabled browsers like Chrome, Firefox, Safari, and Edge.

Update: An update to the firmware seems to have established Flash as a requirement to view the streams from the browser. While this isn't as bad as needing a proprietary plugin as was needed in old firmware, it's still not quite as good as being completely plugin free for modern browsers.

It feels a bit odd to be excited about an IP camera that doesn’t require a browser plugin in 2016 considering browser plugins like Flash, Silverlight, and ActiveX components have died out across most parts of the web, but this is the sad reality of IP cameras where custom plugins, ActiveX components, and custom Chrome Apps are fairly standard. Mind you, if you are using your mobile phone you are probably going to prefer to use a mobile app from the vendor or even a third party app like TinyCam Pro or Blue Iris, but it’s nice to be able to pull up a browser and access your camera without having to install anything.

Azure Functions provide a flexible and easy way to run code without having to worry about spinning up servers, managing an OS, or even managing a service. For that matter, with Azure Functions you only pay when your code is running. Microsoft takes care of spinning up the servers and services to run your code and you are only charged for the time your code is actually running. The beauty of Azure Functions is you focus on writing your logic while Microsoft takes care of everything else it takes to run the code in a scalable fashion.


I’ve working on porting SharpTools, my Android home automation app, to Amazon Fire TV and Android TV using the Google Leanback library and ran into a snag today. After building a GuidedStepFragment, I was getting the error “Unable to start activity ComponentInfo{}: android.view.InflateException: Binary XML file line #22: Binary XML file line #22: You must supply a layout_width attribute.

At first, I was a bit baffled as the developer guidelines clearly state that GuidedStepFragments should be added programmatically and not via XML files and there weren’t any clear references to our control over the XML file. I took a quick peek at the manifest from the androidtv-Leanback example and quickly realized the difference – they were explicitly specifying the theme in the activity declaration. In their example, they were using a modified theme, but in my case I simply added the theme attribute with the default Theme.Leanback.GuidedStep and everything started working as expected.


About Me

Josh Lyon Profile Picture

Name: Joshua Lyon
Location: Dallas, TX
E-mail: This email address is being protected from spambots. You need JavaScript enabled to view it.
ProfilesGoogle, Twitter, GitHub
Other Sites:
     L2 Technology Services