jason (61)
michael (35)
andy (29)
daniel (27)
sharon (26)
leslie (22)
tulipgirl (22)
brian (13)
ben (12)
foomonkey (10)
aj (6)
joe lance (6)
pudding (6)
jeff (5)
agirloutthere (4)
beck (4)
beth (4)
c.davis (4)
davidm. (4)
joe (4)
phil w (4)
rebecca (4)
aaron (3)
hugo (3)
joedumas (3)
joshua (3)
kevin (3)
nj (3)
stelmodad (3)
I ate lunch with the leader of the free world. (42)
schappi, das kleine krokodil (38)
breastfeeding makes her uncomfortable (17)
Last Gulfshore Baptist Assembly post: (maybe) (17)
The Homebirth: Killian and Mommy (14)
gay marriage (13)
I'm Looking for a Joseph (10)
Oh yeah, we are having a homebirth (10)
Offical Whitehouse Photo (10)
target boycott (9)
Robertson vs. Chaves (9)
the new pair of shoes (9)
elliot james (8)
potty etiquette : bathroom etiquette (8)
Atlanta Vacation (8)
is this normal :-) (8)
cat stevens (7)
the teletubbies in my house (7)
Napolean Dynamite and Good Bye Lenin! (7)
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
Chatter
Chickamauga Lock Project
Computer
Ed Bryant for Senate
Environment
Family
Fox Den Lane
GulfShore Baptist Assembly
Homebrew
Hurricane Katrina
Movies
National Lampoon's European Vacation
Now Discover Your Strengths
Politics
Religion
Search
Signs
Things to do in Chattanooga
Torchbearers
Work
Mark
Andy
Faith Well Grounded
Michael
Jason
Beck
Brandywine Books
Irresponsible Journalism
OfficeSpam
The Dawn Treader
brian
beulah land
a small faith
Ron
motherhood monologue
TulipGirl
Chair of Bowlies
The D'oh's and Woo Hoo's of Life
Danny Sullivan
webdsb
Sit With Me Awhile
American Hiking Society SE
Tennessee Ticket
In the Lion's Den
Who cares!
Markchop
Capernwray Hall
Daveo
Riskey Busines
His Hill
Vin
Lisa
Holsby Brunn
Dawnuella
Dave & Susan
Mama Talk
Life Insurance Co
Viatical Life Settlements
Marriage Laws
Obama
Link Directory
A Submerging Church
Adiaphori
Agkyra
An Accidental Blog
Baylyblog: Out of our minds, too
Blog on the Lillypad
bLogicus
Bobby's Blog
Brandywine Books
Brittle Crazy Glass
Cacoethes Scribendi
Carrifex
Confessions of a Political Junkie
Considerable Grace
Darin M. Stone
Dawn Treader
Dignan's 75 Year Plan
Dimly Lit
DMC News
eMinistry Notes
Evangelical Diablog
even when my heart is . . . blogging
Every Blog Needs a Title
Existential Space
FirstFloorFlat
From the Front Lines
Full Force Gale
gid
Gideon Strauss
Got Doctrine
Granitepeaks
Grantian Florilegium - George Grant
Green Baggins
Half Pint House
Heretical Orthodoxy
Hey Nonny Nonny
infinite improbability
Intellectual Defenestration
Irate Nate's Weblog
iWestminster
J. D. Wetterling
Jack Yoest
Jollyblogger
Junkmail for Blankets
Kingdom Agenda
Le Sabot Post Moderne
lenscleanse
Life Under the Sun
Little Miss Reformed
Metaschema
Mine and Thine
Motherhood Monologue
Nihil Sine Deo
No Grasp of Your Reality
Not Another Blog
Now I don't want to get off on a rant here . . .
Nowheresville, USA
Oh me of Little Faith
Out of Egypt
PalmTree Pundit
Physics Geek Jesus Freak
Pilgrim At Ashley Avenue
PlanetGraham
plodblog
Postscript Posthaste
Problems are For Solving
Provocative Church
Pruitt Communications
Reasoned Audacity - Charmaine Yoest
Reformed Blacks of America
Reformed Chicks Blabbing
Reformed Ruminations
Reformed Women
renaej6's xanga site
Rob's Place: Orangejack Blog
Sacra Doctrina
Sacred Journey
Scott's Simple Story
Second Drafts
See Life Differently
Seminary Tychicus
Slaves of Righteousness
Sola Fide - Justified by Faith Alone in Christ Alone
Subcurrents Coast to Coast
Sword Saints
The 522
The Banty Rooster
The Kingdom - Greersights
The Last Homely House
The Lion Rampant
The Official Zavablog
The Parchment
The Round Table
The Tae Kwon Do Memoirs by Jerri Massi
Theologian
This Classical Life
To Live is Christ and To Die is Gain
Tolle, Blogge
Transformatum
Tulip Girl
Twenty Someone
Uglyhead
Wayfaring Pilgrim
What a Rummy Nation
Wittenberg Gate
Writer Mom
Writings of an Exceptional Being
August 11, 2006
gmail part 1
Today I am doing something I told myself I would never do. I am changing to a new "permanent" e-mail address. I have held out the last year or so for excite.com to catch up to google with their e-mail service but today I am saying enough is enough. The amount of spam that I have been getting is more than I want to handle. Also, their block list only allows me to filter out 50 domains or addresses, which is really lame. I guess the really lame part is that they are using the blocking of domains as a primary defense against spam.
In some weird way it is kind of sad to be moving onto a new email address. I have had my current e-mail address for almost 10 years now. It is hard to believe that e-mail has already been apart of my life for that long. It seems like yesterday when Leslie and I were all excited because someone was giving away free e-mail, and that we would be able to communicate while I was at school and she was at work.
I have been using gmail the last year for more business related stuff, but the e-mail service is just too good for me not to make the jump. I am going to keep my excite.com email address until the time seems right for me to pull the plug. I'm sure that will take a year or two until I get to that point. If you would like my new e-mail address then please leave a comment, and I will reply.
Also, if you would like a g-mail account then I would be glad to send you an invite. In post to come I hope to highlight some of the great g-mail features.
August 10, 2006
Horizontal vs. Vertical Database Design
I was at one point tasked with developing the argument against going with a vertical database design for a particular project. In my research one of the main reasons for going vertical was the null saturation percent of a database, which was caused by the number of columns added to support a very large eCommerce database. As some research projects go I never got a chance to finish, and because I have a feeling that one day in the future I will have to revisit this subject I am archiving what I had done out here on my blog.
The one neat thing that did come out of my research was this query that I wrote to get the null saturation of a MS SQL Server database. If you are curious about the null saturation of a SQL Server database then feel free to play with this query. Depending on the size of the database it could take up to 5 minutes or longer to run. I'm sure the query could have been written better, but it was written for research not as a production piece of code. Also, this query can not be run under the master database.
Download Query (the query in this file will make more sense because it still has some formatting to it)--Written By David Gidcumb
create
TABLE #NumColumnsRowsPerTable(
ID
INT
, Name varchar(100)
, Columns INT
, Rows bigINT
, TotalCellCount bigint
, NonNullCellsPerTable bigINT
, NullsPerTable bigint
)
create
TABLE #Columns(
Name varchar(100)
, NotNullCount bigint
)
--Number of Columns per table
INSERT
INTO #NumColumnsRowsPerTable
select
so.ID
, so.Name
, count(*)
, 0
, 0
, -1
, 0
from sysobjects
so
left join
syscolumns sc
on so.ID
= sc.ID
where so.type = 'U'
and sc.xtype
not in(35,36,34,99) --none
nullable types
group by so.name,
so.ID
Declare
@tablename varchar(100)
Declare
@columnname varchar(100)
Declare
@SelectCMD varchar(2048)
Declare
@SelectCMD2 varchar(2048)
Declare
@SelectCMD3 varchar(2048)
-- Declare the Cursor for getting Row Count
DECLARE
GetRowCount_table_names_cursor CURSOR FOR
SELECT
Name
FROM #NumColumnsRowsPerTable
OPEN
GetRowCount_table_names_cursor
FETCH
NEXT FROM GetRowCount_table_names_cursor
INTO
@tablename
WHILE
@@FETCH_STATUS = 0
BEGIN
set
@SelectCMD = 'Update #NumColumnsRowsPerTable set rows = (select
count(*) from xxxTABLExxx), TotalCellCount =(columns * (select count(*) from
xxxTABLExxx)) where name = ''xxxTABLExxx'''
select
@SelectCMD2 = REPLACE ( @SelectCMD , 'xxxTABLExxx'
, @tablename )
execute
(@SelectCMD2)
INSERT INTO #Columns
select sc.Name
, 0
from sysobjects
so
left join
syscolumns sc
on so.ID = sc.ID
where so.type
= 'U'
and so.Name =
@tablename
and sc.xtype not in(35,36,34,99)
Declare @NotNullCount
int
-- Declare the
Cursor for getting Null Count
DECLARE GetNotNullCount_cursor CURSOR FOR
SELECT Name
FROM #Columns
OPEN GetNotNullCount_cursor
FETCH NEXT FROM GetNotNullCount_cursor
INTO @columnname
WHILE @@FETCH_STATUS
= 0
BEGIN
set @SelectCMD
= 'update #Columns set NotNullCount =(select
count(xxxCOLUMNxxx) from xxxTABLExxx where xxxCOLUMNxxx is not null) where name
= ''xxxCOLUMNxxx'''
select @SelectCMD2
= REPLACE ( @SelectCMD , 'xxxTABLExxx' ,
@tablename )
select @SelectCMD3
= REPLACE ( @SelectCMD2 , 'xxxCOLUMNxxx' ,
@columnname )
print @SelectCMD3
execute (@SelectCMD3)
--select
@SelectCMD3
-- Get the
next table name
FETCH NEXT FROM GetNotNullCount_cursor
INTO @columnname
End
CLOSE GetNotNullCount_cursor
DEALLOCATE GetNotNullCount_cursor
Update #NumColumnsRowsPerTable set NonNullCellsPerTable
= (select sum(NotNullCount) from #columns), NullsPerTable =(TotalCellCount-(select sum(NotNullCount) from
#columns)) where name = @tablename
delete from #Columns
-- Get the next table name
FETCH NEXT FROM GetRowCount_table_names_cursor
INTO @tablename
END
CLOSE
GetRowCount_table_names_cursor
DEALLOCATE
GetRowCount_table_names_cursor
GO
select
* from #NumColumnsRowsPerTable
select
cast(((sum(NullsPerTable)*100)/sum(TotalCellCount)) as
varchar(100)) + '% Null Saturation' from #NumColumnsRowsPerTable
drop
table #NumColumnsRowsPerTable
drop table #Columns
Please feel free to ignore everything below the fold. It was a work in progress that is woefully incomplete.
HistoryIn the past horizontal databases where used exclusively in database design. But, as e-commerce gained in popularity the shortcomings of the Horizontal design began to become apparent. At first the solution was to just add new columns to support the unique attribute of each new product being added. As new columns were added problems unique to a Horizontal design were encountered.
They were:
1. Max column count exceeded (DB2\Oracle 1012 SQL Server 1024)
2. Null saturation of a table would start to exceed 90%
3. Constant Scheme changes due to adding columns
4. Performance issues are encountered when a table is very wide and only a few columns are returned in the query
Vertical Database Design
The solution to the e-commerce predicament was to change the design by taking the attributes (column names) in the horizontal design and making them keys in the vertical design. This change solved all the issues, which occurred under a horizontal design. Though there are problems that resulted which are unique to a vertical database design.
1. Queries written against the vertical design became cumbersome and error-prone.
? Multiple joins to pull back each attribute
? Maximum of 256 tables for each select statement(SQL Server) run query contained in [256 Table proof for Horizontal design.xls] as example
? See file query.sql as example of what needs to happen to pull back data.
2. Current Application development tools are designed for storing data object in a horizontal format. Data displayed in a horizontal format in a ADO.Net datagrid will make no sense to a client. Data would have to be converted from vertical to horizontal to make sense. Again see bullet 1.
3. Logical horizontal views must be written on top of vertical representation
? SQL Server view performance is poor when compared to teradata, and views execution plan must be recompiled when accessed.
4. Data is not strong typed do to the nature of the vertical design, which causes casts or converts to be needed for most attributes (columns) being returned. The biggest issue is that for a large enterprise it removes the natural typing of data at the database level, and instead moves to responsibility to each developer who inserts and updates the data-store.
The decision on weather to use a Vertical or Horizontal data design really depends on the scope of a project. The decision really needs to be made not only by the Data Analyst, but also the developers who are going to be interacting with the data store on a daily bases. Chances are that the Data Analyst left to their own doing will produce a vertical design. It is much easier to design because if a new item needs to be added all that has to be done is a simple insert into a table. But just because it is simple to design it does not mean it is the most appropriate design pattern to apply.
Reason's to Use a Vertical Database design
? Due to the constant adding of products in an e-commerce system i.e. Amazon, eBay and the like, new products with unique attributes are added by adding new columns, which describe the unique attributes of each new product a vertical architecture simplifies the issue for the data analyst. Issues that Vertical Design negate
1. Column count can exceed that 1024 for Microsoft SQL Server
2. Inserts and Stored procedure parameters can contain a maximum of 1024 columns
Reasons to Use a Horizontal Database design .
.
.
.
Views 256 tables is the max in a select statement
March 10, 2006
live.com
So, I just got my first search hit from Microsoft's new search engine. Off course I tested it in FireFox, but my first impressions weren't great. Live.comNovember 01, 2005
a must see movie clip
Microsoft Feels Your Pain : hereHat Tip: Eric
August 11, 2005
xp powertoys
For those of you who live their working life on a Windows XP box then you might want to check out some of the Windows XP power toys that Microsoft has to offer. I guess there are about a dozen of them that you can install. The two that I installed were the Alt-Tab Replacement and the Open Command Window Here Powertoys.
You can see the before and after screen shots of the alt+tab replacement to the right. The pictures are not to scale so the after picture is much more readable in real life. Also, the picture at the top looks really bad because I had to take a picture of it because I could not figure out how to do a alt+prit screen to take snap shot. The only problem I see with the alt tab replacement is that when a window is minimized it does not show as a screen shot of the image. So, pretty much you have to get out of the habit of hitting the windows+d or windows+m keys if you use them
The Open Command Window Here power toy is nice because you can just right click on a folder and select the Open Command Window Here option it will set the command line to that folder. No more cd c:\temp\blah\blah. Very nice.
July 14, 2005
Very Cool LCD
This is going to make multiplayer games even better. Though, if you were playing a graphics intensive game then you would have to have one heck of a vid card to handle both games running in two different process spaces. Yea, how would they do that? Maybe this was meant for web tv and not as a computer monitor. Heck, I don't know. It's cool anyway.
TOKYO (AP) - At last, a way to end squabbles over which TV channel to watch - without buying a second set. Sharp Corp. has developed a liquid-crystal display that shows totally different images to people viewing the screen from the left and the right.
One person can be surfing the Internet, using the display as a PC screen, while another watches a downloaded movie or TV broadcast. It also works for watching two TV channels: One person can watch baseball while another watches a soap opera.
The "two-way viewing-angle LCD," announced by the Japanese consumer electronics maker Thursday, will go into mass production this month and will cost roughly twice as much as a standard display.
Sharp will offer the product for worldwide sale, but the Osaka-based company will also supply other manufacturers with the displays for various products expected later this year, said spokeswoman Miyuki Nakayama.
Sharp says the technology offers many possibilities.
It could be used in cars so drivers can look at a map while the passenger watches a movie. Or at a store, sales clerks and clients can view different data on the same display simultaneously.
Another possible use is for billboards that display two kinds of advertisements depending on where viewers stand. The display will also work in the regular way and show a single image to all viewers.
One catch is that the images overlap if viewers stand right in front of the screen. Moving a few inches to the left or right may be necessary for a clear view.
Another drawback is that users will have to work out a way to listen to the sounds coming from the different channels. One solution is for one viewer to use earphones.
The technology appears to derive from Sharp's three-dimensional LCD displays, which work by projecting slightly different images to the right and left eyes without the use of special glasses. Sharp has been selling 3D laptops for a few years, aiming them mainly at engineers, architects and other professionals.
A U.S. startup, Deep Light LLC, plans to launch its own monitors next year that can present several different images to different viewers in 3D without glasses.
June 15, 2005
Window's XP bug....i think

Explorer with files that do not exist
So at work I have been bouncing around from machine to machine due to the fact that they wanted all the new contractors we were hiring to have desktop machines verse laptops, so I gave up my desktop for one of the standard developer laptops.
That when the trouble began.
When I was moving from my old machine I created a folder on my C drive called Desktop and I copied all the files and folders from my desktop into the new c:\Desktop folder. Then once I was done with the copy I zipped up that c:\Desktop folder and then burned it to CD.
Once I was on my new machine I copied that zip file to the desktop and extracted it. Several days later after I had gotten everything set up for development I started noticing that my windows explorer would start looking like this (See Figure 1):
The strange thing is that the folder icons in windows explorer would turn to Palm Trees, Search Icons, and a strange host of other images. Then if I tried to open any files I would get this error (See Figure 2): Notice the weird ASCII character in the path.

The filename, directory name, or volume label syntax is incorrect
Well after 4 new motherboards, three reimaged hard drives, 1 new hard drive, new memory, and a host of hardware and software techs working on the problem I was able to figure out the problem.
You can not have a folder called Desktop on your desktop. I am able to reproduce the issue on several other machines and I am extremely curious if others can reproduce the problem on 9x or XP SP2.
This is how I can reproduce the problem.
- Create a folder called Desktop on your Desktop
- Open Windows explorer
- Open either Word, Excel, notepad, notepad++ and save a file to your desktop.
- Go back to Windows explorer and either hit F5 or just navigate to a new directory.
What happens on your box?
May 22, 2005
google page rank plug-in for firefox
For those of you who are into google page ranks then I've got the plug-in for you. Here is a link. Its great because not longer do I have to go to third party web site to see mine or others page rank. It just displays it at the bottom right of the browser. Very cool!March 18, 2005
firefox stuff
One of the super aggravating things here at work is how tied we are to IE and everything Microsoft. I really hate it. Here at work we use SharePoint portal server as a document repository, not ideal, but it works. Up until this point I have always used IE to retrieve document from the portal because I hated having to log in every time I access the portal through firefox.
This is what I learned today.
network.automatic-ntlm-auth.trusted-uris "server1,server2,server3"
It?s that easy! Love it.
March 16, 2005
firefox plug-in
If you are a weather geek like I am and you are running firefox like you should be then check this out. It is a nifty plug-in that shows all kinds of customizable weather info. I have mine showing today?s and tonight?s forecast. Oh yea, it shows more than just US weather.
March 14, 2005
MSDN Event
Tomorrow there is a free MSDN event here in Chattanooga. I am planning on being there. Let me know if any of you geeks out there are going. Here is a link to sign up.
Tuesday, March 15, 2005 1:00 PM - Tuesday, March 15, 2005 5:00 PM (GMT-06:00) Central Time (US & Canada) Welcome Time: 12:30 PM Language: English-American
Theater - Regal Hamilton Place Mall
2100 Hamilton Place Mall Chattanooga Tennessee 37421 United States
General Event Information Products: .NET and Visual Studio.
Recommended Audience: Developer.
Session 1: WinForms - Produce, Extend, Enhance This session will school you in several powerful aspects of WinForms development that you may not already know. By using new techniques and best practices, you?ll gain more control over the user interfaces you create and save valuable time when developing your applications.
Session 2: ASP .NET ? Fixing that last bug in your Web App. In this forensics session you?ll learn best practices for how to effectively troubleshoot an ASP.NET application - for both Web Forms and ASMX Web Services. You see techniques for debugging, working with tracing, and using event logs.
Session 3: Visual Studio Team System ? A Technical Tour This session will detail an end-to-end lifecycle scenario that not only demonstrates major components of Team System, but also illustrates the value of having a customizable integrated process in breaking down information silos and providing friction-free flow of data between team roles.
January 19, 2005
blogging 101
This is my 101st. post.Well, I have been blogging since May 12th and have gotten to my 101st post. I have to admit that I was a bit nervous, when I first started blogging. I had secretly wanted to have a blog since Mark started his way back in 2001, but at the time I did not have a clue about web programming and really did not know where to start. Since then blogging has become something that can be done by anyone. You really don't have to have a technical bone in your body.
When I got to the point where I knew what I needed to know to start a blog there were several things about blogging that made me nervous, and subsequently kept me from starting for a good six or more months. I was in some way nervous about actually having a platform to speak my mind and having to defend my thoughts and notions. I was nervous that I would not keep it up, and I was nervous about people reading what I had written.
But, after my first few posts I grew increasingly more confident and comfortable sharing. I will only blog about so much though. There reaches a point in my family life and job life that I would never venture into. Still, for a good reason I might venture into areas that some people would be uncomfortable with. Though, I am not sure that has happened too much as of yet.
All that blabber aside here are a few things that I have found to be helpful regarding blogging. Yea, they are in no particular order.
- Find blogs of people who think like yourself and add them to your blog roll. Blog Rolls are a must. I am a lot less prone to blog roll someone than most. Some people have a blog roll down to their knees, which is okay, but please just make sure you have your blog roll broken out so that there is some semblance of order.
- Add two new folders to your FireFox bookmarks. Name the first on "possible blog roll candidate" and name the second "comments". I will talk about the "comment" folder in bullet 5. As for the "possible blog roll" bookmark, any time you visit a blog that interests you then add it to the "possible blog roll" folder. If you find yourself continually going back to that bookmark, then it is time to blog roll them.
- I found two good links recently on blogging from this post done by TulipGirl. This first link is the one I have had the most fun with. It is The Truth Laid Bear. Click here to sign up. The second link is here. It is a must read. He has done a great job of highlighting the ins and outs of blogging. Again, a must read.
- Read other peoples blogs and if they have said something that sparks much of any thought on your part, then leave them a comment.
- After making a comment on someone else's blog make sure you save the link in your comment folder, then at some point in the next day or so go back to see if they have responded. If they have not responded and the blog is not a blog that is worthy of the "possible blog roll" bookmark then delete it.
- Communities like blogexplosion are a great way to start out. The premise behind blogexplosion is, while logged in and surfing through blog explosion you earn credits for each blog you visit. Then those credits earned can be spent to have fellow bloggers visit your site. I only use blogexplosion when looking for new blogs to add to my "possible blog roll" bookmark; by the way, if you want to go and signup for blogexplosion then use me as a referral.
- FireFox FireFox FireFox. If you are using Internet Explorer then stop! For the love of all things clean and efficient, stop. You don't want to go blind, do you? Click here to get it.
Well, if anything in this post sparked a thought on your part, then please feel free to leave a comment.
January 09, 2005
top commenters script
Well, I finally got to do some coding that I have been wanting to do. Though, I was up till two in the morning doing it. I have added a PHP script on the left side of my main blog page. It is under the section ?Top Commenters?. The script pulls back the top twenty commenters that have URLs. It does not list the commenter that only leaves their e-mail address. It is not a perfect script. I would get into more detail, but I am not up for blogging about its idiosyncrasies. Let me know if you want a copy?December 30, 2004
new machine
I bought a new machine several weeks ago, and am just now getting around to posting the specs. This is the first machine where I was basically able to get what I wanted. If I could go back I would have upgraded to the 19 in. monitor but oh well.
- Intel Pentium 4 (3.2GHz) w/HT Technology and 1MB cache
- 1GB DDR2 SDRAM at 400MHz
- 17 in (17 in viewable) E173FPB Flat Panel Display
- 256MB Nvidia GeForce 6800 Graphics Card
- 80GB Hard Drive
- Microsoft Windows XP Professional
- 48x CD-RW and 16X DVD+/-RW
To go with the new machine, I have a cable internet connection and am running a wireless network. I am so glad to be off of dialup. I think I was the last of my friends to leave the ol? 56k modem. I think it will be good for Leslie also. She use to not be able to check her e-mail very often because by the time she got the old windows 98 machine booted and logged on, she would have to getup to take care of John David. Then, by the time she got back to it she would have lost the connection.
By the way Leslie made a post or two about the birth of Elliot. Go check them out.
December 15, 2004
google zeitgeist
I ran across this guys blog here and he had a link to this Google page here. Very cool. You can go back to 2001. I noticed that firefox was number 9 under the most popular queries in November.
It is funny how much the word Zeitgeist has become a part of my vocabulary over the last year or two. I guess I have only used the word in theological conversations, but now google is using it so it must be cool.
December 10, 2004
firefox stuff
If you have not downloaded it then get it here.If you have here are some FireFox goodies that you might be interested in.
- about: shows info on Firefox's version number, copyright, etc.;
- about:config reveals the Configuration Console, a repository
brimming over with scores of customizable settings;
- about:cache displays a summary of both
your memory and file cache,
with a link to full file listings;
- about:buildconfig lists the compiler options that were used to create your version of Firefox (and, since it's open source, anyone can compile a customized version);
- about:plugins enumerates your installed add-ons,
which can be quite numerous since Firefox
is designed to be modular and extensible; and
- about:credits is an "Easter egg" that includes the names of hundreds
of developers and testers who worked on the product.
Also, this is one I really like:
You can speed up the loading of Firefox on Windows XP by adding it to the programs that XP "prefetches."
To do this, right-click the Start Menu item for Firefox, or any icon you use to start Firefox, and open the Properties dialog box. Add a space plus /Prefetch:1 to the command line and click OK. The resulting line might look as follows:
"C:\Program Files\Mozilla Firefox\firefox.exe" /Prefetch:1A detailed explanation of XP's prefetch feature is provided by TechRepublic.
November 19, 2004
IE issue
In the project I have been working on since I change teams I have a SQL Stored Procedure that is run from an ASP .Net page. The stored proc takes well over ten minutes to run and some of the computers running the stored proc time out after 30 seconds of execution time. The error I get is the generic Internet Explorer ?The page cannot be displayed? error.
The issue is resolved by making a small registry change. Navigate to:
HKEY_CURRENT_USER\Software\Microsoft\Windows \CurrentVersion\Internet Settings\
Once there delete the Receive Timeout Double Word Value (REG_DWORD).
Then relaunch IE. Unless of course you downloaded this :)
October 18, 2004
sql server
Today I got bit from SQL server which a production app of mine is using. This is what happened. I have two temporary tables that I am creating in a SQL server query. The two tables look something like this:
When I had to decide on the column types I should use for my temp tables I just decided to use whatever the type of the base tables column was i.e. varchar (255). The problem with that logic is that this database is highly relational, so the type of value that you get back from that column is dependent on joining with a key in another table. The value coming back could be a string, float, decimal, integer or anything else that can fit into 255 characters.
My query where I used those two temp tables looked something like this:
The result from that query above looked like this:
What I expected to get back was this:
What happened was it concatenated the first two columns and did not add them. Coming from a Teradata background, I did not expect the concatenation symbol to be a ?+?. On the Teradata platform the strong concatenation symbol is ?||?. I was able to fix the issue pretty quickly by just making the data type of the temp tables integers. Like this:
I really like using the ?||? approach over the ?+? approach for concatenation because, for one, such an error would have been caught in the coding process and would have never made it to production. Plus using the ?+? just seams too object oriented and looks out of place in SQL.
October 01, 2004
part I: Structure of a URL
As I said in my last post, I am taking a web services class. There are two things that I have learned in this class that I probably should have learned while getting a CS degree from UTC. They are "how http requests are handled" and "what exactly makes up a URL".
Structure of a URLhttp://host[:port][path[?querystring]
I guess I never thought about URLs too much. I knew it could have a querystring and that depending on how the host server was set up you could either add the 'www' or not. What I find interesting is that you can specify the port that the URL will connect through. So both of these URLs are valid:
If you know something that I missed about what you can do with a URL, then please leave a comment?September 30, 2004
microsoft course 2524C
The last two days have been spent in training here at work. The class that I am taking right now is "Developing XML Web Services using Microsoft ASP.NET". It has been pretty good so far, but it is moving too fast. On top of that they are not letting us keep the class workbooks. I guess since this is a official MS course the company has to pay MS for the class in order to buy the book. Being that the company will be teaching this class to the next group they want to be able to just reuse the workbooks and not have to shell out more dough to MS. I guess that makes sense, but because of the speed of this class the workbooks would be very useful.
They are letting us keep one book. I have never been a fan of Quick Reference books. If I need a quick reference I just go to google. If I need to know how a technology works I get a book or take a class.
The picture to the right is of the book they are letting us keep.
September 29, 2004
asp.net
I am doing this post so that I can document the resolution to an issue I was having with a ASP.Net project I am working on.
Problem: Due to the way ASP.net handles garbage collection of objects when running a ASP.net application when the debug flag is set to true, in a production environment it is important to remember to have the debug flag in your web.config file set to false. The problem I was having was when I changed the debug flag to false my application would crash.
Narrowing down the problem: I was able to narrow down the problem to one line of code.
SDAdapter.Fill(dsDataSet,"TABLE1");
Solution: Evidently the Machine.Config file has a httpRuntime node whose ExecutionTimeout attribute has precedence over the CommandTimeout property of the DataAdapter. The two solutions to this issue was to either change the Machine.Config file, which is not a great idea or to add that node to the projects Web.Config file.
This is a link to a site with a good write up on this issue. here
September 28, 2004
September 14, 2004
got to love them spam bots
I am growing extremely annoyed with the spam I have been getting here lately on my blog. The funny thing is that it would start just when I am to busy to even delete it. I added a check box that has to be check inorder to post a comment. I am 100% sure that any half way decently written spam bot will not be fooled by this, but it is worth a try.
I plan on having a dynamically created image with a number in it, which will have to be entered into a textbox before a comment is entered. The problem is that my comment page, written by MT is not written in php. That being the case I can not use the code I wrote for another project I am working on. I am either going to have to sit down a learn perl or change blogging tools. Being that I am to lazy to change blogging tools, I guess I will have to learn perl. Erm...August 20, 2004
great hackers
This is just a great article! It has to be the best article I have read in many many months. So much so that I almost wet myself because I didn?t want to leave my cube until I finished it. I also forgot to eat my lunch and now I am really hungry. The article is by Paul Graham and is titled Great Hackers. I found this article while reading external monolog. I would give external monolog a trackback but I guess he is not using them.If you?re a programmer this article is a must read.
August 07, 2004
we were so poor
Alright, this post is deviating from were I had planned for it to go, but I guess that is ok.
First, this morning I remembered about the Monty Python skit "We were poor". I first read this when I was going to Chattanooga State. I think I was suppose to be doing a research paper on something, and as is always the case with the internet one thing lead to another and before I new it I as reading this skit. I remember sitting in the computer lab trying not to laugh, which didn't work because I had people in the lab looking at me like I was on something as I broke out into uncontrollable laughter.
I decided to print the skit so I could share it with Adam James who was taking an Accounting II class with me during a summer semester. I decided I should wait until the class had really gotten under way before handing it to him for him to read. It was really a mean thing for me to do, but I could not help myself. Before to long Adam was snorting, while trying to control his laughter. He had to make a quick exit from class before he totally lost it. As I remember it he came back to class after a few minutes and for some reason tried to continue reading it again, which was less successful then the first time.
Second, I was exporting my bookmark for the first time from FoxFire (very cool). After the export I decided to look at there syntax and notice they were using the <DD>, <DL>, and <DT> tags, which I new nothing about. I ended up at the W3.org site trying to figure out what they were used for, and it just so happened that the example of a way to use these tags was:
- MP:
- Aye. In them days, we'd a' been glad to have the price of a cup o' tea.
- GC:
- A cup ' COLD tea.
- EI:
- Without milk or sugar.
- TG:
- OR tea!
- MP:
- In a filthy, cracked cup.
- EI:
- We never used to have a cup. We used to have to drink out of a rolled up newspaper.
- GC:
- The best WE could manage was to suck on a piece of damp cloth.
- TG:
- But you know, we were happy in those days, though we were poor.
- MP:
- Aye. BECAUSE we were poor. My old Dad used to say to me, "Money doesn't buy you happiness."
It seems strange that the <DT> and <DD> tags aren't suppose to be closed. I would have thought that the W3 would have recommended that just to be XML compliant. From the docs it only looks like the <DL> should be closed. I also don't know if I like that the <DD> tag forces a line break. What if you wanted the author and the author text to be on the same line? I guess they did that so you would not need the <br> tag.
July 28, 2004
tar baby

It?s funny because now at work everyone is using the tar baby phrase to describe that project that they hate but just can?t get rid of it.
July 24, 2004
http headers
I am working on a php script to pull my blog roll from a database. My goal is to have my blog roll ordered on the page by last update date. So the last blog to post will be at the top. Also, if someone has not posted they will be dropped off the list after 3 months or so. Once they post again they will be added back to the list automagicly(ben thinks he might have invented this word but he is not sure).
I have about 90% of the script written. I seem to have made a assuption that was completly wrong. My understanding was that http headers were included with every page, but when I run this code it does not look that way.
Why is that?July 15, 2004
fits in my pocket
I forgot to mention that I went to the CHADNUG on Tuesday night. I guess there were between 40 and 60 people there. The topic of conversation was Longhorn and Eric did the speaking this time. The most interesting part of the talk was on XAML. I don?t feel like blogging about XAML but I will say it does seem interesting and way too proprietary.
The highlight of the evening was the swag. I ended up landing the View Sonic Pocket PC (V37). very nice?. The problem is I don?t know what to do with it. I really want to get a digital camera but at the same time I would like to keep the Pocket PC.
Because I have a MSDN Universal subscription I was previously given a View Sonic Pocket PC (V37)., but I sold it on eBay. From time to time I have regretted selling the thing, but I really have no use for it. Now that I have one again I am stuck in a quandary. Sell or not to sell. I think I am going to sell it because I already have the info set up on eBay, so selling it will be very easy. I guess I need to figure out which camera to get. I want something that fits in my pocket and takes great pictures.
Any ideas?
July 02, 2004
why am i still using MT? because I finally got it set up the way I wanted it.
It has been a while since I made a blog entry. I was using Premium-Host.com as my host and they changed servers on me, which made MT choke. Every time I would add an entry or someone would leave a comment the security on the file would change and the file could not be viewed. I would have to go in and change the security to get it to work again. I did find the answer to my problem:
My PHP output files need to be executable
If you are generating PHP files through Movable Type, some webservers will
require that the generated files have the execute bit set (in other words,
that the permissions are at least 755). By default all files created by
the system will have their permissions set to 666, and you will receive
errors about your files not being executable.
To fix this, add this line to your mt.cfg file:
HTMLPerms 0777
This will set the default permissions for all files created by the
system to 777; note that if you are using the HTMLUmask setting in
mt.cfg, the setting for HTMLPerms will be adjusted by the umask setting.
For example, if you have set HTMLPerms to 0777, and you set HTMLUmask
to 0022, all files created by the system will have permissions of 0755.
Once I did change to lakesite.net I did have one other issue with MT. That I never could resolve. I thought it was this was the answer:
I changed hosts, and now I can't log in to Movable Type.
When you change hosting providers (or just move to a different server at the same provider), it is possible that the two servers have different versions of the Berkeley DB library; this is the library that Movable Type uses to store your data. When you copy the DB files from one host to another, if the two hosts have different versions of Berkeley DB, the new host will not be able to read the files from the old host.
This can be fixed by converting the DB files over to the format used by the new library version; this is accomplished in several different ways, depending on the Berkeley DB versions involved. The files that need to be converted are all of the files in your db directory whose filenames end in either .db or .idx (the .lock files do not need to be converted).
The following steps require that you have shell access to your server, and imply that you are somewhat familiar with running Unix commands; if this is not the case, you should ask your hosting provider to help you.
- First, and most important, back up your DB files; you need to create backup copies of all of the files in your db directory. (If you do this by downloading the directory, make sure to transfer it in binary mode.)
-
The easiest way to convert the DB files is to use the db_upgrade program;
unfortunately this is not available on every server, but it may be available
on yours. To find out, log into your shell account, and type the following at
your shell prompt (<db_dir> is the path to your db directory):
$ cd <db_dir> $ db_upgrade *.db *.idx
If your server has db_upgrade, this will convert all of your DB files over to the new format. If this works, you're done, and you can skip the following steps; Movable Type should now work.
-
If the above db_upgrade command does not work--for example, if you get an
error saying that
command not found--then you will need to use the following method to convert your data. This method dumps out all of the data from your DB files, then loads it into new versions of those DB files.The program used to dump the contents of your DB files is called either one of two things: db_dump, or db_dump185. To determine which program you need to use, first try running the following command in your shell account:
$ cd <db_dir> $ db_dump author.db
If this command is successful, you will see a screenful of data dumped out. If it is unsuccessful, you will get an error message; in this case, try using the following command:
$ db_dump185 author.db
Again, if the command is successful, you will see a screenful of data. If this also fails, then you will need to contact your hosting provider.
-
Now that you have determined which db_dump program to use (either db_dump
or db_dump185), you can dump all of the data from your old DBM files and
load it into new versions of those files. To do that, try the following
(substitute db_dump185 instead of db_dump, if necessary):
$ db_dump -f author.db.data author.db $ mv author.db author.db.old $ db_load -f author.db.data author.db $ chmod 666 author.db
You will need to run these four commands for each file in your db directory whose name ends in .db or .idx. After you have done so, you're done, and Movable Type should now work.
But it wasn't. Andy and I did everything we could to save the old entries (and I really thank him for all the hard work) but in the end I just had to start fresh and manually reenter the old post. One good thing is that I am now using MySQL vs. Berkley, which I like. Oh yea all the comments that were added previously were lost. Well?I actually have them in the Berkeley format. I might eventually go and dig all the text out and post them back? I doubt it though.
June 17, 2004
Blind Spot
Maybe I am just blinded by the little programming world that I live in but it seems to me that this index could not be correct. I have to say that I do not know one programmer that is getting paid to program in c. I think I know a few c++ programmers but not c.
May 19, 2004
blogging tool regrets
At this point I am a bit bummed out that I installed Movable Type. Before installing it I searched around for a blogging tool written in php, and never really found one that was worth installing. Within just a few days of getting MT installed Michael installed wordpress. I have to say at this point I am torn between the two blogging tools. I think I am going to stick with MT for a while and them move to WP.
Posted by J. David at May 19, 2004 10:15 PM