Feed on
Posts
Comments

Seattle Code Camp – Presenters List

Have you signed up for Seattle Code Camp yet?  The sessions are starting to fill up, we’re getting a lot of interesting talks for the weekend.  We still haven’t posted the session details yet but I see that Jason Mauer posted the list of presenters last night.

Wow.  We’ve got ~50 people who want to share their knowledge with you.  The suggestions keep pouring in too.  I love community events like this.  I’m always amazed at how generous people are with their time and expertise.

Who’s talking at Code Camp?

We still need more in the Game and Hobbyist tracks.  Know someone?

Edited:

See more on Code Camp here.

Kids at Code Camp
Details about Camp

Register to Attend (It’s Free)
Code Camp Site

Amazing list of topics.  A few that I like

  • Science of Great UI
  • Sleep is for Wimps – Robotics
  • Introduction to Ruby“ 
  • Mobile Traffic

There’s too many to list here. Check out the list yourself.  Then sign up -  What are you waiting for for?


I’ve been busy the last couple of days working on the Seattle Code Camp.  If you haven’t heard about it — it’s a weekend long developer conference that is put together by local developers.  See details on the camp manifesto here    Code Camps started in Boston and have proven very popular with developers -  they’re popping up all over the country. 
I am responsible for two tracks, I’m co-chairing the Web Development with Paul Litwin I’m also working on the Hobbyist track. I encourage you to sign up for the event.  They are popular and often reach capacity quickly.  Can you imagine a better way to spend the weekend?

Looking for Speakers

We are still looking for speakers.  If you have a topic you’d like to present, drop me a note. Would you be interested in doing a presentation for my tracks? Code Camp has 13 tracks so there is a slot for nearly any talk you would like to give.     I encourage you to submit talks on other tracks and  topics too.  Speakers are limited to a couple talks, because we want you to have fun too and have a chance to interact with other code campers. If we get lots of submissions obviously we will have to cull the abstracts to a reasonable amount.
I’m also looking for more folks with hobby related topics (robotics, automation, remote controlled devices, music, fun stuff).  Any ideas?
You can submit abstracts to me or directly on the Code Camp website.[ http://pacwest.ms/codecamp/sea/1/]
Spotlight on Speakers

We’re starting to get a great list of presenters for the show.  The list is not posted, it should be out on the website later this week. Who, you say?  Who’s coming?  Well I can’t list them all here so I’ll start with the first one on the list.
Professor Richard E. Crandall
http://www.reed.edu/~crandall/

Richard Crandall currently holds the title of Apple Distinguished Scientist, having previously been Apple’s Chief Cryptographer, the Chief Scientist at NeXT, Inc., and recipient of the Vollum Chair of Science at Reed College.

Yes, that’s right.  Apple.  As in Apple Computers.  This is a developer event, NOT a  Microsoft event.

In 1997 he founded a consulting firm, Perfectly Scientific, Inc., dedicated to industrial algorithm design. His primary interest is interdisciplinary scientific computation, though he has authored numerous theoretical papers in quantum physics, biology, mathematics, and chemistry, as well as various patents across engineering fields.

There are plenty of topics for you.  Ruby, Agile Development, Creating a Gaming Framework, .NET, Avalon, Linq, Design Patterns, SQL Server Development and dozens more.

Code Camp Details
We are going to have 13 tracks and and a lot of attendees (we have capacity for ~1000). Portland Code Camp registered 300 in two weeks time.  This is our first Camp so we don’t really know how many will attend. We are looking for about 80-90 talks for the two days. There will be a big publicity push this week and every week till the start of the camp.

Code Camp is devoted to coders, regardless of platform, OS or favorite programming language.  That means we are encouraging talks in lots of disciplines.  We want to cross-pollinate the developers in the area – exposing them to ideas and tools that they may not have seen before.

Code Camp is open for kids and teens too.  At the Portland Camp there were numerous fathers there with their 10-16 year old boys.  The younger ones were totally thrilled to be there.

Code Camps encourages new speakers to join in. Friday night we will have a gathering for speakers which includes speaker training and the opportunity to talk to seasoned presenters. 
Dates: October 22,23, 2005
Times: Daytime
BBQ: Saturday Evening
Location:  Devry University — Federal Way WA
Cost: Free
Payment to Speakers: $0.00
Session Length: Variable but most will be 75 minutes
Registration:  If you are a speaker you must be registered for the event.
Tracks

  • Client Development
  • Database
  • Fundamentals
  • Game Development
  • Hands On Labs
  • Hobbyist
  • Methodology
  • Languages And Frameworks
  • Mobile
  • Security
  • Web Development
  • XML And The Web
  • Migration

Atlas and AJAX

AJAX, and more AJAX, that’s what we’ve been hearing about.  Some call it the savior of the web application.  Some say that it will kick Microsoft butt into oblivion.  Web apps will be king, desktops are dead.  Long live the king!

So you decide to look into AJAX and find out that it is a combination of various technologies, DHTML, java script and others that allow web applications to be written that look and feel more like desktop apps.  Technologies that have been around for years but are finally being combined in meaningful ways.  The key is asynchronous callbacks to the server from the browser.  Talking to the server without forcing postback of the page.  That’s what it is.

Why the sudden buzz?  One factor — someone came up with a name (AJAX) that we can us to described the combination of tools.  Second factor– browser support for dhtml and JavaScript has reach critical mass.  Virtual all browsers support the pieces need make the async calls work.

I spent a pleasant hour tonight talking with Russ Helfand (Microsoft).  He was demonstrating Atlas and ASP.NET and we spent a lot of time contrasting AJAX and Atlas.  I was impressed.  Atlas is much more the a Microsoft re-branding of AJAX.  It is a powerful combination of async script calls (what AJAX does) and excellent integration with your ASP.NET server code.    Hey you can write Atlas code and not have any dependencies on ASP.NET.  Isolated HTML pages can harness the power of Atlas.  But there is also a binding mechanism for client side controls (bindable to webservices too).  Plus, as I said before, tight integration with ASP.NET if you want.

I’m tired, spent all day at the MVP summit, filling my head with new ideas.  I’m not sure if I’m doing a good job of explaining Atlas so let me say this.  Check out the samples.  Realize that this is still an very early prototype of Atlas and Russ and his coworkers are still designing the architecture.


I was at the Portland Oregon Code Camp this summer. What a lot of fun!  If you haven’t been to one yet you really should find time to go.   You’ll meet a ton of new people and probably will run into someone you know.  For example, I got to the Reed College campus early Saturday morning.  Set on a of a beautiful tree-lined campus Reed was a perfect place to have a weekend programmer event.   As I was walking across campus (more like wandering about looking lost) looking for the registration building I saw a familiar face.  Dan Dougherty, from Seattle, was there too.  So who’s the first person I see 180 miles from home — a friend from Seattle.  Dan helped start the Seattle Visual Basic Developers Association seven years ago and served as an officer and board member for many years.

Come to Code Camp in Seattle

I’ve been working with a lot of motivated people here in Seattle to get the first Code Camp started.  Well, we did it.  Code camp will be October 22-23.  Find out more or register at http://pacwest.ms/codecamp/sea/1/  Hurry up.  Portland filled up very quickly.

Oh, by the way.  It’s free

I really wanted them to get along.  Live side-by-side in harmony sharing the same CLR but it wasn’t meant to be I guess.

I downloaded Visual Studio 2005 RC1 this week.  I also grabbed the September TCP (Community Technology Preview) build of SQL Server 2005.  I wanted to install both on my demo machine but there was no love between them.

Release Is Imminent

The last time these two programs coexisted in the beta world was last April.  Microsoft needs to get the fixed and soon.  The release is less than two months away.

I like UI design.  You wouldn’t know it from reading this blog because I’ve rarely talked about it but it is one of my passions.    Good UI design is pleasing to the user, simple and easy to use and most of all intuitive. You can become a better UI designer by researching good patterns, studying good and bad interface designs and practicing your skills.

Years ago I used to give a presentation called “User Interface Bloopers – How not to create a UI” that cataloged dozens of of silly dialog messages, awful form layouts, bad UI metaphors and pathetic error messages.  I still have students send me examples of bad UI in applications they are using.

Want to learn more?  Read Jan Miksovsky blog.  He’s had plenty of practice creating UI’s including work on Microsoft Vista and Microsoft Money.  There are some great tips on his blog.

Important: If you run Microsoft Virtual PC on a laptop you need this hotfix.  Get it now, don’t wait even one more hour.

http://support.microsoft.com/?kbid=889677

OK. Now that I’ve yelled at you let me tell you why you need this hotfix. Virtual PC freaks out when the host OS enters hibernation mode.  It’s nasty. There are numerous symptoms but let me list the ones I’ve encountered.

  • Keyboard locks up
  • Mouse freezes when entering Virtual PC window
  • Switching to Full Screen (Right Alt-Enter) freezes Virtual PC window
  • Prevents host OS from entering hibernation mode

The last one I find particularly annoying.  My laptop is set to enter Hibernation mode when the screen is closed.  At least it was until I started having trouble with VPC.  When I close the lid, the drive stops spinning, the lights go out and it appears to be in hibernation mode.  But no, it’s really a zombie from ‘Night of the Living Dead’.  About ten minutes after putting it into my computer bag my laptop wakes.  There it lurks, hidden in the black leather bag, fan spinning, it’s battery juice draining uselessly away and doing a good imitation of a dorm room hotplate.

Wisps of steam rise from the keyboard when I open the lid several hours later.  I gingerly type ctrl-alt-delete, skin blistering on my fingers from the smoldering keyboard only to be greeted by the message “Cannot Hibernate…”. 

The other problems are well known to the VPC team and they’ve come up with a solution.

Solution that works

I heard about the hotfix at the Portland Code Camp.  I was having trouble with my presentations running in VPC so I was asking some the speakers how they handle the mouse and keyboard freezing issues. Richard Hundhausen and Steven Borg were in the room and they told me about the hotfix.  It works.

I’ve been using the hotfix for a little more than a week and have had ZERO problems.  What a relief to have a normal laptop again.

Getting the Fix

Read the KB article to learn more about getting the fix.  It’s not publicly available for download, but you can get it from Product support. The call should be free since this is a known problem.

Hurry, get it now!

 

Comments

I have 2 files (MSI’s) from MSFT that supposedly address this. Got it from some internal IT guy.
Any chance you can just tell me the byte size of the MSI that you ran to fix this and if you have the Retail or MSDN version of VPC. Also, did you apply it to SP1 of VPC ?
thanks…

10/8/2005 9:42 AM Walt Ritscher

MSDN version
vpc2004qfe889677_msdn.msp = 2041KB
vpc2004qfe889677_update.msp =3275

It’s finally happening.  I’ve been talking to everyone I know at Microsoft about the benefits of distributing beta software releases as Virtual PC images.  See this post from last year.  Yes, nearly a year since I first thought of the idea and it has become a reality.

I’d like to think that I had something to do with this.   The truth, of course, is that many people inside and outside of Microsoft have been lobbying for it.  The delay was caused mostly from the legal issues affiliated with releasing free licenses of software.

I’m really happy to see this announcement from Rob Caron.   Visual Studio 2005 Team System Beta 2  VPC released.

The much anticipated download of a fully installed & configured Visual Studio 2005 Team System Beta 2 VPC is now available for download from MSDN Subscriber Downloads.

The idea, have someone who really knows the product create a hard drive image and release it to us as a Virtual PC image.  Great idea! Let’s see more of these.

I’m really impressed with .NET 2.0.  We’ve all seen the big changes (ASP.NET WebParts, Improved DataGrids, Generics, etc.) I’m constantly finding a new improvement or little nugget of goodness when coding.

Help

Case in point.  The MSDN help files.  Everyone always makes jokes about how badly the MSDN  .NET help are written.   It seems that the help authors are listening.  I was at a conference last summer and was surprised to find that one day in the ‘Mind meld with Microsoft’ session the room was filled with a team of help writers.  There they were, probing the audience and asking serious questions about how we want the help engine to work.

This morning I was looking up a keyword in the help system and I started reading the For Each help page.  Nicely done I thought.  Below I’ve included the 1.1 and 2.0 versions of the For Each help page.  See for yourself.


Help 1.1

Remarks
If element has not been declared outside this loop, you can declare it within the For Each statement. In this case, the scope of element is the body of the loop. However, you cannot declare element both outside and inside the loop.

The For Each…Next loop is entered if there is at least one element in group. Once the loop has been entered, the statements are executed for the first element in group; if there are more elements in group, the statements in the loop continue to execute for each element. When there are no more elements, the loop is terminated and execution continues with the statement following the Next statement.

Any number of Exit For statements may be placed anywhere in the loop as an alternative way to exit. Exit For is often used after evaluating some condition, for example with an If…Then…Else statement, and transfers control to the statement immediately following Next.

You can nest For Each…Next loops by placing one loop within another. Each loop must have a unique element variable.

Example
This example uses the For Each…Next statement to search the Text property of all elements in a collection for the existence of the string "Hello". In the example, MyObject is a text-related object and is an element of the collection MyCollection. Both are generic names used for illustration purposes only.

Dim Found As Boolean = False
Dim MyCollection As New Collection
For Each MyObject As Object In MyCollection   ‘ Iterate through elements.
   If CStr(MyObject.Text) = "Hello" Then   ‘ If Text equals "Hello"
      Found = True   ‘ Set Found to True.
      Exit For   ‘ Exit loop.
   End If
Next


Help 2.0

Remarks
For…Next Statements (Visual Basic) work well when you can associate each iteration of a loop with a control variable and determine that variable’s initial and final values. However, when you are dealing with a collection, the concept of initial and final values is not meaningful, and you do not necessarily know how many elements the collection has. In this case, a For Each…Next loop is a better choice.

When to Use For Each…Next
Use a For Each…Next loop when you want to repeat a set of statements for each element of a collection or array.

Rules
Data Types. The data type of element must be such that the data type of the elements of group can be converted to it.

The data type of group must be a reference type that refers to a collection or an array. This means that group must refer to an object that implements the IEnumerable interface of the System.Collections namespace or the Generic IEnumerable interface of the System.Collections.Generic namespace. IEnumerable defines the GetEnumerator method, which returns an enumerator object for the collection. The enumerator object implements the IEnumerator interface of the System.Collections namespace and exposes the Current property and the Reset and MoveNext methods. Visual Basic uses these to traverse the collection.

The elements of group are usually of type Object but can have any run-time data type.

Declaration. If element has not been declared outside this loop, you must declare it within the For Each statement. In this case, the scope of element is the body of the loop. However, you cannot declare element both outside and inside the loop.
Number of Iterations. Visual Basic evaluates the iteration values start, end, and step only once, before the loop begins. If your statement block changes end or step, these changes do not affect the iteration of the loop.
Nesting Loops. You can nest For Each loops by placing one loop within another. However, each loop must have a unique element variable.

You can also nest different kinds of control structures within one another. For more information, see Nested Control Structures.
Note
If a Next statement of an outer nesting level is encountered before the Next of an inner level, the compiler signals an error.
Identifying the Control Variable. You can optionally specify element in the Next statement. This improves the readability of your program, especially if you have nested For Each loops. You must specify the same variable as the one that appears in the corresponding For Each statement.
Transferring Out of the Loop. The Exit Statement (Visual Basic) transfers control immediately to the statement following the Next statement. You might want to exit a loop if you detect a condition that makes it unnecessary or impossible to continue iterating, such as an erroneous value or a termination request. Also, if you catch an exception in a Try…Catch…Finally, you can use Exit For at the end of the Finally block.

You can place any number of Exit For statements anywhere in the For Each loop. Exit For is often used after evaluating some condition, for example in an If…Then…Else structure.

Endless Loops.
One use of Exit For is to test for a condition that could cause an endless loop, which is a loop that could run an extremely large or even infinite number of times. If you detect such a condition, you can use Exit For to escape the loop. For more information, see Do…Loop Statement (Visual Basic).
Behavior
Entry into the Loop. When execution of the For Each…Next loop begins, Visual Basic verifies that group refers to a valid collection object. If not, it throws an exception. Otherwise, it calls the MoveNext method and the Current property of the enumerator object to return the first element. If MoveNext indicates there is no next element, that is, if the collection is empty, the For Each loop terminates and control passes to the statement following the Next statement. Otherwise, Visual Basic sets element to the first element and runs the statement block.
Iterations of the Loop. Each time Visual Basic encounters the Next statement, it returns to the For Each statement. Again it calls MoveNext and Current to return the next element, and again it either runs the block or terminates the loop depending on the result. This process continues until MoveNext indicates there is no next element or an Exit For statement is encountered.
Termination of the Loop. When all the elements in the collection have been successively assigned to element, the For Each loop terminates and control passes to the statement following the Next statement.
Changing Iteration Values. Changing the value of element while inside a loop can make it more difficult to read and debug your code. Changing the value of group does not affect the collection or its elements, which were determined when the loop was first entered.
Traversal Order. When you execute a For Each…Next loop, traversal of the collection is under the control of the enumerator object returned by the GetEnumerator method. The order of traversal is not determined by Visual Basic, but rather by the MoveNext method of the enumerator object. This means that you might not be able to predict which element of the collection is the first to be returned in element, or which is the next to be returned after a given element.

If your code depends on traversing a collection in a particular order, a For Each…Next loop is not the best choice unless you know the characteristics of the enumerator object the collection exposes. You might achieve more reliable results using a different loop structure, such as For…Next or Do…Loop.
Modifying the Collection. The enumerator object returned by GetEnumerator does not allow you to alter the collection by adding, deleting, replacing, or reordering any elements. If you alter the collection after you have initiated a For Each…Next loop, the enumerator object becomes invalid, and the next attempt to access an element results in an InvalidOperationException exception.
Modifying Collection Elements. The Current property of the enumerator object is ReadOnly (Visual Basic), and it returns a local copy of each collection element. This means that you cannot modify the elements themselves in a For Each…Next loop. Any modification you make affects only the local copy from Current and is not reflected back into the underlying collection. However, if an element is a reference type, you can modify the members of the instance to which it points. The following example illustrates this.

Sub lightBlueBackground(ByVal thisForm As System.Windows.Forms.Form)
    For Each thisControl As System.Windows.Forms.Control In thisForm.Controls
        thisControl.BackColor = System.Drawing.Color.LightBlue
    Next thisControl
End Sub
The preceding example can modify the BackColor member of each thisControl element, although it cannot modify thisControl itself.
Traversing Arrays. Because the Array class implements the IEnumerable interface, all arrays expose the GetEnumerator method. This means you can iterate through an array with a For Each…Next loop. However, you can only read the array elements, not change them. For an illustration, see How to: Run Several Statements for Each Element in a Collection or Array.

I’m heading for Portland later today (Friday) to attend my first ‘Code Camp‘.  I have a couple of talks on the roster, including my new, improved VSTO talk.  

The Camp is growing.  As of today there are 290 registrations, seven presentation rooms and nearly 60 different talks.   There are eleven different tracks, so there should be something for everyone.  I know I’m looking forward to a few talks (Chris Sells Avalon talk is one)

Tracks

Client Development
Technologies such as WinForms and ClickOnce

Database
Covering the business end of applications

Fundamentals
The core, the guts, the nitty-gritty, the real deal… this applies everywhere else you code

Game Development
Game design, engines, Managed DirectX, and other stuff that’s cooler than all the other tracks

Hobbyist
Coding for the fun of it

Methodology
Approaches to tackling the software development lifecycle, such as XP and Scrum

Languages and Frameworks
Covering a variety of languages and frameworks (Ruby on Rails, Squeak, Boo, etc)

Mobile
Development for mobile devices such as Pocket PC, Smartphone, and Tablet PC

Security
Learn about securing your applications and how applications are hacked

Web Development
Development targeting the browser, including ASP.NET and Javascript/DHTML/AJAX

XML and the Web
Covering XML related technologies and XML Web Services (SOAP, REST, RSS, WS-*)

« Newer Posts - Older Posts »