Release Notes

When you take an app from development to the app store, the point is to sell it, or get people to use it, right? (Don’t get me started about all the android test apps that people publish just to see if they can do it) That’s where marketing and advertising come in to play. Great technology is not a great product if nobody knows about it, or nobody uses it.

The transition from development to marketing happens with the release notes, that paragraph that goes along with new releases, in the “what’s new in this version” section. Think about that. Who usually writes these notes? Quite often, it’s a developer, because they are the ones that make the build and go through the app store publishing process. Who reads these notes? Customers. Not the VP of Development or your engineering manager. So why are most release notes totally worthless and unappealing to the customers???

When I work on a new release, I make a detailed change log with every bug fix or new feature. Maybe I updated a third party library, or used a new version of Xcode, that’s in there. This change log is meant for developers to read, not customers. Most of the stuff in there is unintelligible or irrelevant to the users of the app.

When a build is ready for public release, I take that change log and send it to the marketing department (in a small company like mine, that’s still me, but I change hats : ). Most of the details get filtered out, and the technical jargon gets translated in to what the end users will understand and care about. This is what becomes the “what’s new” release notes.

Companies are wasting a golden marketing opportunity when the release notes suck. As apps get updated, many customers will look at those release notes, even if “automatic updates” is enabled. Some customers will actually decide whether to update or not based on the release notes. You should capitalize on every opportunity you have to send a message to your customers.  This is when you can increase customer satisfaction, which leads to more word of mouth sales.

Here are some examples of release notes that suck:

Bug fixes” – What are they??? You are telling the customer nothing. Be descriptive, and put a positive spin on it. How about: “fixed a problem that some customers were having with search, and now it works much faster”.

We update our app regularly” – Oh how special. That’s like saying “this is the text that you are reading right now”. If you are too lazy to put a few meaningful sentences in there, then that implies you don’t care much about your customers, or you are doing secret stealth updates with features that customers don’t care about. And by the way, there are some companies that update their apps every 1-2 weeks. That is way, way too often. That shows a lack of planning and customers don’t like all that change.

See http://www.mydomain.com/release-notes.html” – This smacks of laziness. The app publisher is actually telling the customer to go visit a web page to save the app publisher the trouble of copying it here. And if you say, well, that web page is very long and contains too much text, then it is meant for a developer to read, and a shorter marketing version needs to be created for the “what’s new” section.

Optimization and UI enhancements” – So close to a good marketing message, yet so far. Be positive and encourage users to open your app to see the new features. How about “the leaderboard screen now shows your friends’ scores at the top”, “new snazzy visual effects when you reach a new level”, “you can change sound effects with just one tap”, or “app loads twice as fast now”.

Release notes are a marketing message, not an engineering message. This is your chance to remind users of features they may have forgotten about, or never used: “Enable lightning notifications from the main screen now”. You can talk about how great you’re company is: “We have been listening to you, and this version has the most requested new feature”. You can be funny (but don’t ramble on too much), and maybe someone will mention this to another potential customer.

One other thing… Be careful not to give the impression that your app is too buggy. For example, “Fixed a bug that would wipe out all user data” is pretty scary. If this is version 6.1 and someone reads that, you might be thinking gosh, how long was that bug in there and can I trust this app with my data? A more toned down version would be “Fixed a data loss issue that affected some customers with older devices”.

Remember, the last “what’s new” notes are also readily seen by customers who haven’t purchased your product yet. They appear on the same product page that the product description and system requirements appear. If you have one of those out-of-date or inaccurate reviews like “This is crap, doesn’t work on iPhone X” and your “what’s new” section says “Optimized to work great on iPhone X”, that’s a way better message than “bug fixes”. You are talking not only to existing customers, but potential new customers, too.

Release notes matter. Don’t be lazy. Make it a marketing message.

Advertisements

Hiring Robots

Having worked as a contractor quite a bit, I’ve interviewed at a bunch of companies and have participated in quite a few interviews. When I cofounded a high tech startup in Silicon Valley and helped grow it into a successful profitable business, I was “the guy” who made the decision to hire and fire several employees. There’s one thing I learned through all of this: most people aren’t very good at hiring. Most people are trying to hire robots.

In this article I focus on the engineering field, but most principles apply to all careers.

How did I come to this realization? Well, here are some good metrics: If a company has an open position for several weeks or months and there are lots of good candidates out there, that’s a red flag. If your company has a lot of turnover, that’s a red flag. If you don’t have a good company culture where employees love to work, that’s a red flag. If you are not consistently meeting deadlines (without overworking your employees), that’s a red flag.

Here are some clues that you might not being taking the right approach: If your “senior engineer” who has never been trained in hiring or management is making the hiring decision, that’s a red flag. Anyone conducting an interview should know which questions are legal to ask, and which are not. For example, you can’t ask “so do you have kids?”. Someone who has managed employees and projects, not just technical tasks, should be involved in the interviewing. These people know the consequences of a bad hire. Your senior engineer may be technically brilliant, but may not have the right big picture company perspective in mind (and all the points I bring up in this article).

If you grab your “junior engineer”, shove a resume at her, and tell her to “interview this guy” today, that’s a red flag. Not only do you run the risk of her asking the “no no” questions, she has no experience in interviewing and this can be very awkward for both parties. You should have a script that can be followed (if necessary), and each interviewer should have adequate time to read the resume and think about what to discuss well in advance.

If the CEO speaks to each candidate for an hour before there is any filtering or technical evaluation, that’s a red flag. That is an incredible waste of a valuable resource, probably the most expensive resource in the company. I do think a CEO of a small company (or senior manager) should meet each candidate sometime during the process, but if basic filtering can’t be delegated to someone less expensive, then that’s a sign of bad management.

If only one person participates in the technical evaluation, that’s a red flag. Putting all that responsibility on someone who is most likely poorly trained in how to do it properly is not smart. It’s good to get more than one technical opinion. I have personally been deemed under qualified and over qualified by the same interview team at the same company! On the other hand, being placed in front of a tribunal of 5 engineers grilling you on esoteric technical questions is also the wrong approach. Subjecting a candidate to such stress is not a sign of good company culture.

If your technical questions consist of things that can be answered by Google in less than 30 seconds, that’s a terrible interview. Gone are the days when you needed to memorize as much as possible to do engineering. Today, you need to be able to find information quickly, not memorize syntax or algorithms. If you are aware of certain concepts and features in a language or framework, you should be able to find sample code almost instantly. Being able to recognize good solid sample code vs crappy sample code is the skill you need today. Modern IDE’s autocomplete and fix your syntax errors so you just need to get close. I have personally been deemed technically unqualified after failing to answer a question that later I found on stackoverflow.com in 30 seconds (yes, I timed it!). Common technical interview questions I’ve seen are things like “code up the fibonacci sequence recursively”. Really? Why? I can find some very good sample code to do this in seconds. A better question is “look at this code and tell me how you could improve it”.

Of course, engineers do need to product new and unique code, and do need to construct good algorithms. The better way to evaluate this is to ask for a flow chart or high level description of the modules needed for a bigger more complex problem.

When it comes to formulating a good technical interview, remember how engineers actually do real work. We spend some time thinking about a problem, we peruse the internet for ideas and sample code, we optimize and customize, we test and fix our silly bugs, we refine what is working and make it work better — all of this without anyone looking over our shoulders. If you expect someone to regurgitate perfect syntax and memorize every API call while being timed in front of several engineers, then you are trying to hire a robot. Do you want to work with a robot?

One thing is undeniable: hiring the wrong person is worse than hiring nobody. Interviewing and training new employees is a very costly process. If you are not tracking this “cost”, then you should be. Once you decide somebody is not right for the job, then the process of trying to correct the behavior or remediate is also very costly. Having fired several people myself, I know it’s a very heavy drain emotionally and the hardest thing I’ve ever been paid to do. It is to be avoided at all costs!

On the other hand, you don’t want to be in analysis paralysis. I know of a company that is understaffed and has had a engineering position open for two years, in a job market that is filled with qualified engineers. Their “senior engineer” (with no training in hiring or management) has been spending approximately 6 hours per candidate, plus additional man-hours from the candidates and other employees who get pulled in, only to determine that every candidate (dozens of them) is not technically qualified for the job. There is a real measurable cost in the time spent by the senior engineer here, and an additional cost in being understaffed for so long.

If you can’t seem to find anyone who is technically competent, then perhaps your bar is way to high. It’s not really that hard to stump an engineer, if that is your goal. Perhaps you don’t have the proper company infrastructure in place. It is very difficult to find a “Jack of all trades” — those people are rare gems. If your engineering structure depends on everyone being an expert in everything, then you are doomed to failure. That is unsustainable. What you usually end up with is understaffing, over worked employees, and the engineers are “masters of nothing”.  Instead of the robot who is a “full stack engineer who can write iOS, android, and web apps, with extensive experience in back end server code”, perhaps you need to break that apart in to 2, 3, or even 4 job positions. Yes, it’s more expensive, but that might be what it takes for long term success. If you can’t afford to do it right, it is time to rethink your plan.

Another mistake is looking for a specific skill, and if you don’t find it, you move on until you find someone with only that specific skill. You are looking for the ability to learn new things quickly, not the ability to reproduce the past. Imagine asking Michelangelo “Have you ever painted the ceiling of a large building?”. He says “No”. The hiring manager say “Sorry, you are not qualified to paint the Sistine Chapel”. What you end up with is a house painter, and you just passed up on one of the greatest artists of all time.

Here are some skills or qualities that hiring folks rarely evaluate. To me, these are all “technical” skills because they are all needed to perform a technical job, or are qualities that are desirable in the long term as an employees moves up the ladder:

—Can you write effectively? Engineers need to communicate clearly and effectively. We write several emails every day, need to comment our code, need to comment our source code commits, and may even need to communicate with clients.

—Do you act professionally? i.e. Will you embarrass the company if you speak or meet directly with a client? You want engineers that can represent your company well, and instinctively know how to avoid sticking a foot in the mouth, don’t make promises that can’t be kept, and don’t piss off the customers.

—Do you play well with others? Do you work well with others? These are really two different points. Knowing the technical aspects of working in a team environment is one thing, such as good source code management, good code documentation, communicating with the team. The other part is getting along, being well liked, not pissing off your colleagues. One bad apple really does spoil the whole bunch!

—Can you think outside of the box? Some engineers are great at doing what they are told, even if the instructions or requirements are faulty. These are robots. You need engineers who can question a bad design, propose better solutions, and add value to the engineering process.

—Do you get your work done on time? This is really crucial, and some technical interviews attempt to measure this by giving a timed coding test, thinking that the amount of time you spend typing code is equal to your productivity. That’s nonsense that only a robot excels at. A good engineer spends more time thinking about the problem, asking questions, and exploring solutions at a high level than coding. Someone who gets tasks done on time is the guy who doesn’t take a long lunch and works a little later when a deadline is approaching. He’s the guy who fully understands a problem before diving in to it. He’s the guy who comes up with the right approach. He’s the guy who stays focused on the highest priority of the moment.

—What is the quality of your work? Is it readable? Sometimes I am asked for a code sample, but most often I am not. Sometimes the only code that is reviewed is the code which was written in haste and under pressure — not my typical code. You should ask for some sample code that the candidate is proud of. You shouldn’t look for the most clever algorithm or feature implementation, but the code should be easy to follow, clear and readable, and just enough comments where needed.

—Can you think on your feet (work without close supervision)? Supervisors are not around all the time. Sometimes you are given vague instructions, or incorrect instructions, or something happens that suddenly changes the priorities. You need an engineer who can see the big picture and stay on target, and an engineer who can fill in the blanks without grinding to a halt.

—Can you multitask well? Before starting any set of tasks, you should always know the priorities and deadlines. Always ask “which should I do first?” and “when do you expect this to be done?”. And after that, guess what? Constantly reprioritize and reevaluate. In the real world, especially in small companies, things change quickly and priorities can change daily. Each time you get handed a new task, you should ask “OK, but I’m also doing these other things, which should I do first?”. If an engineer has a good grasp of the big picture, that engineer instinctively knows how to reprioritize any new set of tasks.

—Do you have experience leading others? Ideally if you hire a good engineer, they will eventually be needed to lead others, at least at the technical level. Find out what the experience and potential is of your candidates.

—Do you have experience managing projects? Some engineers most definitely want to stay technical and not manage projects. Others find it rewarding and enjoyable. It’s nice to hire an engineer who can fill in when the boss goes on vacation or is too sick to come to work.

In closing, I find that most hiring managers and interviewers do an awesome job of finding robots, but a terrible job of finding good workers who have the necessary technical background but also secondary skills needed for the long term. If you hire well, then you reduce employee turnover and consistently get things done on time without overworking your employees. Don’t ask questions that can be answered by an internet search; do ask questions that reveal all the things you really want in a new employee.

Analyzing Pokemon Go

Pokemon Go is without debate the most successful mobile app in history, in terms of downloads, users, and revenues being generated. Why? How did this happen right in the middle of all the news that the “age of apps” was over, nobody uses apps anymore, and there were no new ideas left? I will admit, even though I never play video games, and I mean never, I gave this app a shot (hey, I had to know what my kids were so excited about or else I would be a bad Dad, right?). And you know what, I liked it! Not only does it give me an activity to share with my kids, which is always good, it caught my interest like no video game has ever caught my interest.

As a mobile developer from the early days of the Palm Pilot, I have been thinking about what makes this game unique and special eight years after the introduction of third party apps for the iPhone. Spoiler alert: it’s not doing anything revolutionary, it’s just nailing the details and execution, something a good designer could imitate (but on a smaller scale).

Easy Gameplay

First of all, it’s really easy to play the game. You don’t need three arms and reflexes like a cobra. You don’t need to memorize 15 different control combinations (quickly, do a backflip and turbo boost your death ray NOW!!!! No, wrong button!!!). The basic move you learn in the first 30 seconds is flicking a ball at a creature (called “pokemons”). It’s super easy, anyone can do it.

The second move you need once you begin to level up and get more powerful is to tap repeatedly on the screen during a gym battle. It’s the same move you use when your network goes down and you are trying to make the “send” button work : ) That’s all there is to the gameplay, no special dexterity or mad speed required.

Virtual Reality

Pokemon Go is not the first virtual reality game. There are tons of them. The difference is, most other games aren’t very “real” they are just “virtual”, meaning they take you to far away fantastic places. Pokemon Go inserts virtual creatures in to the real world around you. When you first see a little virtual bird or rat hopping around on the sidewalk, it’s pretty cool and entertaining. Stop, you almost stepped on a crab!

Pokestops, where you must physically travel to to get supplies, are tied to real world landmarks and locations. I discovered a pretty neat little fish painting in my neighborhood that I drove by 1000 times and didn’t know it existed.

Other players that you may encounter seem more real when they are nearby, not behind a computer screen on the other side of the world. You begin to identify with the virtual gyms that are in your neighborhood, and you build a sense of team spirit when you join forces with other players on your team (there are 4 teams you can choose from, associated with a color).

Mobility

The game is almost useless unless you are out and about. Name another video game that forces you off the couch… It’s really closer to a fitness app than a video game, a fitness app that encourages walking. (Another crossover app like this that comes to mind is a running app that chases you with zombies). By the way, in case you don’t know, driving or going at speeds above 20 mph limits the game so you can’t really “cheat” and try to be lazy.

To me, this may be the most fascinating part of the game. As I walk around, I discover the locations of new pokestops and gyms, and I will go out of my way (i.e. walk more) to walk past them. When one of my kids yells out “there’s a rare pokemon nearby!” it gets me out the door and walking when I might otherwise not be.

Goals, goals, goals

This is the addictive part of the game. Every video game has levels and incentives to motivate you to play more. Pokemon Go did not invent that concept, they just took it to an entirely new level (pun intended). There are so many things about the game that encourage you to play it just a little bit longer…

Acquire new pokemon – You get rewarded each time you add a unique new creature to your “deck”. There are about 150, so it seems endless, and each new creature is really cool to look at.

Medals – There are lots of medals that reward you for all sorts of accomplishments

Player level – As with most games, you increase your level as you play the game. This is a source of pride, but also let’s you encounter more powerful creatures and eventually battle in gyms.

Power up your pokemon – Every pokemon you acquire can be made more powerful, so you gradually build up the strength of your posse.

Evolve your Pokemon – You can also totally evolve a pokemon, turning it into a new and more powerful creature.

Hatch eggs – By walking, you hatch eggs, which give you more creatures and things you need (candies and stardust)

Buddies  – You can designate a “buddy” pokemon and the more you walk with that buddy, the more candies you get

Limited Supplies – You have a bag filled with balls to throw and other useful items to aid your never ending quest to capture more pokemon. You have limited supplies of eggs, candy, stardust, etc. that you can monitor. When supplies get low, it’s time to go out and replenish. You always need more balls and stardust so you can get more pokemon and get more powerful so the cycle can repeat!

Details

I must say, the graphics are elegantly simple yet beautiful. There are no 3D ray tracing shadows and textures that require a supercomputer to build and run, just detailed cartoon-like graphics. Each pokemon comes with creative animations that are just fun to look at. I admire how the creators of this game invented so many wonderful and unique creatures. As with any mobile app, the judicious use of animation can really make an app fun to use, and Pokemon Go is very fun to use. If done poorly, it could have felt like the card game like it was based on, but everything feels alive and is full of motion like a great Disney animated film.

I can’t imagine how many hours were spent perfecting all the art and graphics in this game.

Conclusion

Pokemon Go did not invent anything new or produce some technology that had never existed before. The makers of this game simply took all the fundamental concepts that make a game enjoyable, things that most designers would nod their heads to and say “yeah, of course I know that”, and executed extremely well. They emphasized features that appeal to non-gamers, who grossly outnumber hardcore gamers, and took the time to do things right.

Is this a fad that will fade away? Like anything, many of the initial people who jumped on the bandwagon early will jump off and seek out something more challenging and more complex. That is simply inevitable and that does not mean the game failed or is a short term fad. There is almost unlimited potential to add new features to this game to keep the faithful playing it for many months and years.

Can it be copied? Since Pokemon Go builds upon many, many years of the rich Pokemon intellectual property which includes books and TV series, it would take a company like Disney to even attempt that. Just the game design, engineering, and graphical design cost that would be needed is mind boggling. It is amazing that something so difficult to produce feels so simple to play. Steve Jobs would be proud of that!

Although most developers and designers don’t have the mega resources to produce Pokemon Go, the key points that appeal to users (see above) can be copied and integrated in to your own apps. I have three app ideas that came from “studying” Pokemon Go and several features to add to my existing apps.

Choosing Your Batting Order

Depending on your coaching philosophy, you may have different ways of choosing your batting order. At the lowest t-ball and coach-pitch levels, it might be completely random. To keep it completely fair, you should keep track of the last batter and rotate to the next batter in the next game. Not much to think about here.

Eventually, as players get older, there is more competition in the game and the pressure to win grows. Putting some thought in to your batting order can definitely increase your chances of winning. When coaching young teams, you need to keep a balance between winning and keeping all your players motivated. And don’t forget the parents! Like it or not, there is pressure from parents going both ways, toward being more competitive and keeping it “fair”.

I’ll just make one point about “fairness”. Let’s say you have a rotating batting order and try to bat everyone the same amount. That may sound “fair” but it is not really fair to the players who are putting forth more effort and building better hitting skills, and it’s not really fair to the team or to the parents who enjoy getting a win more than losing. Like I said, at the lowest levels of baseball that is the norm, but as players get older, everyone deserves to have the coach put some more thought into the process.

There is a tradition in baseball that the best power hitter bats fourth, when you are trying to be competitive with the batting order. Many times in youth baseball, your best power hitter has one of the better batting averages on the team. Statistically, my position is that you begin with the best batting average (or on base percentage perhaps) and work your way down. If you look at the math, players at the top of the batting order get more at-bats than players at the bottom, because rarely does a game end with the last player in the batting order. So, if the game is close in the final inning and you have 3 hitters coming up, you want those hitters to have the highest betting average possible. I’ve coached many games where the third or fourth batter in the lineup never gets a chance to swing the bat because the game ends with the final out while they are on deck.

Another coaching philosophy is to “spread out” your hitting talent so you don’t have a bad inning with 3 poor hitters in a row. Statistically, this does not work, because you end up with good hitters not batting more often than poor hitters. You end up with more runners (your good hitters) stranded on base. The bottom line is, to win more games you want your better hitters getting more at-bats.

Now it gets pretty depressing to always bat at the bottom of the order, both for the player and the parents of that player. In the middle levels of competition where winning is not everything, I may rotate the first batter (or you can do this with the third batter, let’s say, to keep it in the first inning). For example, let’s say everyone on the team gets a chance to bat first, no matter the skill level. So my worst hitter may bat first now and then. That is a pretty good compromise between winning and keeping all your players happy.

OK, let’s say as a coach you want to carefully pick your batting order based on performance. Without statistics, you are really just guessing. Players may improve steadily throughout the season, some players may get on a hitting streak, and some may enter a slump. It’s constantly changing. Having the batting numbers handy is the only intelligent way to go. You will also find your players more motivated when they know the batting order is based on results, and not “favorites”.

Baseball Pocket Coach makes it really, really easy to record batting results, and to keep those numbers handy when planning a lineup. I don’t know how many times I’ve seen a parent asked to keep the scorebook, and they look back and say “I don’t know how”. Even worse, they gladly accept the assignment, but when you try to decipher the results after the game, you can’t make any sense out of it so you don’t get any valuable stats. For youth baseball batting stats, you don’t really need to track every pitch and throw and use a special codes like “6-3”. A simple “Single” or “Popout” is all you need to help you with batting results. One or two taps per hitter and you are done. I designed the Baseball Pocket Coach app to be so easy you can coach a base and record batting results at the same time, or to hand it to a random parent with no training. If I’m coaching and using the app, I can quickly tap in the previous batting result while the next batter is walking up to the plate.

When you use this app to plan your lineup, it will show you the batting average next to each player’s name, and you can drag the names in to the batting order that makes sense. You can look at pure batting average, or the last two weeks batting average, or on-base percentage. No more guessing. I know that I have been surprised to see a not-so-good hitter have a high on-base percentage, usually because that player draws alot of walks. If you only rely on your gut feel, you will miss some things. If you have solid numbers, you can make more intelligent decisions, and tweak the lineup according to your gut feel. More tools = better results.

Baseball Pocket Coach app on iTunes app store

HomeKit for Home Control

I have been very interested in the “internet of things” for a while now, and I finally got around to trying out Apple’s HomeKit with a couple accessories. If you don’t already know, HomeKit is a technology that is meant to help you remotely control accessories, or devices, and create a “smart home”. Notice I called it a “technology” and not an “app”. That definition is pretty vague, and from what I have seen, 99% of the people I ask have no idea what it is all about.

Let’s say you have a light and you want to control it remotely. Maybe you want to turn the living room light on when you are away from home so it looks like someone is home. You somehow need to put that light on your home network, and somehow need to have a means to control it. That’s what HomeKit does for HomeKit-compatible devices, and Apple has wrapped their typical sugar and niceness around the process so that ordinary people can figure it out.

So I ordered a couple HomeKit compatible devices (both are power switches) from two different companies, iHome and iDevices because I wanted to see for myself what the process was like for a couple different brands. Because the ability to connect to a WiFi network incurs a certain amount of cost, a switch is more versatile than say a light bulb. You can plug a lamp in to a switch, or a heater, or a string of christmas lights, or anything you want. I don’t mind spending $35 on a switch (well, I mind a little : ) but that’s just too much for a simple light bulb.

The first thing to remember when unboxing a new device is this: don’t read the instructions! I have a prerelease version of iOS 10 and it comes with a new app from Apple called “Home”. This is all you need to set up and control most HomeKit compatible devices. The first thing written in the instructions is to download a custom app from the manufacturer, but that is no longer necessary when you have the Home app. The proprietary custom app may provide extra features, but I think it’s better to wait until you need something before installing extra software.

There is a typical “Add” button in Home, and after plugging in your new HomeKit device, you tell Home to “Add Accessory”. Home lets you set up “rooms” so you can refer to things like the “switch in my living room”. It’s pretty easy and self explanatory to do that and you can choose a room to place your new accessory. Each HomeKt device comes with a numeric code, and you will be prompted to enter that code or scan it with your camera. That’s all there is to it, the new device should now be ready to go in a minute or two!

Home displays a box for each accessory you add, and you can just tap on the box to turn the switch on or off. Tap and hold to get more options. For example, my iDevices switch comes with a built-in night light so it is like two devices in one, and I can change its color and intensity with a slider. All of this “just works” within the Home app. I had no trouble at all getting both devices set up within minutes.

In iOS 10, the updated Control Panel will also display your favorite accessories by just swiping left. That is very convenient for controlling them so you don’t even need to launch an app. FYI both devices have a push button so you can turn them on and off the old fashioned way, too.

The beauty of HomeKt is that it works with Siri, too. I can say “turn on the light in the living room” and it happens (I named my switch in the living room “light” because it is hooked up to a lamp and that sounds more natural). I can ask Siri “is the living room light on?” and I’m told. That feels pretty neat, I must say!

Now, my original goal was to do this remotely, while away from home. Obviously, a server on the cloud is necessary for this to happen, as well as an internet connection. If you want to download the app that comes with your device, and sign up for an account on their server, you can. However, I wanted to keep things as simple as possible without installing new apps or creating new accounts. That’s where my Apple TV comes in!

Since I had already linked my Apple TV to my iCloud account, I was already done. Those same Siri commands on my iPhone work just as well when I am away from home. My phone sends the commands to the cloud (iCloud, to be exact) and the Apple TV automagically receives the commands over your internet connection, and controls your devices. Super cool!

One other feature of HomeKit which is very useful is sharing. If you want to let other family members also control certain devices, you can send them an invitation and now they can use Siri to turn off the light you just turned on!

Overall, I am very impressed with the simplicity and convenience of HomeKit, especially when combined with the new features coming soon in iOS 10.

My Firefighting Flashlight

Once in a while I like to share some of my favorite tools for the fire service. For my bunker gear, I strap on a Pelican Big Ed right angle flashlight. This puppy is very bright (39 lumens), has a nice ring on top that I can clip on to, and is very rugged. It is Class 1, Division 2 rated.

Personally I prefer the C-battery version, although they also make a rechargeable model. As a volunteer, I keep my gear in my gear bag ready to go, so a long shelf life is critical for me. If you work shifts at the station, you may prefer the rechargeable. About once a year I swap out the batteries so they are fresh and the light is bright. I’ve had my flashlight for over 15 years and it is still going strong.

Do you have a different flashlight you prefer?

Big Ed flashlight on Amazon

31QTJ4GWTFL.jpg

Shortly after writing this post, I checked out a competing flashlight, the Streamlight 90540 Survivor LED Flashlight. I actually have one of these, too, and was surprised that its lumen rating was a whopping 140 in high mode and 47 in low mode. This came as a Christmas gift and never made it in to my bunker gear, but maybe it should replace my Big Ed???

Streamlight Survivor on Amazon

617aKkjfdQL._SL1500_.jpg