These are some of the better podcasts on the craft of programming.
Recently, while interviewing a person, I came up with an interesting question. That led to a series of discoveries about the interviewee. So I thought I would share it here.
How does xUnit work? **
This one question offered insight into various aspects that I cared about. I steered the discussion until I got the answers to these question, without asking them explicitly.
- Do you know what unit testing is? – Awareness level
- When do you write test cases? Before or after the change? – Practitioner skills
- How does unit testing work? – Conceptual skills
- Do you understand annotations? How are they used in JUnit / NUnit? – Advanced developer skills
- Do you understand the implementation behind unit test frameworks, or are you a dumb consumer? – Architectural skills
- How was the implementation explained? – Communication skills
What are your favourite questions?
** Replace xUnit with language specific implementation (JUnit, NUnit, etc.).
Yesterday I stumbled upon SmallBasic, while looking for something else. It is an interesting little project by Microsoft to create an entry level language to teach programming. It is a mix of toned down BASIC and Logo. Since the language (or is it an application) is still in infancy, version 0.5 released recently, I will try not to be too harsh on it.
Sample program with obligatory screenshot
Showing Flickr Image
What is delicious trends?
It is a simple visualisation of your online taste. All your bookmarks will be plotted on a time line, helping you to see how your interests evolved over time.
Note: All processing is done in your browser and no data is sent to my server.
Why did I create it?
Once upon a time, not too long ago, I was wondering what interested me. After a while of introspection, I got a lot of answers from my heart, but my mind wanted a quantitative proof. So I decided to look at my bookmarks to find what I bookmarked and when.
How was it created?
A quick (& dirty) mashup of delicious api + jquery + google visualisation plugin. Most of the code is straight out of the samples. My desire was to find the answers I was looking for, ASAP.
Did you like it? Hated it? Have a suggestion? Do leave your feedback.
Spent the last couple of days looking at Javafx, Sun’s response to Silverlight and Flex. It is an interesting mix of ideas. Clearly inspired by dynamic languages as well as Silverlight. Maybe Flex as well, but I couldn’t tell as I have not tried Flex.
Things I liked:
- Type inference: Could have been better, but I will take this any day over the verbose Java alternate
- Binding: In fact this is a great thing. Two way binding and binding with expression.
- Triggers: Need to explore more, but shows promise.
- Timelines: This along with the exceptional support for multimedia will help in creating the next killer app.
- Collections: You can iterate over collections in SQL like syntax which,to me, looks better than LINQ.
- Strings and Dates: Finally they get treated with the respect they deserve, since most of the time one is juggling text and dates.
Things I am meh about:
- Declarative UI design: I believe UI design is best left to designers (software not people)
- Using all the available brackets: All examples look like they have used up every possible punctuation mark
- Init vs. assignment: The ambiguity on where to use a variable : value and where to use a variable = value
Overall looks good and I am going to spend some time learning the innards of Javafx.
Finally, what I will like to see guidance on how patterns will evolve to address this new form of development. I immediately see a lot of older patterns not longer needed like Singleton, Visitor Pattern, Lazy Loading, Thread Pool Pattern, Observer Pattern and more. Similarly we need to recalibrate a few like the MVC, MVP patterns.
Did my very first podcast with a group of friends. You can read more and comment about it at the techno-cast site.
Quote from techno-cast site:
Is it a brave new step to boldly go where no web giant has gone before, or merely a mashup of pre-existing tools? An attempt to capture some enterprise market share or to fundamentally change the way the Internet works? Will we see massive gains in worker productivity or the advent of real-time spam from Nigeria? We discuss!
Hope you like it. Do drop in your comments.