Robs Programming Junk
Welcome to my programming blog!With some luck you will find some tasty nuggets of information here. If you do find something please post a comment on where or how you used it. I like to see what sort of impact my work has on others.
Thursday, April 27, 2006
While the article
CIO Blogs - Could "Found Code" Cripple Your Company? | makes some valid points, what they don't mention is the impact of not using these types of resources. When you ask most developers what they do when they hit a wall on a problem they almost always say "Go to the web". Frankly, it's what the damn thing was invented for anyhow.
Management is often unwilling to hear (or accept) how long something will really take to develop. The other side of it is that many developers lack the skill to develop the same piece of code. This is not a fault of the hiring process or the developer, it's just a fact. Developers in many cases are like doctors, some work in the general field of coding, some are specialized surgeons. You wont find a developer that knows everything, just too much out there.
I think the mind set of management is what needs to change here. I think that reasonable and acceptable use of searched code could be used in most environments. Most developers (who develop for GPL projects) generally don't have an issue with someone using their brilliant code somewhere else. The problem is if they want to sell it. Most companies that develop software do it for internal purposes vs. producing a software product they outright sell. Blackberry comes to mind where "sold for profit" bit them in the ass. If blackberry was using the same type of code in their accounting software, nobody would have known, or cared. Developing an "acceptable use" policy would be a preferred method for handling this type of issue vs. overreacting and saying "don't use it". With that sort of policy you'd end up extending deadlines and your developers would adopt a "don't ask, don't tell" policy.
CIO Blogs - Could "Found Code" Cripple Your Company? | makes some valid points, what they don't mention is the impact of not using these types of resources. When you ask most developers what they do when they hit a wall on a problem they almost always say "Go to the web". Frankly, it's what the damn thing was invented for anyhow.
Management is often unwilling to hear (or accept) how long something will really take to develop. The other side of it is that many developers lack the skill to develop the same piece of code. This is not a fault of the hiring process or the developer, it's just a fact. Developers in many cases are like doctors, some work in the general field of coding, some are specialized surgeons. You wont find a developer that knows everything, just too much out there.
I think the mind set of management is what needs to change here. I think that reasonable and acceptable use of searched code could be used in most environments. Most developers (who develop for GPL projects) generally don't have an issue with someone using their brilliant code somewhere else. The problem is if they want to sell it. Most companies that develop software do it for internal purposes vs. producing a software product they outright sell. Blackberry comes to mind where "sold for profit" bit them in the ass. If blackberry was using the same type of code in their accounting software, nobody would have known, or cared. Developing an "acceptable use" policy would be a preferred method for handling this type of issue vs. overreacting and saying "don't use it". With that sort of policy you'd end up extending deadlines and your developers would adopt a "don't ask, don't tell" policy.
Wednesday, April 26, 2006
Links for .NET security info
Links for .NET security info on 1.1 framework.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/v1securitychanges.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/aptcatypes.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/v1securitychanges.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/aptcatypes.asp
Monday, April 24, 2006
Well this was cool. Where else can you find 195 books on programming. Some of the basics are in here. Hey, what can you really expect for free.
TechToolBlog � 195 Free Online Programming Books - Web Programming focusing on Marketing the world wide web
TechToolBlog � 195 Free Online Programming Books - Web Programming focusing on Marketing the world wide web
Thanks dave, this is a great piece of code however more blog entries showed there was a flaw (at least for my milage). Saved me some time though. Why microsoft doesnt have this natively in the .net framework is also beyond me. The sample below is my slightly modified version which does do the conversion correctly.
Convert String to Byte Array
Imports System.Text Public Shared Function ConvertStringToByteArray(ByVal stringToConvert As String) As Byte() Return System.Text.Encoding.ASCII.GetBytes(stringToConvert.ToCharArray()) End Function
Convert String to Byte Array
Sql Server Row Size Limit - Rick Strahl's WebLog
Did you know that SQL server had an 8K row limit? I didn't either until Michele ran into the problem and I started researching it. What a load of crap. Thanks Microsoft.
Did you know that SQL server had an 8K row limit? I didn't either until Michele ran into the problem and I started researching it. What a load of crap. Thanks Microsoft.
Friday, April 21, 2006
Microsoft has made Visual Studio Express completely free permanantly. Their FAQ now states
I can't help but think that this was all forged by the GNU project and FSF with years of free software.
10. How much will these products cost?
Effective April 19th, 2006, all Visual Studio 2005 Express Editions are free permanently. This pricing covers all Visual Studio 2005 Express Editions including Visual Basic, Visual C#, Visual C++, Visual J#, and Visual Web Developer as well as all localized versions of Visual Studio Express.SQL Server 2005 Express Edition has always been and will continue to be a free download.
VB.NET: Base 36 Function
My office frequently uses BASE36 for naming of transactions and files. This is a base36 function in VB.NET. Simply passing in the integer will return the BASE36 value for it. I wrote this function as I was not aware of any way to natively do this in .NET. I have searched the net high and low for something like this but wasnt able to find one. Hopefully somone else will make use of it.
include_once('/home/rwmech/public_html/robsprogrammingjunk/geshi/geshi.php');
$source = <<
Private Function Base36(ByVal intNumber As Int32) As String
Dim intNum As Int32
Dim strSum As String
Dim intCarry As Int32
Dim intConvertBase As Int32 = 36
strSum = ""
intNum = intNumber
Do
intCarry = intNum Mod intConvertBase
If intCarry > 9 Then
strSum = Chr(intCarry + 87) + strSum
Else
strSum = intCarry & strSum
End If
intNum = Int(intNum / intConvertBase)
Loop Until intNum = 0
Return strSum
End Function
END;
$geshi = new GeSHi($source, 'vbnet');
$geshi->set_header_type(GESHI_HEADER_DIV);
$geshi->set_overall_style('font-family: Courier New , Courier, Monospace; font-size: 8pt; word-wrap:break-word;');
$geshi->set_comments_style(1, 'color: #006600;');
$geshi->set_comments_style('MULTI', 'color: #006600;');
$geshi->set_header_content('Code Example © Robert Mech. May be used freely as long as credit is given to the source.');
$geshi->set_header_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;');
$geshi->set_footer_content('If you use this code, please make a comment on the blog!');
$geshi->set_footer_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-top: 1px solid #d0d0d0; padding: 2px;');
echo $geshi->parse_code();
?>
include_once('/home/rwmech/public_html/robsprogrammingjunk/geshi/geshi.php');
$source = <<
Private Function Base36(ByVal intNumber As Int32) As String
Dim intNum As Int32
Dim strSum As String
Dim intCarry As Int32
Dim intConvertBase As Int32 = 36
strSum = ""
intNum = intNumber
Do
intCarry = intNum Mod intConvertBase
If intCarry > 9 Then
strSum = Chr(intCarry + 87) + strSum
Else
strSum = intCarry & strSum
End If
intNum = Int(intNum / intConvertBase)
Loop Until intNum = 0
Return strSum
End Function
END;
$geshi = new GeSHi($source, 'vbnet');
$geshi->set_header_type(GESHI_HEADER_DIV);
$geshi->set_overall_style('font-family: Courier New , Courier, Monospace; font-size: 8pt; word-wrap:break-word;');
$geshi->set_comments_style(1, 'color: #006600;');
$geshi->set_comments_style('MULTI', 'color: #006600;');
$geshi->set_header_content('Code Example © Robert Mech. May be used freely as long as credit is given to the source.');
$geshi->set_header_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;');
$geshi->set_footer_content('If you use this code, please make a comment on the blog!');
$geshi->set_footer_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-top: 1px solid #d0d0d0; padding: 2px;');
echo $geshi->parse_code();
?>
BLOGGER: You can use GeSHi in your blogger posts
You can use GeSHi in your blogger posts. Simply use your own PHP server and install GeSHi. Then you can use the following code to post code snippets to your blog.
A few notes:
1. You must tell blogger to not convert your line breaks. If you don't it'll screw up the PHP code.
2. You must have your blogger set to create an index.php or the like.
3. Change the 'php' below to the proper language based on what you're posting.
<?php
include_once('geshi/geshi.php');
$source = <<<END
// SOURCE CODE HERE
END;
$geshi = new GeSHi($source, 'php');
$geshi->set_header_type(GESHI_HEADER_DIV);
echo $geshi->parse_code();
?>
A few notes:
1. You must tell blogger to not convert your line breaks. If you don't it'll screw up the PHP code.
2. You must have your blogger set to create an index.php or the like.
3. Change the 'php' below to the proper language based on what you're posting.
Code Example © Robert Mech. May be used freely as long as credit is given to the source.
<?php
include_once('geshi/geshi.php');
$source = <<<END
// SOURCE CODE HERE
END;
$geshi = new GeSHi($source, 'php');
$geshi->set_header_type(GESHI_HEADER_DIV);
echo $geshi->parse_code();
?>
If you use this code, please make a comment on the blog!
LINUX: wget
I'm always forgetting this command and it's very useful for getting downloads to you linux box quickly.
Usage: wget [OPTION]... [URL]...
Thursday, April 20, 2006
FOXPRO: Defeat the error handler
include_once('geshi/geshi.php');
$source = <<
ON ERROR *
END;
$geshi = new GeSHi($source, 'visualfoxpro');
$geshi->set_header_type(GESHI_HEADER_DIV);
$geshi->set_overall_style('font-family: Courier New , Courier, Monospace; font-size: 8pt; word-wrap:break-word;');
$geshi->set_comments_style(1, 'color: #006600;');
$geshi->set_comments_style('MULTI', 'color: #006600;');
$geshi->set_header_content('Code Example © Robert Mech. May be used freely as long as credit is given to the source.');
$geshi->set_header_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;');
$geshi->set_footer_content('If you use this code, please make a comment on the blog!');
$geshi->set_footer_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-top: 1px solid #d0d0d0; padding: 2px;');
echo $geshi->parse_code();
?>
$source = <<
ON ERROR *
END;
$geshi = new GeSHi($source, 'visualfoxpro');
$geshi->set_header_type(GESHI_HEADER_DIV);
$geshi->set_overall_style('font-family: Courier New , Courier, Monospace; font-size: 8pt; word-wrap:break-word;');
$geshi->set_comments_style(1, 'color: #006600;');
$geshi->set_comments_style('MULTI', 'color: #006600;');
$geshi->set_header_content('Code Example © Robert Mech. May be used freely as long as credit is given to the source.');
$geshi->set_header_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;');
$geshi->set_footer_content('If you use this code, please make a comment on the blog!');
$geshi->set_footer_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-top: 1px solid #d0d0d0; padding: 2px;');
echo $geshi->parse_code();
?>
This disables the fox error handler. It fixes just about everything. :)
Wednesday, April 19, 2006
ALL: MSXML Memory Leaks
I recently ran into a problem with MSXML and memory leaks. If you repeatedly call it from within FoxPro with many SelectNodes() in there you'll certainly run into a problem. Go with the MSXML6 or higher where it doesn't have nearly as many memory leaks. It's documented on MSDN, but was not easy to find. http://support.microsoft.com/kb/328998
View my portfolio at iFreelance.com
Hire MechSoftware for Quality Assurance (QA), Database Programming, and Security Design/Programming
Find QA Freelance Jobs at iFreelance.com
Hire MechSoftware for Quality Assurance (QA), Database Programming, and Security Design/Programming
Find QA Freelance Jobs at iFreelance.com
Recent Posts
Aptana, FTP, WebDav, PDT and Eclipse - Why cant FT...
Dynamic Query Parameters for Jasper Reports
IE8 Developer Tools
Portable Ubuntu - Take Linux With You
Quote Curling Function
Same Blog, New Look
On the fly JavaScript Packing - Speed up your site...
Super Simple AJAX Forms with jQuery and JSON : dat...
Super Simple AJAX Forms with jQuery and JSON : web...
Super Simple AJAX Forms with jQuery and JSON : Int...
Archives
01/01/2005 - 02/01/200502/01/2006 - 03/01/2006
03/01/2006 - 04/01/2006
04/01/2006 - 05/01/2006
05/01/2006 - 06/01/2006
09/01/2006 - 10/01/2006
10/01/2006 - 11/01/2006
11/01/2006 - 12/01/2006
12/01/2006 - 01/01/2007
04/01/2007 - 05/01/2007
05/01/2007 - 06/01/2007
01/01/2008 - 02/01/2008
02/01/2008 - 03/01/2008
05/01/2008 - 06/01/2008
06/01/2008 - 07/01/2008
08/01/2008 - 09/01/2008
09/01/2008 - 10/01/2008
11/01/2008 - 12/01/2008
12/01/2008 - 01/01/2009
01/01/2009 - 02/01/2009
02/01/2009 - 03/01/2009
04/01/2009 - 05/01/2009
05/01/2009 - 06/01/2009
07/01/2009 - 08/01/2009
01/01/2010 - 02/01/2010
My Software
Blinky - GBPVR PluginPhotoCopy - GBPVR Plugin
QTC - Quick Test Case
rBoop - Rob's Timers
Programming Links
C# FormatterNSIS
Other Links
Damn Small LinuxSites I Manage
Do it yourself SEO. Cheap.Pet Supplies
Dog toy of the month club
SqueakerZ pet Deals
Geocaching Community
Hitch hiker Tracking