<

Linux is Greener, But Efficient Servers Are MIA

Keywords: , , , , , , , , ,

Linux was just deemed greener than Windows Server 2008 when running as the operating system for servers — a good 12 percent more efficient. Now that might not sound like much, but the same research also drove home just how difficult it is to get servers to run efficiently. So don’t scoff, and all […]

Linux was just deemed greener than Windows Server 2008 when running as the operating system for servers — a good 12 percent more efficient. Now that might not sound like much, but the same research also drove home just how difficult it is to get servers to run efficiently. So don’t scoff, and all hail the green penguin…read the full story here on Earth2Tech. If this story interests you then you should definitely check out our upcoming conference, Structure 08. ... Read More

Visual Studio (VS200) loosing it’s source control bindings

Keywords: , , , , , ,

VSTS2008 has, on occasion, lost it’s source control settings - specifically, the bindings to TFS server for a given solution and it’s projects.

This seems to be because the solution and project files are not being updated when you use the TFS Source Control Explorer to do a ‘Get Latest’  - a ‘feature’ of VS2008 which allows you to work disconnected/offline - however it seems to have an issue trying to reconnect itself.

To resolve we simply removed the local source directory and did a ‘Get Specific Version - get latest’.

RickSW had a similar experience.

Tim


VSTS2008 has, on occasion, lost it's source control settings - specifically, the bindings to TFS server for a given solution and it's projects. This seems to be because the solution and project files are not being updated when you use the TFS Source Control Explorer to do a 'Get Latest'  - a 'feature' of VS2008 which allows you to work disconnected/offline - however it seems to have an issue trying to reconnect itself. To resolve we simply removed the local source directory and did a ... Read More

Develop for Maintenance

Keywords: , , , , , , , , ,

One thing I always keep noticing is that people will develop things without even giving a thought to maintenance.  This somehow seems impolite to me.   I suffer from Coder Alzheimer’s, which means I can’t remember a thing I wrote after not seeing after three weeks. That is why I think about things like maintenance.  I am seeing all new code if I have been away from it for awhile!  Now that is not completely true, but imagine how it may be for the guy who has never seen your stuff.

Challenge: How Easy is Your Code to Run?

I bet you can’t guess how many steps it takes to get your project code running from a blank slate! In fact I bet it takes more than five additional steps for you to get it running. Five additional steps besides getting the source.

Try this. First check in any changes that you need to get in.  Now I want you to blow away your local source files. Everything. Remove the database from your database server. Remove your web settings. Remove any files and folders you may need for processing that didn’t go away with getting rid of your local source files. Go ahead, I’ll wait. :D

  1. Now, pull everything back down from source control.
  2. Crack open Notepad.
  3. Completely set up to the point you can finally run the application locally.
  4. Document every step in Notepad. Save that as a readme.txt file.

How many additional steps did you need to take to be ready to go again? Were you right?

If it does take more than 10 additional steps, you have failed.  If any of them involve getting a file or creating a folder (something you could give them with source control), you have failed (unless that is automated through another file that is in source control). Permissions don’t count as part of the steps.

Maintenance Task 1: Make Your Code Easy to Read

What I like to see when I crack open code are methods named in a way they they actually tell you what they do.  They are also no bigger than about 25 lines and do no more than one task each.  I like it to be so blindingly simple to read or understand that even non-technical people can look at my code and sort of understand what it is trying to accomplish.

Maintenance Task 2: Make Your Code Easy to Run Right From Source Control

I came onto a project a long time ago that it took me a couple of days just to get the thing to compile. Two days! Imagine how much money in lost productivity that was for the company! The other developers on the project never really thought about what would happen if they blew away everything locally and pulled down from source. So they had certain things that were not right. They also kept some things checked out because each of them had conflicts and didn’t really think about how to make it relevant for all of them.

Please make sure to get everything into source that you would need to run the application.  This makes it easy for someone coming in to just download the source and be off and running. This will save your company money.  It makes it really great when someone who has never even seen a line of code of yours that may have to suddenly work on it to be able to have an easy experience getting your code from source and running it as fast as possible.  What does that mean? That means if you have a file you are picking up and processing when running an application, put one in source and check it in. Make sure it builds to the output folder.  You don’t have to have it deploy to other environments, but you need to think about the guy who is developing it locally.

The other thing is don’t ever, ever, ever put yourself in a situation in team development where people have to keep a config file checked out locally because you didn’t use a relative path.  If the path is important to running the application, please make sure it is part of your (local) build process. That also means it should be in source control.  If there is a file that is important to your application, it needs to be in source control as well. 

Maintenance Task 3: Include a ReadMe File For Additional Setup Required After Getting Source

One thing I have seen that I really like is when I pull down open source projects and they come with readme.txt files that I can take a look at and instantly know what I need to do to get the darn thing running besides just getting the code. 

That file you created in the challenge?  Check that puppy into your project’s source control, preferably at the top level.

If any of the steps in the readme file involve creating files or folders, remove them and/or find a way to automate them. Don’t make me create a file in a certain way. Provide me one or the means to build one automatically. Otherwise you are making me think too much. Make it easy for me or I will think you are not really being thoughtful and polite.  I already have enough to think about having to fix something in code I may have never seen before.  Make it blindingly simple for me.

Challenge 2: Give it to Someone Else

Now give that readme.txt to someone and have them follow it. Someone that is not on your project or has used your code before. When they are done, can they run the application locally?  How long does it take them?  How many questions did they need to ask?  Do any changes need to be made to the file to make it easier to understand (or for missed steps)?

Do not give them anything other than the readme and point them to the location to get the source. If they ask for any thing else, you have failed. If they cannot get the code running by the instructions alone, you have failed.

Conclusion: Make it Super Simple

Why do I promote making your code easy to maintain?  Very simply.  What would that person do if they don’t have anything other than the source? They may have no one to ask because it has been five years and you and the rest of your team has left the company. Or they have to put a fix into production in the next hour and no one is around that would be able to help them.  They have to make it happen. 

If you believe situations similar to these can’t possibly happen, we can still be friends, but I regret to inform you that you are very wrong.  If you think you write perfect code that never breaks, you are also sadly confused. It is a gamble to continue believing that someone could get in and work with your code without verifying it.

The question that you should ask when you develop code is: “How long would it take someone who has never seen your project before to be off and running?”

<a href=”http://technorati.com/claim/b58wqz24ma” rel=”me”>Technorati Profile</a>


One thing I always keep noticing is that people will develop things without even giving a thought to maintenance.  This somehow seems impolite to me.   I suffer from Coder Alzheimer's, which means I can't remember a thing I wrote after not seeing after three weeks. That is why I think about things like maintenance.  I am seeing all new code if I have been away from it for awhile!  Now that is not completely true, but imagine how it may be for ... Read More

Woopra: Where Analytics is Heading

Keywords: , , , , , , , , , , , , ,

WoopraOne of my colleagues in the office told me about a website statistics service named Woopra (he knows I love quantitative data). I had not heard about it prior, so I went a did a little research around the Internet about it. Apparently, it launched on/around May 30 2008, as it’s relatively new, but had a nice little writeup on TechCrunch. I did some Tweet tracking and saw that a healthy early adapter audience was using it.

What is Woopra you ask? Very simply: MyBlogLog meets Google Analytics and has a baby, and then morphs into a Bloomberg Terminal of the next century. Very, very interesting, at least to me it is. I’ve taken some screenshots of my Woopra Terminal and put them below for you to see:

Woopra Image 1

Woopra Image 2

What I like about Woopra is that it gives me information in near real-time and tells me where my audience is going and where they have been on my website. Generally, all of the data exists on server logs, but I like the advanced graphical representation of my data. In the screenshots above, you can see the ticker on the bottom of the page that scrolls with data from the server.

Woopra is going to run into some issues when large publishers start signing up. They are in beta right now which is very smart and limiting their service to publishers who are less than 10,000 page views. I’m speculating that the reason for this is because the amount of resources it takes to crunch all of the data is fairly intensive and that they want to work out all of the kinks before they start charing. I’m interested to learn how their infrastructure is built - are they using Amazon’s EC2?

What I’d like to see is Woopra share network data information.  Meaning, if I track a view on my site and rename them, I’d like to see that “renamed” person across the entire Woopra network.  There is a lot of information in the larger “network” - lets see if Woopra pools that data.

I also give them credit for the slick interface.

Darren Herman is a digital media enthusiast and serial entrepreneur. Herman writes about technology, entrepreneurship and digital media at his blog, http://www.darrenherman.com.

Partner Links
Manage your finances online with Geezeo
Web Jobs
CenterNetworks LinkedIn Business Group
CenterNetworks Facebook Fan Page
Check out SmugMug for a free trial

One of my colleagues in the office told me about a website statistics service named Woopra (he knows I love quantitative data). I had not heard about it prior, so I went a did a little research around the Internet about it. Apparently, it launched on/around May 30 2008, as it’s relatively new, but had a nice little writeup on TechCrunch. I did some Tweet tracking and saw that a healthy early adapter audience was using it. What is Woopra you ask? Very ... Read More

OutSync with proxy servers

Keywords: , , , , ,

imageIf like me you want to try the rather that syncs your contacts (and pictures ) with your outlook contacts, which will then be displayed on your mobile phone, and you are behind a proxy server, then this info is for you…

NOTE: This will work for any .NET application where the developer has not already set it…

Open the [applicationname].config file in the install location and add:

<system.net>
  <defaultProxy useDefaultCredentials=”true”>
    <proxy usesystemdefault=”True” />
  </defaultProxy>
</system.net>

Just above the closing </configuration> tags. This will allow your application to authenticate with a proxy server…

 

Technorati Tags: ,


If like me you want to try the rather groovy sync tool for Outlook that syncs your contacts (and pictures ) with your outlook contacts, which will then be displayed on your mobile phone, and you are behind a proxy server, then this info is for you… NOTE: This will work for any .NET application where the developer has not already set it… Open the [applicationname].config file in the install location and add: <system.net> ... Read More

Building Web and Desktop Applications with BlazeDS and AMF

Keywords: , , , , ,

Client/server communication is a key part of today’s RIA architectures. In this article James Ward and Shashank Tiwari dive into Adobe’s open source BlazeDS messaging server. The article describes the benefits of the AMF data format and how to use BlazeDS with a Java based server side application.

Client/server communication is a key part of today's RIA architectures. In this article James Ward and Shashank Tiwari dive into Adobe's open source BlazeDS messaging server. The article describes the benefits of the AMF data format and how to use BlazeDS with a Java based server side application. Read More

BizTalk Server 2006 R3 Timeline and Features

Keywords: , , , , , , , , ,

If you are interested in using BizTalk Server with the launch wave of 2008 products like the latest .NET Framework, SQL Server 2008, Windows Server 2008 and Visual Studio 2008, you will need to wait just a little longer. BizTalk Server 2006 R3 will be following just after the 2008 wave of releases. This updated version of BizTalk Server will be designed for the latest versions of Windows Server, the .NET Framework, Visual Studio, and SQL Server.

Along with support for the 2008 wave of products, the product team is looking to give more updates on specific features in the coming months. They are planning some new investments in the release that includes:

  • New web service registry capabilities with support for UDDI (Universal Description Discovery and Integration) version 3.0
  • Enhanced service enablement of applications (through new and enhanced adapters for LOB applications, databases, and legacy/host systems)
  • Enhanced service enablement of “edge” devices through BizTalk RFID Mobile
  • Enhanced interoperability and connectivity support for B2B protocols (like SWIFT, EDI, etc)
  • SOA patterns and best practices guidance to assist our customer’s implementations

The news features are very exciting. The product team is currently working to ensure existing BizTalk Server (BTS) applications continue to work without changes. They are taking an incremental approach and limiting the changes to the items listed above. This release build will be on existing bits, so the name of this will be BizTalk Server 2006 R3. Refreshing the bits (instead of applying a large Service Pack) provides for the best update experience.

The product team tells us that we should expect to see a CTP of BizTalk Server 2006 R3 later this year (with an RTM planned in H1 CY09).

If you would like to read more, check out Steve Martin’s blog at Life, Liberty and the Pursuit of Simple Middleware - Steven Martin, CSD Product Management


If you are interested in using BizTalk Server with the launch wave of 2008 products like the latest .NET Framework, SQL Server 2008, Windows Server 2008 and Visual Studio 2008, you will need to wait just a little longer. BizTalk Server 2006 R3 will be following just after the 2008 wave of releases. This updated version of BizTalk Server will be designed for the latest versions of Windows Server, the .NET Framework, Visual Studio, and SQL Server. Along with support for ... Read More

SharePoint Log on nags

Keywords: , , , , ,

If you keep getting nagged for log ons when using sharepoint this will solve the problem almost 100% of the time. The trick is to use the Windows managed Stored username and password feature. To access this,

1. Simply go into Control Panel
2. Click User Accounts
3. Go into Managed Passwords and click Add
4. Type the URL of the server (without HTTP), for example portal.us.com
5. Enter your credentials and click Ok

Now anytime Windows attempts to access ANYTHING on this server it will use the use those credentials and your prompting issue should go away.

The downside to this is if you change your password, you need to remember to come change it here.


If you keep getting nagged for log ons when using sharepoint this will solve the problem almost 100% of the time. The trick is to use the Windows managed Stored username and password feature. To access this, 1. Simply go into Control Panel 2. Click User Accounts 3. Go into Managed Passwords and click Add 4. Type the URL of the server (without HTTP), for example portal.us.com 5. Enter ... Read More

Trustware Bufferzone Has Your Browser’s Back

Keywords: , , , , , , , , , , , , , , , , , ,

When it comes to your security, no web browser is perfect - and no malware app is going to catch everything. I came across BufferZone Free a few weeks ago and have been running it since, and I’m pretty impressed.
BufferZone adds another layer of protection to your browser by setting up a sandbox (an […]

When it comes to your security, no web browser is perfect - and no malware app is going to catch everything. I came across BufferZone Free a few weeks ago and have been running it since, and I’m pretty impressed. BufferZone adds another layer of protection to your browser by setting up a sandbox (an isolated “virtual directory” on your hard drive). As Trustware puts it, the program “transparently redirects modifications in your PC to a virtual, isolated environment, so that ... Read More

Ext JS and Aptana Jaxer

Keywords: , , ,

Jaxer allows developers to leverage existing Javascript knowledge to develop server-side code for web applications. This article shows off some slick demos of Aptana Jaxer running the amazing Ext JS Javascript library on the server side. Full example code is provided.

Jaxer allows developers to leverage existing Javascript knowledge to develop server-side code for web applications. This article shows off some slick demos of Aptana Jaxer running the amazing Ext JS Javascript library on the server side. Full example code is provided. Read More