Tag Archives: software

Supporting developers: how could Microsoft improve?

Microsoft invests substantial resources in supporting developers; yet the last two topics I have explored in earnest – the Azure blob storage service, and ASP.NET MVC with Azure Active Directory integration – have been frustrating and difficult. Admittedly I am only an occasional developer, but I suspect my experience is common. What is going wrong, and how could Microsoft improve?

Among the problems I have encountered:

  • Abundant documentation of simple first steps with a vacuum for anything more advanced
  • Samples that do not run without tweaking
  • Samples designed for old versions of Visual Studio
  • Samples which use obsolete or deprecated libraries
  • Samples which are poor solutions for the problem they are supposed to address
  • Documentation or samples which use preview, beta or even alpha libraries. Microsoft sometimes seems to make more effort documenting what is in preview than what is fully released.
  • Posts on a topic which are out of date, but for which it is hard to find something current
  • Circular links – click here for more information – you get another article which links back to the first one, perhaps with an intermediate step
  • Poor quality responses to questions on official Microsoft forums

On the positive side, the reference documentation is not too bad. StackOverflow is a great resource and seems to attract higher quality responses (even sometimes from Microsoft staff) than the company’s own forums.

Here then are some of the improvements I would like to see:

1. A sharper distinction between what is in preview and what is production-ready. For any given problem, it would be great to find a clear statement of how you should address it for production now, with fully released and supported libraries, and another statement showing how you will be able to address it with the latest and greatest (but perhaps less stable) technology which is in preview.

2. For key teams in Microsoft to maintain sites which offer clearly delineated production and preview sections and which are kept rigorously up to date.

3. More short samples and fewer “this demonstrates everything” samples. Large samples are more difficult to install and study and have more complex dependencies.

4. Posts and their accompanying code inevitably go out of date and I do not favour removing them, which causes more difficulties than it solves (broken links). However it seems to me reasonable for teams to maintain a number of key samples for their product area and keep them up to date.

What am I missing – or am I complaining too much about what is normal in software development? As ever, I welcome your views.

Review: Sonocent Audio Notetaker, making sense of recorded interviews and meetings

Why bother taking written notes, when you can simply record the audio of a meeting or interview and listen to it later? I do this a lot, but it is problematic. You end up with an MP3 which has all the info within it, but with no quick way to find a half-remembered statement. Of course you can transcribe everything, or get it transcribed, but that is not quick; it will likely take longer than the original event if you want to transcribe it all, and even selective transcription is a slow process. You can get better at this, and I have formed a habit of noting times when I hear something which I am likely to refer to later, but standard audio players (such as Foobar 2000 or iTunes) are designed for music and not great for this kind of work.

There is also an annoying problem with application focus if you want to transcribe a recording. You have Word open, you have your recording open in Foobar, but to control Foobar you have to switch focus away from Word, which means you cannot type until you focus back. There are utilities around to overcome this – my solution was to write my own Word macro which can pause and rewind a recording with keyboard shortcuts – but it is another issue to fix.

Sonocent Audio Notetaker is an application for Windows or Mac dedicated to making sense of speech recordings. Audio Notetaker lets you create documents which include audio, text and images. If you have an existing audio recording, you can import it into a new Audio Notetaker documnent and start to work with it. The audio is copied into the document, rather than being added as a reference, so these documents tend to be large, a little larger than the original.

The primary feature is the the way recordings are visualised and navigated. When you import a recording, it shows as a series of bars in a large panel, rather than the single horizontal scrolling view that most audio players present. Each bar represents a phrase, determined by Audio Notetaker according to pauses in the speech. This is not altogether reliable since speakers may pause mid-phrase, but you can split or merge bars if needed. The length of each bar varies according to the content, but typically seems to be around 3-15 seconds. You navigate the recording by clicking on the bars, and annotate it by assigning colours to bars according to your own scheme, such as blue for a potential quote, or brown for “boring, skip this”.

If you are transcribing, you can type into either to two text panes, one of which is called Reference and the other just Text. When you are typing in one of these panes, you can use keyboard shortcuts to control the audio, such as Ctrl+Space for play/pause, Ctrl+\ to skip back, and Ctrl+/ to skip forward. The Reference and Text panes are functionally identical, but let you keep two different types of notes with one recording. There is also an image pane, which can include images, PDFs or PowerPoint presentations.

image

How do you synchronise your notes or transcription with the audio to which it relates? Audio Notetaker does not do this automatically, but does allow you to insert section breaks which split the document into vertical sections. You can create these breaks with keyboard shortcuts. I would prefer it if Audio Notetaker automatically set hotlinks so that I could tell exactly what audio was playing when I made a note, but sections are nevertheless useful.

For example, if you have an interview, a logical approach would be to make each question and each answer a section. Then you can easily navigate to the answer you want.

You can use background colouring to further distinguish between sections.

A common problem with audio recordings is that they are at too low a level. Audio Notetaker has its own volume control which can boost the volume beyond what is possible with the Windows volume control.

There is also a noise cancellation button, to remove the dreaded hiss.

image

Advanced features

Those are the basics; but Audio Notetaker has a few other capabilities.

One idea is that you might want to record the content of an online conference. For this purpose, you can record from any of your input or output devices (it might seem strange to record from an output device, but this is the equivalent of a “what you hear” setting).

image

This approach is further supported by the ability to capture a screen and insert it into the document. When you choose the screen capture tool, you get a moveable, resizeable frame that you position over the area you want to capture.

image

Another scenario is that you want to create a simple video with a PowerPoint slide show and an audio voiceover. You can do this by importing the PowerPoint and recording your speech, then choosing Export Audio and Images as Video (MP4 or WMV).

image

You can also export the text and images in RTF format (suitable for most word processors).

Internally, Audio Notetaker uses Opus Audio Encoding which is an internet standard.

You can also have Audio Notetaker read back text to you using the Windows text to speech engine (I am not sure how this works on a Mac).

Final words

The best feature of Audio Notetaker is the way it lets you navigate an audio file. It is quicker to click on a bar in the panel than using a horizontal scroller or noting the time and going to that point.

The sections work OK but I would personally like some way of embedding notes that are hotlinked to points in the audio with a finer granularity than sections.

I am not sure of the value of features like importing PowerPoint slides, adding audio, and exporting as a video, when PowerPoint itself has support for narrations and export to video. I would prefer it if the developers focused on the core proposition in Audio Notetaker: making it easy to index, annotate and navigate speech recordings.

I would also like to see integration with a transcription service. Automated transcription would be great but does not usually work well with typical field recordings; more realistically, perhaps Sonocent could integrate with Amazon’s Mechanical Turk or another service where humans will transcribe your recording for a fee.

Nevertheless, Audio Notetaker is nicely designed software that addresses a poorly-served niche; well worth consideration for journalists, students, secretaries, takers of minutes, or anyone who uses audio recordings as part of their workflow.

You can find Audio Notetaker on the Sonocent site, and obtain it as a free trial, or by subscription for a period, or with a perpetual licence. For example, six months for an individual license is £29.99; a perpetual licence is £95.99 (including VAT).

It is available for PC or Mac.

Java software quality: frameworks good, Struts or C++ bad says report

CAST has released an intriguing report on Java applications and software quality.

The company analysed 497 applications, comprising 152 million lines of code across 88 organisations and six global industries. It then looked at how software quality correlated with frameworks used.

◾Hibernate has the highest quality scores.
◾Applications built with Struts have the lowest quality scores.
◾Applications that did not use any framework had a huge variance in quality, which indicates that frameworks do in fact help develop applications of predictable quality.

A further investigation looked at what happens to software quality in mixed language applications:

◾Applications built in pure JEE, with no frameworks or multi-lingual mingling, had the highest quality scores.
◾Mixing Java with C or C++ lowers quality scores.
◾Mixing Java with COBOL, Java-DB, and Microsoft .NET delivered higher quality scores.

Frameworks are good but pure J2EE is better? Mixing with C/C++ lowers software quality, but mixing with .NET or COBOL raises software quality? These are odd results, and I wonder if this research is correlating the right factors. Here is a clue:

One common challenge for developers with framework usage is configuring them correctly. CAST data shows that a large majority of applications analyzed had some level of misconfiguration, indicating the need for better training or to simplify the use of frameworks.

I have a hunch that what this research really tells us is that the most competent developers deliver the highest quality code. Maybe the smartest developers do not use Struts.