Jun 26, 2013 · 4 minute read · Comments
error messageserror handlingend userAndroidhuman-centered designUX
I have a Samsung Galaxy S II smartphone. I recently encountered a problem: auto-updating of apps failed with this terrible error message:
Application cannot be installed in the default install location.
Also, a lot of time and bandwidth was each time spent on re-downloading the app and then failing, with no way to gracefully recover.
If you search the Web for this unpleasant error message, you will see hundreds if not thousands of confused end users like me asking on various forums how to deal with this.
I feel pretty bad about this situation, both as a programmer and as an end user.
Read On →
Jun 26, 2013 · 5 minute read · Comments
PittsburghPythonIPython NotebookScalaSentryloggingcommand lineparsingdomain-specific languagesconventiontestingproperty-based testingQuickCheckScalaCheckfunctional programmingiteratorslazy sequencescommunity
Pittsburgh Python User Group The Pittsburgh Python User Group had another “favorite module night”. I enjoy this format because I get to learn about what people find useful, so that I may perhaps use it myself!
How I benefited in the past For example, one of these “favorite module night” sessions was where I learned about Kenneth Reitz’s requests library. Very often it is easy to not be aware of the rapidly changing ecology of very useful libraries in a programming language ecosystem outside of the official “standard library”, especially when using a language that is not one’s primary working language.
Read On →
Jun 25, 2013 · 10 minute read · Comments
PittJUGPittsburghJavaC++RubyMLHaskellErlangstringsexceptionstypesScalaAPIserror messageserror handlingtest-driven developmentimmutable
The topic for the featured presentation at the Pittsburgh Java User Group (PittJUG) was “Building and Evolving a Java API”, presented by Eric Stein of Fulminatus Consulting. I was excited to attend because API design is difficult but important, and today more than ever, because of the trend toward integrating many services to build an application, and toward providing such services (both externally and internally).
(For past reports of mine on PittJUG, see the PittJUG archives in my other blog.)
The presentation was very good. (Eric’s slides are available here, but as always with slides, be aware that it is just an outline, as good slides really should be, and the actual presentation and group discussion had all the substance.) Note that although some of the specific recommendations and examples are Java-specific, the entire area of good API design is general and is applicable no matter what programming language you are using.
However, the presentation also filled me with a combination of sadness, because our computing profession could have done better up front to make good API design much easier in various ways. On the positive side, it’s better late than never.
A report on the presentation, with my commentary:
Read On →
Jun 24, 2013 · 7 minute read · Comments
bikesheddingblog softwareOctopressJekyllRubyHakyllHaskell
Hi. My name is Franklin Chen. I already have a personal Web site and blog.
But I ended up only writing a little bit about programming on that blog.
So I decided it was time to start a separate blog to devoted entirely to computer programming. The problem with the all-in-one personal blog was that I ended up never really working up a momentum to post the kinds of articles I wanted to write about programming.
Read On →
Oct 17, 2012 · 3 minute read · Comments
ParasailparallelismconcurrencyCarnegie Mellon UniversityAdatypesTucker TaftGuy BlellochNESLStandard MLHaskell
I noticed an announcement for a talk to be given at CMU for the ISR by visitor Tucker Taft, “ParaSail: A Pointer-Free Path to Object-Oriented Parallel Programming”, and decided to attend.
I’d recognized Tucker Taft’s name because decades ago (and now still), he was a very prominent member of the Ada programming language community, being one of the primary designers of the extensions to the original Ada 83. I never actually used Ada 95, but was following it a little bit because in 1995 I had to maintain some Ada 83 code at work, so I was curious where Ada was going. (I haven’t used Ada since leaving that job in 1997.)
So I was curious what an Ada guy had in mind as for one of the next steps in programming language design (parallelism), and why a new language and how it would be informed by an Ada mindset.
Read On →