Mini Radio Player

98% Universal

2016-05-28

This is pretty a big milestone!

Mini Radio Player is now completely universal across all platforms: Web -> Android -> Windows 10 -> ... being the Web the last platform to be added today.

But what does universal actually means?

Simply, universal means that the Mini Radio Player code is the same across all platforms. But is it really 100% the same code? Well, all of the app code and UI that makes up Mini Radio Player is the same for all platforms but each one has its differences and for those differences needs specific code to run. For example, the web requires URLs to navigate and identify content and audio support across browsers via html5 audio is pretty much a mixed support of formats. This means the web still requires specific code to handle URLs and audio is still supported via Flash Player which requires different flash applications to run. All done in a way that allows the code to be as much shared as possible. However, the web portion of the code is pretty tiny and so, easy to maintain.

The universal codebase main advantages are the following:

  • Same code means app across all platforms get new changes and improvements at the same time (do they?)
  • Almost no extra work required because it's only one codebase (despite having different deployments)
  • Reduced costs because of much lower maintenance required compared with having two or more completely/slightly different codebases

But is it really universal?

Deployment is split into 3 platforms: Windows, Web and Cordova. For Android (and possibly in the future iOS) the cross platform development Apache Cordova is used and the rest is self explanatory. We could use Apache Cordova for everything but the tools we use (Visual Studio) are not ready to handle all Cordova supported platforms. There's actually good reasons to not use Apache Cordova in certain scenarios like the web. It adds unnecessary overhead, more code for browsers to load without any added benefit.
Not only the deployment is split but also different platforms have different plugins to actually interact with each system. On Windows 10 is pretty self explanatory, using Windows apis via javascript to access system functions. On Android, Cordova plugins are used to interact with its system like to play background audio and display a media notification in the notification tray. This also means some features that require background access, notifications access like the sleep timer and clock alarm, need to be added individually for each system, being the case of apache cordova via java code for android in form of a plugin.

What does universal means for the Web?

It means the web can now get all the Android and Windows features like "Right Now On" artist images, better twitter card and details card, local cache for faster content delivery (and reduced server usage), local settings which support adding favorite radios, songs and radio history without being signed in, check on developer news, various app settings, semantic zoom, fully adaptive design and many more, without having to port and adapt all of the features into a separate web project.

Conclusion

Despite all differences between platforms, what really makes Mini Radio Player being what it is, is now shared with the same heart for all platforms, something that a lot of big companies still can't manage to do or refuse to acknowledge that it's possible.


Hello Azure, Goodbye NFS

2015-02-26

Hi from Mini Radio Player!

Mini Radio Player (MRP) is growing and our cloud-hosting service (NFS) was not enough to handle with thousand requests and keeping a great performance at the same time.

Don't get me wrong, NFS (NearlyFreeSpeech.net) is an awesome cloud-hosting service where you only pay for what you use. Its own dashboard and inner workings are more directed to power-users that don't want the hassle of setting up a server from scratch. It's a great place to have a quick startup with your small website, webapp and/or web api. And the best part, you'll be spending almost nothing in monetary terms to run your services there.
However there are other factors that played with moving MRP from NFS and these are easy explained by reading their terms. From NFS Terms & Conditions: "NearlyFreeSpeech.NET reserves the right at any time to modify or discontinue, temporarily or permanently, the Services or any portion thereof with or without notice.".
There were some NFS internal changes at some point in time that broke a system I put hours into, and they never provided any notification about those changes. This system was kinda "tricky" but it's still annoying not getting notified.
There was also downtime periods (rare) in the worst possible hours that would take hours to fix. I understand this stuff unfortunately happens with no apparent reason sometimes.
The last issue was that they are deprecating the old billing method of paying only for bandwidth. The new billing is a mix between bandwidth and resource usage (if I'm not mistaken). In my opinion, it's fair because bandwidth optimized webapps may use a lot of cpu and ram resources and almost no bandwidth which may lead to money loss for their part. My main gripe with these issues is the lack of or "hidden" communication from their part.
Don't get me wrong. At MRP sometimes we don't communicate with our users about changes that may affect them to avoid ruining the experience with annoying popups, but we do when they are major. We also publish the changelog for every webapp and Windows app update.

Still, I would recommend any power-user starting with web technologies to signup with NFS because of how inexpensive and easy it is to setup. But the best part from NFS is how their system encourage developers to optimize their code to spend less resources and thus money. I don't think MRP could become what it is without NFS and I thank them for that. :)

azure.jpg

Mini Radio Player now has a dedicated virtual machine in Microsoft Azure platform. If you are getting faster responses when opening any list or radio, it's not placebo. It's indeed faster!

The virtual machine for the first day of operation is getting faster overall response times compared to the previous hosting service. It's a dedicated virtual machine and not as broad as cloud-hosting so it's expected.
Most issues should be solved for now but there might still be an issue with e-mail sending. E-mails might go to the user's spam box but this should get fixed while mail servers adapt to the new server IP (let's hope so).
The host transition was mostly painless because most work was done for a couple of days before. It took at least four days to configure and migrate all the stuff to the new server. It was hard work but in the end was for the better.

This was a necessary step for Mini Radio Player to breathe and grow better and larger.


Unified API

2014-11-22

It's here and it's turning out great! Mini Radio Player had separate APIs for different platforms. One API for the Windows Store Apps and another one for the WebApp. It started that way to avoid conflicting with the current web api and also due to limitations regarding versioning.

Windows Apps (or any other non-web app platform) can't be updated in real-time like websites or webapps so versioning is mandatory to support legacy versions. It may take days to store platforms update the app to their users.

The unified API brings versioning to the webapp and merges everything in one single place. This means much easier maintenance and less prone to bugs during development and deployment. This also means a better and consistent experience between apps from different platforms.

We're preparing to bring the latest features available on the web app to the Windows Store App. This internal update was required to keep Mini Radio Player going forward. You'll won't notice any changes but there's so much that was changed and improved behind the scenes. Similar methods were merged (some are still in the process of being merged), a new versioning system was created, reduced server resources required for some functions and a lot of debugging and testing to make sure everything is working as it should be.

Another great step towards a better radio platform.

Mini Radio Player 5.0

2014-11-06

Today we will release version 5.0 with an enormous amount of updates that should improve the overall user experience with faster page loads, new and improved features and much improved visuals.

Version 5.0 has been in the making for a long time now and it should be ready for general consumption. Not everything got to a state of perfection but that's no easy task as there is a lot of stuff to deal with in this platform. Some stuff might still be unfinished and it should be polished in the next days.

Also, Mini Radio Player got a new logo. This logo should better reflect what Mini Radio Player is about.

logoabout.png

Some hiccups might occur during the upgrade.

Hope you enjoy!

Right Now On Preview

2014-09-29

Are you ready?