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”
A very special yet belated birthday welcome goes out to Reiko Clara Copeland, the newest and youngest member of the BCmoney family.
Being due today – but arriving over a week early at approximately 8:20pm AST on Thursday, April 29th, 2015 – my daughter and second child Reiko Clara Copeland was born a healthy 3.03 kilograms (6 pounds 11 ounces) to Bryan Copeland and Nana (Kurata) Copeland. She was delivered safely at the maternity ward of the Moncton Hospital after a roughly 30 minute, and almost pain-free (compared to the first one according to my wife) delivery.
Rockin’ the “Bad to the Bone” shades her brother rocked before her…
This is the first revision of my quick and dirty Podcatcher (podcasting client).
It adds three new features:
- Ability to search for Podcasts by name (via iTunes API)
- Resolving the actual RSS feed URL from the Podcast ID
- Caching a copy of the RSS feed on the server in XML and only requesting updates if changes have been made
The last features I want to add in my next post will be the ability to arrange and sort multiple Podcasts you’ve “subscribed to” by dragging their “album art covers”, and . This little Podcatcher app would by then have pretty much the full capability of the native “Podcasts” app (official Podcatcher from Apple).
I’ve done quite a bit of research into Podcasting lately, particularly because they are making a comeback in popularity, far surpassing their original interest. There are a number of factors contributing to this resurgence, including:
The “Internet of Things” (or IoT) is an evolution of microprocessor engineering, sensor innovations, wireless communications technologies, and of course the Internet itself. An IoT “thing” could be any natural or man-made object that can be assigned an IP address and provided with the ability to transfer data over a network. For example, inanimate objects (i.e. many cars have more built-in sensors than early NASA shuttles for doing everything from alerting the driver when tire pressure is low to regulating anti-lock breaking systems or airbag deployments during emergencies), animals (i.e. a wild animal tagged with biochip transponder to track position/population size or migration patterns) or people (i.e. an elderly person with a heart monitor device or any other implant or device which tracks health data). In all of the previous examples, “things” are provided with unique identifiers and the ability to transfer data over a network without requiring human-to-human, human-to-animal, or human-to-computer interaction. A major question of this Internet of Things is now what the “killer applications” will be. As in, what real-world problems will be solved, what efficiency improvements can be gained or which tangible benefits can be realized for the end user? By connecting more and more devices (thanks to the proliferation of IPv6 addresses, enough to give every atom on Earth’s surface a dedicated IP), we are of course creating more and more usage data, observational data and metadata about the interactions of these devices and users within the rest of the world, which has also placed even more importance on BigData. Certainly, a big part of IoT will be task automation (the absence of a user during operation of devices and their software), enabling devices to function more and more autonomously and theoretically freeing up users from manually entering commands via a command-line or clicking/tapping on controls within a user interface. Enter the service If This Then That (IFTTT), which enables you to “wire together” the capabilities of or otherwise integrate data from two disparate sources to accomplish a particular goal. 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.