Categories
Uncategorized

Mobile Device News Roundup: Galaxy Tab 3 for Kids, Galaxy Gear and Samsung’s “Unpacked 2”, Windows 8.1, 300 Days with the iPad Mini, Nokia Sirius Tablet, and the iPhone 5C

Samsung Galaxy Tab 3 for Kids

samsung galaxy tab 3 kids 2

If you have kids or know someone who does, you probably know that a great way to keep them occupied and out of trouble is to let them play with your smartphone or tablet. Murphy’s Law dictates that parents and kids will often want to use the tablet at the same time, which usually drives people to buy one or more just for the kids. It seems that Samsung have been doing their market research homework, since they’ve just announced a special version of their upcoming 7″ Galaxy Tab 3 tablet just for kids.

samsung galaxy tab 3 kids

Here’s a quick rundown of its specs:

Feature Details
Processor 1.2 GHz dual-core processor
Operating System Android 4.1, with TouchWiz or similar “skin”
Memory 1GB RAM
8GB Program/data storage
MicroSD slot supports up to 32GB
Display 7.0 inch WSVGA TFT
1024 * 600 resolution @ 170ppi
Cameras 3-megapixel rear-facing camera
1.3-megapixel front-facing camera
Connectivity WiFi a/b/g/n (2.4/5GHz), WiFi Channel Bonding, WiFi Direct
Bluetooth 3.0
USB 2.0
Battery 4,000mAh Li-ion
Dimensions 111.1mm x 188mm x 9.9mm
302g (10.7 ounces)

 
The specs that Samsung has posted for the Galaxy Tab 3 Kids are missing mention of the sensors. Since it’s based on the 7-inch wifi-only Galaxy Tab 3, it can be safely assumed that it has an accelerometer, geo-magnetic, and light sensors.

The following features make this tablet one that’s specifically aimed at kids:

  • Ruggedized for little hands with a protective grip case.
  • Rugged “kickstand” to hold the tablet upright for easier reading.
  • “C Pen”, a children’s version of Samsung’s “S Pen”.
  • Time management feature: lets parent specify times when the tablet can’t be used; access during the “curfew period” requires getting past a password lock screen.
  • Preloaded kid-friendly apps: educational apps, games, entertainment, and ebook readers.
  • Application Manager allows parents to determine which apps their kids are allowed to use.
  • Child-friendly app store with content specifically for kids.

The announcement in Samsung’s English blog says that the Galaxy Tab 3 Kids will hit the stores in Korea in early September, with releases in China, Europe, the U.S., Africa, South America and southeast Asia to follow. GigaOm says that they expect it to sell at around the $200 price point, “and possibly even a bit lower”.

Samsung’s “Unpacked 2” Event on September 4th and the “Galaxy Gear” Smartwatch

samsung galaxy gear

One of the “artist’s conception” drawing of the Galaxy Gear that’s been floating about the ‘net.

Samsung is expected to unveil its smartwatch — believed to be named the Galaxy Gear — at a New York launch event next week on September 4th. Here are what are believed to be its specs:

Feature Purported Details
Processor Exynos 4212 dual-core processor
Mali-400 MP4 GPU
Operating System Android 4.1 or 4.2
Memory Unknown
Display 320 * 320 resolution
Cameras Camera integrated into strap, resolution unknown
Connectivity Bluetooth 4.0 LE
NFC
Battery Unknown
Dimensions Unknown

 
Samsung’s launch event has been given the name Unpacked 2 (“The Re-unpacking!”), suggesting that it’s the sequel to their Galaxy S4 launch earlier this year. There’s no word if they’re going to make use of more painful Broadway skits to demonstrate their new devices’ features.

In case you’d forgotten about the original Unpacked event, here’s the video of the whole cheese-tastic thing:

Windows 8.1 Comes Out October 18th

windows 8.1 start button

Windows 8.1 — originally codenamed “Blue” — hit the “Release to Manufacturing” (RTM) stage today, and it will be available on October 18th. Unfortunately, even MSDN and TechNet subscribers will not get it earlier and will have to wait like everyone else, presumably so that Microsoft will have time to put on any necessary “finishing touches”.

Among the new features in Windows 8.1 are:

  • The return of the Start button. And much rejoicing was heard throughout the land.
  • The ability to boot straight to desktop. I’ll probably use this; when my Windows 8 machine boots up, the very first thing I do is hit the Windows key to kick it into desktop mode.
  • New sizes for live tiles.
  • Desktop wallpapers behind the Start screen.
  • Parallax wallpapers.
  • Improved multitasking.
  • Improved multi-monitor support.
  • Better access to settings from the environment formerly known as Metro.

300 Days with the iPad Mini

ipad mini

Dan Frommer, the guy behind Splat-F, writes in an article titled 300 Days with the iPad Mini:

The major difference between the iPad mini and my original iPad, purchased in 2010: I’m still actually using this one every day, almost a year after I bought it.

His observations:

  • The iPad Mini’s size and weight have made it his preferred long-form reading device.
  • Almost everything he does on the iPad Mini is done via Safari and Twitter.
  • He doesn’t miss the iPad’s bigger screen; in fact, he’d consider “an even-smaller iPhone-iPad hybrid”.
  • When he upgrades, he’d get a retina iPad Mini, with more storage (at least 32GB) and LTE.
  • He still doesn’t use it on the subway. This one’s sort of odd; in my experience, that’s where a lot of people end up using their smartphones and tablets.

On his wish list:

  • Speed.
  • More memory.
  • A real Instagram for iPad.
  • Retina screen.
  • Stronger magnet in the smart cover.
  • “Better-than-Microsoft’s Surface keyboard cover”.
  • Split-screen Twitter/Safari app.
  • Easier wireless file transfers from the Mac.

Nokia’s Sirius Windows RT Tablet

nokia sirius

The Verge published a report about the upcoming Nokia Sirius, a 10.1-inch Windows RT tablet that looks like a tablet-ized version of their Lumia series of phones and is believed to be priced similarly to the iPad. Expected to be unveiled at a launch event in New York on September 26th, the Sirius is reported to have these specs:

Feature Purported Details
Processor Snapdragon 800 quad-core processor
Operating System Windows RT
Memory 2GB RAM
32GB Program/data storage
MicroSD slot
Display 1920 * 1080 resolution
“Improved for outdoor readability thanks to a high amount of bright output.”
Cameras 6-megapixel rear-facing camera
2-megapixel front-facing camera
Connectivity Micro HDMI connector
Micro USB port
Battery “10-hour battery life with LTE connectivity”
Dimensions 10.1 tablet, “thinner than the current iPad”
Weighs “just over a pound”

 

These Might be the iPhone 5C’s Cases

VentureBeat points to this video purporting to show the cases for the upcoming low-cost iPhone 5C. It was made by Tanner Marsh, iPhone jailbreaker and source-of-info whom VentureBeat describes as “reliable in the past at sniffing out soon-to-arrive Apple components”. As with any tech rumour, take it with a grain of salt.

this article also appears in mobilize the cts blog

Categories
Uncategorized

Rogers Smart Home Monitoring

rogers smart home monitoring touchpad

I live in a small condo where the building has a complete set of security features, including closed-circuit cameras, security guards, door locks that open with electronic key fobs and the most effective measure of them all: a bevy of retired insomniac busybodies whose hobby seems to be watching the live camera feeds. I once tried to bring in a large IKEA package without booking the elevator for furniture-moving purposes, so I did it at two in the morning and still got caught by three retirees who were watching the lobby cam. If this building were any more secure, it would be a military base.

When the day comes for me to move out of this building and into a proper house, I’ll probably need something to replace the security-on-steroids to which I have become accustomed. I’d probably also like something with a high-tech twist, gadgetophile that I am. Rogers Smart Home Monitoring looks pretty tempting, as it’s got all the security angles covered, plus extra home control and monitoring goodies thrown in as a bonus.

rogers smart home sensors and controllers

Among the available features are:

  • Control touchpad that acts as the master control for the whole system
  • 24/7 central monitoring by a team that will notify first responders even when you can’t
  • Door and window sensors to detect when they’re open
  • Motion detectors
  • “Virtual curtain” threshold detectors – kind of like those laser sensors in spy thriller movies
  • Day/night vision cameras with live video streams that give you eyes on your property via a browser or mobile app
  • Smoke/fire sensors with monitoring service
  • Carbon monoxide sensors with monitoring service
  • Water leak sensors with monitoring service
  • Smart thermostats
  • Lighting and small appliance controls to manage lights and other household devices remotely via computer or mobile device
  • Stored still and video service

You can select a combination of these features or go for the gusto with the “everything plan”, which goes for a very reasonable $49.99 a month.

rogers smart home monitoring iphone

The system is connected via both broadband and wireless networks, so that if one network goes down, it can fall back on the other. It can be controlled by a control touchpad or via your computer, tablet, or smartphone (a screenshot from the iPhone app is pictured above). It’s the next best thing to being at home, what with the camera feeds, email and text notifications of events, and remote control over house appliances. It’d be worth it just for the ability to turn on the air conditioning a half-hour before I arrive from my bike ride home from work.

If you live in Canada and are looking for a home security system that also gives you control over climate control, lights and appliances, give Rogers Smart Home Monitoring a look.

Categories
Uncategorized

This is How I Imagine Facebook’s Plan to “Help the Developing World”

facebook helping the third world

For more, see SFGate’s article Why don’t Facebook and Google just embrace that they’re monetizing the third world?

This article also appears in The Adventures of Accordion Guy in the 21st Century.

Categories
Uncategorized

“Stack Ranking” Observations from My Time at Microsoft

im a pc im a mac

“I hear you’re a free man,” the Microsoft manager said to me, clasping a hand firmly on my shoulder, in that “I’ve got your back, bro” sort of way, and not without a gleam of envy in his eyes.

The manager and I never directly worked together, but we both were on the Developer and Platform Evangelism team. To borrow a phrase from the U.S. Army, our job was to win over programmers’ and IT professionals’ “hearts and minds” and convince them of the benefits of using Microsoft tools and technologies. It was February 2011, and we were at a cocktail party at an internal conference in downtown Seattle. He’d heard about my separation.

“That’s right,” I said, taking another swig of some local microbrew and probably wincing a little. It had been a rough couple of months; she’d moved out around Christmas, and I landed in the hospital with a near-fatal case of the flu in January.

“There’s an upside,” he said, “there’s not a married man out there who hasn’t imagined what they’d do if all of a sudden they were single again, knowing what they know now.” He wasn’t the first married guy to remind of this fact, and like all of them, he was right: I was living the married guy’s combination fantasy and nightmare.

“So what are you going to do now?” he asked.

“I have been asking myself that same question for the past few weeks,” I replied. Weeks. The time since the ex-wife and I were under the same roof could still be measured in mere weeks. “I’ve decided the best thing for me to do is to emulate Tony Stark,” I said half-jokingly.

“Tony Stark…”, he said, without even the slightest glimmer of recognition on his face. “Who’s that?”

tony stark testing repulsor glove

Like religious evangelism, technical evangelism requires an understanding of the culture in which you work. I would argue that this understanding extends to knowing its fictional icons. You’d probably (and quite rightly) wonder about someone who works in advertising who hasn’t heard of Don Draper, or a NASA employee who doesn’t know who you’re talking about when you mention Captain Kirk. At the time this conversation took place, there had been two wildly successful Iron Man movies, and even Forbes had done a piece on Tony Stark in their list of top fictitious rich guys.

Continuing my chat with the manager, who was a pretty nice guy and showed genuine concern about my major life change, I discovered that he’d be completely lost if you sat him in front of Visual Studio and asked him to write a “Hello World” application for the desktop, the web, or mobile, and system setup beyond pulling a laptop out of a box, plugging in an external monitor and connecting to wifi often confounded him. And yet, he was an overseer of Microsoft’s outreach to developers and IT pros, often called to speak in front of them and make hand-waving presentations of software and tech that he neither used nor knew how to fit together.

Further conversation led me to discover that the skill that had earned him his lofty level 63 position (like World of Warcraft, Microsoft has levels; also like World of Warcraft, the real fun begins at level 60) was that he could make the scorecard green.

executive scorecard

At Microsoft, you’re only as good as your metrics. “Metrics” often translated into money. As the Stratechery article If Steve Ballmer Ran Apple puts it:

Employees were incentivized by dollars and cents in the form of bonuses and stock grants. Bonuses and stock grants were tied to a stack ranking system, that devolved your performance to a number. What was measurable mattered, particularly if it was measured in money.

The result is inevitable: Microsoft is a company filled with people motivated by measurables like salary, bonus, and job level. Anyone who isn’t would necessarily leave. Unsurprisingly, said people make choices based on measurables, whether those be consumer preferences, focus group answers, or telemetrics. The human mind is flexible, but only to a point.

Yet, if Apple’s success has proven anything, it’s that measurables aren’t the half of it. Things like design can’t be measured, nor can user experience. How do you price delight, or discount annoyance? How much is an Apple genius worth?

In the consumer market, it’s the immeasurables that matter. It’s the ability to surprise and delight, and create evangelists. It’s about creating something that developers demand access to, and that consumers implicity trust. The consumer market is about everything you can’t measure, everything Microsoft’s legion of mini-Ballmer’s can’t see and will never appreciate.

commitments

Once a year, you sit with your manager and come to an agreement on a set of commitments — a set of “deliverables” — for which either you individually, or as part of a team, are responsible for. As a developer evangelist, I had individual commitments that included doing x presentations in front of y people, discovering and publicizing a specified number of “success stories” where Microsoft development tools and platforms played a part, and hitting a target number of Azure sign-ups that could be directly attributed to me.

The aggregate commitments applied to both our own local teams as well as the developer evangelism group as a whole, and were things ranging from tech and tool adoption rates to “sat”, short for satisfaction, which as far as Microsoft was concerned, was an actual quantifiable property, derived from surveys and distilled into a single, mysterious, context-free number that seemed to bounce between 130 and 150 during my tenure.

There’s a mid-term review where you and your manager review your commitments to see how well you’re doing, and where you need to redouble your efforts. Near the conclusion of the fiscal year, which ends on June 30th at Microsoft, you write up how you well you think you met your commitments, your manager does the same, and after which the two of you have a long one-on-one meeting and compare notes. It’s at this meeting when you’ll get a very clear idea of which bucket you’re going to be put in: the 70, the 20, or the 10.

70 - 20 - 10

It’s often referred to in the tech press as “stack ranking”, but within the walls of Microsoft Canada, I’ve only heard it referred to as “70-20-10”. Those numbers refer to the three categories into which every manager at Microsoft had to place every one of his or her direct reports. These categories are:

  • “Achieve”, into which 70% of your direct reports would go. The official description of the sort of person your supposed to put into this bucket is “Demonstrates potential at minimum to broaden in one’s role or to advance one career stage or level as a leader – either as a People Manager and/or individual contributor. Past performance suggests capability of delivering consistent and significant contributions over long-term. Competencies typically are at expected levels.”
  • “Exceed”, where you’d place the top 20%. If you did particularly well that year, you’d be put into this category. The description reads: “Demonstrates potential to advance faster than average as a leader – either as a People Manager and/or individual contributor – preferably multiple levels or two career stages. Past performance suggests capability of delivering exceptional results over long-term. Competencies typically are at or above expected levels.”
  • “Underachieve”, or the bottom 10%. This category comes with a set of consequences and often a lot of self-loathing and voluntary departure from the company. “Demonstrates limited potential to advance.”

Once a year, during our team offsite, the managers would take the time to explain this system, all the while taking great pains to explain why it was a good thing, in that sort of “toxic sludge is good for you” way. There are all sorts of problems with this sort of system, two of which were pointed out quite astutely by Bruce Lynn in the 70-20-10 blog:

My concern about the application of these ‘distributions’ is two fold. First, they are statistical constructs and most executives lack [the] numeracy to properly interpret and work with them. For example, while these distributions might generally apply over large numbers, no reasonable statistician would expect them to hold identically for smaller populations. In companies, sometimes these distributions are imposed on teams of just a handful of people. This imposition violates all sorts of statistical principles.

Also, one significant variable that such simplistic systems omit is the outcome of the group. A group that has achieved great things is likely to have different distribution of these categories than one that hasn’t. A world champion team might have more than ‘20%’ of its team as ‘All Star’ talent. In fact, the very fact of the skew to high performance could explain the overall team success. In another scenario, none of the team might be standouts (ie. no one at the 20% high achiever level), but the team work exceptional leading to a whole greater than the sum of the parts.

But more important than the clumsy application of such distributions is their application at all. These breakdowns are ‘descriptive’ stats, but misguided managers use them as ‘prescriptive’ rules. Misguided executives introduce policies which force managers to classify their people into such categories. The execs like the numbers because they are a nice, repeatable, McDonalds-like process which is easy to implement and understand on a superficial level. Unfortunately, it is often misapplied in specific instances. It is sort of like expecting a day with a ‘50% chance of rain’ to rain for half the day and be dry for half the day.

The other problem with 70-20-10 is that it can pit teammates against each other (luckily, this was not the case with my group). I’ve seen it create situations like the old joke about the two campers who encounter a hungry bear in the woods. The first camper says “I’m glad I wore my running shoes!”, to which the second replies “You can’t outrun a bear!” The first camper then says “I don’t have to outrun the bear. I just have to outrun you.”

outrunning a bear

If you managed to outrun the bottom 10, you could do very well. When I worked there, annual bonuses at Microsoft ranged from 6 to 60% of your base salary, and salaries at Microsoft are pretty good (in fact, people who leave Microsoft to work elsewhere often experience “reverse sticker shock” when they discover that most places outside The Empire don’t pay as well). My last bonus put me at a point where I could’ve bought a brand new sedan with cash.

When you combine bonus in the tens of thousands of dollars and tech culture, where Asperger’s syndrome is sometimes considered to be a badge of honour, you get antisocial, every-man-for-himself behaviour. In his Vanity Fair piece on Microsoft last year, Kurt Eichenwald wrote:

At the center of the cultural problems was a management system called “stack ranking.” Every current and former Microsoft employee I interviewed—every one—cited stack ranking as the most destructive process inside of Microsoft, something that drove out untold numbers of employees. The system—also referred to as “the performance model,” “the bell curve,” or just “the employee review”—has, with certain variations over the years, worked like this: every unit was forced to declare a certain percentage of employees as top performers, then good performers, then average, then below average, then poor. …

For that reason, executives said, a lot of Microsoft superstars did everything they could to avoid working alongside other top-notch developers, out of fear that they would be hurt in the rankings. And the reviews had real-world consequences: those at the top received bonuses and promotions; those at the bottom usually received no cash or were shown the door. …

“The behavior this engenders, people do everything they can to stay out of the bottom bucket,” one Microsoft engineer said. “People responsible for features will openly sabotage other people’s efforts. One of the most valuable things I learned was to give the appearance of being courteous while withholding just enough information from colleagues to ensure they didn’t get ahead of me on the rankings.” Worse, because the reviews came every six months, employees and their supervisors—who were also ranked—focused on their short-term performance, rather than on longer efforts to innovate.

By the time I had joined Microsoft, I had been blogging for seven years and decided to turn my skills and energies towards revitalizing the Canadian Developer Connection blog. I took it from a site with three posts a month to thirty posts a month, brought the readership up from dozens a day to thousands, often getting linked on Techmeme and occasionally garnering the attention of tech writers covering Microsoft, such as Mary Jo Foley. I became Microsoft Canada’s most prolific blogger, something that annoyed a manager who once called me into his office simply for him to express this annoyance: “You think you’re fucking hot shit, don’t you?” (To which I can now reply: “Hotter than you, chump. Hotter. Than. You.”)

starbucks coffee and xbox

70-20-10 didn’t just lead people to focus on the short term to the detriment of the long-term; it also made people very risk averse. One year, my team had the collective commitment of getting 800 people to sign up for an Azure (Microsoft’s cloud computing service) account. Some people committed to bring on 20, some went for 30, and a couple said they’d bring in 50. Here was Microsoft’s version of cloud computing, something that could rewrite the book on web services, and everyone was holding back for fear of not being able to hit that number and paying for it in the annual review. It’s this institutionalized fear that turned Microsoft from a creator of trends into a company that was content to chase them. What happened to the company whose mantra was the audacious “A computer on every desk and in every home, running Microsoft software?”

I thought the metric was meaningless. As far as I was concerned, a dozen high-quality accounts that used Azure for useful software, and often, would be worth more than a hundred sign-ups. In a fit of “screw it”, I put myself down for bringing in 400.

I got praise from my manager, who then reminded me that I didn’t have a plan for bringing in those numbers. It didn’t take long to work one out, though. After a chat with a friend who worked at Redmond, it became clear to me that all I had to do was get people to open a free Azure account and stick anything on it. I got a Silverlight expert I knew to make a web app that people could install into their Azure account, and got them to open Azure accounts by either:

  • At our developer conferences, entering anyone who opened an account into a draw for an Xbox
  • Sitting down with developers one-on-one at Starbucks, walking them through the process of opening an Azure account, and buying them a coffee (on my expense account, of course) for their time

In the process, I may have convinced one or two people who’d go on to use Azure for a project. The rest of them simply set up an account, installed the web app, and never logged back in again. In the end, what I truly did was give a few hundred people a shot at winning an Xbox, and gave several dozen a case of the coffee shits. It felt like a hollow victory. But I hit my target number and got my bonus!

Dwight-from-the-office

The other effect of 70-20-10 is that I was constantly reminded by my manager to devote more effort to “my career”. By this, he didn’t mean brushing up on my tech skills, or my presentation skills, or my writing — which he did, anyway, because he was a great manager. He was talking about “managing up”, building relationships with the higher-ups and across departments with the people who could bring me from a level 61 employee to level 62…and beyond!

I understand and appreciate the value of such relationships, and I’m a pretty good schmoozer. But the level to which this sort of relationship building was encouraged within Microsoft was almost sociopathic, and the internal guidance kept pushing us to spend what I think was too much time building alliances, as if we were competitors on the island on the reality TV show Survivor. Partnerships, alliances, joint projects, and so on all had an undercurrent of “what can this person or team do for my career”?, “How can this guy help get to level 62?”, “How can so-and-so help me keep my scorecard green?”, and as Mini-Microsoft put it, “Influence if you can, scare if you must”.

I was trying to be Scott Hanselman, and but they wanted Dwight K. Schrute.

Categories
Uncategorized

The Agony and the Opportunity of the “Reply-All” Button

The Agony

roy levin's reply-all re ballmer

Click the “reply all” screenshot to see it at full size.

The dreaded “Reply All” button claimed a victim at Microsoft today when Roy Levin, distinguished engineer at MS Research in Silicon Valley, commented in response to Steve Ballmer’s internal email announcement that he would retire sometime in the next 12 months.

Here’s the full text of his response:

Right. Maybe there’s a back story. The market likes the news, which is interesting, given that the successor isn’t known. Now the speculation shifts into high gear.

While embarrassing, it’s hardly career-ending. He could’ve said “Don’t let the door hit your ass on the way out, Monkey-Boy!” As Valleywag observes, it’s to Levin’s credit that he sent his reply from a Windows Phone (“Second place in the second world!”).

The Opportunity

reply all-coholism
At this stage in the game, email clients are not new things. We’ve had decades of experience with them, and we know what works, what doesn’t, and what the pitfalls are, including the dangers of “Reply All”. Many desktop clients, including Microsoft’s own Outlook, have some kind of mechanism that double-checks with you before you reply to everyone on a mass email. For some reason, this handy safety feature doesn’t seem to be built into mobile email apps. Given that an increasing portion of our email is sent while on the go, it’s high time that we made the email apps on our phones as least as “smart” as their desktop counterparts.

Categories
Uncategorized

Microsoft CEO Steve Ballmer to Retire “Within 12 Months”

I Heard the News Today, Oh Boy…

Yours Truly and Steve Ballmer at a Microsoft Canada town hall, October 2009.

You’re going to be hearing about this all day today, so you might as well read it here. A news release from Microsoft’s PR site published today announced that CEO Steve Ballmer will step down sometime in the next 12 months.

Here’s the Ballmer quote from the release:

“There is never a perfect time for this type of transition, but now is the right time,” Ballmer said. “We have embarked on a new strategy with a new organization and we have an amazing Senior Leadership Team. My original thoughts on timing would have had my retirement happen in the middle of our company’s transformation to a devices and services company. We need a CEO who will be here longer term for this new direction.”

As a former Microsoftie, I’ve seen two Steve Ballmers. There’s the Steve Ballmer the public saw, the blustery, manic, chair-throwing“Developers, developers, developers, developers” guy, who tragically underestimated the effect that the iPhone would have on the industry and Microsoft’s fortunes, and the CEO oversaw Microsoft through its “lost decade”. Then there’s SteveB — the name often used to refer to him in internal emails — who had a solid grasp of just about every aspect of the business. At the internal town hall meeting where the picture above was taken, he gave intelligent answers to esoteric questions from people from wildly different departments at Microsoft Canada. He’s also managed to keep Microsoft rolling in money; in Microsoft’s 2Q 2013 (their fiscal year begins on July 1st; their 2Q 2013 is 4Q 2012 on the calendar), they posted a record revenue of $21.5 billion.

And the Shareholders Rejoiced

There has been a vocal chorus of shareholders who’ve been calling for Ballmer’s resignation, and there will likely be champagne corks popping this afternoon. CNET reports that Microsoft shares have jumped up 8% in pre-market in response to the news.

John Zissimos posted the following graph on Twitter with the tagline “What Ballmer retiring from Microsoft looks like on a stock chart”:

microsoft shares ballmer departure

Click the graph to see it at full size.

The natural question is “Who will Ballmer’s successor be?” Steve Sinofsky has long been seen as Ballmer’s eventual successor and would’ve been the most likely choice, if he hadn’t left the company back in November.

What Does Mini-Microsoft Say?

mini-me

Microsoft’s notorious insider blogger is frickin’ tickled pink. He also astutely points out:

To me, this throws the whole in-process re-org upside down. Why re-org under the design of the exiting leader? Even if the Senior Leadership Team goes forward saying that they support the re-org, it’s undermined by everyone who is a part of it now questioning whether the new leader will undo and recraft the decisions being made now. I’d much rather Microsoft be organized under the vision of the new leader and their vision.

Taking Out the Trash

I’ll close with the observation that the choice to make the announcement on a Friday — and a Friday near the end of August, when many people are on vacation — is noteable. In the world of PR, Friday is “Take Out the Trash Day”, when you make announcements that you want buried. Here’s an exchange from The West Wing that explains the idea:

Donna: What’s take out the trash day?
Josh: Friday.
Donna: I mean, what is it?
Josh: Any stories we have to give the press that we’re not wild about, we give all in a lump on Friday.
Donna: Why do you do it in a lump?
Josh: Instead of one at a time?
Donna: I’d think you’d want to spread them out.
Josh: They’ve got X column inches to fill, right? They’re going to fill them no matter what.
Donna: Yes.
Josh: So if we give them one story, that story’s X column inches.
Donna: And if we give them five stories …
Josh: They’re a fifth the size.
Donna: Why do you do it on Friday?
Josh: Because no one reads the paper on Saturday.
Donna: You guys are real populists, aren’t you?

Categories
Uncategorized

iOS Fortnightly: Tweaking the 8-Ball App with a plist

ios fortnightly tutorials

On Monday, I posted the first of my fortnightly — that means “once every two weeks” — tutorials covering iOS development. If you’ve got some experience with an object-oriented programming language, and better still, any experience with an MVC application framework, these tutorials are for you!

The first tutorial covered a simple “Magic 8-Ball” app, where you’d tap a button, and it would display a randomly-selected answer to a “yes or no?” question. The program is pretty simple, and that’s a good thing — that way, it doesn’t get in the way of showing how to use Xcode, Objective-C, the various frameworks that make up Cocoa Touch, and so on.

While the main tutorials will appear every fortnight, from time to time, I’ll post supplementary articles in which I’ll expand on a topic covered in the tutorial or make an improvement to the app. This is one of those supplementary articles.

Defining the Answers

In the “8-ball” app created in the tutorial, the answers that the app can randomly choose from are defined in the model object’s constructor, shown below:

// DecisionMaker.m

// ... (other code here) ...

- (id)init
{
    self = [super init];
    answers = @[
                @"Yes.",
                @"No.",
                @"Sure, why not?",
                @"Ummm...maybe not.",
                @"I say \"Go for it!\"",
                @"I say \"Nuh-uh.\"",
                @"Mmmmmaybe.",
                @"Better not tell you now.",
                @"Why, yes!",
                @"The answer is \"NO!\"",
                @"Like I\'m going to tell you.",
                @"My cat\'s breath smells like cat food."
                ];
    return self;
}

// ... (other code here) ...

It works, but I get a little uncomfortable when hard-coding these sorts of values in this fashion. I’d much rather populate the array of answers by reading the contents of some kind of file or resource that isn’t part of the code. This approach typically makes the code more maintainable, as it makes the code less cluttered with data, and editing resource files is less likely to break something than editing code.

plists

plists, a.k.a. property lists, are XML files used in Mac OS and iOS to store data for things like initialization, settings, and configuration. Plists can hold the following types of scalar data:

  • boolean
  • data (binary data, that is)
  • date/time
  • number
  • string

Within a plist, any piece of data can sit on its own, or be organized into these collections:

  • array
  • dictionary (a.k.a. hash)

Here’s a quick plist example. It has a single array that contains the 1977 members of the Superfriends:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>Superman</string>
    <string>Batman and Robin</string>
    <string>Wonder Woman</string>
    <string>Aquaman</string>
    <string>Wonder Twins</string>
</array>
</plist>

Within Xcode, plists can be read and modified using a nice editor, which saves you the trouble of entering XML tags and lets you focus on the data instead.

In this exercise, we’re going to replace the 8-ball app’s hard-coded array of answers with a plist, and then initialize that array with the data in the plist.

Creating the plist of 8-Ball Answers

In the menu bar, select File → New → File…. You’ll see the following appear:

new plist file

In the left sidebar under the iOS section, select Resource. Then, from the main view, select Property List, then click Next. You’ll be taken to this dialog box:

answers.plist

Give the file a name in the Save As: text box; I named my file answers.plist. Click Create to save the plist to your project.

Filling the answers Array with the plist

Your Project Navigator should look something like this:

newly-created plist

Select the plist in the Project Navigator. The plist editor will appear in Xcode’s main pane. Use it to enter the 8-ball answers into the plist as shown below:

plist answers

Now that we’ve defined the plist, let’s change the constructor of the 8-Ball’s model, DecisionMaker, so that it reads the plist and feeds it into the answers array:

// DecisionMaker.m

- (id)init
{
    self = [super init];
    NSString *answersListPath = [[NSBundle mainBundle] pathForResource:@"answers"
                                                                ofType:@"plist"];
    answers = [NSArray arrayWithContentsOfFile:answersListPath];
    return self;
}

Let’s take a look at the new code line by line:

NSString *answersListPath = [[NSBundle mainBundle] pathForResource:@"answers"
                                                                ofType:@"plist"];

We need the list of answers, so we need to access answers.plist. It lives in the main bundle.

A bundle is a directory with a hierarchical structure that holds executable code and the resources used by that code. NSBundle is the class that handles bundles, and the mainBundle method returns the bundle that holds the app executable and its resources, which in the case of our 8-Ball app, includes answers.plist. The pathForResource:ofType: method, given the name of a resource and its type, returns the full pathname for that bundle.

Once we know the pathname for the bundle, we can construct the path to answers.plist, which is what the second line does.

answers = [NSArray arrayWithContentsOfFile:answersListPath];

arrayWithContentsOfFile is a handy method: given the path to a file containing a plist representation of an array, it will use the contents of a file to fill the array.

Run the App

The app is ready to go — fire it up, and it should look like this:

Reorganize the App…Just a Little

This is a small project, so it doesn’t have too many files. Even at this size, it’s good to keep its component files organized. Let’s put answers.plist into the Supporting Files folder, where the other resource files in the project live. Moving it is simply a matter of dragging and dropping in the Project Navigator, which should look something like this once you’ve moved answers.plist:

project navigator

Run the app again. It still works, even though answers.plist is in now in the Supporting Files folder, the folders are just a convenience for you, the developer, to organize files into manageable groups.

You’ve now got an app that loads its gets it answers from a plist rather than via a hard-coded array. You can even add new answers…

adding a new answer

Commit that Sucker!

At this point, it’s a good idea to commit this change to the repository. Call up File → Source Control → Commit… from the menu bar, enter an appropriate commit message (I used “Answers are now read from answers.plist instead of being hard-coded.”) and commit your changes. If you’re not in the habit of using source control, get into it now. It will save you a lot of pain.