Archive for the 'Lunch with geeks' Category

04SepWellington – Lunch with geeks (04/09/2007)

This week we had another lunch with geeks.  The attendance was good and we talked about a number of things.

The first thing we talked about was broadening the scope of this group to other technologies. We are looking for people from RoR community and the Java community. We do have 1 java person that attends our meetings regularly but we’d like to get some more. So if you’re in Wellington and you do development these lunches may be something for you.

 

Another thing we talked about was: What’s the best microsoft product? And what’s the worst?

on the question of worst we had a consensus : windows ME.

on the question what is the best product I guess the most votes went to CLR/.NET Framework. Somebody also mentioned Flight Simulator :)

 

We also talked about Aspect Oriented programming and we got a little confused by what the PolicyInjection Block is about in the Enterprise Library.  It claims to do AOP but somebody pointed out that it doesn’t quite do that. It does most of the AOP features but not all of them and it’s a little intrusive because it has to be defined by the caller.

 

The only problem we had was that there was another group in the pizza place so I couldn’t understand most of what was being said. Please email me the stuff I forgot about or add it in the comments.

21AugWellington – Lunch with geeks (21/08/2007)

Last week there was no lunch with geeks because of Tech Ed.  Naturally we started our session rehashing what we thought were the highlights of Tech Ed NZ.

In general everybody really liked the keynote by Lou Carbone and we were definitely not the only ones, mauricio has a more detailed post on the keynote.  Anyway it was really entertaining and educational at the same time, I couldn’t believe some of the things hotels do with towels and toilet rolls.  Designing for to trigger emotions instead of functionality would be the biggest lesson for me.
My favourite quote from tech ed would be something Jim Webber said during a session about Dynamic languages vs. Static languages:

If you polish a turd, your hands will be smelly but you will still have a turd.
(Jim Webber on wsdl)

After that we started the topic at hand: Vendor certification is it really worth it? - A topic suggested by Pablo Garcia from Provoke solutions.

The discussion was long but seemed to often get back to the same basic ideas. I’ll just summarize:

It’s worth it:

  • It’s worth it if you’re an intermediate or a junior developer and looking for a job
  • It’s a benchmark for people that have been in the industry for a long time to assure that they are still current.
  • it can be really useful for systems people

It’s not worth it:

  • A senior that has heaps of certifications and boasts about them => Mort alert
  • it doesn’t teach you any of the concepts behind problem solving and analysis, but focusses more on learning-by-heart
  • it often promotes less-than-best practices aka enterprise practices
  • it is in no way a guarantee that the person really knows his stuff it only proves he can memorize a bunch of things.
  • seen as software development is an art, exams are inappropriate because the grader needs to like your writing style before everything else.

The discussion went on about the benefit of a university training vs. the certification process and that seemed to go on forever. Some of the members of our group started recalling memories from when they were in uni and why exams were too subjective to effectively measure the skill of a student.

 

We did all agree that certification done by vendors isn’t the best way to go about it, and that it would be a much better idea if these certifications would be issued by some global, independent organization. That would immediately raise the credibility of these disciplines.

That was our session.

If forgot something please let me know :)

UPDATE: I added a link to Pablo’s blog http://blogs.provoke.co.nz/theengineroom

10AugLunch with geeks (7/8/2007)

We had another geeks lunch on tuesday. We discussed a number of topics but focussed mainly on design patterns.

Some of the observations we made are the following.

The most overused design pattern : Singleton. With the remark that a singleton should only be used when you need to keep state in your object internally.

You shouldn’t care about design patterns until you figured out a couple yourself. This is a bit the chicken or the egg question because you would have to know the design patterns in order to know that you are using one.

Lot’s of programmers get by without the patterns although the solutions may not look as elegant.  Design patterns are in no way a silver bullet for creating quality software they just help you solve problems in a predictable way.

One of the ways suggested to start adopting these patterns is to write code that works first and then refactor it to use the patterns.

Next I’d like to list a bunch of resources/books that were mentioned during this discussion:

Thanks to Bevan Arps for this list of books:

Design Patterns (Gang of Four)
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
ISBN 0 204 63361 2

Refactoring – Improving the Design of Existing Code
Martin Fowler
ISBN 0 204 48567 2

Analysis Patters – Reusable Object Models
Martin Fowler
ISBN 0 201 89542 0

Refactoring to Patterns
Joshua Kerievsky
ISBN 0 321 21335 1

 

Ivan Towlson has put up a blog post listing the books that he remembered.

And here are some urls that hold some information on design patterns.

http://www.developer.com/design/article.php/1474561

http://www.dofactory.com/Patterns/Patterns.aspx

http://www.designpatternsfor.net/

 

 

del.icio.us tags:

24JulWellington – Lunch with geeks (24/7/2007)

I didn’t put the minutes up from last week because we had too many people there and we didn’t get a real group conversation going.. It was mostly little separated groups so I don’t really know what has been talked about.  I also have a deadline for a client rapidly approaching so I didn’t really find the time to add this to my blog.

But I would like to thank everybody that was there last week for attending.

Anyway today we had another Geek lunch and the topic of discussion was:

What will you do to become a better programmer this year ?

I’ll sum up the list of things to do that we all agreed upon.

1. Take an advanced reading course to improve your reading speed. People make a couple of really common mistakes when reading stuff and this course unlearns them. It improves your reading speed up to 3 times.. The course only takes 4 mornings so it’s definitely something I’ll be doing in the near future.

2. Read a new book every month/ 2months.

3. Take an advanced writing course in order to write that dreaded documentation a lot faster.

4. Learn a new language every year. By taking a quick poll around the table it seemed that the most likely candidates here are Smalltalk, Ruby, Errlang, …

5. Contribute to open source that way you get to meet a lot of good coders and you learn sooo much.

6. Get a membership with ACM they give you free books and courses if you’re a member.

7. Work with as much people and on as many projects as possible in order to gain more experience ==> See open source :)

 

I want to thank everybody for coming and making this lunch another great one :)

11JulWellington – Lunch with geeks (10/7/2007)

We had another lunch session yesterday. It was a quiet session probably because of the Wellington weather, there were 7 people attending.

The first topic we discussed was mobilizing your application.

The first issue that was raised around this subject what usability issues have you got to tackle around mobile applications.  Like navigation should be vastly different because of the lack of screen real estate. navigation is mostly done with a joystick or keypad there is no mouse which in itself is already a pretty difficult problem to tackle. 

Another person mentioned that dropdownlists are pretty difficult to navigate too.  It would be naive to assume that you can use one codebase and make some style changes to get a great mobile application.  You need to take the fact of mobilizing more serious than that and be prepared to make some drastic changes in how your app flows.

One of the reasons that we haven’t really seen a great mobile app make it big is probably because of the user interface we are facing when operating a mobile device. Technology has changed a lot since mobile phones came to be but the interface hasn’t hardly changed at all. It went from a disc to buttons to buttons with a little display. Until the cell phone was there and we got a menu to operate our phones. The navigation of those menus has evolved somewhat but it’s still the same way of using it. Of course this is when the iPhone came into the conversation, and because I work at Xero i got to play briefly with an iPhone

I have to say that the touch screen navigation was really cool and refreshing and definitely a step in the right direction.

After which our conversation drifted off a little and we dreamt of futuristic interfaces and new ways of interacting with computers.

Simone has got a great post on life in wellington as a european in which he talks about our lunches and other things.

02JulLunch with geeks – Wellington – 3/7/2007

Another week, another lunch.

This lunch had the biggest attendance yet.  I won’t be putting up all the names because I can’t remember them all :-$. We had about 20 people showing up, most of them were new faces. It was very good to see that Tim Haines could make it as well as Owen Evans. Another new addition was John Rusk and a couple of people from the TradeMe development team.

With lots of people it becomes a lot more difficult to follow all the conversations at once. I’ll do my best to write up the minutes, if I miss something please let me know so I can add it.

My start question for today was: How do people do integration testing?

The question is a bit on the broad side I admit but Owen Evans stepped up and gave us a rundown of how they do it. The first thing I got from his explanation is that there is a right way to write tests and a wrong way to write them. Because unit tests shouldn’t do integration testing etc.
He explained that in the beginning they had a build process that would take about 2 hours to complete and after refactoring their app to use the right way of testing it only takes them a couple of minutes.  Owen uses Fit and Fitnesse for doing the integration testing.  He also explained that integration tests are not tests you would want to run on every build but preferrably during the nightly build so you have something to look forward to when you start your programming day :)   Owen said a lot more but I can’t remember all of it -sorry Owen-
The guys at TradeMe have a manual testing process as do we (Xero).
I think JD was the first to mention watir for automated integration testing, which I second. I think watir or watin are beautiful tools as is Selenium.
For more info on which one fits your project best: http://adamesterline.com/2007/04/23/watin-watir-and-selenium-reviewed/

Somehow we got on the subject of source control and the different source control systems were using. My personal preference is subversion closely followed by Team Foundation Server.  Most people in our group liked subversion the best some of the reasons for it are the fact that it is not bound to a visual studio solution, the cost of subversion is also a major factor and the fact that it is not related to any specific technology and the fact that subversion can be easily integrated with other systems.

JD then asked who did use unit testing and it turns out that about 6 people actually did use unit testing. One of the reasons mentioned for people not using it was that tests take too much maintenance as your code evolves.  The response to that objection was that in that case you’re probably writing your tests wrong.  The benefits in my opinion were that you write code that is a lot more beautifull and you get a nice, warm fuzzy feeling inside called confidence in your code.

Next John Rusk took the floor bringing us back to the original question and he introduced us to a new term: exploratory testing. Which is a way of trying to bring structure to an unstructured process (manual testing). It wasn’t very clear to me where the distinction lies with manual testing except for the fact that the user that does the actual testing does need to have some knowledge of the application domain.

JB said that another good way to understand what your application is going to withstand is to take a couple of uneducated users (they don’t know anything about the application) and put them in front of a terminal and watch what they are doing. This gives you some very valuable insights for usabilty as well as finding some bugs.

My second question was: What differentiates an average developer from a great developer ?

This question didn’t get the same attention as the first one because the answers to this one were almost unanimously: Passion
The willingness to make mistakes, the drive to look for answers yourself, an inquisitve mind.

I personally don’t think of software development as being a science for me it’s more an art form which might be a good topic for next week.

11JunLunch with geeks – Wellington – 12/06/2007

Another week, another lunch. The attendees this week were JD (Mindscape), Andrew Peters (Mindscape), Adam Burmister (Xero), Fletch Brown (Xero), Simone Charietta (Calcium), James Hippolite (Telecom), Martin Harris (Telecom) and me (Xero). 
Our meetings used to be on a thursday but we moved them to Tuesday in the hope that more people would be able to make it (Tim wink wink)

We started out with the OR mapper of mindscape: Lightspeed.  JD and Andrew were pretty quick to point out that Lightspeed is a lot faster than NHibernate for all the operations they currently support.
The analogy was made that NHibernate is like the Oracle of OR mappers and supports every single feature you could every imagine. Where Lightspeed is a bit more limited in features but still does a good job.

From that point on the discussion went on to Katmai (SQL Server 2008) and nobody seemed to know what the new killer features are, apart from the obvious one that it’s a new version.
JB of Mindscape has a the ctp installed but didn’t have time yet to have a proper play with it.  Simone asked what the killer features were for Sql 2005 and offered XPath/XQuery in the Xml columns, I offered CLR integration from then on we struggled a little. It turns out that Andrew and me were the only ones that had actually used the features in a production app.
Luckily JD threw the MAX values for varchar, nvarchar, .. on the table and everybody agreed that that one is overlooked because it should have been there all along :)

The next point of discussion was of course the beta release of Safari for windows. Andrew pointed out that you could go to Pimp my safari to flesh out safari with some much needed plugins.  Nobody really understood why apple didn’t take advantage of cleartype rendering on the windows platform. One of the reasons might be that the apple developers want to maintain one codebase, which is also understandable but then they will have to fix the subpixel rendering because now it isn’t up to scratch. 

James moved the discussion topic over to the fact that Silverlight supports VB.NET better than it will support C# as programming language. Which made me ask why the guys of MS not just kill of the VB language all together ?  Lot’s of C# programmers agreed on this but the poor VB guys didn’t flinch one bit.  Everybody around the table had programmed in some form of Basic in the course of their lives. For me I started with GW-Basic, did some visual basic after that but from then I moved to Turbo Pascal.
The DLR has a dynamic form VB as well so it will still be a while before that one will go away, if it ever does. :)  

Which brought us to the next point of discussion datasets vs OR/mappers. James is a big fan of the dataset and what he can do with it. Where most of the other people around the table liked the OR approach better. After some bickering we agreed that it’s mostly a personal choice. Both methods have their advantages and disadvantages.  Andrew was the one that enlightened us with the big difference between the 2. Domain models have behaviour attached to objects where an RDBMS approach separates the 2 which makes you maintain the code into 2 different places. 

And the last point of discussion would be XML is it a datacontainer/exchanger or is it a programming language.
I personally have a strong dislike for xml, I find it verbose and not friendly to write (number of keystrokes).
JD picked up that discussion by categorically saying that xml is a datacontainer and not a programming language, he then asked me why I asked that question.  The reason for that question is, that whenever I bring up the subject people will tell me it’s a datacontainer and yet we see the new technologies being introduced are all based on xml (WPF, XUL, …). Then people come up with the fact that if there is a good tool support for it it’s not that bad. On this point I personally agree with Ayende, in that you shouldn’t have to use a tool if you want to get on with the technology. To quote Ayende:

Here is a good metric that I like to use. Take an technology, and try to build it without any tool assistance. Is it still a good approach? If not, then there it is complex and hard to use. A lot of UI frameworks fails this test, by the way. WinForms certainly does, when you start to think about complex UI.

Which brought us to the point of DSL’s vs. XML + tools to generate your manifests (manifest => a webpage has an xhtml manifest, with javascript behaviour and CSS for representation)
Somebody around the table didn’t quite know what DSL meant, so Andrew quickly explained that it means Domain Specific Language and it makes it a lot easier for the developer to write out the manifest he needs or to make your code inside your specific domain more readable.

Ok that’s it for today, or at least that’s all I could remember, if I forgot something please let me know and I’ll add it to this post

30MayLunch with geeks (31/05/2007)

Another Thursday, another lunch with geeks in wellington.

We decided to move the lunch to be on tuesdays. This will allow for Tim Haines to join the discussions.

Today the attendees were Simone, JD, Andrew Peters, Kirk Jackson and yours truly.
We touched a broad range of topics in our talks which went from Google Gears to Linux vs. Windows to everybody has a killer idea for a website to microsoft surface and we also touched briefly on database servers.

We started out discussing  offline storage for web apps, because Google announced it’s gears plugin today. The opinions in our discussion leaned more towards nobody really liking the idea of offline storage for webapps except me.  According to Simone this introduced an unnecessary layer of complexity.  JD quoted DHH on why offline storage doesn’t really matter, the internet is everywhere.
Kirk doesn’t see the point. I tend to think that there has to be some middle ground.

Next I uttered my frustrations about the ongoing vs. debates and we picked windows vs. linux. The problem in this sentence is clearly the vs.  Instead of beating the other people to death the energy would be better used by finding some sort of compromise. Andrew said he’d love to see a world where there was a choice between multiple OS’es and everything would just work on all of them.. I too would like to see that day.

From there we moved on to the fact that every Joe Schmo has a killer idea to build but they often don’t realise that the development is only a small part of a bigger picture. After development a lot more money needs to be spent on marketing, sales and support.

JD put our attention onto Microsoft surface for which most of us got links etc yesterday. Bottom line it looks really cool but the team seems relatively small according to Kirk. JD then explained us why it could be such a small team and that we might be able to get some preview of it before the end of the year.
We had a bit of fun by coming up with ways to use this device which go from gaming to having a digital tv-guide,….

JD then asked me about the CRM I’m building in rails for when he could get some preview or test of it. The reply to this was a little bit more complicated but it brought us to our next point of discussion. Andrew asked me if I had used postgres because I was saying that we are moving this crm now to mysql so it can run on dreamhost.  He went on about running the unit tests for lightspeed and their different database providers. It turns out that postgres performs better than all the other databases they support on windows in their unit tests. (this hasn’t been benchmarked in an official lab or anything)

This concluded our discussions. If I forgot something please email me or add them in the comments.

23MayLunch with geeks – Wellington (24/05/2007)

After Alex James setting an example with the Architects chats in Auckland, I decided we needed the same thing in Wellington.

I called it Lunch with geeks, more because I don’t try to label developers and IT people.
Anyway our first meeting was a successful one :) And the turnout was quite impressive. There is a lot of talent in Wellington.  The people that joined our first meeting were JB (Jeremy Boyd), JD (John-Daniel Trask), Andrew Peters, James Hippolite, Simone Chiaretta, Adam Burmister

We had some interesting discussions and tried to limit the session to one hour, seen as we all have jobs to go to etc. 
Of course we couldn’t resist to have a discussion about the americas cup: Team New Zealand vs Italian Luna Rossa.  Next on the agenda came a discussion on subtext vs. nblogr which is not a comparison really because subtext is going on v.2.0 and nblogr is going for v0.19 alpha. In the end it turns out that if you want to start blogging today you probably should go with subtext. And by the time they release 2.0 nblogr should be completely on par with them regarding features and released as v1.0.

The next point of discussion was the DLR with IronRuby and IronPython, where Andrew P. took the lead in the discussion.  From the DLR the discussion moved onto Silverlight and what it exactly is. The guys from Mindscape obviously had a more in depth play with it than the rest of us which was pretty enlightening for me. And it put a couple of concerns to rest. Adam was concerned about the fact that you wouldn’t be able to do view source on an application so you could learn from other peoples work. This issue is solved with a new reflector application that downloads the silverlight app and shows you the source.  My concern was that search engines would face the same problem to index silverlight as they have with indexing a flash application. 

James wanted to know if silverlight was going to be the flash killer and we agreed that it would be more an html killer than it would be a flash killer. Andrew explained how nicely silverlight plays with the DOM to such a degree that you can manipulate the DOM from within the silverlight app and you can control the silverlight app from javascript.  All of these things are nice to have and things that were missing really from flash in the days that I was working with flash.

JD mentioned that there was a benchmark on a demo he saw where there was a chess game that calculated the next possible moves. On 1 side there was a javascript app and on the other side a silverlight app. The javascript app could calculate something like 10000 new moves and the silverlight app would do millions in the same timeframe.

Next week we doing the lunch again.. Come along if you like.

UPDATE: To be clear Subtext is already at 1.0 and will go to 2.0. It’s nblogr that will be going 1.0


Recent Flickrs

    Blogroll

    Recent Listening

    Scrobbler
    • Loading...