cadams.com.au

Chris Adams

On Pushy Business Writing

By

Pushy business writing is illogical. A few people out there blog and push their product at the same time. What they don’t realise is they come across as sleazy, high-pressure salespeople. The emphasis in writing online – and it’s only logical that this applies everywhere – needs to be on helping your reader, who has gone to the trouble of coming to your blog. Be grateful they didn’t leave within 4 seconds.

This guy is a perfect example, but I’m going to make you paste the link because he doesn’t deserve to be linked to. http://thinkmobile.appcelerator.com/blog/bid/284174/Native-vs-HTML5-looked-at-objectively-the-debate-is-over

He wants to promote his framework for developing native apps on multiple mobile platforms at the same time, and that’s fine. But in the process he pissed me off so much I’ll never try whatever he is pushing, not unless someone I respect a lot convinces me to try it.

You can put across your message without pushing your product – people who are interested in your message will seek you out either way, and everyone else will just leave thinking you’re an informative, helpful and just plain nice guy or lady.

If you put information out there that supports a business case for your product, but you don’t promote your product, you won’t get every possible customer.

That shouldn’t be a big deal to you: you weren’t going to get every customer anyway.

21st-century capitalism

By

Once upon a time, humans lived in small groups. We lived in caves or wherever we could carve out an existence for ourselves, or we were nomadic – whichever approach worked where we found ourselves. Like primates, we lacked the ability to communicate except in the most primitive ways; but unlike primates we built on these abilities and learned to maintain larger groups.

We learned to exist in larger and larger communities. Language came about and let us maintain even looser social ties, enlarging our communities even further. Villages gave way to cities. We discovered disease, we invented hygiene. We travelled and realised people “over there” were different. Cities began to trade and specialise. We had merchants and middlemen and some people got very rich and it all worked pretty well.

Following random bits of history brings one through the beginnings of capitalism, and finally to the industrial revolution. I want to cast your attention to the contrasts between then and now. The unit of organisation of the industrial revolution was the factory. Textiles, widgets, cars – all made in factories. Compulsory education came along and was designed to feed people into factory work; people were treated like they were all the same; life tenure was a badge of honour. Specialisation was valued less than the ability to churn out stuff. We built big cities and big skyscrapers; all to pack people into the same physical space and maximise our efficiency at making things.

This brought wealth to many people. Disposable income was born and was soon followed by advertising. Branding became a tool to position one’s product above one’s competitors’ in the face of difficult decisions between similar products. The mass market was invented. Again, it all worked pretty well.

Around the same time, the information age was beginning. Musicians stopped depending on live performances for income and sold recorded music which was listened to everywhere. It was marketed to the masses and bought from shops on various media. Storytellers stopped telling tales around campfires and started selling books, ebooks, and blogging. The internet was invented and became the most efficient way to move information around, and things like music and books stopped being distributed on physical media.

Information got more accessible, but the mass market had destroyed the notion of communities that were the foundation of civilisation. Companies making things in factories didn’t care about people, they cared about reach; the term “economies of scale” reflects this view. Creating economies of scale means giving something the broadest possible appeal so it’s cheap to produce en masse, thus allowing you to make the most money in an era designed to put cookie-cutter people in front of production lines in factories.

But the Internet is personal. People don’t have to be part of the mass market. Anyone can ignore mass trends and reach out and find like-minded people, forming communities around whatever they want. The emphasis is back on individualism.

Now that communities can form around whatever people want, micro-markets exist for all sorts of things. We are just beginning to see an entirely new way to make money. It’s focused on small groups. It’s individual entrepreneurship – witness Radiohead’s In Rainbows online album launch and the trend towards personalised pricing – Pay What You Want and Kickstarter. Different people extract different value from a product, so why impose a single price? It’s another concept left over from the days of the mass market.

We now use the tools at our disposal to form new markets around global communities. Capitalism is beginning to follow: large companies are trying to get agile by incubating startups. New communication tools are allowing groups to form to work on experimental ideas. Individuals have more leverage than ever before.

21st-century capitalism is personal. It’s a great time to be alive.

Twitter vs. the decline of meaning

By

There is a popular belief that Twitter is a sign our attention spans are shortening and we’re saying less and less useful things. What is it that makes people choose Twitter as the poster child of this trend?

Just because it’s 140 characters doesn’t mean you can’t say something meaningful.

meaningful conversation-birds-resized-600

NYU Library, in their Online Writing Guide, recommends that Web content have 50% fewer words than the paper equivalent. So it’s not just Twitter. What’s actually going on is that people reading online are less patient. They’re reading for a purpose, rather than just to generally learn or relax. If people want to read to learn or relax they might grab a book or an ebook reader of some sort. And if people want to read in-depth they’ll read a research paper, or Wikipedia, or a specialist blog. If people want a bite-size piece of information or news, hey why not get on Twitter and look up a hashtag; it takes up its own spot on the continuum.

And another thing. Conversations of 140 characters are more accessible. Lower the bar and you lower the quality, but you also get more contributors and as a result more opinions and information. Interactivity makes for a more diverse conversation than a few learned people writing or talking at length.

birds-on-a-wire

Twitter’s existence alone doesn’t prove people are saying less important things. Pointless conversations happen in coffee shops every day; we’ve always talked in circles about useless stuff that doesn’t solve anyone’s problems. All Twitter does is make it blindingly obvious.

And who’s asking people to say only meaningful stuff anyway? Leave us alone and spend your energy on something worthwhile. Like telling me why I should bother with Twitter.

On competition

By

When you talk about the competitive landscape for a business people like to ask what you’ll do if similar company A or B copies your model tomorrow. Here’s what I say to those people:

Competitors copying us validates our model. I’d rather our competitors copy what we do and go up against us, than wait and watch us fail. And I would rather have competition sooner than later because without competition we risk growing big and lazy and then it’d be us ripe for disruption, and worse our organisation would never have developed the discipline necessary to respond. We have a team that I believe can outfox any competitor out there today. So to anyone that wants to compete with us I have 2 things to say – first, you’re welcome in our space and second, hurry up and do it.

Code pain? Codeine!

By

“Got code pain? We’ve got Codeine.”

We’re at Startup Weekend Melbourne 2013, where people come to pitch startup ideas and developers, designers and businesspeople form teams around their favourites. My idea fell through – my team didn’t feel it was a viable product – so I’ve joined a team which is trying to build a bug bounty marketplace. We are a crack team of 8 developers, designers and salespeople, all of whom love our craft enough to come to a startup weekend, so as you can imagine the atmosphere is electric.

We’ve got a very minimal product going so far – you can check it out at http://codeine.io. Project owners and developers who like to tinker can post small, well-defined jobs on our site and devs who want to make money on the side can sign up to do them. For example, if you’re tinkering on a weekend and you hit a bug, you could either

  • post it on Stack Overflow then fix it yourself, or
  • post it on Codeine and have someone else fix it for you!

If you’re a project manager or business person who’s trying to put together a project involving some code, you can either

  • post your whole project on Freelancer or eLance, or
  • post small pieces on Codeine and get a result sooner

If you’re a developer, you can either

  • Help people for free on Stack Overflow, or
  • Get paid to do it on Codeine!

We’d love for you to go to the website and tell us what you think. Pretty amazing that this didn’t exist yesterday, there’re a bunch of really smart guys building this.

Please go have a look, give me some feedback, and maybe even post or bid for a job.

Cheers!

The Windows services desktop

By

Sometimes in Windows Vista and newer, thanks to file locking or crazy over-the-top security you have a file that just won’t delete, or a directory you just can’t get into. Or maybe you’re just curious how Windows works under the covers?

Woman Hiding Under the Covers

Back in the bad old days of Windows XP, a common way for spyware to stick around after infecting a computer was to start a windows service. Windows services are background jobs web servers and the like, always running and always in the background. Because of this mindset of handling system level functions, they run with the highest level of privilege in the system – the SYSTEM user. Now the problem is in Windows XP, services also had the ability to interact with the user – pop up windows on his/her desktop etc. – a service could read your text fields including passwords!

Simple solution: prevent services interacting with the desktop! If only. Many vendors had created legitimate windows services that legitimately interacted with the user – for example, a virus scanner might legitimately need to pop up a dialog to ask a user to clean out an infected file. So Microsoft did something clever: they decided to continue to allow services to interact with the desktop, but make a separate desktop. If a service ever popped up a dialog, the user would get a notice about it. They gave it a nice catchy name, user interface privilege isolation.

Let’s have a look under the covers and see how it works.

What we’re going to do is create a service which pops up a window, then we’ll jump to the services desktop and launch a full desktop.

First thing is the sc.exe command. Let’s have it create a cmd.exe window, so we can see the services desktop.

sc.exe create cmd binPath= cmd type= own type= interact

sc create

Which will show an error, but you’ll get asked to visit the services desktop. The only problem is this only lasts 30 seconds – until your command prompt is abruptly killed! Windows services are required to respond to specific messages, to let the Service Control Manager know they have started up, or else they time out and the Service Control Manager kills them. The whole system is designed for resilience. So here’s a trick: launch a separate program from the cmd:

sc.exe delete cmd
sc.exe create cmd binPath= “cmd /k start” type= own type= interact
sc.exe start cmd

sc create 2

Starting this will prompt you to go to the services desktop:

ui0detect

Clicking “View the message” takes you to a mysterious place that looks like this:

svcsdesktop1

Welcome to the services desktop! In this place, you have the highest level of privilege in a windows system. You can get a full desktop by launching explorer.exe:

svcsdesktop2

But interestingly, there are problems with opening an actual explorer window:

svcsdesktop3

 

 

No matter, you can do everything you originally wanted from a dialog in a Notepad window:

svcsdesktop5

In this piece we learned how to get the highest level of access possible to a Windows system. We also learned about Windows services, how to create them and how they interact with the Service Control Manager.

Bonus: I’ve bundled this all up into a nice convenient script you can run. You can download the Privilege Escalation.cmd script from my GitHub account.

If I could take over Microsoft

By

“The PC wars are over. Done. Microsoft won a long time ago.”
- Steve Jobs, Fortune, 19 February 1996

“The post-PC war is over. Apple won. Time for the next thing.”
- Chris Adams, this blog. 2 April 2013

It’s 2013, 3 years into the existence of the iPad. The markets for tablets and phones are dominated by Apple, Google and Samsung. Microsoft, once high and mighty on PCs, is lost and adrift but it’s still got tremendous potential. If I could take over Microsoft tomorrow I’d change a few things and try to give Microsoft a reason to exist, maybe even bring it to newfound glory eventually. Here’s what I’d do.

1. Plug the leaks

- Continue profitable businesses and lose the ego.

The MS Office team missed the boat on iPad but it’s not too late. Office should be everywhere, and office should interoperate with everything out of the box without forcing anyone to convert their files.

- Reward collaboration and punish infighting.

Land grabs are best handled via intense competition, so Microsoft’s way of taking the PC market in the 80s and 90s made sense. But now all the land’s taken: the market has matured. Now, competitive minds turn to taking territory from others, which translates inside Microsoft to backstabbing and fiefdoms. Market share of a mature market is best taken carefully through iterative refinement; people will only switch to a similar product if it’s significantly better. Google Chrome took 30-40% of browser market share, for example, by getting better every single day while IE and Mozilla moved as slow as molasses by comparison. Microsoft needs to stop infighting and collaborate, then learn to iterate quickly, so its products can be the best in their categories.

- Address tiny annoying details.

Microsoft used to have a culture of “eating your own dogfood” which led to products that people enjoy using. There might’ve been flaws in the large but the small details were mostly right, for it’s the small details that make something pleasant to use. These days, Microsoft products are coming out with stupid glaring issues. My guess is no-one at Microsoft wants to talk about “elephants in the room” – no one wants to talk about why their baby is ugly. Why, for instance, does scrolling vertically on your mouse produce horizontal scroll in Microsoft’s brand-new UI? (Microsoft invented the scroll wheel after all.) And why are the menus and status bars on in Office and Visual Studio in all capital letters, defying decades of research about how our eyes perceive words? These tiny things make Microsoft’s products not worth paying money for. Steve Jobs always said Microsoft had no taste; that needs to change.

- Exit unprofitable businesses.

MSN/Bing are big money losers. Sell ASAP. Leave terms in the sale contracts to ensure Microsoft keeps advantages where products work well together. There are surely people clamouring to buy businesses Microsoft can’t run profitably.

2. Pick a direction for the ship

Create a new mission.

“To improve humanity through computing.”

“A computer on every desk” was the old mission. Congratulations Microsoft, you got there. However 1) no-one really thought about why that was a worthwhile mission and 2) Microsoft still exists and needs a reason to continue to do so, lest it fade into irrelevance.

Microsoft is a big engine powered by a few very solid revenue sources. It still has plenty of smart people. If people are given a new, positive purpose which can last decades, it will send a spark through the company that will bring about all sorts of new things. It’s also inspirational and loosely-defined enough to inspire the sort of bottom-up idea generation that has been a fixture of capitalism in the 21st century – it’s led to the startup culture and “intrapreneurship” – entrepreneurship within companies.

3. Turn the ship

- Open source.

Stop building MIcrosoft-versions of stuff. Contribute to LLVM, Clang, WebKit. Releasing the source of “Microsoft’s answer to X” was a start (eg. ASP.net MVC), but it’s time for some of Microsoft’s projects to be category-defining in the open source space. Move towards using less restrictive licenses for open source releases. Keep strategically important products as closed-source.

- Stop obsessing over backwards compatibility.

Controversial? Not really. Microsoft’s effort should instead be spent creating reasons for vendors to keep up with platform changes. Design trends and financial reasons are the biggest, but there are certainly others.

- Look at ways to bring education and finance to the third world.

The ultimate way to improve a society is through education. The best tool for that is technology – it provides access to information. Microsoft should be at the forefront.

- Use a bottom-up approach to idea generation about products.

“Improving humanity through computing” means different things to different people; to some, it’s augmentation (eg. Google Glass) and to others, it’s remote medical treatment (eg. a way to produce vaccines with just solar power.) – so it must then be up to individuals throughout the company to decide which things come under that banner, and the leadership to deliver resources.

4. Lead the armada

Go to the media. Announce the new mission. Key point: improving humanity really isn’t clearly defined. What it means is up to the individual, but the goal for the company’s leadership is to gather a set of positive actions, products, services etc., choose ones expected to be profitable, then do those.

Set expectations that it’s a big space – there’s a lot that can be done – and there may be a few months to years before any clear directions are chosen.

Point out other large famous companies have announced big turnarounds.

Focus less on competition (eg. Bing/Google, WinPhone/Android/iOS) and more on being the best Microsoft can be. “Nobody has to lose for Microsoft to win”. Yes, this is a shameless copy of Apple; as we now know, great artists steal.

In the short term nothing should change. More resources will become available for short-term strategic projects. Microsoft has some of the industry’s smartest people so have faith that new products, services, combinations, initiatives will come through in the mid to long term.

5. Profit?

Microsoft has missed some pretty big stuff - even when it could see those things coming. Yes, it managed to eke out some territory, but controlling browser market share is nowhere near as strong as controlling, say, HTML. Microsoft has vision but sucks at execution. When you can talk about something but can’t execute, you’ve got an internal problem. In Microsoft’s case the problem isn’t the people – it’s its culture.

It would be amazing to see Microsoft lead something – in this case, a big company being run from the bottom up, and focused on positive outcomes with profitability as a happy byproduct. The potential’s there; it just needs the right leadership ;-)

First!

By

This is my blog. This will be a place to discuss issues affecting the technology industry as well as my personal journey through it. The goal is to create a body of knowledge and experience which stands the test of time.

Hopefully you get something out of it.