moore’s law and stuff

Just ordered a very cool oscilloscope by SainSmart to work on the Raspberry Pi/NeoPixels project. My last clunky, large oscilloscope from eight years ago easily weighed in over 20 pounds to heft it around and cost over $400 (minus shipping of course). The older one took up an entire workbench in footprint. The new one weighes about 80 grams without its battery, fits in your pocket and costs less than half that price.

Moore’s Law is the observation that the number of transistors in a dense integrated circuit doubles approximately every two years.

Keep in mind that Moore wrote this guesstimate in a paper back in 1965, long before the globalization effect of electronics took the market by storm.

SainSmart

If he envisioned things like this back in the sixties then he was cleverer than myself. Although I grew up on The Jetsons and just knew that we’d be flying our cars to work by the year 2000, this miniturization craze wasn’t something that I would have dreamed up. There’s was a certain limit to how tiny things could be due to the size of our own hands being a constraining factor. Someone still had to assemble it, right?

Tiny is the New Black

Speaking of which, I recently had to buy the tiniest screwdriver at Frye’s to remove the tiniest screws I’d ever thought possible in a commercial product. These are called Pentalobe screws from penta (“five”) and lobe (“times harder to find than a grain of sand if you drop it into your carpet”). Seriously, don’t drop these screws.

SONY DSC

Imagine real life for a moment and things aren’t zoomed in for your convenience.

Whatever you do, shy away from the laser-etched metal kits of Star Wars figures that require that father from “Honey, I Shrunk the Kids” fame to get his kids to put them together for you. This project will make you angry at yourself for being unable to do something that humans can’t do:  build tiny things with our big hands.

R2D2

What would it take to work at an Apple factory these days? There’s little chance that these are put together by humans, I’m guessing.

iWatch

What sucks is trying to work on an iPhone these days, especially if you have to replace a component. I keep buying tinier pointy tools to assist in the removal of and replacement of these type of modules.

I try to develop good working skills which help to prevent the loss of tiny things. Some of these are so small that the slightest breath could send them across your workbench. My current trick is to use tape on my workbench so that tiny things will stick to it.

And of course, someone had to build the wearable ring computer which probably wants to be used in digital signing or two-factor security, I’d guess. Or if you work for the Mafia, maybe you just sign someone’s face with this. It looks like it would hurt, tbh.

16labs-ring-computer-2

And then there’s the contact lens monitor since we don’t have enough eye fatigue yet by the end of an average business day.

contactlens

If you thought that nanobots were a thing of science fiction, guess again. These are robo-scallops which are designed to move around inside your body. Because as we all know, scallops are so good at healthcare. Anyway, since they’re powered by an external magnetic field, they don’t require batteries. That’s a good thing since I don’t have an AAAAAAA batteries lying around.

micro-scallop-1415079090210

It’s almost as if that finger is looking at me with tiny, tiny eyes. Now I’m creeped out.

Advertisements

flogging a dead horse

Many times in my career I’ve been at some technical crossroads which demanded a decision on my part:

  1. stay the course with some primary skillset I’d been developing or
  2. branch off on some new expertise.

If you think about it, that’s a pretty big gamble.  What will hiring managers be looking for two or even five years in the future?  What will look better on your résumé, a couple more years of experience in the old skillset or the old skills plus the two years of the new skills?  Is it possible that continuing to work with the old skill will now somehow look bad for your career?  But then, if you include too many skills does it look like you’re not focused enough on anything to actually have expertise?

Recognize Trends

I’d suggest that the following trends are appearing in the development playing space.

  • Java is no longer trusted:  Oracle’s Java was a good idea back in the early ’90s.  It allowed coders to write one set of programming which could be compiled and then distributed and run on a variety of platforms.  Several security-related issues with Java have forced many to outright ban Java from workstations within organizations.  Apple’s Safari browser blocks the plug-in for Java now and Microsoft Internet Explorer in newer versions disables Java by default.
  • Objective-C is a pain:  Apple probably should have replaced this language when it introduced iOS.  Since it only really is used for Mac OS and iOS development, a coder’s skillset in this language limits them to just Macs, iPads, iPhones and the Apple Watch.
  • JavaScript is the new black:  Open source and Node.js have invigorated the JavaScript language.  In the past it was only really used for client-side browser validations and such but today, it’s being used for almost anything on the client or the server.  PhoneGap allows cross-platform phone app development in JavaScript, threatening to destroy all competitors in this space.  In Tolkienian terms, Javascript is the one ring to rule them all.
  • C and even C++ seem dated now:  C (circa 1972) and C++ (circa 1979) are wonderful languages and yet they’re over thirty years old and that makes them seem stale to coders today.  C# (circa 2000) is now over 15 years old and is beginning to feel the same fate.
  • .net is only for Windows:  Even though Microsoft had originally intended .net to compete with Java as a multi-platform coding option, you don’t see this in practice since nobody has worked on a UNIX .net platform to allow this to take place.  The trend would be that single-platform solutions don’t have enough market share to ultimately survive the test of time.
  • Every day there are more coders entering this space:  Schools globally have been pushing technical careers over the last three decades.  Outsourcing websites and better English training and translation software are allowing people in other countries to compete more effectively with U.S.-based coders.
  • It’s not just keyboards and mice anymore:  Hand-held devices, touchscreen monitors and see-through goggles may be the norm soon.
  • Apps and stores (not programs and major versions):  It used to be that a new version of a program was delivered and a major update cost money.  An app now usually comes with unlimited updates and yet “in app purchases” still allow a stream of money for the developer.  In fact, these updates allow the developer another marketing opportunity to up-sell the customer something else.  Apple has made so much money with iTunes that Microsoft has completely re-tooled their own operating system to chase that same business model.  Google has done the same with their Android platform.

See the Future

To me, the future of coding will embrace anything that will allow one set of (familiar) code to be compiled to multiple platforms.

  1. Until the next “new, new thing” comes along, it looks like Javascript (in general) is for now the core language to know.
  2. Some interesting things appear to be coming from the Javascript ECMAScript 6 (ES6) standard.  When a sufficient number of browsers support it, this new standard (specifically) should be another good skillset to have.
  3. Node.js has enjoyed an amazing degree of implementation throughout the world in its short lifespan.  Knowing how to code to this would be in your best interest.
  4. HTML5 has been used in a fair number of high-profile websites, enough to ensure its popularity for a few more years.
  5. The github source code repository has over 30 million individual repositories in place and has built-in support in many other systems which can pull code automatically from it.  It looks like github will be around for a while.
  6. Several popular languages will likely be effectively dead soon for a variety of reasons:  Java, Objective-C, Visual Basic, C, C++, .net and Swift to name a few.

Be the Future

If you want a job as a coder in the future it’s time to start actively steering in the right direction instead of just passively continuing to use the platforms you’re now on.  If you don’t have the skills I’ve listed above then consider taking on a project to learn one or more.

If you’re currently embedded on a team that uses Java, for example, then I’d suggest that it’s going to be increasingly harder to find work elsewhere. Given that it’s becoming harder to find coding work now with all the competition it’s more critical to possess the skills that managers are looking for on a team.