Category Archives: professional

PyCharm: JetBRAINS IDE for Python and Django

JetBRAINS has released PyCharm, an IDE for Python and the Django web development framework.

The company is best known for the IntelliJ IDEA Java IDE, and indeed PyCharm is mostly written in Java, but now has other tools for languages including PHP and Ruby and Rails. It also does add-ins for .NET developrs working in Visual Studio.

PyCharm

PyCharm has a small number of refactorings, lots of code search and assistance features,  integrated support for CVS, Git, Mercurial and Subversion version control, unit testing with a graphical test runner, graphical debugger, built-in deployment to Google App Engine as well as error highlighting for GQL queries, and editing support for HTML, CSS and JavaScript as well as Python.

A useful Windows Phone 7 app in a couple of hours – Where’s my Train

I was interested to see that National Rail Enquiries has published a web service for its live departure boards. These give you reports on the next trains to depart from any given station, including information on late running.

Given that this is Windows Phone 7 week, I could not resist trying it out. I have a minimalist UI – you type in a station and hit Go. In version two you will just press Enter. It fetches the live train departures and displays them in a list. Version two might have a scrollbar too. Still, I’m pleased with the results, which could actually prove useful when I am running for a train.

image

Confession: it is currently hardcoded for just a few stations. That’s because you need to look up the station code in this table. I need to embed this database in my app somehow.

The coding is pretty simple though. It may help that the National Rail Enquiries web service is based on .NET, which is also why it does SOAP and WSDL, to the disappointment of those looking for REST. All the hard stuff is done by Add Service Reference in Visual Studio. The web service call is asynchronous, but there is a code completion wizard to add the necessary event handler.

Could be a money spinner if I can get it out quickly – but unfortunately the terms and conditions appear to prohibit its distribution:

This Web Site is for your personal and non-commercial use. You may not at any time modify, store, copy (including for example screen scraping), extract, reutilise, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell, distribute or create any information, products or services obtained from, linked to or using this Web Site and any data therein or that may provide users with the ability to do the same.

These terms are bit puzzling, because on one interpretation they do not permit any use of the web service, even though it is stated that:

For the purposes of these Terms & Conditions the term Web Site also includes the web services, XML and any other data source supplying the Web Site.

Oh well. It still shows how quickly you can knock together a client for a web service and make something useful, although mine is really only a proof of concept. I reckon it would be almost as easy in Adobe AIR too – and then it would run on Android.

There is a National Rail Enquiries app for iPhone which costs $7.99 and likely uses the same web service.

Want a Windows Phone 7? Here are the choices and costs in the UK

I’ve been taking a look at what it will cost to get hold of a Windows Phone 7 device when it appears.

By way of preamble, personally I’m allergic both to contracts and to locked devices. It is an especially difficult issue for individual developers who want to test, support or develop for multiple devices. If you want an unlocked device, you could try Expansys which is currently taking orders for the HTC 7 Trophy – 3.8” screen, 8GB storage at £429.99 including VAT, but not due until 11th November.

O2’s HTC HD7 also looks attractive for developers, since it is available on pay as you go and has 16GB storage. It may be a bit bulky, but that is no bad thing for testing.

Vodafone has the cheapest currently announced deal by some measures, with the Trophy for £25.00 per month.

What if you want the HTC 7 Pro, which has 16GB storage and a slide-out keyboard? It’s set to be available in the US from early 2011 on Sprint, no word yet about Europe though I’m told it will appear here around the same time.

HTC HD7 Pro

If you want a keyboard, the good news is that the LG Optimus 7Q also has one; the bad news is that there are apparently no plans to offer it in the UK. You will be able to get it on Telstra in Australia.

There is also the Dell Venue Pro which has a little thumb keyboard, but no UK availability announcement yet. It will be on T-Mobile in the USA.

Dell Venue Pro

O2 has published details of its tariffs for the HTC HD7 – 4.3" screen, 16GB storage.

  • Free on £40 24 month tariff
  • £379 pay and go

HTC HD7

Orange, which says it is “Microsoft’s lead partner”, will have the Samsung Omnia 7 – 4.0" screen, 8GB storage, free on a £40.00, 24 month tariff. Note this is cheaper on T-Mobile, see below.

Samsung Omnia 7

Orange also offers HTC 7 Mozart – 3.7" screen, 8GB storage, free on £35.00 24 month tariff.

No word on pay as you go for either handset.

T-Mobile, which like Orange is now owned by Everything Everywhere, also has the the Omnia 7, free on a £35.00 24-month contract.

Vodafone has the HTC 7 Trophy – 3.8” screen, 8GB storage. This is free on a £25.00, 24 month contract. I’ve also been told Vodafone will offer the LG Optimus 7 – 3.8” screen, 16GB storage free with a £30, 24 month deal.

Three has the Samsung Omnia 7 on 24-month plans from £35.00 to £40.00 per month.

Might there be supply issues at launch? I am guessing that is likely, so if you are keen get your order in early. On the other hand, these are version one devices, so the usual health warnings apply.

IBM to harmonise its open source Java efforts with Oracle

IBM’s Bob Sutor, VP of Open Systems and Linux, says in a blog post that the company will now shift its open source Java effort from the unofficial Apache Harmony, to the official Open JDK. The announcement is also covered in an Oracle press release.

Sutor’s post is curious in some ways. He focuses on a long-standing issue, the refusal of Sun and then Oracle to make its testing suite available (TCK – Testing Compatibility Kit) under a suitable license so that users of Harmony could have confidence that its implementation is correct:

We think this is the pragmatic choice. It became clear to us that first Sun and then Oracle were never planning to make the important test and certification tests for Java, the Java SE TCK, available to Apache. We disagreed with this choice, but it was not ours to make. So rather than continue to drive Harmony as an unofficial and uncertified Java effort, we decided to shift direction and put our efforts into OpenJDK. Our involvement will not be casual as we plan to hold leadership positions and, with the other members of the community, fully expect to have a strong say in how the project is managed and in which technical direction it goes.

We also expect to see some long needed reforms in the JCP, the Java Community Process, to make it more democratic, transparent, and open. IBM and, indeed Oracle, have been lobbying for such transformations for years and we’re pleased to see them happening now. It’s time. Actually, it’s past time.

The interesting question is what has really changed, since the situation with the Java TCK is not new. It reads as if some intense negotiation has been going on behind the scenes, of which this is only part of the outcome. It is not yet clear, for example, exactly what changes are happening to the JCP, which controls the Java specification subject to Oracle’s approval, although Sutor refers to them almost as if they are a done deal.

IBM’s announcement gives a boost to the official Java platform at a time when it is under a cloud, following a JavaOne conference which was run as a sideline to the Oracle OpenWorld event last month, and rumblings of dissatisfaction from the JCP and from Java inventor James Gosling.

Another important player is Google, whose Android operating system uses the Java language but an incompatible virtual machine called Dalvik. IBM’s move will strengthen Oracle’s position as steward of the official Java platform.

This is a blow to Harmony. The current list of contributors  has 31 names, of which 9 are from IBM, 3 from Intel, 1 from Joost, and the others independent. It is a shame to see an important open source project so much at the mercy of corporate politics.

Windows Phone 7 gets decent launch, Stephen Fry’s blessing

I was not able to attend the press conference for Windows Phone 7 in person but watched the live webcast from New York. I was unconvinced by the phrase “Always delightful, wonderfully mine” which formed the basis of Microsoft CEO Steve Ballmer’s lead-in, but it got better.

image

Corporate VP Joe Belfiore did a live demo, explained how the team had aimed to simplify the phone and make it where possible seem one step ahead of the user, predicting the information you would want or the next step you wish to take. He also spent some time on enterprise features, especially Office and Exchange integration, which interested me as there is some ambiguity in how Microsoft is positioning the launch devices; consumer is the focus yet business-oriented features keep cropping up.

image

One of the 5 HTC phones announced today is the HTC 7 Pro which has a keyboard and seems mainly aimed at business users.

Ralph de la Vega from AT&T said that his company will offer Windows Phone 7 from November 8th in USA, initially from LG, but with  with 3 devices – LG, HTC, Samsung – available a few weeks later.

Belfiore’s demo looked good, despite a couple of failures from which he made a good recovery. He announced that the much-discussed Copy and Paste feature, which will be absent from the first release, will come as an automatic update early in 2011.

He also spent some time on the Xbox Live integration, which is one feature that is distinctive to Windows Phone 7 and strikes me as a smart move. A couple of XNA games were demoed and look good, one called Ilo and Milo that uses the accelerometer:

image

and a familiar one from EA, The Sims:

image

The best part of Microsoft’s launch though was not in the USA but in the UK. Celebrity Stephen Fry, known for his love of all things Apple, got up and and praised the phone.

image

The BBC’s Rory Cellan-Jones caught some of this on video, and I am going to quote extensively because it touches on something I’ve been tracking for years: Microsoft’s belated recognition of the importance of design:

I made no secret of my dislike of Microsoft over many years. I did think that analogy of a building site, of a Sixties grey office, is essentially what the environments they were making then were. Whatever I may think of this device (and I’m going to come to that in a moment) I think we can all admire the humility which which Microsoft have admitted to the fact that they now, I think, get it. They get the fact that all human beings whether they work in enterprise or in small businesses or are self employed, are human beings first.

You don’t judge the machines you use or the houses you live in or the offices where you work, simply by listing their functions. The first thing you do as a human being, whether you work for a large office or a small one, is say how you feel about it.

What I was always excited by when Apple produced things and then when HTC and other OEMs started making fascinating and enjoyable Androids, and even when RIM came out with the Torch, I felt pleasure using them. These are things, we carry them around at all times and our lives flow through and out of them. And the first feeling we should have is one of delight, so when I heard Mr Ballmer use the word “delight” I thought, oh what joy there is in heaven when a sinner repents. Because let’s be frank, Microsoft were grey, they were featureless, they did concentrate so much on enterprise and tickboxes for function, that they forgot that even the greyest number-cruncher in the corporation is a human being first, a father, a husband, a mother, a daughter, whatever, and that their experiences are based on feeling and emotion.

So when they did send me one of these about a week or so ago – I’ve got a few of them, and I’m not being paid – my first feeling was that it was just fun to play with. And I know that’s childish, but isn’t that how you think of cars and many other things we spend our lives doing? That it’s fun to drive. Yes you want it to be economical, yes you want it to get from A to B, yes you want various things.

People buy things because they feel that emotional engagement, they feel the pleasure of using it. I have felt enormous pleasure using this phone. Yes, because I’m not a paid spokesman, because I’m not any kind of spokesman for Microsoft, I can say that it has deficiencies; but then that was the thing about the iPhone that everybody felt, people who had Windows Mobile 5, as it then was, they laughed to scorn the iPhone when it arrived because it didn’t have all these functions. But if you remember the tedious horror of drilling down through the menus just to get a wireless connection, on an old WinMob phone, you will understand that it wasn’t about that, people embraced the iPhone because it was simple, it was closed, it was clear.

Now the closed environment is something you’re all going to be speaking about, the ecosystem, you’re all going to be speaking about how it positions itself against RIM and it positions itself, crucially, against the iPhone and the Android, and that’s a decision that only the market and the next year can make.

He added on Twitter:

Some will call me traitor, but I was pleased to stand on stage ad welcome Windows Mobile 7 into the world. Used it for a week. Like it.

This was a great PR coup for Microsoft, but more important, it shows the impact of something I wrote about in 2008: Bill Buxton’s arrival at Microsoft and his work to introduce design-consciousness to Microsoft and its OEMs:

Everybody in that food chain gets it now. Everybody’s motivated to fix it. Thinking about the holistic experience is much easier now than it was two years ago. What you’re going to see with Mobile 7 is going to give evidence of progress.

I thought the launch was good enough to make people want to try this phone; and considering Microsoft’s current position in the market that is a good result for the company.

Windows Phone 7 development hits the big screen

I spent yesterday in the dim light of a Manchester cinema, attending the Windows Phone 7 developer day.

The event was organised by DeveloperDeveloperDeveloper, which is a .NET community group run, as far as I can tell, by a group of Microsoft MVPs. The sponsors were Microsoft, Appa Mundi, and NxtGenUG. Towards the end of the day, Andy Wigley (from Appa Mundi) made a statement that this was a community event and not an official Microsoft event. It was true up to a point, though as far as I can tell Microsoft paid for most of it -“Microsoft UK very kindly provided the venue and logistic support.” says the event description. Microsoft was present showing real Windows Phone 7 devices, and the presenters included Andy Wigley (from Appa Mundi) and Rob Miles, who have also presented the official Jump Start training for Windows Phone 7, and regular TechEd speaker Maarten Struys who is a Windows embedded and Windows Phone evangelist working for Alten PTS in the Netherlands. Community, or Microsoft PR?

Regardless, they were excellent speakers and well informed on all things Windows Phone 7. The community aspect did come to the fore when it came to the catering – there was none – and the venue itself which felt as you would expect a cinema out of hours to feel. I’m guessing Microsoft the community was disappointed with the attendance, around 100 in a venue that seats 330.

image

There is one significant benefit to presenting in a cinema. The screen and projection was first-rate.

image

The sessions themselves were introductory but struck me as useful for anyone getting started with Windows Phone 7 development – which given the devices are not yet available, is probably most of us. Andrej Radinger’s session on creating apps that work offline was particularly interesting to me. I had previously seen the Jump Start course so some of the material was already familiar, though the refresher did no harm.

Much of the challenge of Windows Phone 7 development is coping with the fact that your app will frequently get killed and have to resume later as if nothing happened. We got a lot of input on this topic.

Another challenge is coping with Expression Blend. Designer Tricky Bassett gave a short but insightful view of the design process for a Windows Phone 7 app, with some intriguing asides along the way. He is a design professional, and said that his team had been excited about SketchFlow, the prototyping tool in Blend, but in practice found it little use because they only need sketches, rather then the working controls which SketchFlow gives you. He also commented on Blend, saying that Blend with Windows Phone 7 projects was more stable than it had been before, in his experience with other projects. In previous work with Blend, solutions that did not load have been a recurring problem – I take it that either they loaded in Visual Studio but not in Blend, or vice versa.

Bassett also said that Blend takes some effort to learn, and this was confirmed by the way some of the presenters struggled to do basic operations with the tool. The Blend UI is perplexing and at events like this one I’d suggest that a Blend Basics piece would go down well.

The Silverlight and XNA platforms strike me as pretty good, though I think that lack of native code development will be a problem among the best developers – there are interesting rumours about certain developers getting special privileges.

image

My overriding impression though is that the phone is good, the tools are good, but the demand is lacking. One developer told me that he has been trying to sell an idea for a custom Windows Mobile application to a small business client with 12 employees. They are keen but their employees want either Apple iPhone or Google Android phones. Windows Phone 7 may help by being a better and more attractive device, but getting past the perception that Windows phones are not much good is going to be a problem.

But what can Microsoft do? It is going to take devices that deliver on the promise, a stunning marketing campaign, and aggressive pricing, for this thing to flourish.

NuPack brings package management to Microsoft .NET

Microsoft has announced the beta release of NuPack, which is a package manager for .NET projects, mainly focused on open source libraries. NuPack itself is open source.

I downloaded NuPack and took a look. It installs as a Visual Studio extension, and I used it with Visual Studio 2010. Once installed, you get a new Add Package Reference option for any .NET project, which opens this dialog:

image

There seem to be around 40 projects currently available, including some familiar names:

  • Castle Inversion of Control
  • fbConnectAuth Facebook Connect authentication library
  • JQuery – though this already appears by default in many ASP.NET projects
  • log4net logging library
  • Moq mocking library
  • NHibernate object-relational mapper
  • NUnit unit-testing framework

Once you find the package you want to add, click install and it is automatically added to your project, complete with any necessary configuration changes. There is also a PowerShell-based console. In some cases it is better to use the console, as a package can add new commands which you can call from there.

NuPack strikes me as a great idea; one comment to Scott Hanselman’s post on the subject calls it GEM for .NET, GEM being the Ruby package manager. That said my quick go with NuPack has not been entirely smooth, and I got an error on my first attempt at adding NUnit to a project, fixed after restarting Visual Studio.

My main reservation is whether Microsoft will really get behind this and support it, or whether it will end up as another promising initiative that after a while is abandoned.

Rethinking Developers Developers Developers

I’m waiting for Microsoft CEO Steve Ballmer to speak at the London School of Economics, which seems a good moment to reflect on his well-known war cry “Developers Developers Developers”.

Behind the phrase is a theory about how to make your platform succeed. The logic is something like this. Successful platforms have lots of applications, and applications are created by developers. If you make your platform appealing to developers, they will build applications which users will want to run, therefore your platform will win in the market.

Today though we have an interesting case study – Apple’s iPhone. The iPhone has lots of apps and is winning in the market, but not because Apple made it appealing to developers. In fact, Apple put down some roadblocks for developers. The official SDK has one programming language, Objective C, which is not particularly easy to use, and unlikely to be known other than by existing Apple platform developers. Apps can only be distributed through Apple’s store, and you have to pay a fee as well as submit to an uncertain approval process to get your apps out there. Some aspects of iPhone (and iPad) development have improved since its first launch. A clause in the developer agreement forbidding use of languages other than Objective C was introduced and then removed, and the criteria for approval have been clearly stated. Nevertheless, the platform was already successful. It is hard to argue that the iPhone has prospered thanks to Apple’s developer-friendly policies.

Rather, the iPhone succeeded because its design made it appealing to users and customers. Developers went there because Apple created a ready market for their applications. If Apple CEO Steve Jobs were prone to shouting words in triplicate, they might be “Design Design Design” or “Usability usability usability”. And as for developers, what they want is “Customers customers customers.”

Well, there are vicious and virtuous circles here. Clearly it pays, in general, to make it easy for developers to target your platform. Equally, it is not enough.

Microsoft’s own behaviour shows a shift in focus towards winning customers through usability, thanks no doubt to Apple’s influence and competition. Windows 7 and Windows Phone 7 demonstrate that. Windows Phone 7 is relatively developer-friendly, particularly for .NET developers, since applications are built on Silverlight, XNA and the .NET Framework. If it succeeds though, it will be more because of its appeal to users than to developers.

What do developers want? Customers customers customers.

Google’s web app vision: use our store

I’m at the Future of Web Applications conference in London, a crazy mixture of tips for web start-ups and general discussion about application development in a web context. The first session was from Google’s Michael Mahemoff who enthused about HTML5 and open web standards, while refusing to be pinned down on what HTML5 is, which standards are in and which may in the end be out.

Microsoft is here showing off IE9; but one of my reflections is that while the HTML5 support in IE9 is impressive in itself, there are going to be important parts of what, say, Google considers to be part of HTML5 that will not be in IE9, and given the pace of Microsoft’s browser development, probably will not turn up for some time. In other words, the pressure to switch to Chrome, Firefox or some other browser will likely continue.

I digress. Mahemoff identified four key features of web apps – by which he means something different than just an application on the web. These are:

  • Local storage – encompassing local storage API and also local SQL, though the latter is not yet well advanced
  • Application cache – Cache Manifest in HTML 5 that lets your app run offline
  • Local installation – interesting as this is something which is not yet widely used, but clearly part of Google’s vision for Chrome, and also in IE9 to some extent.
  • Payments

The last of these is interesting, and I sensed Mahemoff showing some discomfort as he steered his way between open web standards on the one hand, and Google-specific features on the other. He presented the forthcoming Chrome Web Store as the solution for taking payments for your web app, whether one-time or subscription.

I asked how this would work with regard to the payment provider – could you freely use PayPal, direct debits or other systems? He said that you could do if you wanted, but he anticipated that most users would use the system built into Chrome Web Store which I presume is Google Checkout. After all, he said, users will already be logged in, and this will offer the smoothest payment experience for them.

The side effect is that if Chrome Web Store takes off, Google gets to make a ton of money from being the web’s banker.

Outside in the exhibition area Vodafone is promoting its 360 app store, with payments going through the mobile operator, ie in this case Vodafone. Vodafone’s apps are for mobile not for web, but it is relevant because it is trying to draw users away from Google’s Android Marketplace and onto its own store. PayPal is here too, showing its developer API.

The app store and payment provider wars will be interesting to watch.

Oracle versus the JCP as Java’s future is debated

There has always been an uneasy balance between Java as a cross-platform, cross-vendor standard; and Java as a proprietary technology. Under Sun’s stewardship the balance was tilted towards the cross-platform standard. Eventually, Java was open-sourced as the OpenJDK. However, Sun, and therefore now Oracle following its acquisition of Sun, still owns Java. The official Java specification is determined by the optimistically-named Java Community Process (JCP). The JCP is a democratic organisation up to a point, the point in question being clause 5.9 in the JCP procedures:

EC ballots to approve UJSRs for new Platform Edition Specifications or JSRs that propose changes to the Java language, are approved if (a) at least a two-thirds majority of the votes cast are "yes" votes, (b) a minimum of 5 "yes" votes are cast, and (c) Sun casts one of the "yes" votes. Ballots are otherwise rejected.

In other words, nothing happens without Sun’s approval.

Now the Register reports that Oracle and the JCP have fallen out. According to this report, the JCP does not like Oracle’s suit against Google; and does not have confidence in Java FX or Java ME both of which were promoted at the recent OpenWorld/JavaOne conference (though Java FX is to change significantly). The JCP still wants true independence – as, amusingly, proposed by Oracle in 2007:

… that the JCP become an open independent vendor-neutral Standards Organization where all members participate on a level playing field with the following characteristics:

  • members fund development and management expenses
  • a legal entity with by-laws, governing body, membership, etc.
  • a new, simplified IPR Policy that permits the broadest number of implementations
  • stringent compatibility requirements
  • dedicated to promoting the Java programming model

Oracle seems now to have changed its mind, wanting to tighten rather than loosen control over Java. Oracle still needs to work through the JCP in order to progress the Java specification so it will need either to mend relationships or reform the JCP somehow in order to deliver what was promised at JavaOne.

What does this mean for Java and its future? Perhaps surprisingly little. Alex Handy at the sdtimes reports this comment from Rod Johnson, now at VMware, whose SpringSource business was built on building Java frameworks outside the JCP:

There’s been very little activity on the [JCP] executive committee. I think we just have to wait and see what Oracle comes up with for JavaOne," he said. "The rest of the world is moving along fairly quickly. It’s not like we need Oracle or the EC of the JCP to get things done.

Java is the world’s most popular programming language. Further, Oracle is a smart company and although it is doing a good job of alienating members of the Java community – not least inventor James Gosling, now a loose cannon on deck – its technical work on Java will likely be excellent. That said, we are heading into an increasingly fractured world in terms of development platforms, especially in mobile, and that looks unlikely to change.