Pebble, a company and SmartWatch brand started by Eric Migicovsky in 2012, set the standard for SmartWatches and in many ways single-handedly ignited an entire SmartWatch industry, totally separated (yet later tightly integrated) to the Fitness Band & Activity Tracker craze which was separately growing. Each of these types of products fall within the broader Wearables market, and often get lumped in with a plethora of other devices which are all considered to be part of the “Internet of Things (IoT)”. The goal of a SmartWatch product (other than generating sales and profits for its company) in many cases, is thus to be capable of acting as a “control platform” for the IoT. There is much promise in being able to be more productive and manage one’s digital lifestyle, without being one of the so-called “SmartPhone zombies” who are constantly staring down at their smartphones rather than interacting with the people and world around them.
As a device, the SmartWatch promises to maintain the level of “constant connectivity” society, work and family/friends have come to expect of one another somehow in this crazy hyper-digital modern era, yet teases at the possibilities of a little relief in manageability and having information available but only taking out your phone to “dig in further” when absolutely necessary. In short, it makes it that much easier to ignore the constant buzzing, vibrating, bell chiming & ringing of SmartPhones as they receive Message Center Notifications, SMS texts, IMs, Chats, Emails, Calendar event updates, Video conferencing sessions (Facetimes/Hangouts/Skypes), and yes how quaint, even still occasionally Phone calls. At a glance you receive notifications pushed over to the watch from the phone via Bluetooth and can see at a quick glance without taking out your phone whether a given piece of distraction is truly worth your time or not at a given moment. Time is valuable, and watches not only help you be more timely but when they are smart they help you manage your entire life better as well. It also helps simplify keeping track of your physical activity (if you’re into that sort of thing) without needing a myriad of other wearable fitness gadgets. Let’s take a look at how the various options stack up, premising it with the following graphic which represents the “Hollywood-fueled” somewhat unrealistic dream of what a SmartWatch can do for you:
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”
This blog post will summarize my recent Raspberry PI 2 – Canakit unboxing & configuration. I purchased the kit as a sort of “from-me-to-me” post-holiday gift as I have been thinking about doing so for quite some time and when the Raspberry PI 2 kits fell in price due to rumors of the pending release of the new Raspberry PI 3, I realized the time had finally come to dive into the world of PI.
The first thing you’ll notice if you’re looking to make the same sort of “pre-RPI3 release” purchase, is that this kit does not include the extra attachments required to do DIY electronics projects, and you would have to buy a separate components kit later or find the components piecemeal elsewhere. In hindsight, I would suggest to go with the full kit if you are even slightly thinking you might want to get into the electronics experiments. If you just need a really cheap computer or have a plan for a basic DIY Home Theater or DIY ROM/Emulator Gaming Console, then you can stick to the first cheaper starter kit and have pretty much everything you need (except possibly a few peripherals like console-specific USB controllers if you’re doing gaming).
I had no idea what I wanted to do, so I started out with the basic kit, which I got slightly cheaper on Amazon in a post-holiday sale than what the same kit is advertised for elsewhere.
Unboxing the Hardware
As soon as you take everything out of the box, ensure you have all the components needed. The official hardware guide shows you everything you need to begin (all of which should be included in your kit).
Ensure that you have:
- Raspberry PI (any model will do, but I personally chose 2… with 3 Bluetooth & WiFi are onboard so don’t need to take up USB slots)
- TV or Computer Monitor to hookup to initially (won’t need this later once we are done configuring)
- HDMI cable to plug into both the Raspberry PI and the TV/Computer Monitor
- USB Keyboard to type into the command-line (you’ll be typing alot initially!)
- USB Mouse to navigate to the required applications (and check out the menus and various apps installed)
- AC Adapter (power supply to turn it on)
- 8+ GB MicroSD card or SD card (depending on the Raspberry PI model you chose)
Without an OS, the Raspberry PI is just a curious box of chips and hardware with so much potential waiting to be tapped, but largely nothing more than a fancy paper weight. The first thing you’ll want to do is pick an OS and install it onto an SD card (or MicroSD card) so you can begin experimenting.
As the instructions on the official Raspberry PI site state, your best bet as a beginner will be Raspian (a Linux distro derived from Debian but designed and streamlined specifically for the Raspberry PI). I had trouble with the Operating System that came with the Canakit “Complete Starter Kit” and had to flash (wipe out and reformat) the provided MicroSD card in order to put a later and greater version on to the card. Once I did that, I was finally able to get through the boot process and get it installed. After you follow the steps in the official Software guide you should have done the following:
- (optionally) Flashed the provided SD or MicroSD card to start fresh
- Downloaded the ZIP file for NOOBS “OS installer” (offline version, or files for your chosen OS directly)
- Extracted the ZIP file to your computer to make it available to card
- Setup the NOOBS OS installer (or chosen OS directly) to your card
- Connected all the Raspberry PI hardware
- Gone through the NOOBS installer wizard on your Raspberry PI
- CHANGED THE DEFAULT USERNAME & PASSWORD (can’t stress this enough, do this before you connect it to the internet or even before opening up your device to Bluetooth connections for the first time)
- Connected to your local (home/office) WiFi on the PI (if you have a WiFi dongle or PI model with built-in WiFi)
- Tested your Bluetooth connectivity (if you have a Bluetooth dongle or a PI model with built-in Bluetooth)
- Restarted your PI and ensure the OS comes up successfully and saved all your configuration changes (if not troubleshoot)
CAUTION: Many in the PI community online have mentioned they corrupted their SD card during poweroffs before the PI had completely halted. For that reason you also have to be extra careful if you’re thinking of doing “portable/mobility PI” projects where you’d use an external battery pack or power source to enable the PI to be used on-the-go. When this happens you’ll need to reinstall everything and potentially lose all your files, so be sure to only power down once you have fully shutdown your PI. Thanks to it’s low power usage and heat radiance, most people just leave it running 24×7 once setup, but you don’t need to do this, just take care with the shutdowns and reboots. If you have alot of time-consuming changes or important work you’re doing with the PI that you’d be devastated to lose, remember to back everything up to another device and/or on a file-hosting service. I use a combination of backing up indivudal key files to my laptop, backing up the whole image to an external hard-drive, and all my code changes go to a Git repository (i.e. local, GitHub, BitBucket, etc). I don’t do the files or image that often, but at least once a month or more when I’m particularly active with it and alot of changes are made. Code will be saved for every commit though.
There are some things you’ll still want to configure, but you could stop here if you just wanted to make sure everything in your kit works correctly. For practical software and hardware/electronics development projects, you should proceed with the following useful configurations: Read the rest of this entry »
It is still in many ways the early days of innovation in the several sub-categories of Audio Recognition.
Thanks to technological advancements, microphones have become smaller and smaller (perhaps to some extent this has been driven by the post-war and Cold War eras where espionage became so critical, so governments worldwide competed producing better and better audio recording technologies). Either way, a good Microphone is the key technology to ensuring high-quality accuracy & results. While software solutions are increasingly capable of making due with embedded microphones (such as the commodity grade ones that tend to come installed in Mobile Phones, Laptops or other devices), a good external Microphone is essential for high accuracy. Examples of external microphones include wearable headsets or standalone mics connected via Bluetooth, USB cable or Analog/Digital cords. The technology has now improved to the point that the average person can produce audio on par with that of major production studios, all within a reasonable budget.
What was said?
Who said it?
Security companies have started adding Voice Recognition capabilities to their systems since _____ .
Something the Semantic Web promised but had not initially delivered on was an emergence of Intelligent Agents (i.e. code-powered Personal Assistants). Today, we finally see some of this promise being realized through things like Siri by Apple, Cortana by Microsoft, “Now!” by Google and Alexa/Echo by Amazon.
Microsoft has offered Windows-specific OS-level Speech API (SAPI) since WindowsXP and developers have been integrating Voice/Speech into their Windows apps for a while now, but now it will soon also offer web-based APIs through the announcement of “Project Oxford”. Project Oxford is aimed at building a set of intelligent services to support information retrieval which can optionally tie into the Bing Search APIs (which supports queries by content type including Web, News, Images, Video, )
IFTTT finally just released its own API (sort of) when it announced the introduction of its new “Maker” Channel which may very well be the closest we ever get to a true API. It offers HTTP-based activation of Actions to carry our when invoked or Triggers which can be combined with another service.
The Maker Channel extends the power of IFTTT to any DIY project, big or small,” said the company in a recent blog post. “You can now build and connect Recipes to any device or service that can make or receive a web request.”
Since launching nearly four years ago, If This Then That (IFTTT) has provided a web-based platform for “thing” integration towards realizing the promise of the Internet Of Things (IoT) helping to make our lives simpler rather than more complicated as it often does as new technologies continue to be introduced.
For a quick refresher from my previous post on IFTTT’s role within the Internet of Things, it enables its users to authenticate/authorize and inter-connect a variety of tools, devices/sensors, applications and web services through unique “recipes” that are based on an “if this happens, then do that” formula. These could accomplish anything from the serious (such as automatically receiving a text message if suspicious activity is picked up by your home surveillance system), to the fickle but convenient (for instance backing up photos uploaded to Facebook which have a particular tag to a dedicated Dropbox folder). Recipes like these have all been created by the community and are free to use (unless you wish to mark your recipe private, and either way the data you enter into your recipe of course stays private and only a template of it is shared)
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.