Behavior, Content, Money – 3 Things you should never give away for free!!!

BCmoney MobileTV

HTML Tutorial and Web History lesson

Posted by bryan on May 21, 2016 in AJAX, Flash, HTML, JSON, XML with No Comments


No Gravatar

Today, something unexpected happened. I had the (somewhat unplanned and impromptu) pleasure of showing the ropes to the “new recruit” at work, a student here for a work term over summer break.

Now, we’re not necessarily doing that much coding here yet, as we’re still in the process of bringing back large portions of IT functionality in-house. We do, however, do a lot of software configuration, release management, testing/QA tasks, and, we are ramping up to use a major enterprise CMS to be able to create front-end content quickly (HTML/JS/CSS backed by JSP & EJB following OSGI structure).

I’ve always wondered in the back of my mind, if I were “in charge”, how would I more gently introduce the younger generation to the world of “enterprise programming”? Certainly the “enterprise world” is often significantly different, if not completely far-removed, from the real-world of cutting edge software development based on agile methodologies and lightweight web frameworks, co-developed with the customer in real-time, or implemented competitively overnight at a weekend hackathon. It is also far-removed from the naiively specialized world of “academic coding”, where “programming problems” (albeit sometimes very tricky ones) are assigned with a very clear set of up-front requirements and well-defined metrics for acceptance, where every assignment is given a certain amount of time to complete and graded for completeness and of course for “originality” or “ability-to-follow-the-book-without-copying” (where copying any minor component is seen as the devil’s work, labelled plagiarism, and ostracized).

Enterprise application development on the other hand, often times has no clear-cut requirements, no well-defined acceptance criteria (other than customer happiness) and is both behind schedule and over-budget before coding even begins. That thing about the no copying? Yeah that’s tossed out the window in favour of cutting corners and “getting it to market” as quickly as possible, often at the expense of quality (or in some cases even the development team understanding the solution, the most recent case that comes to mind is this hilarious StackOverflow verbatim copy “programming faux pas” from a Nissan connected car developer). All that being said, enterprise application development isn’t that hard, just more complex and frustrating than greenfielding, open source work, or even consulting. So it turned out to be a good opportunity to take a stab at it, as the student in question only had a year of Computer Science so far and despite some exposure to Java had not much in the way of Web development yet as those courses were coming later in the program. He did however, have a healthy interest in the Gaming industry, an industry which is increasingly finding an audience and monetization options for its wares on Mobile and Web platforms.

 

“The only thing constant is change”

Read the rest of this entry »

LayerPlayer released for SkipSearch

Posted by bcmoney on December 21, 2014 in AJAX, Cloud Computing, HTML, JavaScript, Semantic Web, TV with No Comments


No Gravatar

Announcing the availability of SkipSearch’s new Layer Player ALPHA version. This is still early days even though its a multi-year project for me, as I continue to work on this in my very rare spare time. This new feature will much more readily bring to light the capabilities of the recommendation engine built under the hood of SkipSearch (powered by OpenRecommender). With this release, SkipSearch is effectively moving from Alpha to Beta in 2015 and getting further and further from vaporware and inching slightly closer to being a legitimate full-blown, widely usable (and hopefully well-used) Web 3.0 application. Please take a moment to check it out, and sign up for the BETA if you haven’t already:

131818816_80_80

 

For comparison’s sake, here’s the architecture of a typical Web Crawler that powers most Search Engines:

Read the rest of this entry »

JS Podcatcher (a Podcast client written in JavaScript)

Posted by bcmoney on November 29, 2014 in HTML, JavaScript, Multimedia, TV with No Comments


No Gravatar
English: The "Made for iPod, iPhone, iPad...

English: The “Made for iPod, iPhone, iPad” emblem appearing on accessories approved by Apple Inc. for iPod, iPhone, and iPad. (Photo credit: Wikipedia)

So just this month my 5-year old iPhone3GS finally bit the dust. I had been hanging on and managed to extend its life well beyond its 3-year Telco contract (which I immediately cancelled the day I was out) by pairing it with a MiFi hotspot for much cheaper VoIP-based calling and using data-intensive applications only when on WiFi. That trusty iPhone3GS made it through a major liquid submersion (thanks to the good folks at Atlantic Cell Phone Repair) two cracked screens (thanks to the good folks at iCracked). At some point I may even replace the screen again, which is what’s gone a third time. I’m pretty stubborn though, and now that I’ve finished off my Mobile contract for the MiFi as well, pretty much at all costs I really didn’t want to have to buy another discounted device which usually requires one to agree to the terms of a foolishly one-sided/restrictive 2-year or 3-year contract; likewise, I really don’t want to shell out anywhere near the full asking price in the $500-$1000 price range for a new smartphone. So it’s either go back to my old Nokia flip-phone and live in the early 2000’s on a basic voice-calling only plan, or, hack my old 4th generation iPod Touch into something with phone call abilities. Of course, I opted for the latter!

iPhone 3G and iPod Classic 5G.

iPhone 3G and iPod Classic 5G. (Photo credit: Wikipedia)

Luckily thanks to an excellent VoIP app called BRIA (of which a 4th gen. iOS 4 version is still available in the iTunes App Store), I was able to continue doing voice calling by using my Anveo VoIP service (highly recommend this low-cost VoIP provider, please enter Referral Code 5334764 if registering). I was already using Anveo through BRIA on the iPhone, over MiFi when on-the-go, for over a year and a half since I got out of that first contract. I’ve described Anveo in great detail in “My Experiment in Cutting Cords (and costs) with VoIP” where I went over setting the VoIP service up on an iPhone (with BRIA app) and just how much could actually be saved per month by taking the plunge and switching to VoIP instead of a traditional Telco calling/data plan. I’ve found that with a little patience and using replacements (such as Slingplayer in place of Bell MobileTV, or, SoundHound in place of Shazam) along with some occasional disappointment (can’t get older versions of Netflix, Skype, Fitocracy, and several other top apps), I was able to get a good amount (about half) of the apps I was most frequently using on my iPhone3GS, downloaded to the iPod4th gen, in their older iOS 4-supported versions.

One somewhat irreplaceable app though that I just simply could not find, nor find a replacement for was the basic “Podcasts” app built by Apple (common alternatives such as Overcast, Downcast, TuneIN, Slacker, and even RSSradio all did not work on my device either). I mean, seriously Apple, WTF!? Even the very first iPod devices were within a few years of their release to become known as the cannonical “Podcatcher” (Podcatcher means a podcast downloader/player).

The term “podcasting” itself was first mentioned by Ben Hammersley in a February 2004 article in The Guardian newspaper as a portmanteau of the words “pod”, from the success in consumerizing digital music with the “iPod” line of Apple products and “broadcast” (as in traditonal Radio/TV broadcasting to many receivers over a wide area, constantly). As such, the native “Podcasts” app has been around since the early days, as Podcatching (better known as receiving and listening to Podcasts), became one of the main functions of iPods just as it continues to be a core functionality on the many other iOS devices. Why then, are older (iOS < 6) versions of the Podcasts app not still available through the iTunes App Store? The app existed back then, for those devices, and now its just plain unavailable it seems. Why not keep the old versions around? What if a legacy iPod user (anyone still on iOS 4 or lower for that matter) accidentally wipes or restores their device to factory settings? Tough luck if they didn’t store a backup that had that legacy version of the app which still runs on their device. This is an example of planned obsolescence at its worst!!!

Apple be damned, could the Podcast app’s functionality be replaced with a quickly hacked together web app though? Being a developer, that’s the question I wanted an answer to. So I realized it definitely should be doable, as Podcasts to me have always simply been RSS news feeds with links to Audio files embedded in them in a variety of ways. Thanks to Apple’s aforementioned “Podcatching” dominance, and iTunes’ position of oligopoly, Podcasts also need to be garnished with plenty of Apple-specific syntactic metadata to satisfy the behemoth that is the iTunes Store and rank better therein, so have to be able to parse that crap too.

All that to set the context for this experiment, which aims to concisely (I promise hah, from here on) describe how I took my original RSS parser from the post “RSS Reader in jQuery .vs. JavaScript”) on using JavaScript and/or jQuery to implement an RSS news reader, and modified it a few weeks ago to allow me to read the media links and embed codes.

Read the rest of this entry »

Musa Betsu Kyu Judo club website launch

Posted by bryan on August 1, 2014 in E-Learning, HTML, Philanthropy with No Comments


No Gravatar
Japanese judoka ,Jigoro Kano(right) and Kyuzo ...

Japanese judoka ,Jigoro Kano(right) and Kyuzo Mifune(left) (Photo credit: Wikipedia)

Just a quick update on what I’ve been up to lately in my spare time (well one of the many projects), working on the site for the local (Greater Moncton area) Judo club called “Musa Betsu Kyu”. It is run by Sensei Earl O’Blenis who is an excellent Judo instructor that we’re fortunate to have in the area. If you have a moment please signup for the site and/or Facebook Group and support the club.

The highlights of the site so far are the ability to pay for your monthly club dues online with a single click (for the forgetful you can either set it up as a monthly subscription or one-time payment), as well as two interactive charts; the first being the “Gokyo Tachi Waza” (Judo’s 5 levels of standing techniques) and “Ne Waza” (Judo’s ground grappling/wrestling).

Check out the new website/blog at:

monctonjudo.com

Read the rest of this entry »

HTML5 Audio Player Jukebox

Posted by bcmoney on May 16, 2014 in AJAX, Flash, HTML, JSON, Multimedia, XML with No Comments


No Gravatar
A jukebox icon

A jukebox icon (Photo credit: Wikipedia)

Here’s a piece of work I did on a freelance basis back in early 2012 for a client who allowed me to retain the full rights to the code as a “library” which I could distribute. (I offered them two prices of course, one cheaper rate where I retain the rights and one premium rate in which the code was exclusive to them and I would not distribute). After explaining that based on their request, I would be building it as HTML5/CSS3/JS front-end code that lives in the browser client and regardless of which choice they made it would be entirely possible for someone else to simply hit “view source” and/or sniff out raw traffic packets to copy it in full, they of course chose the cheaper option; they knew from all the hype around HTML5 in 2012 that they wanted it done in HTML5 and browser-based without relying on Flash (using Flash as a fallback only). Of course, the ease with which it would be copyable would depend entirely upon how well they protect their site through SSL-certs/code-signing/code-obsfucation/disabling-ViewSource or for example, put it behind a web viewer in a Mobile App or RIA viewer (Flex/Silverlight/JavaFX) and hiding URLs, if they really want it private. But that’s another point altogether!

They chose the cheaper option so I’ve been sitting on the code and until now I had been a combination of “too lazy”, “too busy” and “out-of-respect-for-them” not bothering to release or advertise the existince of said code. However, the time has come to unleash it! For those who’ve been at this for as long as me or longer, you may recognize that it is inspired heavily by some earlier 2009-2010 HTML5 audio demos done by the Mozilla development team as far as the look & feel; but I’ve added quite a few new features to it (for example the Flash-based fallback for old browsers like IE 5-8), CSS for a slick flat direct-link playlist if both HTML5 & Flash are missing, and the main feature which is support for both XSPF and JSPF playlist formats, which are by far the most popular open playlist data formats which really should be supported by all Online Music services (but that’s another story).

Ironically enough (as I blogged about benefits and annoyances of skeumorphs last year) it is more of a skeumorph for my old iPod shuffle which had two simple arrows (left for “previous”, right for “next”) than it is for an actual Jukebox, but I’m still calling it a jukebox where you can pick from multiple albums as long as they are all aggregated to the same XSPF/JSPF Playlist. Either way, I rather like it and think it borderline qualifies as a flat-design, web-based version of a Jukebox. It was also a disproportionately lot of work to put together considering I did the work for quite cheap and it was ultimately only going to be used to play a specific band’s few albums they had at the time online. As mentioned, it can pretty much support up to 1000’s of songs at a time (though I haven’t tested its limits or ran any browser comparison benchmarks or anything fancy-pantsy like that). Either way, it should theoretically fit as many as could fit into a single XML/JSON file without bringing your browser to a griding halt when trying to fetch, load and parse it, which is definitely in the hundreds if not thousands of lines of items.

Here it is, with a modest 4 sample albums (only one song per album for rights purposes) with royalty-free music I downloaded from Jamendo before they went under and/or re-focused their “open music community”.

Read the rest of this entry »

BC$ = Behavior, Content, Money

The goal of the BC$ project is to raise awareness and make changes with respect to the three pillars of information freedom - Behavior (pursuit of interests and passions), Content (sharing/exchanging ideas in various formats), Money (fairness and accessibility) - bringing to light the fact that:

1. We regularly hand over our browser histories, search histories and daily online activities to companies that want our money, or, to benefit from our use of their services with lucrative ad deals or sales of personal information.

2. We create and/or consume interesting content on their services, but we aren't adequately rewarded for our creative efforts or loyalty.

3. We pay money to be connected online (and possibly also over mobile), yet we lose both time and money by allowing companies to market to us with unsolicited advertisements, irrelevant product offers and unfairly structured service pricing plans.

  • Archives