![]() |
|
Spaces home The Next Generation User...ProfileFriendsBlogMore ![]() | ![]() |
The Next Generation User Group - Dave Mc's BlogHelping Microsoft Developers Stay Ahead of Game!
|
|||||
|
March 06 DDD IrelandThat core of the UK Developer Community the DDD event is moving across the Irish Sea to the Emerald Isle in the form of DDD Ireland, check out http://www.dddireland.com for details. A host of well known speakers abound and registration is now open. Vital Statistics? 3rd May 2008, Galway Ireland, Great Content, Great Sessions, Great Speakers, Great Guiness.
To attend, you can register here: http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&EventID=1032370583
Hope to see you there!
Cheers
Dave Mc January 08 Remember When XP Was Slow?I forever wonder at the shortness of human memory. What do I mean by that? Well a typical example is a football fan. 3 years ago Rafael Benetiz took Liverpool to the Champion's League Final and at the time Liverpool fans were touting him as the man who could lead Liverpool to former glories. Those same fans now want rid of him, even though at least 16 other clubs would love to be where Liverpool are ...
Oh yes, and about Windows XP. I don't know how many people I've heard say in the last year "Oh XP was so good and quick, Vista is just too slow, you need new hardware to run it properly". Well if you're in the the latter group, take a peruse through some of these links below from around 2002: http://www.michaelhanscom.com/eclecticism/2001/11/16/xp-sucks/ Sound familiar? I do seem to remember that when Windows 98 came out it ran slowly compared to Windows 95 on the same machine? Ditto Windows 2K over Win 98, Ditto XP over W2K, so is it really surprising that Vista appears slow over XP on some hardware? Want to see Vista fly? Go get a £400 Inspiron from Dell with Home Premium. It really flies! My wife and 2 lads use it, no problems - gave a 2 min lesson on a few enhancements (Search, Tagging and UAC), they've found everything else via Search themselves. Installed AVG Free Edition - not had a single virus issue, mind you not even had one found!. Couple of problems with a couple of older games (haven't we always had that? Remember 16 Bit to 32 Bit?), but they still run (sort of). Personally, I think the move to Vista has been much less hassle than the move from Win 95 to Win 98 and less hassle than XP to XP XP2. Microsoft still have some work to do, the urgent stuff should be out in SP1 I hope, I hope. Vista should be the Dogs B*****ks and way better than XP ever was by end of 2008 (it already is in my opinion). Back to Haskell next time I think Cheers Dave December 31 It's a Haskell New YearWell I've been keeping at it, despite the fact that it is somewhat of a slog, learning Haskell that is. The documentation is somewhat sparse, done in that somewhat haphazard fashion of 'not-quite complete' style you get with a lot of Open Source stuff - really makes you appreciate what we have in MSDN, I can tell you. But I thought I'd share a sort of Hello World style of Haskell Program, although it does do a bit more than that ... module Main import Char main = putStrLn ( show ( my_map Char.isLower "Hello World" ) ) my_map f [] = [] That's it. So what does all this do? What does it mean? Lets start with module Main This is fairly plain. I'm declaring a module, a unit of code really called Main. The where refers to what comes next. import Char The import Char means I'm referring to the namespace Char which has a number of functions, well one in fact which I need. main = putStrLn ( show ( my_map Char.isLower "Hello World" ) ) The next line is the actual main function. Note that functions or more generally expressions in Haskell begin with lowercase letters whilst types such as Main begin with upper case letters. This is required by the Haskell compiler. The main function essentially writes output using the putStrLn to write the output of show, which converts a type into a String, and the input to show is the output of the my_map function. my_map f [] = [] The my_map function is declared on 2 lines and takes two arguments a function and a list. Lists are defined in square brackets in Haskell i.e []. What the declaration says is that if the second argument is an empty list, then return an empty list (first line). If the list is not empty, then (x:xs) represents the non-empty list as a list element x appended to the front of an existing list xs. In this case we apply the function f to the individual element x and append it to the output of my_map f as applied to xs, i.e in a recursive manner. In essence the function is applied to each member of the list. In the actual code of main, the function applied is the isLower() function which outputs a Boolean value of True if the character is lower case and False if not. By running this program in the Glasgow Haskell Compiler Interactive window (GHCi), the following is the resulting output. [False,True,True,True,True,False,False,True,True,True,True]. So this simple program shows the following facets of Haskell: 1. The program is in fact one function I've done a few other bits, I'm keeping reading bits over and over again, and found some other documentation. Its proving to be a bit of a rough ride and I'm trying to find something 'useful' to do and to produce, which is always the issue with these sorts of things. Still another post will come soon, and I'll try to produce something better for you next time, maybe try to interact with another library or something... Meanwhile, have a great New Year, see you around the community! Cheers Dave December 13 More Thoughts on User Groups ...Browsing via Google Reader and my Live Desktop I noticed one of Daniel's latest posts on How You Start A User Group. As one of the co-founder's of NxtGenUG I thought I'd put my slant on this one from a UK perspective. Chris William's 21 thoughts on starting a User Group are interesting, valid and I'd say cover a good deal of what is required. I do disagree with a few of his points particularly No 10 about avoiding certain months of the year. NxtGenUG have a meeting EVERY month, come rain, shine, whatever. In this December we've had nearly 100 people register for meetings and of the 2 we've had so far we've had about a 90% turnout rate. In July 2007 we had one of the biggest month's ever for attendances at NxtGenUG meetings, ditto August, the so called 'quiet' months. The reason? People are hungry for information, not everybody goes on holiday the whole of July/August, people work up until 24th December quite often, why not have a meeting in December? On Chris's point No 6 I would quibble too. Whilst DPE at Microsoft are a great help and a fantastic support to the community, there is a difference between being a support and being a crutch. I wouldn't get necessarily get a DPE guy in to do a first meeting. To me when starting out with NxtGenUG, it was a point of pride for me that we wanted to prove that we could organise, fund and build a group without direct help from Microsoft whilst effectively promoting their technology. This to mind my strengthens our position as a User Group as it makes a statement about who is really driving it. It strengthens Microsoft's position too, whereby they can point to us and say, "these guys are doing these great things, promoting our stuff, with no direct support from us, we must be doing something right!". Funding is always a hot subject in the User Group leader arena. Chris skirts a bit around the issue a bit in No 8 and talks about sponsorship. It comes down a bit to what you want to achieve with the group you are starting. With us at NxtGenUG it has always been a passion and a drive to put on the best possible meetings, without the need to worry about finance. To that end NxtGenUG is primarily a subscriptions based User Group. Our promise to our members is to provide top content in our meetings, food of course, swag of course but above all else VALUE for MONEY! Because we generally achieve that we don't get the situation in No 15 on Chris's list. We hardly ever have people complain. We do have comments occasionally and we act upon them, but because we actively promote feedback, read it, act on it (as Chris states) be it positive or negative and we make it easy to gather online. As a result, we nearly always get only constructive or positive feedback on our meetings. Other User Groups do things differently and have just as valid but different models. London .NET, Scottish Developers, DotNetDevNet, VBUG all run different types of groups and get support different ways. Daniel challenged us to add to the list ... 22. Have Fun. Make meetings enjoyable. 23. Give the speakers you invite a GOOD introduction, not a wishy-washy "Here's what-sit-face?" 24. At a meeting if you're an organiser/helper, mingle with the attendees, chat, have a laugh. 25. Have fun, smile, enjoy it, don't take it too seriously ... 26 through to 100. Have Fun ... Nice spot Daniel, Cheers Dave Mc November 27 What the heck is Haskell?
Let's go back to April 2007, and Ian Cooper comes along to NxtGenUG to give a great session on Object Orientated Practices. During that session he mentions The Pragmatic Programmer as a good book to read to improve oneself as a software developer. As luck would have it my co-worker, utility 'king' and good friend Andy Maggs has a copy. I borrow it, read it, well most of it, but that one piece of advice in the book which sticks, really sticks, is "Learn a new language each year". That seems like an awful lot of work, and I put that thought aside. Along comes VBUG Conference for which I do a session on LINQ to XML. During my research, I have a brief flirtation with monads which brings me into contact with Haskell for the first time. Interested, I see its a pure functional language, but don't really give it much attention. Along comes MIXUK, and in the last session Simon Peyton-Jones delivers what I have described elsewhere as a 'thunderbolt' of a session on Transactional Memory. During this session Simon mentions Haskell again and the fact that he is one of it's architects. By now, my interest is up but so are my commitments, speaking at several UK conferences including DDD, MIXUK, SQLBITS and VBUG Conference. Also looming is TechEd 2007 where I would be delivering my XSLT Extreme Session. So I put everything on hold until post TechEd. So November 13th I decide that I will grab that thought from above , learn a new language and its going to be Haskell! Why? Well here's my rationale. I'm not saying you should learn Haskell, just here is why I'm learning Haskell:
That's why I'm learning Haskell, but why am I writing about this? It's that man Ian Cooper again. At DDD6 Geek Dinner, I told Ian what I was doing and how it was actually all his fault, his response: "Make sure you blog your journey through Haskell". So, who am I to argue with a lynchpin of the UK community and great speaker that Ian is. So this was blog number 1 on Haskell, more to come as I delve further and further into this somewhat different world ... Next time we'll have a chat about getting started with Haskell, and what I did to write my first Haskell program ... Cheers Dave Mc
|
|
||||
|
|