CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Peter's Gekko

public Blog MyNotepad : Imho { }

User groups and meetings

  • Jimmy Nilsson is coming to the Netherlands

    Coming april 24th Jimmy Nilsson will be speaking for Dutch user group dotNed. Jimmy is well known for his book Applying Domain-Driven Design and Patterns. A very good aspect of this book is it's style: very easy going and a pleasure to read; but in the meantime you're learning a lot. My first read was on a holiday; on a quite camping place in France. The bad thing about the coming presentation is that it's during another holiday. While Jimmy is talking me and my family will be somewhere half way  between home and a sunny Greek island. Mixed emotions.
  • Tests on Dutch .NET community read green

    Friday 14th Dutch user Group SDN had a full day meeting. The SDN has a very long history, it started in the DOS days as a Clipper Developer group. Over the years a couple of refactorings and renames later it's now mainly a .NET user group with a big Delphi stream and a smaal Visual Objects (the product Clipper evolved into) pool.

    A keynote was given by (Microsofts' !) Steve Martin. In a short amount of time he had the audience flabbergasted with a smooth and fast talk on SOA which started from a business perspective ; not the best way to grab the attention of developpers. But in the end of the talk he focused on modeling and gave a brief outline on what to expect from MS in the coming months.

    Steve promised a full featured modeling language. Greg's observations immediately crossed my mind.

    The "normal" presentations were with their feet on the ground focusing on what is available today to build your everyday applications. Notable was the enormous interest in Enterprise Library, with many people using the stuff. What pleased me most was the great focus on testing. I followed several sessions on web development, either using Script#, Silverlight or Volta. A major concern for both speakers and participators was the testability of the code. They really focused on that. Great !

    Another good sign is .NET magazine, which is fully Microsoft sponsored, in Dutch and completely focuses on developers. It has the expectable stories like "what's new in VS 2008"; but in the form of a good survey. It doesn't stick to MS only. In the latest editions there are articles like "Getting started with nHibernate", "IronPython, programming with pleasure", "Domain Driven Software Factory", "Castle Monorail in a real life app", "Testing keeps us sharp". And in many of the other articles tools sometimes labeled as alt.net are mentioned.

    Seeing all of this has me convinced there is (over here) no such thing as a status quo between doing things the "MS" way and doing things the "right" way. The way we develop software is not being battled over but constantly co-evolving. With all participants, tool manufacturers (like MS) and tool users, looking for shared ground. To be found where an user group meets.

  • Sign of the times giveaway

    Tidying up the office I found this goodie.

    For those who started with Windows and pen-drives: it is a 5.25" single sided floppy disk (with a capacity of 160 or 180 Kb) by the Massachusetts Mineral and Mining Minnesota Mining and Manufacturing company pimped as an analog clock. At the time floppies were so expensive they could offer you a complete clock when buying a 10-pack DS.

    I'm emotional fool enough wanting to keep it. But I found two copies, this one is a giveaway. You want it ? Here's how to apply:

    • Make an original comment why you should get it.
    • Visit the SDN meeting coming December 11 in Ede. The program on itself is more than good enough to visit. No worries, I'm not speaking J. In case you can't make it there due to distance or language problems, include an original way to get the clock to you.

    See you in Ede.

  • Small presentation woes

    Presenting in public, be it on paper, blog or speak is fun. It forces you to formulate your ideas. If you can't explain something you don't really understand it. And it provides valuable feedback. Not everything said or written comes across, it might take a show element. And not everything has to be (the) right (way). Thank goodness there's always someone in the audience or amongst the readers to correct you.

    Last Friday I did a presentation for the Dutch SDN user group. Presenting, which I don't do very often, is quite different from writing. The 75 minutes given seemed like more than enough time to tell the story I had prepared. But after 20 minutes and a short poll in the audience it became clear that I had to step on it and make some shortcuts. My plan had been to do live coding for all essential stuff. Thank goodness a backup of completed examples was at hand. Not working, for the final demo the device emulator would not connect to the network. I thought I knew how to do that :(. At 10:19 I crash-landed on my last slide, 4 minutes overtime. Exhausted. The remainder of the day was quite pleasant, good stories, a good atmosphere and good laughs. It's not just the economy which is starting to boom again.

    Writing can have it's little problems as well. Coming home the new copy of .NET magazine had arrived. To my surprise something had gone wrong with my article. As a result of the DTP process a piece of the story was lost. For the Dutch readers, insert this before the last paragraph of page 58:

    De buttons gaan code uitvoeren. In het click-attribuut koppel ik het click-event aan een eventhandler met de waarde van het attribuut als naam. De code-behind-file, de derde view op het form, bevat de eventhandlers. XAML-eventhandlers hebben een iets andere signature dan de eventhandlers van een Winform. Beide hebben als eerste parameter de sender, dat is de control die het event heeft afgevuurd. Later zullen we daar nog wat mee gaan doen. De tweede parameter van een XAML-event is van het type RoutedEventArgs. In een Windows-form voert een eventhandler wat code uit en daarna is het klaar. In een XAML-applicatie kan een event bubbelen naar andere controls in de hiërarchie van controls. Wie in ASP.NET met command bubbling heeft gewerkt, zal hier iets herkennen. Ik heb hier helaas geen ruimte om verder in te gaan op het routeren van events, maar wil het even genoemd hebben. Het is een punt waar je later op verder kunt bouwen en veel moois mee kan doen. De eventhandlers voor de buttons gaan gebruikmaken van de service. Voor we die code kunnen schrijven, hebben we eerst een reference naar de service nodig. In het project staat een map Service References, met een rechtermuisklik kun je er een reference aan toevoegen.

    Small woes, all part of the game.

  • Sunspots, cyborgs and ambient intelligence in Groningen

    In the Dutch city of Groningen is the Mediacentrale:

    It's a former power plant which has been transformed into a centre for multimedia and other IT business. March 16th, it was stage for Amigro, a 1 day conference on ambient intelligence.(Google for variations). Organized by the department of AI of the Groningen university in cooperation with the local platform for the stimulation of ICT. Every year they have something special; last year and the year before that is was a robot competition (including the .NET wonder on wheels).

    So this year it was a conference on "ambient intelligence" which is the effect of having intelligent devices everywhere. A very good speaker on such devices was Rob Tow who works for Sun Research labs

    He had a very good story which went form the ancient Greeks to the emerging ecosystem of intelligent devices and ended with a demonstration such a creature. The Sunspot; soon for sale, is an intelligent matchbox containing sensors, leds, a wireless network, IO-ports and is running a Java virtual machine called Squawk. The sensors include an accelerometer, so the device can sense motion. You can do great things with that. Take this way to transfer data from one sunspot to the other. The magic is done by waving the spot towards the receiving one and pretend it is sprinkling it with some data. By including figures like circles (counter) clock wise a rich instruction set can be built.

    Especially with the combination of the (three color) leds it just looks like magic. Patents pending, no kidding.

    Another speaker took the road inside. Professor Kevin Warwick became world famous for implanting himself with a RFID chip. Opening the door to his lab or logging now only took a hand waive. The application has been followed by quite a lot of others. In Holland we had a bar where waving your injected RFID was a way to pay the bill. Was tested in court and considered in conflict with standing practice. But Kevin has gone further and has  implanted set of electrodes which make direct contact with a nerve in his arm. The electrodes can be plugged into whatever what, including a network adapter. After 6 weeks of training he could control a robot hand by his own hand-movements. Sitting next to it or over the internet on the other side of the world.

    Human to human communication is also possible.

    (picture ripped from beamer projection, sorry about that)

    His wife has a  colored-leds (also) collier with a a receiver and Kevin has plugged in a transmitting bracelet. Now the activity in Kevin's nerves steers the glow in his wife's collier. Cyborgs coming to a conference near you. In (er gaat niets boven) Groningen.

  • Dutch Devdays, what was it like ?

    Last week, March 7th and 8th, we had the annual Dutch Microsoft Developer days.

    A very impressive start was the beamer used for the keynote.

    An immersing stage wide display containing windowed input of several PC's and/or video camera's. Must have been either an expensive rent or it broke down as the second conference day we had just the usual view.

    On a conference like this you get the opportunity to see and hear some international people. We had Scott Guthrie demonstrating Atlas.

    The greatest thing about Atlas is how you use it as an extra layer on top of an asp.net 2.0 application. Just wrap a part of your webform in some atlas tags and you've got partial postbacks. Also quite nice is the way atlas script interacts with existing webcontrols. There are loads and load of resources on Atlas, Scott's blog makes a good starting point. The main thing I've seen is that Atlas is not another new start in web development but a smooth evolutionary step.

    Another great speaker was Bob SQLskills Beauchemin who did an in-depth series on SQL 2005. One of his sessions was in a room approximately 150 chairs wide, just 20 rows deep. In such a setup you have 2 big screens with a presenter in the middle. Nobody knows which direction to look

    A guarantee for a stiff neck at the end of the story. I really don't understand this, it should be no big problem to rotate the whole inventory 90 degrees.

    Always a good show is Rafal Project Botticelli Lucawiecki who did a series on security. He is such a lovely speaker.

    At first ear his talks are a friendly, pleasant and optimistic babble but when the words start sinking in you realize the content is pretty serious, of great depth and keeps you on the tip of your seat.

    A final word on this

    The shot was taken on a presentation on designing a GUI. It was an old show (recognize the Office '97 bullets ?) I had seen before but it's still very true. I know users don't want to think but one aspect of the conference gave the impression developers want to stop thinking as well. Meant as entertainment we had the "singer" Bob Hangop doing Dutch carnival songs all day. You could not stay away from Bob, he was loud and kept popping up again and again. Carnival is something which divides the country. You just had to take side. Most people I've spoken were not at all amused. Please, please, please never again... I do want to think, that's what I visit the Devdays for.

    Having said that my overall impression was that .net is really booming. Not just the evolution of the software but also the enormous increase of job opportunities. Usually the exhibitors mainly try to sell you tools or training courses. This time they mainly were trying to buy something. You ! I'm still a one person shop but with the increasing complexity of software projects and so many interesting opportunities I could change my mind.

  • DotNed user group meeting

    Hey Dutchies: coming Thursday, February 23, the user group DotNed will meet. Hosted by Macaw with a presentation on Enterprise Library for .NET 2.0. Last time I went it was great, I'm hoping for something likewise. It's free. Signup here. See you there.

  • Contract first development (Christian Weyer spoke for the SDN)

    Last Friday, December 9th, the Dutch user group SDN had a meeting. A lot of people turned up, demonstrating that blogs and other internet stuff are still not (and never will be) all there is. There is no substitute for meeting and talking with real live people.

    My favorite presentation was on Contract First development by Christian Weyer. He's been giving this talk for some time. Last year for DotNed, the other Dutch user group. It is an evolving story, at the moment the content is hotter than ever. Christian has some great ideas on the subject, is quite passionate about them and gets carried away presenting it. Which leads to a hell of a presentation. Let me give you a short resume. Thanks to my glasswork I've been able to catch both speaker and the highlights of his slides, so Christian can do the main part of the talking himself

    The Visual studio template to create a  webservice generates skeleton code:

    The problem with this code is that is just a class whose methods are wrapped up with attributes. The webservice is used by making RPC (remote procedure calls) to some webservice object.

    This does not fit very well in world of real world of communications:

    There is a mismatch between webservices VS template style and message based systems as seen in service oriented architecture.

    You cannot describe all aspects of services, messages and contracts in just a class. The real world has more aspects:

    Instead of starting with code you should start with the contracts which describe the messages to exchange and the operations which accept and transmit messages. All of this can be described in XML schema.

    This contract is going to be the base for generating the implementation of the webservice. That's where Christians Contract first tool enters the story. Like a real VS add-in it is started with a right click. It can generate two kinds of code: a server stub to implement the service and a client side proxy to consume it. The tool is free for download. It's also works for VS 2005. In Christan's words it's more or less 'pre-alpha' which requires some crossing of thumbs. In his demo it worked like a charm.

    The essential point of the story is that a webservice is based on a contract. At the moment this contract is written out as an xml schema (xsd) which can be  understood by a variety of platforms. These contracts specify services in some specific domain. Being a good German Christian's domain were restaurants. When people agree on what the contracts in a specific domain should look like (after all a contract should be an agreement) you have building blocks for developing software for that specific domain. And the start of a domain specific language. Another whole new thing...

    What the role and form of these contracts will be in the future remains an open question

    I can't wait to see more glimpses at the next user group meeting.

  • Launch event in the Netherlands

    1350 people attended the Dutch launch party. One of the best things was the location

    The old Van Nelle factory was designed in 1923 but still looks quite modern these days. The most remarkable thing are its glass walls. This idea of transparency was a recurring theme in the keynote. Microsoft exposing its new technologies in CTP's.

    Beside the usual presentations on team system and the like we had a database quiz. With a quizmaster who didn't have a clue what the questions were about but managed to give that a funny twist. Quite amusing.

    The keynote itself  was not too bad. They had dragged in a socio-biologist to comment on the nature of the (presumed) slightly autistic developer. Steve Balmer made a labeling target for ADHD. Parts of his keynote were presented on a video screen

    Somehow the talk could not keep everybody's attention. After all these years of public beta's and CTP's the goods are no real news. We've all seen it and worked with it. And now we can finally start officially using it. No more explaining to do on the status of the product. Time to party. Which we did.

  • 3 years of DotNed, C# 3.0, innovation and retirement

    Yesterday Dutch user group DotNed held a meeting to celebrate it's 3d year. The main presentation was by Dennis Vroegop. <Update Dennis is not Dennis. Sorry, sorry, sorry> He had visited the PDC, blogged about it and gave a presentation on the most impressive stuff he had seen. Also Dennis has a background in Turbo Pascal and Delphi, no wonder its was all about Anders's new creations C# 3.0 and LinQ

    The audience was quite impressed

    but also somewhat confused. For example, it does take some time to understand that this
    var lijst = data.Where( s => s.Length > 3 );
     

    is a valid C# statement. To understand what it means is the next step. The good thing about an user group meeting is the live discussion. Some of the first reactions were "I don't want/need that". Later on that changed to "I don't understand that". In the end "Perhaps it does make sense". Learning together, that's a community.

    The main thing C# 3 does is generating code. Code which runs in the same CLR as C# 2.0. Behind the scenes the majority of  the weird statements is translated into several lines of "regular" C# 2 code. When you're coding now your code most likely follows a pattern. You're repeating the same idea over and over again. Shorthand C# 3 (and (D)Linq) code generates code following a pattern. Now if you accept that pattern and believe it does things the right way you're set. Personally I don't believe the patterns I'm using are any better then those C# 3 is using. I am looking forward to start really using it.

    The overall theme of the meeting was innovation. DotNed has been three years of innovation. Innovation means learning, learning and learning more; until you finally have to give up and retire. For the moment user groups keep me young, I'm not giving up yet. DotNed chairman Michiel van Otegem can look back on a good meeting.

    My pension is expected in 17 years. Hope to celebrate it with 20 years of DotNed.

    Query On !

  • MSDN activities in the Netherlands

    In the North we were the first to have the MSDN/TechNet briefings. A couple of times a year MS organizes this to present their latest news. New was the amount of fun in the presentations. Usually you are bombarded with flashy videos on a heavy techno beat. This time we had a hilarious video on how MS processes error reports. The keynote-slides were presented with a live water-cooled pc which outclassed the one I saw at Cebit. The keynote itself contained the usual, but nevertheless impressing demos of Vista and Office 12. It was the first time I saw Office 12. In one word : "Yessss".

    Despite all that the developer track was quite serious. Alex Thissen gave a very good and very interactive survey of building ASP.NET 2,0 apps with Visual Studio 2005. Not just bulleted list with new features, but in 3 sessions a lot of the real details were covered. I had done a lot with beta1, the current beta2 was less known to me. Now I really do understand the new compilation and code behind model. In the new model every page gets compiled into it's own DLL. I think it is OK but the only bug we've seen in all the demo's might have to do with it. It sometimes appears when you do a crosspost from one page to the other. Your app pops up an error complaining about "cannot cast WebForm1 to WebForm1" (or something like that). Inside the .NET runtime a class is not just identified with it's name but also by it's build number. Looks like the other webform is still looking for the previous version of WebForm1. One page got recompiled, the other didn't. Wild guess, but that does make sense to me. The good thing about the new compilation model is that your pages can inherit from a custom page class. You can do that in 1.1 but could not do that in beta1. The custom page base class goes in the APP_Code folder of the website; or in a referenced assembly. It might look a little confusing at start but at the end of the day I felt comfortable with the new style of website projects.

    The only thing I felt under-covered were object datasources. SqlDatasources on a webform are nice but, as somebody remarked, hinder the separation of layers into tiers. Objectdatasources were part of the talk but not of the live demo's. I did some exploring in beta 1 and it looks like they still work the same. Perhaps they will not automagically generate proxies for the object provider, needs some further exploration.

    Next week Alex will be giving his talks in the other parts of the country. Absolutely recommended. The launch of VS 2005 will be a big party over here as well. In yesterdays meeting the location was said to be a secret, but the pre-invitation and the video clearly state the old van Nelle factory in Rotterdam. What a  location ! See you there ?

  • Programming WCF : Next, next, next, finish ?

    Last Friday, september 16th,  we had a meeting of the SDN user group. As always an enlightening experience.

    The theme was integration Now the SDN is a user group of coders, but with the new tools there is not that much left to code. Take the talk on WCF

    When it comes to WCF enabling your coding it is a matter of setting some attributes and filling in a configuration file. For the latter there are some wizards. One of the speakers jokingly described their IT staff as "Next, Next, Next, Finish" wizard magicians. With WCF and WSE programmers seem to be heading the same direction. The advantage of being a coder is that you are supposed to understand what is going on. So when you fill in your wizard you do know what you're doing. The talks on the meeting did help, but I do feel a little sad on the conclusion.

  • The PDC, too hot to handle

    Don't take this to serious, these are just some nice remembrances of the PDC 2003. Let me be the devils advocate for one moment. Why would you go to the PDC ? Last time it was hard to get to LA with fierce fires surrounding the city. Having made it other things heated the atmosphere, like beamer airstreams:

    Which reminded me of gathering round a campfire. Just wait for Don and Chris to show up with a guitar and start singing your favorite evergreens. (In the link that's at end of the show)

    You didn't have to visit the MSDN TV site to watch TV, when the session was completely overcrowded you could watch it in the corridor.

    Just staring at an attribute of a method without implementation....

    But don't let this scare you, it was a fantastic conference ! Go and visit this edition, seats still available. What I am also still pretty serious about is this :

    blogging my way to pdc

  • Past, present and future (my favorite PDC sessions)

    Last PDC, the 2003 edition, was one big flood of new things. It was the first time Longhorn (now named Vista) and Whidbey (now named Visual Studio 2005) were presented to the developer community. The coming, 2005 edition, will be on the same, by now almost today's, tools. There is a searchable list of sessions online. The majority is on the same products but this time based on solid beta1 (Windows Vista) and beta 2 (Visual Studio 2005) versions. The goods we received in 2003 were more spectacular than the crystallized reality of today. Remember the WinFS and ObjectSpaces buzzwords ? Those concepts are still there, a further evolution of the ideas will be at the PDC 2005, but it takes some browsing to find them.

    The session summaries are of a diverse quality. Some are technical vague marketing babble but most are really promising. There is one on the tablet Windows Vista ("Longhorn") Tablet PC: Advances in Creating Ink Enabled Applications, co- presenter Shawn van Ness has a  blog post on what they are going to do there. And to get in the mood the tablet team has started a blog. Subscribed !

    When it comes to the future I pre-selected some sessions (titles in bold, snippets from the summary in italics). Despite the avalanche on rich applications I want to hear ASP.NET: A Sneak Peek at Future Directions in Web Development and Designer Tools.  Let's see what the future brings for me and my simple mortal users. My summit will be the next three, where the old buzzwords are back in a new form. This time as clear programming languages and API's : C#: Future Directions in Language Innovation from Anders Hejlsberg. Anders can talk in a very easy and understandable way about quite abstract ideas. In this session he will talk about the elements in the next C# to create powerful APIs for expressing queries and interacting with objects, XML, and databases in a strongly typed, natural way. What MS wants to do with these APIs will be told in The .NET Language Integrated Query Framework: An Overview. The APIs will not be restricted to C#, also in VB.NET you will be able to use them. Today you write your code in a language of choice and access data using a SQLadapter, XMLdocument or plain object. Each of them has a specific way of interacting with the data, and much of the complexity in today's applications is the result of these mismatches. The "Orcas" release of Visual Studio aims to unify the programming models through integrated query capabilities After the overview I am ready for Using the .NET Language Integrated Query Framework with Relational Data  Database-centric applications have traditionally had to rely on two distinct programming languages: one for the database and one for the application. That's what the query framework will bridge. Using these advances, database queries that previously were stored as opaque strings now benefit from static type checking, CLR metadata, design-time type inference, and of course IntelliSense. Sounds like dBase on steroids :) Back to the future.

    Will I be able to see all this live? It depends..

  • An idea waiting for a commit

    As a yearly recurring event around TechEd Europe Juval Löwy did a presenation for dotned, the Dutch user group. It was a fascinating talk, for two hours we have been bombarded with some very fascinating idea's.

     

    Juval's main message is "the is no such thing as recovery code". Your application starts in a certain well described state. As soon as your code starts fiddling with that state you app's state is unknown and should be hidden to the outer world. At a certain moment the code should say "this is it" and commit that state. Or it should say "oops" and roll back to the previous well defined state. That's programming in transactions. Any attempt to try to fix something in your own recovery code is (in Juval's words) futile. At the moment the only tools which support transactions are the better database servers. You mark the start of a transaction, start fiddling and commit the updates to the database or rollback all changes.

    Now wouldn't it be lovely to write all your code like that ? Yes it would. But I have a problem with further exploring the subject. In the talk we've been a sounding board for some very fascinating ideas on this. But we've been asked to zip our mouths'. It's still in review, when ready you're going to read all about it in the near future. I hope I'm not bringing Julian (or myself) in any trouble by even mentioning this talk... I just hope to have stirred your curiosity and, most of all, have motivated you to go to user group meetings yourself.

    Any questions ?

More Posts Next page »