1. We are here with Tom Banks at QCon San Francisco, and Tom is an IBM technical Evangelist, hello Tom!
Hi there!
Martin's full question: Tom, as a technical Evangelist for IBM, you seem to have an ideal job for a Software Engineer and Computer Scientist, travelling the world over attending tech conventions and demonstrating video controlled cars.
One might see obviously what's in it for you; it’s an awesome job. But what is IBM getting out of showing radio-controlled cars and sponsoring you and your great efforts as Evangelist?
So my whole role is to go out and approach development communities and approach developers. Either online or at conferences such as QCon and to talk to them about the different interesting things that I can do with IBM’s technologies and to try to show them new things that I can do.
So when you talk to a developer and you mention an application server, then if they've used application servers like as an OS or as a web site or they can use it as a middleware environment.
But then they know that you can take that, you can put it onto a relatively low power embeddable device such as a Raspberry Pie and they can remotely control devices.
Not just radio controlled cars but home automation or any kind of physical device that’s got an electronic control component from over the Internet or over a local Wi-Fi using Internet standards.
And so, I go out to developers, I tell them about these cool new technologies they can do, these cool new things they can do with our technology to try to make them think a little bit outside the box when it comes to enterprise software so that they can innovate using our software and these new spaces.
We do have a couple of objectives with the Code Rally Game. First, as you rightly mentioned, is to encourage kids and students to learn how to develop software. To learn how to use Java most specifically and to become the next software engineers.
Not just for Big Blue, for IBM, but our customers, especially in the middleware environment with the Liberty Profile Application Server. Our customers are our end-users, our developers, so in a way we're educating them so that we have more end-users to go out there who know about our software and who know how easy it is to use. And then go out there and use it in their jobs later on.
The other role of Code Rally is, because it’s an Open Source game, and because we’ve documented how we built it, is it’s a very good case study, very good showcase on what you can do with IBM software.
So it’s built using Rational Team concept. Which is an IDE that has got an SPM component. And that links up with the JazzHub. Which is an online code repository, which allows you to create teams of software developers who can be spread all over the world. Such as the Code Rally Team was. And they can work together collaboratively on software engineering projects.
And then creating programs and using that software built on top of the Liberty Profile Application Software. Which is an example of a very good application server you can use. And again because it’s Open Source you can see how we're using the Liberty Profile.
You can look at some of the interesting things we are doing with it, as we are doing some very interesting things in the Code Rally Game and learn from it by just looking at the source code and looking at our use case.
Martin: You mentioned Java, that's mainly the language of choice for IBM, and what about HTML5 files and…
Java is your service site programming language. That is what runs a vast majority of enterprise software and it’s a very good programming language to use when it comes to HTML5 that's more of an instance of Liberty Profile.
That's what it will be sending out. So you are not just writing in Java when you are writing a web application. You’ve got to write your web front-end. Which you should be using HTML5, now you're maybe using JavaScript and Dojo in addition to that.
Martin's full question: Regarding the use of the term of Evangelist, according to Wikipedia it was originally taken from the context of religious Evangelism, do the similarity of relaying information about a particular set of beliefs with the intention of converting the recipient. Do you ever get flack about sporting such a title and what manner of technological belief so to speak, if anything, are you trying to convert your listeners to adopt?
Yes, I got a huge amount of stick from my friends; from family, from people who had the job title Technical Evangelist, because we are going to put out a big red book and start beating over the head with it to get them to use IBM software.
So I do get a lot of stick for that title. In a way I do what the description says, I do go out there and I do evangelize around my beliefs and when it comes to Software Engineering. So I’m biased.
I was a Software Engineer working on the WebSphere Application Server Liberty Profile before I took this role as the Evangelist. And because I’ve worked on that and I understand the code behind it and I understand the reasoning we’ve gone through when we’ve been designing it constantly keeping the end-user of the developer in mind to make it easy for them.
I do believe that we do have the best application server for developers to develop on. We’ve made every decision focused on making it easy for the developers, so they have to do as little as possible to keep an application server running in the development environment and having to make the least changes to it.
And so I do believe whole-heartedly that we do have the best software. And I’m trying to show developers not just to try it. Because more often than not, when a developer tries to use the Liberty Profiler and sees how easy it is to use, they do agree that it's a very, very good development environment to use.
So when you say, when you talk about the Application Server such as Liberty, the first thing that comes to mind is running a website. So that can be a secure website with a database backend.
So for example online banking sites or online shops, that's the most common use cases you think of as just these websites as potentially sort of internal middleware infrastructure websites that'd you use in an organization to look at reports or to try to coordinate different things going on and hook different pieces of software together within an organization.
So most use cases in the production environment an end user would see would just be your online websites. And so that's the most common use case.
6. [...] And if so, can you explain how people might want to try that for themselves if they can?
Martin's full question: Regarding your technique of using gamification with the, I saw that you used Ubuntu Virtual Machine for using your Minecraft application, is the Ubuntu Virtual Machine the best method that you found for getting the Web Sphere Application Server Liberty Profile to work on Android devices? And if so, can you explain how people might want to try that for themselves if they can?
So for Code Rally we don’t actually highlight using Ubuntu for that. You can write your own Code Rally on Linux, OSX or Windows. We have a Windows history all around me at the moment but we do support all of the various platforms.
So as with Liberty Profile, if Liberty will run on your OS, such as those three platforms I just mentioned, then Code Rally will run on top of that.
As for the question of running the Liberty Profile on Android, then because Android uses the Dalvik Virtual Machine, it’s not 100% Java in the sense of the JVM language that you’d write in the application server for. So you can’t just use in a mobile phone platform the Dalvik VM on Android. And there is no Java equivalent Virtual Machine on iOS or Windows Phone.
So we had to figure out a way of getting an actual Java Virtual Machine onto a mobile platform. The easiest way of doing that is by taking Android's OS. It's the most open of the three operating systems and installing Ubuntu as a loop device almost like a Virtual Machine in that sense, so you are running Android and that's controlling all your device drivers, your internet access over the 3G radio, over the Wi-Fi etc, and then you have your Ubuntu Virtual Machine on top of that.
And kind of hitchhiking on the back of that driver's support in Android, so Android does all of the driver model for the hardware and Ubuntu just thinks its got an Ethernet connection to the outside world.
And because we’ve got Ubuntu then running on a mobile phone or a tablet computer, you can then install a Java Virtual Machine, so Open JDK for example, and then once you’ve got that installed, you can install a Java EE application Server such as the Liberty Profile, one that supports any JVM, so there's no IBM Virtual Machine that runs on devices.
So we couldn’t support enterprise software that's only supported on say J9 and it’s the same with some other application servers. They might not run on non-specific Virtual Machines, but with Liberty it does, so it’s very easy to do.
7. Could you’ve done that or have you done that with iOS?
So we’ve not managed to do it with iOS or Windows Phone because there's no easy way of installing Ubuntu or any Linux variant or any OS that has a Java Virtual Machine onto those pieces of hardware.
I mean you could take a Windows Phone potentially and replace the entire operating system with Ubuntu. But then you’ve got to find driver support and other things so it’s much easier to target the Android platform due to its openness and there's nothing for iOS except its lockdown and Apple don't want you replacing in iOS.
That's going back to a few years ago now with my software testing. So I did used to work in software testing and it depends on what software you are testing and what level of testing you want to do.
If you are using Unit Testing and then attempt to write a standard Unit test using the Eclipse IDE. And if you are looking at more functional testing then we tend to build our own testing frameworks, which will execute our tests automatically for us.
Which is very useful considering the huge number of tests that we run on our software in a build environment. So fire and check-back in an hour software build environment verification tests for our systems tasks etc. So it’s amazing what it's testing.
The ISEB Certificate in software testing that I got was encouraged and paid for by IBM a few years ago when I was just working as an industrial trainee, an intern essentially, in the UK.
And IBM does encourage all of its employees to undergo education such as that to try to improve them as software engineers. So by going on that course it made me very aware of the different types of testing you want to do and the best practices for that and the 'test first' style of software development.
Where you write your test almost before you’ve written your code. So you’ve got your test case ready and then you make your code work with that, so you are testing everything.
That has helped me a lot in my career because, not because it’s a qualification, because it’s just a line on a piece of paper, but it improved me as a software engineer. And so the name change of the foundation didn’t affect it because the quality of what I’ve learned is still perfectly valid.
Martin: We talked a little bit about what can be performed with the Liberty Server for Minecraft. Describe where you think maybe that's going and what tools that you created to work with Minecraft.
And describe that process of creating the tools and the plug-in for it...
So this is going back about a year now, when we were working on the Liberty Profile and we wanted a way of making it easier to use. Or coming up with some fun new unique ways of interfacing with software.
So I’ve got a very strong development gaming background from my degree. And so I chose to try and modify a computer game with a virtual world to control enterprise software, in this case the Liberty Profile.
So I chose Minecraft because it’s a Java game. So I’m already very familiar with the language and it’s very easy to modify, especially with the Open Source. I said the Open Source, the community around Minecraft, and it's not Open Source itself.
But you can get versions of it that you can access the source code on. So I wanted to try and see how easy it was to write a modification for Minecraft and to try and think on how I could utilize Liberty's and JMX's API to control the enterprise software from another piece of software.
So I wanted to do the Minecraft work and wanted to figure out how to control Liberty from the software. It made sense to modify the computer game to control the enterprise software and that was relatively easy and it took a couple of hours and an evening to put that together and then have some fun with it.
And by doing that we’ve been able to give it to interns, to students, to graduates, to engineers in IBM to try out and yes, we're not going to be distributing it as an official user interface.
Our users don't have to worry about having to play games to control software. But it's just trying to make people think on how they can control their software by showing look: “It’s so easy”, we even managed to convert a computer game. The thing that is least suited as a user interface for enterprise software almost and we’ve managed to make that work.
So you can go out there and you can create your own user interfaces if you wanted to that customize specifically for your individual use case. And I still encourage people to try that out.
10. And you eliminated some of the characters because they could cause some difficulties with it?
Yes. So because in the Minecraft user interface you can, you physically build a physical representation of your application server architecture. There are enemy mobs in the Minecraft game who detonate, destroying parts of the world.
And you don’t want those running into your very carefully setup representation of your server and then destroying half of it, so we make sure to remove those.
Martin: So if they try that at home, they better scout out those first.
You don’t want your user interface fighting against you. I’m sure plenty of servers out there will say that it would probably be a nightmare to be fighting real fires in your user interface as well as fires in your hosting environment.
11. How do you like QCon San Francisco so far Tom?
It’s a really good conference. There are a lot of developers here from loads of different backgrounds. You’ve got developers representing big corporations, you’ve got developers who are working on their own and it’s great to be able to talk to those different groups and to get their own different views and opinions on what we're doing and to get feedback on the software that we are creating for them.
That's really, really valuable because we want everyone to be using our software, we are not just targeting big business anymore. Which is one of the reasons why we made the Liberty Profile free for developers.
It’s just so anyone out there can go out there and give it a try and learn how to write EE applications on it.
13. What's your impression on the differences if any between New York’s QCon and SF’s QCon?
How to answer this without insulting one side of the country? So we’re at the first day of the conference here at the moment. So I’ve not spoken to too many different developers. I’ve not really noticed much of a difference. I'm seeing a good mix. I’ve not been to any presentations because I spend more of my time talking to developers around their ideas and personally that's more interesting to me.
We do see a little bit of geographical difference. So I tend to focus mostly on Europe and North America at the moment. I am hoping to be able to go to more African, South American and Asian Conferences in the coming year since I’m relatively new to the role and have not been able to do that yet.
The reaction in France is more different to the reaction in the US, especially to the Code Rally Car and also to the Code Rally Game and to the Liberty Car. So in France we saw a lot of competition between two groups of developers on the Code Rally Game.
Where we are running a competition where they had to write their own alley to drive the car around the track and the fastest couple of cars to win the prize. And we had these two groups of developers who spend about four hours over a couple of days sitting at these laptops during the conference, just hammering out the code, trying to beat each other.
So there is a little bit more competitiveness there within the groups. In the US especially we tend to see people, if you have a group of developers, they take a laptop each and they'll compete with each other as well as against other groups of developers.
But in France they seem more focused on everyone crowding around one laptop and getting it to work or doing their own thing. It’s more of a us versus them as a case of a me versus them approach, but that is just…
15. Where are the best opportunities at IBM, Tom, these days?
IBM is a huge company, so I work with people all around North America, Canada, Europe and Asia as well. There are opportunities all over the place. The trick is to just apply.
So the one thing that I do notice is when I go to universities and I talk with students there and graduates, future graduates and all of them thinking: “I can’t apply to a big company like IBM because they only want experienced engineers” and I say to those people: “No, no” to take advantage of this and you can apply for the graduate schemes and they're a fantastic way of getting into the industry.
So that's not restricted by geography, just give it a go, and doesn’t even need a Software Engineering Degree to work for IBM anymore. You can be a chemist or a physicist or a philosopher or a musician and as long as you show the right kind of personal qualities, they've got the opportunity.
Martin: I saw they are advertising a lot of; they want a lot of people from mobile backend as a service technology so it’s doing a little…
So the IBM mobile first initiative is very active at the moment, so yes, anyone with mobile and development experience or writing backend infrastructure for mobile development, always it’s a good time to come and try IBM software or to apply to write that software.
Another big initiative we’ve got going on at the moment is IBM Design. So we are aware that some of the user interfaces or some of our software could be easier to use, especially some of our older software going back to the early or mid 2000's.
And so to combat that and to make it much easier to use our software, we're bringing in a lot of web designers and user interface designers to come in and to help make things even better for our end users.
So anyone with that sort of design background, you don’t have to have a very technical background for this, we do have a big initiative on that at the moment and I believe that's across geographies.
16. You guys do a lot of training there?
I believe they do give you training. I’m not in those areas. I do believe they give you all the training you need for it although that's the same with anywhere in IBM. But I know that UK and the US have a lot going on at the moment and the design initiative.
17. Great, so what about the Liberty Car?
The Liberty Car, I've had it on my lap all the time. So this is the Liberty Car, it’s a radio-controlled car, which we ripped the radio receiver out of; we plugged a Raspberry Pie computer, which for anyone who doesn’t know it’s a $30 computer.
It’s based on a mobile phone chip about for or five years ago now. So it’s relatively slow but it’s very low power. You power it through your USB port so you can plug it into the main source.
Into your laptop or TV or anything with a USB port to power it. It’s booted off an SD card. So you just write an image that you downloaded from the Internet onto an SD card and plug it in and away you go.
And this runs Linux at the moment, so you’ve got a Linux operating system on a $30 dollar computer the size of a credit card that you can run almost anywhere. So what we did with that is we plugged that into the motors of the car, replacing the radio controller, we’ve given it a Wi-Fi network so it’s got its own USB power, Wi-Fi router within the car itself, so its got its own network in effect and on top of the Linux distribution we installed on that, which is Raspberry and the default image that you normally get for running on a Raspberry Pie.
We install Open JDK6 as Agile Virtual Machine and on top of that we install Liberty Profile, so combining all of that together; powering the car with its internal battery.
What that means is you can connect any mobile device, a mobile phone, a tablet, a laptop, a desktop computer with a Wi-Fi Dongle in it, you can connect it to the car zone Wi-Fi network, you can scan this QR code or entering the URL yourself and you can essentially get this webpage which is just a JavaScript web page, there's nothing proprietary about it and it works in pretty much any modern browser, and from that web page I can in effect drive the car and very, very close to real-time as a couple of milliseconds latency.
But by doing this we are trying to show a couple of things. First is the car itself is what we call a Zero Infrastructure Environment. That means that it’s got its own processing, its own storage, its own networking, its own power supply, the whole last to a very good amount of time, I mean we are talking 20 hours.
It’s completely self contained, very portable. If you get rid of car components, you can fit this in a palm of you hand pretty much. And we are trying to show people that you can take these setups, these applications, Java EE Applications setups and take them out of the server or even take them to wherever you need them.
So it’s trying to get developers thinking what would I do with this or how can I use this in an environment where I don’t have reliable Internet. It’s trying to get them to think on what they can do with that.
Which leads you to the Internet of Things. Which is the idea of that not distant future, hopefully soon since I’m a big fun of the Internet of things. We’ve got everything has its own brain; you can control everything using a mobile device.
So your light bulbs have their own control. So what you can do if you have Wi-Fi, you can control an oven at home to turn it on when you are getting off from work. You can monitor your home and power usage from work and if you left the light on you could flip it off from the Internet.
So to get to a use stage of the Internet of Things where everything seems to connect and it works with each other, we are going to need embedded devices such as a Raspberry Pie to be able to control these devices.
And to be able to control them, we are going to need a web interacting with it. So I’m a big fan of using web standards. Because everyone has a web browser on their mobile phone pretty much and it’s a known quantity.
It’s a known standard and hopefully by using Liberty Application Servers you can stick to those standards and avoid proprietary technology and proprietary communication protocols.
Because that is the one thing that I don’t want to see within the Internet of Things, I don’t want to have 200 mobile apps installed on my phone to control my home. Because there is no point in doing that when you can do that using just simple web pages or a mobile app that can just interface and understand what a user interface represents based on communicating with devices.
So what we are trying to show here is just this self contained app server environment as well as embedding small devices to control pretty much anything.
I’m not going to do the thing of giving the year we'll see that. Because that's just impossible to guess when we'll see it fully pervasive. But we are seeing it now; we are starting to see it more and more all the time.
So you can buy light bulbs now that you just plug into a standard attachment, they’ve got their own Wi-Fi Mesh network and so you can control all those from a mobile app.
You’ve got home automation kits already, which allow you to control different devices in your house. But those two things, on the whole using propriety standards, you’ve got competing standards and it’s a shame to see that.
I’m hoping with devices such as the Raspberry Pie we'll see more manufacturers moving to using devices like this that are off of the shelf, just plug and play as opposed to a lot of these implementations and using these devices hopefully they’ll start using more open standards in their communication protocols to let you control these using less apps.
Since that will just be a nightmare and I think that would kill it. But I think we are seeing it now. We are starting to see it roll out slowly and every couple of months you see more devices coming out that link together.
So I’m going out now talking about the Internet of Things showing how you can use the Liberty App Server. Yes, it’s part of the pack of demos that I have to take around with me. It’s one of the things that I’m really passionate about seeing.
I really want to see this into connectivity because it makes things just like living in the future pretty much, where you can just take out your phone and turn the lights on, turn the TV on, put the oven on, see what food you’ve got in the fridge, you can do that all from your mobile phone instead of having to go and do those things. That's pretty cool to me, pretty Sci-Fi.
20. What about 3D printing, it’s any..?
3D printing it’s fantastic. There are a lot of engineers that I work with back in the lab in Hursley who’ve got their own 3D printers. I see that as becoming something very, very useful in the future.
I’m not aware of any IBM initiatives in 3D printing because it’s a physical printer and it’s more of a consumer base product. But again 3D printing is a fantastic thing and I’d love to have a 3D printer of my own. I plan to have one pretty soon because of the different things you can do with them.
21. Awesome, so Tom on your world travels as technical Evangelist for IBM where do you go next?
I’ve got one more conference left in 2013 and that is the LJC Conference in London. That is near the end of November, on the 23rd of November I believe Saturday.
And that is a smaller conference than QCon. So it’s going to be about 150 developers but again there are developers from all different backgrounds. So you’ve got developers for large corporations, for medium size businesses and developers who are self employed.
So it’s great to go and speak to those communities and find out about what they think is interesting in Software Engineering and what they like and don’t like about some of the things that we are doing.
Martin: There're in for an educational experience I’m sure. Thanks so much for being with us here at QCon San Francisco Tom!
Thank you!