Daniel's profileDaniel Larson's Develope...BlogListsGuestbookMore ![]() | Help |
|
October 20 Black Sheep Week : Moab (October 2009)That’s right, it’s time for another Travel Log! With my wife and kids safely in San Diego for the week, I headed off to Moab for Black Sheep Week. I met up with the Black Sheep (www.clubhummeroffroad.com) at Neo’s house and we hit Fins and Things, Hell’s Revenge, and Poison Spider Mesa before heading off to California to pick up my family. I haven’t uploaded pics from the return trip yet, but we took our kids to see dinosaurs in St. George and Fruita, along with stops for cheese in Beaver, Utah and of course the Pirate Ship in Vail. Starting off is video from Hell’s Revenge, a nasty little trail not for those with fear of heights (or fear of driving off cliffs):
July 30 Skip’s Road- LeadvilleTrail report: Skip’s Road, Lake County, ColoradoNearby town: Leadville, CO Highlights: climbs and descents, elevation, scenery, ruts and whoopdeedos. Thanks to Skip Gossack for the scribbled map to this trail. It show’s up as “Old Mining Road” on Google Maps, so I’m naming it “Skip’s Road”. The road will take you from Road 300 near the fish hatchery back to Turquoise Lake Road. It’s about 12 miles long. If you’re having a hard time finding the trail, it goes under the power lines but starts just southwest of the power lines. There is private property on each side of the trail so you will see “no trespassing” signs on the trail sides, making it look conspicuously like a driveway. From the start it gets hardcore very fast, with deep ruts in the road. It’s a very fun road but I would not recommend it for stock vehicles as you need high ground clearance, the ruts are very deep. (At the start of the video you’ll see the ladies on bikes who said “you’re never going to get that jeep up there!”) This video is Roy Haschenberger driving my hummer. Driving Directions From Leadville, CO, take highway 24 south to Road 300 towards the Fish Hatchery. Just past the fish hatchery, turn left into the only trail available once you pass the first set of houses. If you get to the power lines you’ve gone too far. The trail will meet up with the power lines and follow them up the mountain. July 23 All that Developers Need to Know about SharePoint 2010 (so far)There seems to be a lot of talk about what’s in SharePoint 2010, and a lot of NDA/not NDA stuff flying around. While there’s a lot of confusion on what people under NDA can talk about, there’s a ton of content already published by Microsoft. I’m under NDA for many things, so I probably won’t talk about much SharePoint 2010 until closer to 2010 myself. But if you’re already developing code against SharePoint 2007 (aka WSS 3.0 as well), you may want to peek at the 2010 managed code SDK. It’s public. Keep in mind, according to the SDK itself it isn’t complete, it’s just preliminary documentation on managed code APIs. Get it here: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=94afe886-3b20-4bc9-9a0d-acd8cd232c24 Kudos to Bjorn who’s been writing about this. Check out his blog here for lessons learned from the 2010 SDK. Of course,you’ll also want to check out the numerous Microsoft content on 2010. July 16 Off-Road Pics: Slaughterhouse GulchAfter 9 years driving a Celica, it was finally time to get a new car. I picked up a used Hummer H3, and it’s been the funnest car I’ve owned. Here’s some pictures from Slaughterhouse Gulch, just outside of Conifer. (Maps and trail details here, from TrailDamage.com) I took along some friends with Jeeps, which had some trouble keeping up with the Hummer! :) Not by much, but there was at least one obstacle the Jeeps had to go around that the Hummer just rolled over. One of the best parts about off-roading is picnics in nowhere. Here’s my daughter on the left, along with lunch with friends. We’ve also started our son out off-roading (at 2 months), but he’s only been on the tame roads such as Dakan Road. Here’s my wife Sallina with the kids grilling some hot dogs (in the rain!) Yeah, that guy has a bigger hummer, but you can see by the mud that we’ve had more fun with the H3! I think he was worried about getting it dirty. If we have any more kids, we’re going to have to get the H2 to fit them in! May 18 Things that can Go Wrong with SharePoint Solution DeploymentsOne of the cool things about working at NewsGator is that the software we write is insanely popular—a LOT of people use it. (Our customers are mainly Fortune 500 companies, but we have a lot of little customers too.) Since our software gets deployed to so many varied environments, we see a lot of different server configurations, and have learned to make no assumptions about SharePoint configuration. We’ve also seen a lot of things that can go wring with deployments. Even though I’m not in our support organization, we’re all involved in support when we’re deploying at major customers and things go south. So from experience, here are a few things that can go wrong with server farms, and how they can be resolved. Just about all of these configuration errors can drastically effect the deployment of custom solutions on the platform. (Are you hiring a SharePoint administrator? Throw your farm into one of these mis-configurations and see if the interviewee can identify it!) Common SharePoint Configuration Errors 1. IIS mis-match. A web application was manually deleted from IIS but is still referenced in the SharePoint configuration (database). This is relatively easy to fix if you can identify the orphaned web applications. You’ll see failed deployment jobs when this happens. 2. A server on the farm is not available—it’s either missing or unresponsive. The symptom of this will be that a solution will remain in the “deploying” state. We’ve even seen customers “unplug” and repurpose a server from the farm without cleanly removing it! There seems to also be a bug where you can remove a server from the farm, but SharePoint still thinks it’s in the farm, and still deploys the WSP to that box in globally deployed WSPs. This is actually the most common worst-case scenario we’ve seen. It seems that large SharePoint environments are much more dynamic that you’d think these “controlled environments” would be! The fix is simple, but time consuming. Audit the Servers in Farm page in Central Admin and validate each server is up and validate the solution deployment on each server. 3. Clashes of the AJAX runtime by third party components. This can be common if you’re using controls from vendors that were written back in the MS AJAX 1.0 days, and you haven’t moved to the 3.5 SP1 AJAX bits. Luckily, a but of binding redirection in web.config will do the trick. 4. Unpatched environments. This isn’t too common, but we’ve seen a lot of deployment errors across farms that were fixed in the Feb (2009) WSS Update. We now require the WSS February Update or later, although I fully recommend SP 2 for both MOSS and WSS. The moral of the story: as you grow your SharePoint farm, each server you add does add management liability. Make sure you’re up to the administrative cost before adding servers, and don’t add servers to the farm if you don’t plan on keeping them there. While these seem simple enough, these configuration errors can stop deployments dead in their tracks. They can also be difficult to identify, so consider this your cheat-sheet! May 12 Goodbye ITunes, Hello Amazon MP3 StoreAmazon daily deal: Divided By Night April 16 Our son has been born: Elias LarsonElias Luther Larson was born on 4/9/9 at 7:41pm. It's been a week, I've been laying low since then. Here he is, he was 9 lbs 3ozs at birth, and my wife went all Sarah Conner on me and didn't take any pain medicine for the birth so she could focus. That's right... focus. It was intense, and she was grateful to not be under any influences when he was born. Here he is: While we were going to have a home birth, we ended up having a hospital birth (University of Colorado Hospital rocks!) after getting some poor medical advice that freaked a few people out. Elias was perfectly healthy and there were no complications, so in retrospect we wish we would have not done ultrasounds and went with the natural home birth. Next time we will, I'm sure-- we've had nothing but bad experiences with ultrasounds. But I digress, that is another story for another day. For me, the best thing about our son's birth is that I got to catch him. He's the second child I've caught, 2 of the greatest experiences I've ever had, something that can never be topped. With my bare hands I caught both of our children... there's nothing quite like it. There's nothing like holding your son or daughter as they are born... my hands are the first things they ever touched outside the womb. Incredible... Here we are, a little cleaned up (but not rested up) ready to come home. Our daughter Violet was off with Gramma when we took this picture, but she was there right after the birth. We waited a long time for Elias-- we originally thought Sallina was going to give birth around 39 weeks, so for about 3 weeks I was on edge waiting for him. This time, we ended up doing a few rounds of Cytotec and then about 2.5 hours of Pitocin right around 42 weeks, but we do wish we would have waited a few more days for labor to start naturally. But either way-- Elias is here now, and that's all that matters. What's in a name? Elias is the Greek form of the name "Elijah", used in some translations (KJV) in the Gospel of Matthew. It's also the name of my great aunt's father, a great man who left a great legacy through a small store he ran in Van Nuys through the great depression. Elias shares his middle name Luther with Martin Luther and Martin Luther King, Jr. Larson-- well, that name he's stuck with. :) March 26 Baby Watch 2009!!!That's right... our second child is MINUTES (hours, days???) away... can you feel the tension in the air? We're having a home birth this time, so we've got a doula and two midwives who will assist, and we're having the baby right here at home. Stay tuned for an update! February 11 SharePoint Saturday: RecapThanks to all who attended SharePoint Saturday in Kansas City! I presented several sessions in the developer track, including WCF and AJAX on SharePoint 2007. I've uploaded my slides (WCF in SharePoint 2007, and developing dynamic AJAX applications on the SharePoint platform) to the following SkyDrive folder: http://cid-d3543c5837291e93.skydrive.live.com/browse.aspx/Public/Kansas%20SPSaturday I'll post additional code samples soon-- most code is from my new AJAX book (google: "service oriented ajax"). The open source AJAX library for SharePoint that I used, the "SharePoint AJAX Toolkit", is located at http://www.codeplex.com/sharepointajax. Get the LATEST SOURCE CODE, skip the release, as I'm usually pretty lazy at building official releases. You can also subscribe to the project feed here. A quick recap: this library safely wraps the Microsoft AJAX Library and adds a JavaScript control that takes Xml and Xslt URL parameters, and wraps it in an AJAX Xml Web Part. As a demo, we built a Site Chat component using the XmlControl JavaScript class deployed in a Web Part, talking to a WCF endpoint. The full code for this part is in the code downloads for my AJAX book (google: "service oriented ajax"). Here's a screenshot: In the next few days I'll post some more details, and the whitepaper for WCF support in SharePoint 2007. February 04 SharePoint Saturday, Kansas: WCF, SharePoint and AJAXThis Saturday I'll be speaking in Kansas City at SharePoint Saturday, a free community training event in Kansas City. I'll be talking on (surprise!) AJAX in SharePoint, along with a lunchtime session on WCF in SharePoint. I'll be posting content from both sessions next week, including a whitepaper on WCF in SharePoint 2007 for developers. December 19 Best Practices? Bah Humbug!Adam wrote a great post on Best Practices. With a myriad of "Best Practices" and even conferences about them floating around, it's good to refrain from that kool-aid and think for yourself sometimes. Because using the old noggin' is truly a Best Practice. Read the article here: http://www.sharepointsecurity.com/blog/sharepoint/when-best-practices-aren’t-best-practices/ December 17 Releasing Social Sites 2.5We released NewsGator Social Sites 2.5 yesterday, along with our flagship server NewsGator Enterprise, the social computing platform for the enterprise. There's some very cool things to talk about in that release, but there's a few controversial (if you're super-geeky, that is) things that we did in this release. One thing we did is move all our assemblies to the GAC. If you read my SharePoint book (Inside Windows SharePoint Services, with Ted Pattison) you'll know this is heresy. Heresy, I tell you! NEVER, EVER, EVER deploy to the Gac for Web Part code is what I told you, time and time again. Full trust is bad!! Evil, I say! Especially for ISVs-- there's no excuse for an ISV to just GAC deploy "because it's easier, and I don't have to worry about CAS". But alas, there are a few reasons to GAC. For one, you need to GAC your feature receivers... so we've always had some code in the GAC. But to work with Web Parts programmatically (adding them to the page, manipulating them) the executing code needs access to the Web Part assembly. So for receivers to work with Web Parts, the Web Parts need to be GAC'd. Otherwise, you might need to set up a Web Service that your receiver can call that can then work with the Web Parts-- we did this in the last release, and it wasn't an approach that was bulletproof across all of our customer installations. This approach would be fine for internal development where you control the environment and can test against it, but as an ISV there are too many unknown factors (including authentication) that are involved. So we GAC'd the Web Parts, which does make me feel a bit dirty, but our code is more reliable than an alternate approach, and because of that our business stakeholders and customers are appreciative. Did I bypass CAS altogether though? Not entirely-- a customer COULD choose to run in a pure bin-deployed scenario, although they wouldn't get all of the functionality. So, do I still recommend using CAS and bin deployments? Absolutely! It is the most reliable deployment mechanism. We develop using bin-deployments, it's the only reasonable way to code and test in real-time with SharePoint. You should also only cross the threshold to GAC-deployment when you absolutely need to, and have a good reason to. For us, that threshold came during this release. I would not have recommended GAC deployment of Web Parts other than for the sole reason of feature receivers manipulating and adding the Web Parts. There's some other cool things to talk about that we learned in this release, including taking a dependency on the 3.5 framework with service pack 1 and using the newer AJAX library, along with some WCF technology. We're also using the SharePoint AJAX Toolkit, which we invested heavily in and you can get for free at www.codeplex.com/sharepointajax. I've also written a book largely based on our architecture, which I'm sure you've heard me mention many times already-- but be sure to pick up Developing Service Oriented AJAX Applications on the Microsoft Platform to get a glimpse at the technologies and architecture we use. About NewsGator Social SitesNewsGator Social Sites is one of the things I build at NewsGator Technologies, along with a team of some incredibly talented folks. It's the social computing platform for the enterprise, built on NewsGator Enterprise Server and Microsoft Office SharePoint Server 2007, with lots of cool things like communities, discussions, feeds and subscriptions, tagging, social bookmarking, and a slick user interface built from the ground up using the Microsoft AJAX Library. It's the coolest application you've ever seen on the SharePoint platform... check it out at http://www.newsgator.com/business/socialsites. November 25 Service-Oriented AJAX: Denver Book Release at Denver .NET User GroupLast night I talked about Service Oriented AJAX in Denver at the .NET User Group to a packed house of 121 people. An AJAX architecture based on a service-oriented API is new to most .NET developers, although it's something that's on the radar for a lot of developers. And it fits very nicely with all types of rich internet application technologies other than pure AJAX, such as Flash, Flex, Silverlight and more-- but AJAX is the most powerful user interface technology out there today, and is 100% compatible with all platforms and browsers. (Well written) AJAX is all about the architecture... write an API based on Web Services, and never throw those web services away. The UI is then a lightweight layer written in JavaScript, HTML and XSLT which acts as a client to the Web Services. UIs come and UIs go, but the Web Services you write will last for the lifetime of your product, much longer than the release lifetime that user interface components will last. You might rev the UI many times, but if it's based on Web Services you don't need to rev much of the back-end architecture. To compare the service-oriented AJAX architecture to a traditional ASP.NET server application architecture, here are 2 slides that compare the designs. The major benefit of the service based approach is that the services are reusable for various things like rich client applications (Mac, PC, Linux), RIA technologies including Flash, Flex and Silverlight, remote server applications, and of course multiple AJAX controls and mash-ups. Here are some photos from the event-- we had a great turn-out, a fabulous crowd, and door prizes for at least half of the attendees, including 45 copies of Developing Service Oriented AJAX Applications on the Microsoft Platform. If you haven't gotten it yet-- it's 30% off at SoftPro with this coupon, or use the Amazon link from my blog. Big thanks to Microsoft Press/ Microsoft Learning for providing door prizes! We also gave away a few copies of Dino's new book, Architecting Applications for the Enterprise
November 24 Service Oriented AJAX in DenverTonight I'm speaking at the Denver Visual Studio User Group on Service-Oriented AJAX (5:30 at Microsoft's Denver Office). This is my second talk on SO-AJAX since the book release, and my hometown book release event. We've got tons of giveaways-- 60+ books from Microsoft Press, and other software goodies-- and Microsoft Learning and I are co-sponsoring the event. Service Oriented AJAX is summed up like this: "write web services, then write your UI against those web services." We'll be looking at WCF as the Web Service platform, as well as the Microsoft AJAX Library to consume those services. Hopefully I'll see you tonight! If not-- you can pick up my book from Amazon or SoftPro, it should provide excellent guidance on writing a Web Service API using WCF, and then how to create reusable components and controls using object oriented JavaScript and the Microsoft AJAX Library. San Diego Update Thanks to all who came out to the San Diego ASP.NET User Group last week. We were able to send everyone home with a free copy-- big thanks to Microsoft Press and Joanne Lin in Microsoft Platform Evangelism for providing copies! If you were a CodeSmith winner and have not yet received your license, please folluw up with myself or Dan Mathson. November 20 Service Oriented AJAX: In Stores now!Last December, I started writing "Developing Service Oriented AJAX Applications on the Microsoft Framework". It's finally done, and available at your favorite local neighborhood bookstore. If you're local to Denver, I have a 30% off coupon for Service Oriented AJAX from SoftPro books (Yosemite, just south of Arapahoe). Email "me at dan larson dot com" and I'll gladly send you a coupon. Tip # 743- Find JS Errors in Visual Studio2008 with Control Shift JIn Visual Studio 2008, Control-shift-J interprets the current JavaScript file in order to update the intellisense, and will also expose any errors in the Errors window. November 12 Service Oriented AJAX in San Diego: November 18, 2008 6pm (an INETA event at the San Diego ASP.NET Group)I'll be speaking in San Diego at the ASP.NET SIG on November 18 on "Developing a Service Oriented AJAX Application". This is the first event I'm speaking at since my book release, and I'll have 30 copies to give away at the event. What is a service-oriented AJAX application? A service-oriented AJAX application is built on a web service architecture that focuses on the application as web services-- and AJAX is just one client of the application. This is an architecture we've used successfully at NewsGator, and is all about decoupling the application from the user interface. It's a great way to mash up multiple data points into an application... and it provides amazing architectural benefits as well, which is the focus of my work. Here's some info on the event: San Diego ASP.NET SIG - Meeting Tues. Nov 18th, 2008 Creating a Service-Oriented AJAX Application, with Daniel Larson Service-oriented AJAX is a purist AJAX approach that starts by developing a Web service API, and then implements the application as a JavaScript AJAX Application. Simply stated, "write your application as Web services, and then write a JavaScript user interface". This approach is the best practice architecture with the Microsoft .NET 3.5 framework which includes rich support for AJAX in the WCF Web programming model, the Microsoft AJAX Library and ASP.NET AJAX. In this talk, you’ll discover how to:
Service-Oriented AJAX in Denver If you can't make San Diego-- I'll be doing this talk again in Denver on Monday, November 24 at the Denver Visual Studio User Group. In Denver, I'll have at least 30 copies to give away, and SoftPro is providing a 30% off coupon for my book at the meeting if you'd like to get a copy locally (Denver only). A few questions I've received about this:
I'll also say-- after getting started with service-based AJAX-- I haven't written one line of postback code in the last 2 years. AJAX has a significant architectural benefit in that you're not writing code that's tied to a page, or even a specific use. It's all about the architecture. Feel free to drop me a note if you're coming, and I hope to see you there! October 13 A fix for SharePoint content types from Martin HatchI just picked this up from MSDN forums on SharePoint development: Martin Hatch found a great fix to the issue of fields in content types. Without this code, you have to define fields from content types in the list's schema.xml definitions, which is a HUGE pain, and leads to maintenance problems. This is because lists define the entire schema for the list, and content types are data objects that can be defined within that data space, with the potential for several content types within a single list. But having to define the data schema in both the list definition and the content type definition is a major drag, and kills the whole concept of schema reuse. Check out Martin's fix for yourself-- a definite best-practice going forward, and something I'll be sure to include in as an "addendum" if I ever get around to such a thing! Here's the link: [Code Update] SDK and Microsoft Press Both Wrong?? Custom Fields in the schema.xml September 22 Guess who came to work!
Yeah, I know these have been floating around Microsoft for a few years, but we finally got one of our own. And it's worth every cent-- no longer do you see highly paid software engineers standing around making coffee. Now if only we could get coffee delivered to our desks...
Shout outs to Anita, Veronica, Greg and all those involved... :) |
|
|