This Saturday, August 1st, I will be speaking at Lansing Day of .NET 2009, at the Breslin Student Events Center at Michigan State University, East Lansing, Michigan. This session will be the same ASP.NET Page Life Cycle talk that I gave last month at CodeStock. Dev Basics: The ASP.NET Page Life Cycle Jay Harris / Session Level: 100 When a request occurs for an ASP.NET page, the response is processed through a series of events before being sent to the client browser. These events, known as the Page Life Cycle, are a complicated headache when used improperly, manifesting as odd exceptions, incorrect data, performance issues, and general confusion. It seems simple when reading yet-another-book-on-ASP.NET, but never when applied in the real world. In this session, we decompose this mess, and turn the Life Cycle into an effective and productive tool. No ASP.NET MVC, no Dynamic Data, no MonoRail, no technologies of tomorrow, just the basics of ASP.NET, using the tools we have available in the office, today. If you can make it, I recommend attending LDODN09. There are some great sessions lined up, and it is all being provided free-of-charge (though the event organizers are encouraging donations). Last year's event, held at Lansing Community College, was the first Lansing Day of .NET and the first event that I was involved in organizing. It went well, and from the moment it was over I was looking forward to the next one. I'm not on the organizing committee this year, but I am still sure that this one is destined to be great as well. They rented the Breslin Center! If I knew nothing else, that would be enough. So come out to Lansing Day of .NET this Saturday. Registration is still open. I hope to see you there.
I enjoy being a speaker. I have learned a lot through my mentors, colleagues, and through other community speakers, and standing before a group of my peers and sharing my knowledge is one way that I can give back to the development community. By linking together my speaking and my blog, I can provide a central repository for the slide decks and demo code for my sessions and make these things available to the audience for further review. Here, you will find all of my slides and code for all past presentations, as well as information about all my past and future talks. This post will also be linked through my top navigation so that it can be easily found, and will also be regularly updated with any new schedules and slide decks. Thank you to everyone who as attended any of my sessions, and as always, I encourage you to give me any feedback you have via SpeakerRate. Upcoming Talks I would love to speak at your user group or developer's conference; please feel free to contact me if you are interested. GLUGnet-Lansing, 18 March 2010 On Thursday, March 18, 2010, I will be presenting "ASP.NET MVC: A Web Coder's Salvation" at the monthly meeting of the Greater Lansing User Group for .NET Developers in Lansing, Michigan. | Event Site AADND, 12 May 2010 On Wednesday, May 12, 2010, I will be presenting "ASP.NET MVC: A Web Coder's Salvation" at the monthly Ann Arbor .NET Developers meeting in Ann Arbor, Michigan. | Event Site MDSM, 23 September 2010 On Thursday, September 23, 2010, I will be presenting "ASP.NET MVC: A Web Coder's Salvation" at the monthly Ann Arbor .NET Developers meeting in Ann Arbor, Michigan. | Event Site Presentations ASP.NET MVC: A Web Coder's Salvation There was a time when everything was moving towards the desktop. This Internet thing was new and cool, but there was no way it would ever last. And no one knew how to code for the web, at least not anything beyond animated lava lamps and cute "Under Construction" images. So, to make coding for the web easier, they made ASP.NET to be just like coding for a desktop, using the same patterns, the same event-based model, and the same stateful approach. But the web isn't stateful, its only events are GET and POST, and is nothing like a desktop, so we tortured ourselves for years forcing a square peg through a round hole. The time has come for redemption, and its name is ASP.NET MVC. Spend an hour discovering how coding for the web is supposed to be--how it is today--and end your misery. Salvation awaits. Slides Coming Soon Dev Basics: The ASP.NET Page Life Cycle When a request occurs for an ASP.Net page, the response is processed through a series of events before being sent to the client browser. These events, known as the Page Life Cycle, are a complicated headache when used improperly, manifesting as odd exceptions, incorrect data, performance issues, and general confusion. It seems simple when reading yet-another-book-on-ASP.NET, but never when applied in the real world. In this session, we decompose this mess, and turn the Life Cycle into an effective and productive tool. No ASP.NET MVC, no Dynamic Data, no MonoRail, no technologies of tomorrow, just the basics of ASP.NET, using the tools we have available in the office, today. Slides | Code Continuous Integration: More than just a toolset Does your team spend days integrating code at the end of a project? Continuous Integration can help. Using Continuous Integration will eliminate that end-of-project integration stress, and at the same time will make your development process easier. But Continuous Integration is more than just a tool like CruiseControl.Net; it is a full development process designed to bring you closer to your mainline, increase visibility of project status throughout your team, and to streamline deployments to QA or to your client. Find out what Continuous Integration is all about, and what it can do for you. Slides Previous Talks ASP.NET MVC: A Web Coder's Salvation Ann Arbor, Michigan | A2<DIV> | February 2010 | SpeakerRate Toledo, Ohio | North West Ohio .NET User Group (NWNUG) | January 2010 | SpeakerRate Flint, Michigan | Greater Lansing User Group for .NET Developers (GLUGnet-Flint) | January 2010 DevBasics: The ASP.NET Page Life Cycle Flint, Michigan | Greater Lansing User Group for .NET Developers (GLUGnet-Flint) | September 2009 | SpeakerRate Lansing, Michigan | Lansing Day of .NET developer's conference | August 2009 | SpeakerRate | Event Site Knoxville, Tennessee | CodeStock 2009 developer's conference | June 2009 | SpeakerRate | Event Site Continuous Integration: More than just a toolset Lansing, Michigan | Michigan Department of IT (MDIT) | December 2009 | SpeakerRate Lansing, Michigan | Greater Lansing User Group for .NET Developers (GLUGnet-Lansing) | November 2009 | SpeakerRate Southfield, Michigan | Great Lakes Area .NET User Group (GANG) | January 2009 | SpeakerRate Toledo, Ohio | North West Ohio .NET User Group (NWNUG) | January 2009 Sandusky, Ohio | CodeMash 2009 developer's conference | January 2009 | SpeakerRate | Event Site Ann Arbor, Michigan | Ann Arbor .NET Developers (AADND) | October 2008 Flint, Michigan | Greater Lansing User Group for .NET Developers (GLUGnet-Flint) | September 2008
Next month, I will be speaking at CodeStock, a developer conference in Knoxville, Tennessee, held June 26-27. We will be discussing the ASP.NET Page Life Cycle, to help get over the fears and troubles with validation, event handing, data binding, and the conflicts between page load and page initialization. Dev Basics: The ASP.NET Page Life Cycle Jay Harris / Session Level: 100 When a request occurs for an ASP.NET page, the response is processed through a series of events before being sent to the client browser. These events, known as the Page Life Cycle, are a complicated headache when used improperly, manifesting as odd exceptions, incorrect data, performance issues, and general confusion. It seems simple when reading yet-another-book-on-ASP.NET, but never when applied in the real world. In this session, we decompose this mess, and turn the Life Cycle into an effective and productive tool. No ASP.NET MVC, no Dynamic Data, no MonoRail, no technologies of tomorrow, just the basics of ASP.NET, using the tools we have available in the office, today. It's a long drive from Michigan to Knoxville, but the conference is worth the trip (the first of two Tennessee conferences I will be attending this year). A few other local speakers will be making the trip to Knoxville, as well. Check out the full session list for more information, and while you are at it, register for the event if you haven't already done so; the cost is only $25 if you sign up before the end of May. I was there last year for the first CodeStock, and I had a great time; I'm excited about this years event, not only because I am speaking, but to see what other new things that people are talking about, catch up with friends, and to meet new people in the community. I hope to see you there.
Increasing or decreasing the font size of your code in Visual Studio's text editor is almost required whenever VS is fired up on a projector. Anyone who has had to demo code, or give a talk at a user group, or present new technologies to their team has experienced the pain of increasing the font size through the Tools -> Options menu, followed by an inquiry to the crowd: "How's that? Is this font size readable by everyone?" Often times the selected size is not quite the right solution, and the process is repeated. Life as a presenter would be easier if only you could modify the font size through a simple keyboard command, similar to how browsers enable you adjust the font through the ctrl+ and ctrl- commands. Macros.Samples.Accessibility.DecreaseTextEditorFontSize Decreases the text editor font size in Visual Studio Macros.Samples.Accessibility.IncreaseTextEditorFontSize Increases the text editor font size in Visual Studio Fortunately, this is easy with the help of Visual Studio's Sample Macros. To help show you the ropes of writing custom macros, VS ships with a collection samples, and two of these samples respectively increase and decrease the font size of the text editor. Right out of the box, Visual Studio comes with the ability to modify the font size for your code; all that remains is mapping these macros to the keyboard. Mapping to the Keyboard Anchoring these macros to specific keyboard commands is a simple process. - From Visual Studio, access the Tools -> Options menu.
- In the Options window, navigate to Environment -> Keyboard.
- Using the "Show commands containing" input, enter in IncreaseText or DecreaseText. The list of available commands will automatically filter as you type, reducing the list to the applicable macro.
- Select the macro command, and select the "Press shortcut keys" input, and enter your desired keyboard command. Click the Assign button to set the command. I use "Ctrl, Alt, Shift, =" (plus) and "Ctrl, Alt, Shift, -" for my Increase and Decrease commands, respectively.
Last week was CodeMash 2009, a developer's conference in Sandusky, Ohio. The conference, which lasted from Wednesday, January 7th, through Friday, January 9th, was held at the Kalahari Resort, a hotel and indoor water park; this makes the conference unique, as families are able, and encouraged, to join the attending developer for the week, and while the developer is off learning about the Next Big Thing, the significant others, spouses, and children are off enjoying the fun of the water park. As for the conference itself, it is billed as an event where opposing developer communities congregate and mash together. Attendees are encouraged to exit their comfort zone—.Net developers can attend sessions on Java or Ruby; Java developers can attend sessions on Azure or .Net—allowing a seasoned developer to get a new perspective, and allowing communities to cross-pollinate ideas and practices. This was not only my first CodeMash as a speaker, but also as an attendee, and it will not be my last. Day Zero (The Precompiler) As Brian Prince points out, we developers love to start lists with zero. It's cool, now that we no longer think digital watches are a pretty neat idea. Day Zero at CodeMash was the Precompiler, an optional extra day of sessions that was new feature of the 2009 event. Unlike the conference's traditional hour-long sessions, the precompiler is split into two half-day sessions, allowing attendees to take a deep dive into a particular topic. For me, it was a dive into Ruby by Joe O'Brien and Jim Weirich and into Windows Azure with David Aiken. In the Ruby session, @objo and @jimweirich used "koans" to teach Ruby to the attendees. Effectively, these koans were unit tests coded in Ruby against the Ruby language. Each test purposefully failed, and the process of correcting the code of the each test progressively taught more and more about the ruby language. The tests begin with assert false which must be converted to assert true to pass, and proceeds through conditionals, strings, arrays, hashes, blocks, and beyond. Ingenious. In the Azure session, @thedavidaiken, the evangelist for the Azure platform, gave a once-over and code demo to Azure. After this talk, I'm very excited about playing in the Azure sandbox, and have been brainstorming for a good topic. I have since gotten my invite into the Azure CTP, and should be making sand castles, soon. Other precompiler sessions were available, including 101-level sessions on iPhone development, Java, and more, and what I have only heard described as a phenomenal talk by Mary Poppendieck on Value Stream Mapping. Also, an all day CodeJam allowed any of the attendees to pop in and code with their friends, colleagues, and other attendees. I wish I could have cloned myself, and attended some of these other sessions. Day One After a night that included a few hours of water park slides followed by a few hours catching up with people I hadn't seen since DevLink 2008 or last fall's Ann Arbor Day of .Net, the conference officially kicked off with breakfast and a fantastic keynote by Venkat Subramanian. Then it was off to a day of sessions and Open Spaces, split by a keynote by Mads Torgersen during lunch. I attended Jeff Blankenburg's A Lap Around the Live Framework and Mesh Services talk, and stopped in to Bryan Weber's Functional Concepts for OOP Developers talk for a bit, all in between preparing for my talk. The Open Spaces, where this year's theme was Techniques, Not Tools, are always a part of my day at conferences, especially since these were facilitated by Alan Stevens. Any time he is involved in organizing an event's open spaces, the attendees are in for a treat. We had some great conversation on testing practices and on pragmatic learning (which incidentally spawned another open space on Day Two on mentoring. During Day One's final block of sessions was my talk, Continuous Integration: It's More Than Just a Toolset. Though this was my first presentation at a conference, it went off great. Having given this talk a few times prior at various area user groups, I was comfortable with the talk and had all of the bugs worked out. I was fortunate enough to have a sizeable crowd and great questions from the audience. I am looking forward to speaking, again. Day Two The second day kicked of with another breakfast keynote, this time delivered by Eric Meyer. I spent the entire day involved in open spaces. Alan Barber convened a discussion on Getting in to Speaking. Rick Kierner convened an open space on having and becoming a mentor, a topic that originated from the pragmatic learning discussion from the prior day. I hope that the outlines of these discussions make its way to Heartland Open Spaces, soon. The day, and the conference, ended with a trip to the open spaces Closing Circle followed by the Closing Giveaway. The Closing Circle, open to anyone who wished to participate, is where we could all look back on the open spaces of the event, and discuss what we liked and provide constructive feedback on how to improve for next year. Alan did another great job with organization; I would have liked the open spaces to be in a more prominent location, to help introduce open spaces to the crowd, and apparently, this is already taken care of for next year. The Closing Giveaway in the conferences Great Hall ended the show for everyone with an hour of prize giveaways, which included two XBox 360s, a Wii, the full Rock Band 2 set, the full Guitar Hero World Tour set, and much more. My number was cursed; I did not win a thing. I'll have to acquire Rock Band 2 through some other means. Thoughts This was my first CodeMash. I loved it. It is a very cool event, for if no other reason than it is great to have the conference and the hotel room be in the same building. I enjoyed the opportunity to learn new things that were outside of my day-to-day space, as well as share the wealth by giving a talk to others. I look forward to next year, and I hope that they will again have me as a speaker. Thank you to all of the CodeMash organizers for a great event. Technorati Tags: CodeMash
Tomorrow night, Wednesday, 08 October, I will be speaking at the Ann Arbor Dot Net Developers meeting. We will be discussing Continuous Integration, focusing on CI as a process, not just a toolset. Come out to Ann Arbor, enjoy some pizza, and hear about what Continuous Integration can do for your development cycle. Continuous Integration: It's more than just a toolset Wednesday, 08 October, 2008 @ 6:00pm SRT Solutions 206 South Fifth Ave, Suite 200 Ann Arbor, MI 48104
Session Abstract:
Does your team spend days integrating code at the end of a project? Continuous Integration can help. Using Continuous Integration will eliminate that end-of-project integration stress, and at the same time will make your development process easier. But Continuous Integration is more than just a tool like CruiseControl.Net; it is a full development process designed to bring you closer to your mainline, increase visibility of project status throughout your team, and to streamline deployments to QA or to your client. Find out what Continuous Integration is all about, and what it can do for you.
Tomorrow night, Thursday, 11 September, I will be speaking at the GLUGnet Flint meeting. We will be discussing Continuous Integration, focusing on CI as a process, not just a toolset. Come out to Flint, enjoy some pizza, and hear about what Continuous Integration can do for your development cycle. Continuous Integration: It's more than just a toolset Thursday, 11 September, 2008 @ 6:00pm New Horizons 4488 West Bristol Road Flint, MI 48507
Session Abstract:
Does your team spend days integrating code at the end of a project? Continuous Integration can help. Using Continuous Integration will eliminate that end-of-project integration stress, and at the same time will make your development process easier. But Continuous Integration is more than just a tool like CruiseControl.Net; it is a full development process designed to bring you closer to your mainline, increase visibility of project status throughout your team, and to streamline deployments to QA or to your client. Find out what Continuous Integration is all about, and what it can do for you.
|