Planet Fox: FoxWiki blogroll expanded

July 25, 2008

www.atoutfox.org

Alex Feldstein

July 24, 2008

Alex Feldstein

Photo of the day


Miami Beach has a collection of lifeguard shacks, each one different than the next. Enjoy the summer!

by Alex Feldstein (noreply@blogger.com) at July 24, 2008 04:00 AM

July 23, 2008

Ted Roche's weblog

Upgraded to WordPress 2.6

Just recently upgraded the site to WordPress 2.6, using the Automatic Upgrade plugin. It went well, until the very last step when it couldn’t log me back into the web site. Shutting down and restarting the web browser seemed to fix that. Next time I went to log into the administrative site, some funky PHP errors appeared that appeared to be caused by blank lines at the ends of the PHP files provided by the Automatic Upgrade feature. I edited the files, removed the last (blank) line, restarted the web server and all is well. Stay tuned.

by tedroche at July 23, 2008 07:19 PM

F1 Technologies Blog

IE JavaScript Debugging with DebugBar

Virtually every developer I know that's doing any kind of client-side development for the browser using JavaScript prefers Firefox over Internet Explorer. The main reason for this preference is the availability of Firebug for Firefox. Personally my approach has been to develop using Firefox and then when I have everything working pray that my code will function properly in IE. I make pretty heavy use of Prototype, which addresses a lot of cross-browser issues, but there are still plenty of occasions where things work just fine in Firefox but choke in IE.

A few months ago I stumbled across a tool named DebugBar - a Firebug like debugger for IE! DebugBar allows you to inspect the Document Object Model (DOM) for the current page, view the source for you JavaScript, see the results of AJAX calls, examine styles, provides a JavaScript console and much more. I still prefer Firefox and Firebug for one simple reason, DebugBar does not currently offer JavaScript tracing - although it does work with the MS Script Debugger (which is "deprecated technology and is no longer supported") - and the ability to step through code like Firebug does. This is pretty much the only Firebug feature I really miss, but it's a big one. At any rate, I've still found DebugBar to be incredibly useful and can't imagine developing and testing for IE without it.

by Mike Feltman (noreply@blogger.com) at July 23, 2008 05:13 PM

www.atoutfox.org

Règles-Métier et Intégrité Référentielle avec StrataFrame

Comment traiter côté client les règles déclarées côté serveur? Avec VFP, j'ai l'habitude après un TABLEUPDATE() sur une vue distante, de traiter son échec en analysant le AERROR rempli par l'ODBC (principalement les lignes 3 et 5 de ce tableau, qui me donnent le texte et le n° de cette erreur ODBC). Cette démarche permet de coder les contraintes d'IR une seule fois (coté serveur), elle facilite la maintenance. Comment faire aujourd'hui, avec un client développé en .NET ? Dans cette brève étude, je vais montrer comment utiliser quelques unes des fonctionnalités de StrataFrame pour récupérer les règles d'Intégrité Référentielles existant côté serveur. Nous traiterons ces règles aussi bien dans la couche métier que dans la couche de présentation. Cet exemple s'appuiera sur la gestion de la TVA dans une application réelle de gestion commerciale (LOGICAVEAU). Les données sont sur un serveur SQL Server 2005, le client est développé en VB.NET avec StrataFrame 1.6.6

by Michel Lévy at July 23, 2008 02:34 PM

Boudewijn Lutgerink

Sending mails, using NetExtender

I have been playing around a bit with NetExtender by eTechnologia from Colombia, these guys do some nifty work if it comes to opening the .Net framework for vfp users, it also enables us, VFP addicts, to share some of the datapower of the fox with those poor guys and galls who are so sick to use .NET as is.

One of the pretty features I found is that it is possible to send an email with basically 5 lines of code.

It could use a bit of tweaking to make it a bit more robust, but here are the lines:

omail = clrCreateObject("system::net::mail::mailmessage", ;
"MailaddressOfSender",;
"MailaddressOfReceiver",;
"Subject",;
"text to send")

This one line creates a mailmessage object. I found that adding the 4 parameters, while creating the mailmessage object, is the simplest way to create such a mailmessage.

The next line makes clear that this message is in HTML format,

omail.isbodyhtml = .t.

The next line is this:

osmtp = clrCreateObject("system::net::mail::smtpclient", ;
"URLToTheMailServer", 25)

This line creates the smtp client, it takes two parameters, the first one is the URL to the mailserver.
It should look like mail.yourserver.com or
smtp.YourServer.com
The second parameter is the port of the server.

If your server requires authentication to send e-mails you need to use the following code:

ocred = clrCreateObject("system::net::NetworkCredential",;
"YourUserNameOnTheServer", "YourPassword")

Then you need to add the credentials to the smtpclient object, here is the rocket-science line for it:

osmtp.Credentials = ocred

OK, maybe you need to sit back for a moment. The hardest line is this:

osmtp.send( omail )

Wink [;)]

The clrCreateObject() function I used in the code is one of the function provided by eTechnologia. There are a few more. I will show them, and their usage, in following blogs.

I will keep on playing with the NetExtender.
I will keep you bugging with short notices on useful things I found. 
You didn't really think you could get rid of me that easy? NO WAY!
Stick out tongue [:P]

NetExtender really is very affordable. 120 dollars is not much at all, for those in the Euro zone, this comes down to about EUR 75.
By buying the package you not only get the NetExtender for VFP but also the Net Compiler for VFP, It turns VFP code into .NEt assemblies, executables and, since the latest update, it also enables you to use foxcode behind your aspx pages.

The product has now a bit more than 50% of the VFP features implemented and the progress of the work is going on and on. In my opinion this initiative, along with Graig Boyd's VFP Studio makes the fox stronger than ever. Foxes never die, they re-incarnate in new bodies. (Hmmm, or is this a cat in a cloaking device, meaning this fox/cat should have 9 lifes.)

What I see happening here is that due to the support from our own community an interesting development started. MS let us off the leash. At least now we know for sure that there will be no marketing around the best product ever at least from the side of MS. (Not that they ever did much, but that is common knowledge.) Due to the community itself the fox lives on, in another form maybe, but still as productive and fast as we are so used to. With these developments we can blow other developers right out of the water.

by Boudewijn at July 23, 2008 05:48 AM

Alex Feldstein

July 22, 2008

Rick Strahl's Web Log

Forcing Client Windows to pop up as Windows in Tabbed Browsers

By default if you open a new window in Tab based browsers like FireFox 3 or IE 7 new windows pop up in new tabs. In most situations this is the desirable behavior, but sometimes it's in fact required to get a new window to pop up on the desktop and get it activated immediately.

I ran into this situation today in a complex Intranet application that basically allows editing of several sets of related data simultaneously to content in the 'main' window. While I fully agree with the the school of thought that believes too many windows in Web UIs are evil, in this situation I really couldn't see good alternatives. Alternatives are opening in Tabs (not acceptable if more than one window gets opened at a time) or using DOM internal pop up windows (ala HoverPanel). The latter also isn't really acceptable as the pop up forms are rather complex and page management would get increasingly complex to manage in a single page especially since often times the SAME forms are popped up with different data.

So in the end I decided separate windows  are probably the best choice. It's been a while since I had last thought about this so I figured a quick window.open() would be all that's needed but as I found out, that only opens new tabs. How do you 'force' windows to open as windows rather than in a new tab?

As it turns out it's quite simple to do - you can specify a few  parameters in the window options to effectively force the window to pop up as a window instead of loading into a tab:

var childWindows = [];

 
function showApplet(appletName,id)
{
   var win = window.open( String.format("applet.aspx?applet={0}&id={1}",appletName,id),
"_blank",
                    "resizable=yes,scrollbars=yes,width=800,height=600,status=yes" );
   win.focus();  // force active
   childWindows.push(win);  // save for later release
}
 

Any time window.open() specifies parameters that are explicitly attributable to a 'window' - like resizable, scrollbars or height or width - the window does in fact get popped up as a window. Omit any of these window specific parameters and the window loads using the browser's default settings. Note the win.focus() which is useful in forcing the new window to be activated. This is especially useful if you create only one new window and repeatedly load content into it as these windows generally do not come to the top of the desktop window stack.

Speaking of default settings, window loading can also be controlled via the browser settings. In FireFox you can specify whether to open windows in tabs or in a new window:

WindowOrTabs

Other browsers have similar options.

However, the above code snippet allows overriding these settings so there really should never be a reason to choose the Open in New Window option.

Cleaning up Opened Windows

Note that when building your own applications and forcing windows to pop up it's often also important to remove windows again when you're done with your page, or after an operation has completed. In my app scenario for example I had to close a window after some action occurred in the child window or a final Save operation occurs in the main window for example.

So it's useful to keep track of windows opened in a page and then maybe even automatically close the child windows when the page is navigated off of. You'll notice in the code above that windows are stored in a childWindows array, which is done for precisely this reason. To close out all windows the following code is used:

 
function unloadChildWindows()
{    
    for (var x=childWindows.length-1; x > -1; x--)
    {
        var win = childWindows.pop();
        win.close();
        win = null;
    } 
}
$(document).ready(function(){
    $(window).unload( unloadChildWindows );        
});

which runs through each of the child windows and closes them. If you want to automatically close all windows when the page is closed or navigated off of you also hook the window.unload event and fire this function - here using jQuery to fire the event and route it to the function.

All that said, it shouldn't be often that you need to pop up windows on a Web page. It's a bad Web UI practice in general, but in those occasions that you must it's usually a requirement that can't be worked around. Hopefully this will be useful to you in those rare circumstances.

Posted in HTML  JavaScript  
kick it on DotNetKicks.com

by Rick Strahl at July 22, 2008 08:05 PM

Garrett Fitzgerald's Blog

The Big Meow returns!

After over a year’s hiatus, Chapter 7 of Diane Duane’s self-published-over-the-net novel, The Big Meow, has finally been released to subscribers! Check out the first six chapters, posted for free, and hopefully, you’ll decide to become a subscriber. After the year that Diane has apparently had (multiple family losses, multiple medical issues including gall bladder), a few extra subscribers would be a good thing.

by Garrett at July 22, 2008 04:35 PM

www.atoutfox.org

Ruban (bar de navigation cc celle du vista )

slt, une class ruban avec une form exemple (comme celle de vista ) foxemment

by lotfi072003 at July 22, 2008 02:34 PM

Alex Feldstein

Steve Bodnar's WebLog

Active Directory Hell

First, I must state up front that I know next-to-nothing about Active Directory and that I only think the problems I've been fighting for the last week or so are AD related. Secondly, This post is mostly a rant. I will share the workarounds I have used to address my problems, such as they are, but this post shares no great wisdom. So, if you've got better things to do with your time, you can stop here.

I moved my production desktop machine from Detroit to Virginia and nothing has been the same since.

I used to work on my Tablet out of the office and now that I think about it, I had many of these same problems. DJ, though, swears that he took his development machine to a hotel for 8 days, connected over the VPN and everything worked just as it did in the office.

I think all or most of my problems are tied to my credentials not being sent properly to the domain controller.

We're not using a standard Microsoft VPN connection. We're using the MUVPN client that came with our Watchguard SOHO box (or some more recent version.) It is my understanding that when you use the MS VPN client, you can authenticate when logging into the machine just as you would if you were on the network.

In my case, I'm logging into the machine using cached credentials. This gets me into the machine, but that's about it.

The first problem was easy to fix: machine names weren't being resolved. Added some entries to LMHOSTS and HOSTS files and I could then at least double click on the entries in "my network places" and get a response that indicated that those locations did indeed exist - I just didn't have rights to access them.

I'd get a password prompt and enter my username and password and get an error that said basically "hey, do you think I'm stupid, I already tried that user name and password. Try something else." So I did, I tried an admin user name and password and sure enough I could get into those shares. For whatever reason, our admin can see stuff, just not change it.

So, I still needed to authenticate as me but couldn't figure out how to do it. In my various searches someone asked if they could gain access by issuing a NET USE command. I tried that today and sure enough, I can now access all my shares as me.

That got me past all of my day-to-day admin problems. I can open files on the server, edit them, create new ones, yahoo!.

So, my next problem - actually the first one I discovered other than name resolution - is that I can't use MS Office Accounting 2007. I had several related problems and now I think I have just one: I can't use it. MSOA07 uses a simple text file to tell the application what files to use for a particular company.

database= filename
server=servername\instancename,5356

All these values seem to be correct.

When I launch MSOA I get prompted for a file (normally it just opens the last one used.) I select the little SBC file and I get an error:

The company could not be opened or access was denied. Please ensure that access has been granted and that the company database exists.

Well, I've Googled this six ways from Sunday and I don't have any answers. I have access to the SBC file. I can open it in Notepad, change it, save it, no problem. I cannot get past this.

I can fire up SQL Server Management Studio and query the database directly. This does seem to be a bit inconsistent depending on whether or not I'm setting the database to support connections over TCP/IP. What I've read about this is over my head, but has something to do with Kerberos and NTLM authentication and the various protocols. In any case, even when I can connect from SQL Server Management Studio, I still cannot connect from MSOA.

Then today, of all things, I discover that I cannot connect to my local SQL Server instance using an ODBC connection that worked perfectly in the office. I can access the data from Management Studio, just not through the ODBC connection I've been using for well over a year. I'd come across something about this in my various searches about using '127.0.0.1' instead of 'localhost' which wasn't quite the same as my problem, but pretty close. The post I found was specifically about an error I have seen on and off the last few days: "Cannot generate SSPI context" and this was specifically about trying to connect to a local SQL Server outside the domain. I'm not entirely sure that I was experiencing the same problem described there, but nevertheless it lead me to my solution: When reviewing my DSN settings, the "Server" had the name of my machine which had been working just fine. Not entirely understanding the issues (still don't) I tried to put in the localhost IP address and that failed as well. I noticed that one of the values was "(local)" and that failed. I then noticed that one of the pre-filled choices was '.' ( a period) and that worked. Cool. I still get a "trusted connection" prompt when I first fire up the app, but everything is good after that.

So, I'm still struggling, but I've made some progress:

  1. Name resolution - solved by HOSTS/LMHOSTS entries
  2. Shares - solved by issuing a NET USE with my credentials. I only have to do this for one share on one of our servers and then the rest of my shares (under the same AD structure) work just fine.
  3. Office Accounting 2007 - no solution. (Other than I use RDP to connect to a machine on the network and get my work done that way. This is still a big problem because it doesn't get me past the stumbling block of having Outlook tied to MSOA which is how we do our time-billing.)
  4. Connecting to local SQL server - solved by using "." instead of machine name or "localhost" or "(local)" or IP address in ODBC connection. Still get prompted for trusted connection.

My biggest remaining problem is getting OA2007 to talk to Outlook and ideally run on my machine. If the one person that has read this far knows any OA experts, I'd love to get their advice.

by noreply@blogger.com (Steve Bodnar) at July 22, 2008 12:52 AM

July 21, 2008

Doug Hennig

Video for VFPX New Property/Method Dialog Replacement

The native New Property and New Method dialogs in VFP have many shortcomings, including being modal, non-resizable, and not supporting MemberData so the case you type for the member isn't preserved. Fortunately, VFP 9 makes it possible to replace native dialogs with our own. VFPX has a project, New and Edit PropertyMethod Replacement Dialogs, that replaces these dialogs with versions that work much better.

I created a 4-minute video showing the features and benefits of these replacement dialogs. Once you start using them, you won't go back.

by Doug Hennig (noreply@blogger.com) at July 21, 2008 02:22 PM

Rick Strahl's Web Log

DevMaven Ads on the Web Log

If you've been visiting here for a while, you may have noticed that the advertising on this Web log has been cut down quite a bit recently. At the beginning of the month I decided to switch off from the mish mash of advertising that I was running previously, which included Google Adsense, Steve Smith's Lake Quincy Network, James Avery's The Lounge Network network and some of my own ads. Advertising here has brought in a small amount of side income that has roughly covered the hosting of the site and a little bit extra. While it's not been a lot of money it's always been enough to make me teeter on the side of the $ signs to put the ads  onto the site, but it required the mish mash to provide even this small stream of revenue . At the same time the amount taken in seemed small in comparison to the amount of content that is actually provided here - it's hard to gauge the worth of ad space of course, but I was actually considering turning off advertising altogether at some point because of the whole disproportion between ad payout and what the Ad services charge advertisers and what gets paid back to publishers (especially Google and Adsense which is an abomination - Google is getting rich of both advertisers and publishers because of it).

So a couple of months ago I started talking with Steve Smith about advertising and some of the pain points for publishers and advertisers alike and started throwing some ideas around about a few different approaches to serving ads. Steve's really the guy with the ideas, but there was a bit of back and forth and I liked what I was hearing. I've been frustrated with the advertising publishing I've been doing for a variety of reasons and was in fact thinking of just dropping the whole thing. However after talking with Steve a bit I decided to see what he'd come up with.

The end result is what now has become DevMavens which is a highly focused and somewhat exclusive advertising arrangement that serves ads to only a few member sites that are part of the DevMavens network and includes only a small number of advertisers at any given month. The concept of this type of specialized network isn't new (in fact, The Lounge used a similar model), but what is different for me at least is that the payback for the publishers is a bit larger than the typical CPM network. For me, the payment arrangements result in a significantly higher payback for running ads and as a bonus it requires only a single, relatively small ad on each page of the Web log.

I hope you'll agree that this single ad format is much less distracting than the 6 or so ads that were running previously on all the pages here, so hopefully this won't be just a boon for me but also for those of you who kindly come to visit this Web log frequently and actually click through into the site either from the RSS feed or from search results. I'm also glad to be working with Steve, who's been great to work with in the past for ad tuning and pinging on advertising issues in general, as well as just being a good developer friend I talk to from time to time about dev issues anyway.

Love Hate Relationship with Ads

Advertising for me is a love/hate issue and it's ironic  because I tend to think of advertising as the root of a lot of problems on the Web. So in a way it's a bit hypocritical to whore space on this site to advertising. But yet the lure of some recurring side income is always very enticing. The reality is that a lot of effort has gone into the nearly 1000 posts that have made it into the Web log and there's a certain amount of profit potential there even as the content keeps growing. It seems a waste to throw that away and the income is maybe an added incentive to keep at it, especially on those stretches when writer's block or very busy schedules seem to get in the way.

There's no telling whether the DevMavens campaign will continue to pan out, but for the moment this definitely is a big improvement on all fronts as it simplifies things, makes for a cleaner layout and doesn't hurt the bottom line. Woot.

Posted in ISV  Personal  
kick it on DotNetKicks.com

by Rick Strahl at July 21, 2008 08:56 AM

Alex Feldstein

July 20, 2008

Shedding Some Light

Testing, 1-2-3, testing

GoDaddy hosts my personal Web site for cheap. Last week while on vacation they decided to move it to a new server, then asked *me* to test it. Sure enough: 401.3 Unauthorized due to ACL on resource. My research indicates it is a NTFS permissions problem.

Every time I navigated to the Web site I was prompted by a login screen. Sweet.

Yesterday I called GoDaddy's normally excellent tech support from an airport as I was waiting for a flight. They told me I had to uninstall and reinstall FrontPage extensions, then republish the entire Web site. How is this related to a permissions problem?

OK, this is a hardware problem so I am not the authority here so I follow along. Uninstall and wait for 30 minutes. Fly home, eat dinner, reinstall. Same problem. Too tired from travel so I hit the sack. Get up, same problem. Have you heard how much I love hardware?

I call back today and get the same story. This time I mention I did a little research on the issue and it *could* be related to NTFS permissions. On and off hold for 30 minutes. GoDaddy tech support calls advanced tech support. New advice: reinstall FrontPage extensions and republish Web site. What?!?!

Sure enough it seem to work without the republishing of the Web site so I suspect some advanced tech support dude fixed the NTFS permissions in the 30 minutes it took to reinstall the extensions.

Anyway, I only meant to post a test post to see if I can. I can't imagine slapping up a smoke screen to my customers while I fix something behind their back. GoDaddy should have tested my site before telling me it was ready. It would have saved me lots of time I don't have.

by Rick Schummer (noreply@blogger.com) at July 20, 2008 06:52 PM

Today's fun: VFP Memory Limitation

One of my clients called me with a problem with one of their VFP 6 applications crashing. The application has been running in 30 locations for 10 years with very few changes. I did not develop this particular app, but did mentor the original developer and helped with the design. It is used by engineers. At the site it was working on one computer, but not the other three. The error is one of the more common ones: Function argument value, type, or count is invalid. (11)

The IT department no longer has fresh VFP expertise because they have moved on to a new development platform. They gave me a call hoping I could fix it immediately so the engineers could keep on working. They brought the data back, but could not reproduce the problem.

Fortunately the Visual MaxFrame error logging is decent. Unfortunately the customer does not compile in the debug code so I could determine the program, but not the line number or the actual code. I dug in using the error log and traced the code to the SYS(3050) command. In the startup of the application a call is made to a procedure that sets the amount of foreground memory to a percentage of the overall memory available on the machine. The calculation uses Windows API calls to get memory on the machine and then works through a formula. In this case we are talking about three new engineering workstations and they were loaded with 4GB of physical memory. The program was determining it could have a little more than 2GB of RAM. The VFP Help file does not indicate a limit even in the latest version, but apparently there is one.

So the lesson learned today is: do not to allow the setting of the SYS(3050) function be strictly calculated. I added code to pick the minimum of the original calculated amount and something less than 2GB. It is the first time I have used the VFP MIN() function in a long time.

I never hit this problem because I have a configuration item with the amount of memory to set. I know several developers use a formula to determine the amount of memory to allocate to VFP. If you are one of these developer you might want to check your formula to see if large amounts of memory could trigger this error.

by Rick Schummer (noreply@blogger.com) at July 20, 2008 05:23 PM

Alex Feldstein

Smugmug photo service is down today

Smugmug, my photo hoster, is down at the moment. They buy their storage services from Amazon S3 which is the owner of the servers that failed. It is bound to happen, servers and connectivity issues will arise every so often, so all I can do is apologize to the followers of my photo gallery and my blog (at least the photo component). Bear with me, this will get fixed soon.

by Alex Feldstein (noreply@blogger.com) at July 20, 2008 04:07 PM

Andrew MacNeill - AKSEL Solutions

Using Scour - Comparing Results

While many sites have compared the search results between Google, MSN and Yahoo, noting that generally they are all the same. I started using Scour recently which puts search results for all three into a single item (yes, it's a Point-based search which is interesting in and of itself but reminds me of most "point-based" systems - you'll never get enough points to make it of use without trying to game it). (you do get to "rate" each search response which may / may not have its own benefits - it's too early to tell).

Yes - the results of all three are generally the same BUT the relevance is interesting. Here's a sample (inspired from a tweet by Marina Martin):

The Pragmatic Programmer - Scour Search

Here are the results:


Notice anything?

1. While Amazon shows as the number one, MSN placed it as the number 1 result while Google/Yahoo placed it as number two. Just because I'm searching for a phrase that matches a book doesn't mean I want the book - it's great that it's there - but if I wanted to BUY the book, wouldn't I likely just go to Amazon or my favorite online bookstore?

2. Both Google and Yahoo link to essentially the same site but with a different URL (Google points to this one  (http://www.Pragprog.com) while Yahoo points to this one (http://www.pragmaticprogrammer.com). But the content itself is IDENTICAL.

3. Google's second result takes you to the main site whereas Yahoo's (doesn't show in the image) takes you to an articles page. which arguably has more details.

What all of this shows me is that the Search for all three companires is still reproducing the same site, trying to put a slightly different spin on essentially the same result. On the entire top 10 list, the same core site is listed 5 times, a book store is listed once (but at the top), Wikipedia is listed twice,  an interview with the authors is listed once , and the book distributor (OReilly) is listed once as well.

Is there really more valuable content on each of the 5 different links from the same site or would a person be more likely to "click" around the site? If that's the case, is it any wonder that people get frustrated by search?

by noreply@blogger.com (Andrew MacNeill) at July 20, 2008 02:24 PM

Craig Bailey on Microsoft

OPINION: On Twitter and the death of blogging

When I first heard Jason Calacanis’ announcement about retiring from blogging last week I thought (like many) it was a joke. After all, he’s had considerable involvement in blogs over the years (cofounder of Weblogs Inc, etc). And leaving blogs to go to… email – well hello?

But no, it seems he’s serious, so it made me stop and think. Perhaps, he’s on to something. Personally I’ve noticed that my own blogging has dropped in the last few months – maybe it’s indicative of a wider trend…

If my blog writing is down, what about my blog reading? My blog reading stats back in April had an unread count of over 50,000:

Blog feed stats from April 2008

Here’s my stats in July. You’ll notice more feeds (and items), but less unread.

Blog feed stats from July 2008

Now, admittedly in April I was getting a little behind in my reading, but in general my unread count is always going up.

My reading habits haven’t changed (in general I read blogs for about 1.5 hours per day - 30 minutes going into work on the train, 30 minutes coming home, and an additional 30 minutes at night.)

So with similar reading habits, and being subscribed to more feeds, why are there less unread items?

Are the posts getting shorter? Am I less interested? Am I reading quicker !? 

No.

To me it’s clear that the reason is: the frequency of posting is decreasing. People are blogging less.

 

Is this the death of blogging?

So what’s caused this?

The main reason has to be the increased uptake of social networking tools, predominantly (in the technology space) Twitter and its variants. People are no longer blogging about stuff, they are Twittering about it. (More on this later)

(Note, I consider blogging and micro-blogging to be two totally different outlets)

The question then is: does this mean blogging is on the way out?

Are we perhaps witnessing the early stages of the death of blogging?

My answer: No, in fact just the opposite.

But first, let’s quickly agree on what a blog is…

 

What makes a blog?

It’s always easy to pick on throw-away comments on Twitter, and this one caught my eye (from one of my favourite Twitterers btw).

Blog with no comments = website. Really?

Summary: blogs without comments aren’t blogs – they’re just web sites.

That’s one definition. But I personally think blogs are really only about one way communication.

Yeah, it’s easy to get sucked into the whole ‘need for community’ side of blogging. “It’s about a conversation”, “The comments are the content”, “Some of the best gems come from the comments”, etc. But let’s take a step back and consider this.

Where did blogs come from? They started as online diaries – an outlet for (usually boring) musings by uni students. They became popular due to their ease of publishing. Anyone could have their own regularly updated website. Putting up ‘content’ was simple, and spreading the word was standardised (in as much as RSS is a standard). Thus: Blogs are web sites. That’s the point of them.

Let’s break down what the main components of blogging are these days (at least in the technology sphere I inhabit):

Content

Many posts have great content – perhaps original, perhaps added-value, perhaps entertaining – but information.

Personal stuff

There are posts will all the personal stuff (what I’ve read, watched and listened too, where I’ve been, what I’ve been up to, etc)

Links

And then there’s the link posts – pointing to another post or article, and usually not offering much original content. At best some added value.

Comments

Finally there’s the comments where people interact - sometimes helpfully, sometimes not - on the content of the post. More on this later.

(I’ve deliberately left Advertising, Widgets and other so-called ‘content’ out of the discussion)

 

The SNR of blogs

All of these components are valid (I’m not saying otherwise) and my own blogs have had all these elements to various degrees. But I think the Signal-to-Noise Ratio (SNR) is an important concept when it comes to blogs.

Here’s how we see SNR in the blogosphere:

  • Signal = Content
  • Noise = Personal stuff, Links, Comments

Ideally we want the SNR to be high, with lots of useful, original content.

 

A few comments about… comments

To be honest I hardly ever read comments. The reason being, when I do I’ve noticed the following general categories:

  1. Intelligent and useful comments – these are rare, and usually on posts that are dealing with a specific problem, with the comments helping find the solution
  2. Off-the-cuff ramblings – ill thought out, ill informed and often mis-reading the post, these are the blog equivalent of people who call talk-back radio shows – often little more than ignorance parading as opinion, and usually referring to the authority of self
  3. Trolling – these are people with nothing better to do than cause trouble
  4. Thank you notes – where people add their note of thanks for a well written post
  5. Google juicers – this is probably the majority – since just about every SEO article tells you to get out and add comments to blogs as a way of increasing your own Search engine juice. So, off we go, adding zero value comments to high profile blogs in order to get that little bit of back link love.

Do your own analysis, and let me know if I’m wrong (via the comments please :-)).

Yes, there may be some gems, but here’s my point: Comments are predominantly noise.

 

Enter, Twitter

Twitter has gained massive traction in the last year. And as I alluded to earlier people’s blogging habits have changed as a result.

What we’ve seen is all the Personal Stuff, Linking, and to a large extent, Comments, move to Twitter and other Social networking utilities.

The net effect: Blogs are much higher on Signal. The quality of blogs has improved.

 

Are comments dead?

Not withstanding Scoble’s often misquoted post - Blog comments are dead  (he’s talking about comments residing on blog platforms, not comments about the blog post contents) - the best we can hope for is that the quality of comments improve.

However, that’s unlikely to happen. If (as I contend), the Google Juicers are the majority of commenters, then they won’t be moving to Twitter any time soon (since there’s no SEO benefit). Sadly, we’ll likely see the % of Google Juice comments rise.

 

Twitter is the saviour of Blogs

So here’s what’s happening. People are realising that blogs aren’t the best medium for valuable interaction (note: social media strategists have been saying this for years!) and they are moving those interaction bits to other platforms. In addition, all the Personal stuff and Link blog posts are moving to Twitter (and its variants) as well.

Super Twitter - Saviour of the (blogging) world

So, far from Twitter being the death of blogging, it’s the exact opposite.

The result: Blogs are left with just the Content. The SNR is getting higher and the value of the blogs is increasing.

 

Back to Jason

So back to Jason retiring from blogging. Has he seen something we’re missing? Is he mistaken?

Jason weighs up Blogging on one hand with Email on the other :-)

Jason has his reasons (which he articulates well in his blog post – eg his response to Allen Stern), and for a person in his shoes they are probably relevant.

But for the rest of us – blogging will be of growing importance.

Thanks to Twitter the Signal in blogs is increasing and an opportunity to be heard above the Noise is opening. You’ll no doubt have dozens of different social networking outlets, but you’ll probably only have one or two blogs. Make sure you don’t neglect the value they hold.


Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

by blog.nospam@nospam.craigbailey.net (craig bailey) at July 20, 2008 07:18 AM

Alex Feldstein

Photo of the day


Interior of a diesel locomotive.
Gold Coast Railroad Museum - Miami

by Alex Feldstein (noreply@blogger.com) at July 20, 2008 04:00 AM

July 19, 2008

Rick Strahl's Web Log

Buying a new Server

It's time to retire my existing Web Server which is going on 7 years now. The box that this site is running on currently is an old style 2ghz Pentium 4 box with 1 gig of memory and it's starting to creak at the edges pretty hard with a few off and on failures to power and the system board components (lthe clock seized to work a few weeks ago). As of late the box has been locking up on a few occasions - and in fact just as I started writing this post today it just locked up again. Thankfully the lockups are not hardware fatal and the machine keeps on ticking after being rebooted by the ISP staff, but clearly this box is reaching the end of its hardware life cycle and usefulness.

I've been meaning to upgrade the box for a while, but frankly there's really not been a compelling reason to do so until recently. Even with the fairly large and various amount of stuff running on this server including the WebLog, our message board, a large variety of sample applications, my West Wind Web Store (in various different versions actually <s>) and a bunch of smaller internal applications, it never seizes to amaze me that this underpowered box does as well as it does. The other reason I'd been holding out as long as I had has been waiting for Server 2008. I wanted to wait for the new OS to update to save myself from an update in the future and having more synchronicity between Vista on the desktop and the 2008 server on live site.

Anyway, it's time to get a new box and I'm kind of torn between the choices on what to get. The last box was a home built box that cost me somewhere around $500 to build at the time. It was an emergency replacement box swapped in for a slowly failing server at the time and it just somehow worked out as the permanent replacement. I'd say for the years of services it's done that was a good price to value effort. The old box was basically a desktop box that my ISP at Gorge Net in Hood River has been kind enough to co-locate for me.

The question now is though what to get for a new box. I've been leaning towards just building another box with an Intel Core Quad processor and a gobs of memory, plus some high performance drives for best performance, but things have changed with processor designs significantly over the last few years with chips running super hot. So I'm seriously wondering whether a desktop processor is a good idea for an always-on server environment. Additionally I'm really pressed for time as I have a two week window to get the components, build the box, run a burn in and then move everything from the old server onto the new box while I'm actually in Hood River with physical access to the box. Finally, I'm not all that keen on building my own boxes anymore especially in regards to getting those monster processors installed and properly set up for cooling and optimal tuning. My last home brew installation of an internal office server took me way longer than I care to admit to get the machine into stable operation and while that kind of experimentation was fine for a desktop box I can fuck with anytime, I don't have that privilige with a server at a (somewhat) remote location.

So, I guess I'm asking for a some experienced advice amongst you, my dear readers.

Some of the choices I've been toying with are:

Build my own

If I build my own box the price is probably the lowest and I get exactly what I want, but as I mentioned above I am a little worried about component overheating and life time. Pricing for what I'm looking at looks to be around $600 or so for a Intel Core Quad with 4gig and two SATA drives plus a new box and a beefy power supply. The price is right but I'm not sure if this is still a good idea.

Another option is to buy a bare bones, pre-installed system that has Box and CPU mounted and ready to go. But in briefly looking around I didn't find a lot of choice in this space from most of the component vendors, so this is probably not an option.

Get a Desktop Box from Dell or some other Vendor

Pricing a box that has similar components (minus extra drive and maybe additional memory) from Dell costs roughly the same, but there's less control over the components. It's amazing how cheap boxes have become. Effectively the pricing doesn't seem too much more than home build but I'd probably have to do some component swapping to get the high end drive and memory upgrades still. The advantage for me though is that I don't have to wait for components to show up and build the box and hopefully get a reasonably tuned box that I can just install the OS on and be done with.

Here's with what I came up with at Dell:


Dell Inspiron 530
Intel Core 2 Quad Processor Q6600 (8MB L2 cache,2.4GHz,1066FSB), Genuine Windows Vista® Home Premium Service Pack 1
Unit Price
$728.00

Genuine Windows Vista® Home Premium Service Pack 1 (will be dumped)

Memory
4GB Dual Channel DDR2 SDRAM at 800MHz- 4DIMMs

Keyboard and Mouse Bundles
Dell USB Keyboard and Dell Optical USB Mouse

Monitor
No Monitor

Video Cards
ATI Radeon HD3650 256MB

Hard Drives
500GB Serial ATA Hard Drive (7200RPM) w/DataBurst Cache™

Floppy Drive and Media Reader
3.5in Floppy Drive

Mouse
Mouse included with Keyboard purchase

Network Interface
Integrated 10/100 Ethernet

Optical Drive
16X DVD+/-RW Drive

Sound Cards
Integrated 7.1 Channel Audio

Warranty & Service
1Yr In-Home Service, Parts + Labor, 24x7 Phone Support

Sub total:$728.00

Looking over prices what it would cost me to build a box with similar components it's not going to be any cheaper, even if I end up replacing the drive with something faster later on. <shrug>

The question again is just how much can you trust a desktop box (especially from Dell and Inspiron) to last in a server environment today? I've had good luck with non-server boxes in the past with all of them lasting close to 5 years before they got obsolete. 

Get a Server Box from Dell or some other Vendor

While at Dell I also checked out the servers and prices there also seem reasonably decent for a mid range non-rack server. For a quad core 2.5ghz Xeon with a similar configuration (plus 2 drives unfortunately) I'd end up with something like this:


PowerEdge T300
Quad Core Intel® Xeon® X3323, 2.5GHz, 2x3M Cache, 1333MHz FSB, No Operating System
$1,666.00   Save $688 on select PowerEdge™ T300 servers through Dell Small Business.

Memory
4GB DDR2, 667MHz, 2x2GB Dual Ranked DIMMs

Primary Hard Drive
250GB 7.2k RPM Serial ATA 3Gbps 3.5-in Cabled Hard Drive

2nd Hard Drive
250GB 7.2k RPM Serial ATA 3Gbps 3.5-in Cabled Hard Drive

Hard Drive Configuration
Onboard SATA, 1-4 Drives connected to Onboard SATA Controller - No RAID

Floppy Drive
No Floppy Drive

Network Adapter
On-Board Dual Gigabit Network Adapter

CD/DVD Drive
16x DVD-ROM Drive, Internal, SATA

System Documentation
Electronic Documentation and OpenManage CD Kit

Chassis Configuration
Chassis with Cabled Hard Drive and Non-Redundant Power Supply

Hardware Support Services
3Yr Basic Hardware Warranty Repair: 5x10 HW-Only, 5x10 NBD Onsite

Power Cords
Power Cord, NEMA 5-15P to C13, wall plug, 10 feet

TOTAL:$978.00

which seems reasonable for a server. Components as a whole seem a little less powered than the desktop counterparts, but I suspect the Xeon processors are better optimized for server operation and heat dispersion for running in always on scenarios.

Unfortunately in various configurations I haven't been able to get exactly the config I'd like to see so I probably have to call Dell to fine tune a little bit if possible or at least ditch the third drive for a 10k boot drive.

Looking for Feedback

The environment will be almost purely for hosting my own Web applications, mostly ASP.NET applications running SQL Server as a data backend all local in this case plus a few older COM based Web applications. There are obviously more expensive solutions available especially in rack mount form but I'm incined to think that most of the server boxes are just badly overpriced for what performance they provide. Am I totally off my nut on that or does that seem reasonable at all?

I thought I'd take advantage of the vast pool of folks out there and I would love to  hear some thoughts on what's worked for you in small shop server installs focused purely on Web Servicing for small to medium level Web load.

kick it on DotNetKicks.com

by Rick Strahl at July 19, 2008 09:07 PM

Doug Hennig

Alex Feldstein

The best campaign for office evah!

I have seen the best campaign for office: Sean Tevis for Kansas State Representative. Not that I'd like to live in Kansas but if I did I would certainly vote for him.

Click on the link to see what he's all about. If you don't you'll miss something good.

Running for Office: It's Like A Flamewar with a Forum Troll, but with an Eventual Winner.

And yes, you can contribute if you like, starting at $8.34

(via Pharyngula)

by Alex Feldstein (noreply@blogger.com) at July 19, 2008 09:28 AM

July 18, 2008

F1 Technologies Blog

Thinking Outside the Box

As many of you know, right now I am working on a project with a lot of legacy FoxPro code. This week some team members decided to add a primary key to several of our old Fox tables. They chose an auto incrementing integer field for the primary key. Since they thought this change would be fairly harmless, they made it right on production data without running it through testing first.

A few hours into the work day (data changes are made after hours) people started getting “Field ID is ReadOnly” (2088) errors. The problem was discussed during our morning SCRUM and immediately the developers were ready to drop the field. You see there is SCATTER MEMVAR MEMO and GATHER MEMVAR MEMO code all over the place in the application and no one wanted to find each one and modify it to bypass the new ID field. I figured that we could handle it through the error handler using code like this:

IF e_no = 2088 AND 'ID'$UPPER(er_mess)
RELEASE m.id
on error do err_prg with ;
error(), ;
program(), ;
lineno(), ;
message(), ;
message(1)
RETRY
ENDIF


Releasing the id variable and retrying the command fixes the problem and if anyone
was relying on a different m.id value they were hosed anyway. So, good code in one spot to fix not so good code in many places.

During the writing of this blog entry, I looked up error 2088 in the help file and stumbled on SET AUTOINCERROR that I probably read about at one time when it didn’t apply to me and promptly forgot about. That would have been a much easier fix but less fun to blog about.

by Toni M. Feltman (noreply@blogger.com) at July 18, 2008 05:32 PM