Posts

Showing posts from 2009

Embed Silverlight in your blog using Windows Live Writer

Image
  This is amazing. You can embed a Silverlight app in your blog using Windows Live Writer and this plug-in . For example, here is the Silverlight showcase application from the home page of http://silverlight.net .

Death to Visual Source Safe! ... TFS 2010 Basic

Image
The biggest announcement about TFS 2010: "Price – We’re not quite ready to announce the pricing and licensing for 2010 yet but I can tell you that it will be at least as easy and cost effective to get as SourceSafe has been.  Stay tuned for more info on this." great post . That means that instead of $20,000 for licensing (current cost of TFS for a small development team), I am speculating that it might be included with license of Visual Studio/MSDN Universal License. Visual Source safe was the most popular source control system in the world in the 90s. Now it is the most hated source control system in the world (for good reasons.) I hate it when VSS asks me: "Would you like to run the analyze utility to make sure your files are not corrupt?" But the one thing that VSS had/has is it is easy to set up and use. TFS 2010 Basic aims to make setup easy (no SharePoint dependency). Screenshot of  TFS Basic Configuration Wizard (easy easy): TFS is awesome. I f

JQuery popularity

Image
  Some interesting statistics about the popularity of JQuery from the JQuery conference . - Microsoft.com uses Jquery! - 21% of all sites on the Internet use JQuery!   This research is done by Google: graph

DataGeneral: Lightweight ADO.NET wrapper replacing Enterprise Library Data Access Application Block

  The DataGeneral class provides access to the most often used features of ADO.NET in a simple-to-use class boosting developer productivity. DataGeneral is lightweight for maximum performance. It employs Microsoft best practices. DataGeneral provides the best features of Enterprise Libraries Data Application block. In my experience, I like the Enterprise libraries Application Blocks to learn what features of the .NET framework are available , and best practice coding techniques (hence the name patterns and practices). But I don't like the weight of the enterprise libraries, and the random errors I get when versions are out of sync across environments. That is why I wrote DataGeneral which is just a single wrapper class. With DataGeneral you will have less lines of code to debug. DataGeneral is specific to Microsoft Sql Server. For example, one of the features of the Data Access Block is stated as: "By changing the settings in the configuration file, developers can use th

Sticky Notes in Windows 7

Image
It’s the little things that are big. I found a new feature in Windows 7 that I really like: Sticky Notes . They look and behave a lot like real sticky notes. I used to use real sticky notes like crazy. At the beginning of each day I would write all my tasks down on those notes helping me, as Stephen Covey would say: keep first things first. Lately I've been using OneNote and/or notepad. OneNote is a great app but like any good thing, too much of it is bad. I'll still keep using OneNote every day, but for task lists and quick notes, Windows 7 Sticky Notes is definitely my new friend.    The leap to Windows 7 A month ago I took a risk and installed Windows 7 as my primary OS. Installing a beta version of an OS on a laptop which is critically important for my job is not something I usually do but fortunately it has paid off. My favorite Windows 7 features: The performance is good (even though my laptop hardware is seriously lacking for a developer). Reboot time i

Catapult Kids Day

Image
I work for a consulting company which is big on providing a great place to work. Catapult Systems was ranked #2 best place to work in all of Texas last year and also received the same impressive rank in 2006. Examples: Last weekend we had a Catapult kids day when all the employees got to bring their kids into work. My 4 year old son had a blast. Granted, now his impression is that I play mini-golf, watch movies, and shoot Nerf guns all day. My son is the one in front making the funny face. I so proud of my little goofball :).

DIVs not Tables

My brother-in-law is an HTML extraordinaire and has been telling me for years that DIVs are just better than tables. I never believed him. I though this was just inherited open source community hatred towards Microsoft’s server controls that spit out tables everywhere. But I have been convinced! There is actually a simple demonstrable, measurable benefit to using DIVs over tables. A common scenario is displaying two columns of information with the label in the left and the value in the right column. See the code below, the DIV option is definitely cleaner and results in 7 tags while the table version results in 11. The <label> tag is also more descriptive than a <td> tag. Granted, in order to make your DIVs line up correctly, you have to use styles, while tables do this by default. Div version: (7 tags required) < div > < div > < label > scrollTop: </ label > < input type ="text" />

Enable JQuery intellisense in Visual Studio 2008

Steps to Enable jQuery Intellisense in VS 2008 Step 1 : Install VS 2008 SP1 Link: http://msdn.microsoft.com/en-us/vstudio/cc533448.aspx Step 2 : Install VS 2008 Patch KB958502 to Support "-vsdoc.js" Intellisense Files Link: http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736 Step 3 : Download the jQuery-vsdoc.js file Link: http://docs.jquery.com/Downloading_jQuery#Download_jQuery Full story with details can be found here: Scott Guthrie announcement

Codeplex changes it’s policy based on my suggestion

This is pretty cool. This week Codeplex changed it’s Start a Project page and added a section which I had suggested. I guess they are listening to me. :) You can read my suggestion I made back in Dec 2008 in the discussion forums to . You can also watch a Channel 9 video describing the feature starting at 5min. The suggestion was simply to allow donation links on Codeplex project sites. My Codeplex project SharePoint SUSHI has been on Codeplex since November 2007 and was one of the early projects posted on Codeplex. It has been downloaded 17,000 times. I love the comments on the latest version, they are awesome: Probably the most useful free SharePoint tool out there! Saved me hours of work many many times. Some really innovative features (e.g. copy list view). Great stuff! Please keep it up. Thanks for sharing the results of your hard work!. Greg by Greg_O on Mar 9 at 7:22 AM Some great functions. Definitely going to use that tool often in the future.

Float vs. Decimal data types in Sql Server

  This is an excellent article describing when to use float and decimal . Float stores an approximate value and decimal stores an exact value. In summary, exact values like money should use decimal, and approximate values like scientific measurements should use float. Here is an interesting example that shows that both float and decimal are capable of losing precision. When adding a number that is not an integer and then subtracting that same number  float results in losing precision while decimal does not: DECLARE @Float1 float, @Float2 float, @Float3 float, @Float4 float; SET @Float1 = 54; SET @Float2 = 3.1; SET @Float3 = 0 + @Float1 + @Float2; SELECT @Float3 - @Float1 - @Float2 AS "Should be 0"; Should be 0 ---------------------- 1.13797860024079E-15   When multiplying a non integer and dividing by that same number, decimals lose precision while floats do not. DECLARE @Fixed1 decimal(8,4), @Fixed2 decimal(8,4), @F

Trancender vs. Measureup – Tips for Microsoft Certification Tests

  I've been going certification crazy this year as I've passed 5 certification tests so far. Along the way I've picked up a few tips that might be of interest to someone looking to study for and take a Microsoft Certification exam. Trancender is a win forms app installed locally, so don't need to be connected to internet. Measure up is a web app. Both Measureup and Trancender are seriously out-of-date applications. It is embarrassing that they test your .NET skills and yet the skills of the programmers who wrote these tools is seriously lacking/out-of date. No cut and paste available in Trancender. This makes it hard to try out source code contained in the practice questions and descriptions are more generic than Measureup. For each question Measureup tells you why the right answer is right and the wrong answer is wrong, which helps you understand the way the question asker is thinking and what they are trying to teach or the point they are trying t

Stored Procedures versus Ad-hoc SQL

Image
Have you ever worked on a system where someone decreed that all database calls must be Stored Procedures, and ad-hoc SQL is strictly forbidden? I have and it leads to incredible development pain.   Let me first say that I have written many awesome 100+ line stored procedures. Stored procedures are definitely a good thing when writing complex queries. TSQL and Stored Procedures are fantastic. However, I think that the optimal decision is to use a mix of both ad-hoc sql and stored procedures rather than just stored procedures.   Reasons that are given for the above decree and why they are no longer true: Security: SQL injection: Resolved by using parameterized SQL which eliminate SQL injection possibility. Granular security: If the app pool account is dbowner, then there is no additional security from applying security to each stored procedure (execute only privileges).   Performance:  (see performance testing section below for test result

Rename a SharePoint Server Machine Name

I often need to rename a machine running SharePoint. I was afraid this would be terribly difficult because there are several places in SharePoint that the machine name is stored, but it was actually pretty easy. Here is a good article which worked for me: rename SharePoint server Rename the SharePoint server using the STSADM command. (-o renameserver) Add alternate access mapping for central admin to the new name rename the machine to match reboot If you get a “Some or all identity references could not be translated. when navigating to Central Admin”, run this command: stsadm.exe -o updatefarmcredentials -userlogin <login> –password <pass> . detailed instructions. Post-configuration: alternate access mapping changes, User ID changes, etc.

The fluckiger.org guestbook is back, new and improved!

After a 5 year outage, the fluckiger.org guestbook is back!Please feel free to leave your thoughts, hellos, ideas, comments, poems, rants etc. Check this out, I just used internet archive to retrieve messages left on the old fluckiger guestbook . The old guestbook was up between 2002 and 2004. It is fun to see the comments, back then having a guestbook was a really cool impressive thing! I know a guestbook is an old fashioned thing. Old fashioned in Internet years which means anything over 5 years old. In 2002 I built a guestbook using asp.net 1.1 and an Microsoft Access database. My original guestbook at fluckiger.org was pretty popular. This was before facebook and blog comments which make having your own guestbook seem kind of pointless. But this guestbook gave me a chance to flex my Silverlight muscles and is just the mustard seed. There is a lot of potential in Silverlight to bring back richness to human-computer interaction. We've been suffering through painful primiti

Snapshots in Windows Server 2008 Hypervisor

Image
I recently installed Windows Server 2008 with Hypervisor. I was a little confused by the Snapshot options. But after reading this post , and a little trial and error, I figured it out… Apply… results in losing your changes since the snapshot. This applies the state stored in the snapshot to the current state of the machine. Delete Snapshot… results in keeping your changes since the snapshot. This causes the AVHD (differencing disk) files to be merged into the parent VHD or AVHD files. Note that if the virtual machine is running the merge will not happen until the guest machine is shut down. Revert does the same thing as Apply for the most recent snapshot.   Additional Notes from my experience: When you create multiple snapshots you’ll see that Hypervisor creates a hierarchy of snapshot nodes. This hierarchy is important. The green arrow is also important. I made the mistake at first of thinking that the green arrow and the snapshot were the same thing, but the g

Johnny Lee on Channel9

Scott Hanselman interviews Johnny Lee . Excellent topics of this video: Why can’t a computer’s see? Why does the academic world reward writing papers instead of producing useful technology? (Johnny Lee inspired millions of people with his revolutionary use of the Wiimote and yet got no academic credit from Carnegie Mellon which he was attending at the time). -Joseph

SUSHI has 5 star rating on Codeplex

Writing free software for the community often come with little reward. But it is great to get positive feedback. I can’t help but smile at the feedback that SUSHI has gotten:   Probably the most useful free SharePoint tool out there! Saved me hours of work many many times. Some really innovative features (e.g. copy list view). Great stuff! Please keep it up. Thanks for sharing the results of your hard work!. Greg by Greg_O on Mar 9 at 7:22 AM   Some great functions. Definitely going to use that tool often in the future. by Dublette on Mar 2 at 2:19 AM   God bless you, Joseph. You may just get that Wikipedia page after all. :) by panoone on Feb 4 at 8:24 PM     The last comment is the funniest of all. I hope he is right! SUSHI has had 13,000 downloads today and is in the top 25 downloads in the category of SharePoint over the last 7 days.

Super fast drive

  This is hilarious, and awesome at the same time. Drive that gets 2 GIGbits per second transfer rates . I bought a 300 gig raptor for $250 at Fry’s electronics and I love it. It is very fast, but my office is now a sauna and it is only Spring. I noticed that a 64 gig Solid State Disk cost $199. Can’t wait to get one of those. The future of computing, starting in 2009? SSD, SSD, SSD. Performance and low power consumption.

Tech Tip: Set up Remote Desktop on 443 to Get Through a Restrictive Firewall

  I often connect to the Internet through a guest wireless account. These guest wireless networks are typically very restrictive and block all ports except for 80 (http) and 443 (https) .  This is a big pain when I need to remote desktop into a remote machine, or perform other tasks which also might be restricted by the firewall like accessing my online email, searching the Internet for helpful blog posts, etc. Here is an awesome tip to get to the resources you need: Set up a remote machine and change the Remote desktop port from the default of 3389 to 443. To do this just change a registry key and then reboot your machine. See this Microsoft KB article for details. You will also need to configure your router to forward inbound traffic for 443 to your machine. Instructional videos on port forwarding with a Linksys router. Another benefit of this approach is that the traffic between you and the website is not exposed to the guest network which is usually a low security, public n

SharePoint and Project Server Download Links

  Common download links for MOSS and Project Server 2007: Patches SP1 WSS 3.0 link Office Servers link MOSS with SP1 slipstreamed Infrastructure (The infrastructure is now included in the Dec CU, no need to install it separately) December Cumulative Update description WSS 3.0 link SharePoint Server 2007 link Help: Version numbers lookup link Help: Deploy Project Server 2007 Tips link Help: Deploy WSS 3.0 Tips link Help: Master blog post on SharePoint service packs and updates. link I always lose these links, so I’ve decided to maintain a blog post with these common links.

RAM Disks do not speed up Visual Studio

  The limiting factor for Visual Studio is disk IO. I got a tip to speed up Visual Studio from Channel 9 by creating a RAM disk which sounded like a great idea. However, when I ran a thorough set of tests, I found that the performance difference between the Ram disk and the hard disk were not appreciably different. This was a big surprise since RAM is 240,000 times faster than disk (see my previous blog post). But the reason is because Visual Studio and Vista do a lot of caching. So compile times for the same project in RAM disk and on hard disk were pretty similar. I also tested the time it took to search the entire solution for a word, and times to open a solution. There was no discernable difference!   If you still want to try it out and create your own RAM disk, you can download a simple RAMDISK.EXE utility to create a RAM disk in just a few minutes. What is a RAM Disk ?   Ramdisk is a virtual drive created in RAM.   Performance Analysis Creating files was an average

Highpoint Games

  My friend has just started his own board game company, and has released his first game “Greedy Greedy”. www.highpointgames.com Check it out, this is a game that we had a lot of fun playing many times while in Florida.

SUSHI Version 3.4 Released

  SUSHI Version 3.4 includes the following improvements: Important Improvement : Security Report: The logic for looking up Active Directory Groups that a User is a member of has been improved so that users with read-only privileges to Active Directory can successfully query group membership. Delete old documents: This feature is now asynchronous and includes a cancel so that the action can be canceled after it has started but before it is finished. This is useful when archiving a large number of documents. Bulk List Creation: Tips for bulk deleting lists and renaming list URLs added.

Check for Memory Leaks in your SharePoint API Code

  Microsoft has just released a memory leak checker for SharePoint code . Not sure if all your SPWeb and SPSite objects have been properly disposed? Use this tool to discover which lines of your code are not properly disposing of those objects.   Each SPWeb and SPSite object takes 1-2 megs of unmanaged memory. So no properly disposing of them causes major memory leaks. However, (this is important) if you dispose of a SPSite object that you get from SPContext.Current, you will crash your SharePoint site. So having a tool that you can run to definitively determine if your production code is good, is a big help.   -Joseph

SharePoint SUSHI Version 3.3 Released

Image
I am pleased to announce the release of SUSHI, version 3.3 .  About SharePoint SUSHI.     New Features, Improvements and Bug Fixes Delete old documents: Copy documents older than a specified date to an archive folder and then delete them from SharePoint. Security Report: User can type and also select from the list. As the user types, the name of the SharePoint User is found. Awesome new screenshot on the Codeplex SUSHI home page. :)   I would like to thank the community for all the great feedback. I am working to incorporate your ideas as quickly as possible. Knowing which features you are using is helpful to know which features to prioritize.   Thank you to all who have donated to SUSHI. This is always a very big help. You are welcome to make a small donation to SUSHI .   -Joseph Fluckiger

Scripted SharePoint Install

Doing a scripted install of MOSS can save a lot of time, and can also ensure that your installs are consistent. Below is a sample scripted install of MOSS. (I have changed sensitive information like passwords, emails and URLS.) I have found that it works best to execute these commands one at a time, rather than as a single script. If you are unlike me and never make mistakes, then feel free to run them all at once. Another added benefit is that this provides very nice documentation of your install for future posterity. And for someone who understands windows scripts can teach quite effectively what it takes to install MOSS, surely much more effectively than the beastly 30 page install instructions on MSDN. One of my favorite benefits of a scripted install is that you can choose a name for the Central admin content database instead of getting stuck with the ugly content database name the includes a Guid. Some of the setproperty statements at the end are optional, but they give you