It’s always refreshing when you find a new way of looking at a problem. Someone this morning pointed out a product that I’d never heard of before by the team at Facebook – OSQuery. Working in the security field there’s no shortage of me too products out there that fundamentally do the same thing – you’ve seen one AV scanner or firewall and you’ve pretty much seen them all – and most of the innovation is typically focused on bolting on new functions with very narrow featuresets. OSQuery piqued my interest as it appears to be a super focus tool that takes a novel approach to the security question- I know the thing I’m looking for (bad process, high CPU) but how do I get that data out of the system quickly.
“Search” is a popular term in IT (AI is working hard to catch up these days though!) but rarely do I hear the “life story” explaining why search is necessary. Prior to google, I’d argue that searching was commonly used with a negative con nation – suggesting something was lost and requiring to be found again. OSQuery, at least to me, makes the case for a useful model of “Investigation” – a case of knowing roughly what you’re looking for and just needing the tool to get it.
It makes me wonder if an Investigation engine might be the thing that can overthrow the Googles of the world- instead of hunting based on words we throw down and occasionally extending our query or rephrasing, an investigation engine would perhaps start out wide and narrow by means of asking you questions back. Chat bots and the AI brigade are headed in this direction, but freeform text or voice entry, for me, is still a UI challenge (if you don’t know what to say next the conversation is effectively over) but imagine a next generation system that, instead of pausing for further instructions, suggests a next step in your search- more advanced than simply autocomplete, it could offer tangential queries, or revised queries based on time of day or previous searches – all through GUI choices rather than a protracted conversation.
Anyway, I will have to try OSQuery out – and see if it’s useful new way to approaching the investigation question in security…
It’s been a while since I’ve had the chance to watch the Build Keynote- but I’m glad I managed to find the time- highlights for me this year include:
Bash Shell coming to Windows- finally the chance to write a script once and run it every where…
Converter for Win32 to “Modern” apps – Great to see Microsoft pushing apps forward whilst not forgetting that the main reason Windows is still as popular as it is because of legacy software.
Xbox Dev mode- Not since the (PlayStation) Yaroze have I been this close to potentially owning a dev console…
Shared App Store for xBox and PC – interesting to see if it ends up a minefield full of trash for Xbox just like Windows… But if it means we can see Steam games (especially older titles) ported to Xbox I’m onboard.
HoloLens – I’m still not sure about this – augmented reality apps on phones, 3D displays and VR have all proven to be gimmicks (although VR is having “another good at it” this year so perhaps not quite worth writing off yet) and there’s still a lot of questions for me about whether a device as (potentially) expensive (not to mention dorkly looking) could catch on. As a glasses wearer I’m comfortable with personal augmentation, but Google Glass seemed more probable to me than HoloLens and it failed to gain traction (seemingly due to bad PR as I can’t see any technological reasons why it failed to gain traction).
It’s truly an interesting time for Microsoft – although it’s still hard to understand whether their “whole new world” of computing will come together.
It’s hard to believe how much excitement now exists around the word “app”- as if it’s a new term in the industry instead of just a shortening of Software Applications. Every company wants to have it’s own app, people are looking at the economic impact of the application market, etc and acting like such a concept hadn’t even existed 10 years ago- last time I checked though software’s been around pretty much as long as hardware has been in the world of PC’s- and the flexibility of having an application do something for you is pretty much par for the course.
This is a shame, as it distracts from what makes modern apps different from the classic software model. For me, that’s the fact that applications have finally become something that can be grasped by the mass market by simplifying- tiny chunks of code which serve a purpose with a pretty, and (hopefully) simplified UI. Massive applications like Microsoft Office and Photoshop now seem like the exceptions, rather than the rule, and instead we’re seeing smaller applications with discrete use models resulting in applications that are easier to use, reducing bloat (although introducing different forms of bloat due to frameworks and so on), and making integration (though API’s) all the more important (preventing a single application becoming a small, walled garden of information inaccessible to other applications).
And once we’ve considered what this change actually means it’s easier to start to seeing parallels to other developments in software. We’ve seen small applications before, and not on mobile phones, but on PC’s and they were called Widgets. I wasn’t a big widget person as I felt it was just as easy to Google the data I wanted and didn’t appreciate the extra resource burden, but I get the perk of having a highly visible, simple application on your desktop just like an app on my phone. Apps, of course, encourage interaction too, so they’re more useful than a read only widget that gathers information. But we should be careful before we embrace applications, because, like widgets before them, they all have various gotchas.
For me, riding the wave of the app world, I’ve seen a growing set of issues with this approach to software:
Integration is key- but is typically missing. If you can’t “share” data outside of the application, the information is locked away- Google showed us the benefits of making data indexable, yet it was very quickly forgotten when apps came along and suddenly your data was hidden away in an app that couldn’t be searched.
Google’s latest OS tries to fix this (by allowing Google Now integration and deep app searching) but still rather too much information for my liking requires an app to access it and little or no knowledge of what lies within a specific application is available to the global OS – I can search my PC and expect to find content created within files – but the same can’t be said for content on my mobile device. And that’s before we even account for the data you’ve stored in an app which you don’t have installed (e.g. if you store something in Evernote on your desktop PC and don’t have the same app installed on all your devices).
The OS wasn’t built for lots of fragmented applications – and nor was the human mind. Forgetting about the data inside of your app I mentioned above, the challenge becomes exposing people to the right apps and information when they need it- how do you find the right app to do the job you wanted? What happens when your “start menu” or application list has 50 plus items?
Some clever people are trying to solve this problem with app launchers that use context to surface the right app, but that’s normally based on some very basic information (most have location and time based information to work with, giving you work apps when you’re in the office during 9-5, and home related apps in the evening for example).
Flexibility of data in apps – if your email is one app and you decide to try another app that’s not a problem – the back end (email data accessible via IMAP, POP, HTTPs etc) is easy to access. But try taking your OneNote content to Evernote, or your Health data from one fitness tracker to another- if you’re lucky, there’s an export tool that exports in a way that can be imported in your desired new app, or maybe some kind third party who was stuck like you wrote an app to move it- but most of the time you’re just straight out of luck.
API’s are making things easier, but API’s store data in such a way that requires programming skills to retrieve data, where open standards (HTML, email protocols) are intended to give standardised methods of access and data display.
All in all, I worry that in our dumbing down, we’re risking building a future that’s less easy to use and more tightly controlled by individual companies, rather than open standards.
I’ve been shopping around recently for a new phone (after the painful experience I had with the Galaxy S5 and some truly appalling battery life and rapid abandonment by Samsung for OS and security updates) and debating the features I actually want/would like. I was tempted to go budget/mid-range after experiencing a Sony Z3 Compact and realising that I didn’t always have to have the latest thing- but I quickly realised that the compromises were always frustrating- I wanted a big (1080, 5.5 inch or greater) screen, expandable storage (with preferably 32GB local storage) and NFC – not too much to ask I thought, but quickly found it was next to impossible to find this combination.
I tried to whittle my list down, and found that the one thing that was surprisingly difficult to get was NFC which I think is a real shame – whilst NFC hasn’t exactly set the world on fire (and there’s plenty of geolocation apps that fill in some of the NFC gaps) I still think it’s a relatively fun (and cheap) way of adding real world interactions with your phone- I’d recently bought a pack of ten NFC tags for £10 that allowed me to tag the plants in the greenhouse to pull up care instructions, and I’d also setup a quick and dirty bluetooth enabling tag in my car and a handy tag on my printer which would open it’s web admin page to confirm it’s settings (since my cheap, WiFi enabled printer has a retro two line LCD display which is painful to navigate!).
The one NFC project I haven’t gotten round to, but am still tempted to do, is a USB hard-drive inventory app. I envisaged it working something like:
Autorun on the drive runs a DIR command and uploads the result to a webservice (such as SimpleNote- my directory listing isn’t private, but I guess I could upload it to OneNote/EverNote or similar to keep it private but accessible)
NFC tags for each of the drives linked to the URL for the Web service.
Profit! (or, at least be able to see what’s on a drive before you plug it in).
I’ve not come up with any other clever uses, but the geek inside of me loves things like these as they’re super easy to use and make the concept of smart homes that bit, well, smarter. If I had smart lights, I’d like the ability to tap the light switch (or, perhaps somewhere on my coffee table) to activate the light app. It’s a shame Fitbit’s API (last time I checked, which was a while ago) was largely read only, as I also envisaged checking in my water drinking habits using a quick API call (tap the glass with your phone to add a glass for example), or a wall chart that tracked progress against goals by tapping it (if you’re a fan of the “Don’t Break the Chain” habit forming method). The one final project I had in mind (and I’ll clearly need to buy another pack for this!) is NFC enabled board game pieces – inspecting a unit’s stats with a kick tap (I’m sure others have done something similar before).
As part of a recent project I found myself having to write a series of scripts to cover many of the CIS requirements and figured it might of use to the rest of the world – so I’ve decided to start a new blog post series on different security scripts- let me know what you think!
I wanted to add a final post on the software I’m most looking forward to this year (I know, we’re already a third of the way in, but hey!):
Windows 10- This looks like a solid release (although there are certainly a fair few rough edges in the technical preview) for Microsoft. I’m excited to see a whole generation of Windows 7 users move across to a modern operating system – and the potential for the app store once the majority of customers get some exposure to it- very exciting times indeed.
Photoshop – Adobe seem to never fail to amaze me with adding clever functionality to Photoshop. OK, the cost is still crazy, and the app is definitely edging beyond the world of bloatware into a category all of it’s own- but I love the innovation at work here.
Skype – if Skype really can deliver on near instant translation between languages it’ll be amazing- but Microsoft’s latest tech video points to a future where the MEDIUM itself is flexible – changing voice to written message, etc. depending on how you want to consume the information – that could be truly groundbreaking (I thought we might see this when we got “visual voicemail from Apple, but they stopped short of transcribing messages!).
Google Now – We’re starting to see the new Google Now cards creep out – and whilst I’m worried that card overload is just around the corner (context/situation awareness is still lacking from a lot of cards and so many apps use notifications as engagement tools, rather than actually trying to enhance the utility of the application itself) I’m excited to see where this goes – certainly notifications need a lot of changes to become worth while in an age of smart watches (no, I don’t want the 50+ emails (on a quiet day) popping up on my wrist whenever they arrive).
Cortana – A desktop AI/speech recognition system? Yes please!
And… that’s it. I’d really like to see a lot of refinement of existing apps and wares (Android OS, Evernote, etc) – but the most interesting thing is that nobody is really pushing any boundaries for software – the same utilities and apps are reaching the point of minor refinements which means we’re left only with crazy, unpredictable apps that challenge the status quo that come out of no-where from previously unheard of companies. I’m not going to pick up Snapchat (doesn’t fill a requirement for me) or start using Wunderlist (it’s too close to other apps I’ve picked up on and now it’s hard to swap) but both of these show there’s potential to come from nowhere and challenge the workflow.
In my penultimate post about useful software I used in 2014 and will (most likely) use in 2015, I wanted to look at some of the web apps that made my life easier:
Codepen – Easily the best online code sharing environment there’s thousands of great pieces of code out there, an easy to use environment to test your code in, and a nice UI to wrap the whole thing up – perfect.
Pocket – Easy to capture articles into (Chrome add-in), Pocket Pro adds useful retention for articles that might be removed from the web, and a solid mobile client makes Pocket idea for building up and going through your reading list.
Outlook.com – I want to love gmail – I still get most of my email into my gmail account to make the most of Google Now on my phone- but it just isn’t a great UI for working with messages – I have no idea why I’d want a floating compose window as opposed to a fix one focusing on the message I’m working with but Outlook manages to provide a clean interface that doesn’t get in the way.
Feed.ly – I can’t deny missing Google Reader, but Feed.ly does everything I want from a feed reader with some useful bells and whistles.
Evernote – Evernote’s new interface is a delight it focuses on useful elements (composing new notes and searching for old ones) that demonstrates where a lot of apps should be headed – very refreshing especially for a company which could’ve easily sat on it’s robust (old) web client or told people to use apps instead.
Google Calendar – I use this out of habit/convenience more than anything as the whole style of Google Calendar is painful due to a complete lack of logical workflow and design grace- it’s great telling me in a tip that I can say “Lunch with X at 11:30 am” but it’s useless when I put all that data into my entry and I don’t have a time or place field automatically completed unless I use perfect syntax – which is especially annoying when Google’s intelligence in Google Now and general searches on Android is a country mile ahead of the pack. They could save the applicaiton with a bit of thought about how people use a calendar (keep the new appointment form in a pane so it’s always accessible,
Google Plus Photos – Actually, this is awful too. Wow- I never knew how frustrating Google apps could be until I looked at them one by one! In fairness, the core functionality is great- editing is easy, tidy automatic Android integration/backup, and some nice touches (auto-touch up and story creation) work well… but try to do anything with the app (managing the large amount of images it supports, moving things into albums etc) seems to be bug ridden and difficult (I can never move items into a new album without selecting them and then scrolling all the way back to the top of the page for example, and I’m bored of the reset to the top of the page)… Maybe this year I’ll have a look at OneDrive or Flickr for my images- but for now, Google Plus Photos does the job…
WordPress – Constantly updating and adding functionality without getting in the way – WordPress shows what you can achieve in a web app. I’m confident what it doesn’t do that I’d like to is probably covered by a plugin – it’s really hard to fault (especially with free hosting on WordPress.com).
OneDrive – Microsoft pushed Google Drive out for me due to it’s speed and ease of use- where Drive insisted on versioning and Docs integration, OneDrive seemed happy to be more Dropbox like – and now that Microsoft’s office apps have become more robust online I’d never think of switching back to a storage only service (especially after SugarSync, a long term favourite for such things, decided to pull it’s free offering without “upselling” it’s functionality against it’s many free competitors).
SimpleNote – OK- so many of you will have noticed Evernote and OneNote on my previous entries – why another note app? SimpleNote does the basics brilliantly- and it gives a nice little silo for scratching out specific notes for specific purposes (it’s a bit like a seperate drawer in your desk!).
TimeBuddy – My favourite world clock site for ease of use!
My next, and final, post in this series will cover some of the apps I’m looking forward to next year and what I hope will come to fruiton soon.