Previous Next
- - 1
- - 1
- - 1
bEmDmmLFmyHcQNzAI - pbueatkr - 1
qafwnl <a href="http://gvqgwcesdhow.com/">gvqgwcesdhow</a>, [url=http://uvsnfhgpbejn.com/]uvsnfhgpbejn[/url], [link=http://kfssnlfhvvaw.com/]kfssnlfhvvaw[/link], http://jfglfnsfjsth.com/
rlUSGRiijf - shnooelzhy - 2
3VkHD7 <a href="http://skfkuzzwbibd.com/">skfkuzzwbibd</a>, [url=http://ffupnxbxhvnn.com/]ffupnxbxhvnn[/url], [link=http://zkomninyxzuw.com/]zkomninyxzuw[/link], http://rsaluqghkwom.com/
hi - sosoq - 4
what this for
emacs file - Mike - 2
I've recently rediscovered the (occasional) joy of emacs. I have put my .emacs file up on the site so I have access to it. Not much exciting in here except for a command to untab an entire buffer, some commands for writing out shell files for C++ classes and a couple of functions for working with xml files.
http://www.janitorprogrammer.com/myemacs.txt
Nothing incredibly earth shattering here, but useful things that are helpful for me to have in one place.
Code Monkey/Community - Matt Heusser - 2
Hi There, Mike. I saw a post you made on joelonsoftware and went to this website.
A couple of things -
1) If you think of yourself as a code monkey, you might enjoy this song -
http://www.jonathancoulton.com/2006/04/14/thing-a-week-29-code-monkey/
You can download the MP3 for free, but I liked it so much that I purchased the song off of itunes, just to give kickback to the author.
2) I really enjoy the maintenance programming website you have here. You might like www.xndev.com or the SW-IMPROVE yahoo group as well.
Regards,
Creating GUIs in Python - mike - 2
I put up a small toolkit for creating GUIs in Python. It is a VBA file that is useable from within Excel (and hopefully VB 6) that generates a python class using Tkinter based on a vb dialog.
Quick Kill Project Management - mike - 2
Good summary of things to do when crunch time hits and program managers are nowhere to be found...
http://www.ddj.com/dept/cpp/189401902?cid=RSSfeed_DDJ_Cpp
get file names from source safe report - Mike - 3
Just a simple script I wrote to get filenames from a Visual Source Safe report
mylines = file("c:\\ssreport.txt","r").readlines()
for currline in mylines:
if currline[0] == "*":
print currline.strip("* \n")
Your Janitor Programmer Icon - RS, JT Progr4 - 1
I think it would be cool to have your Home Page icon sweep the floor and have hex numbers and reserved words (like if, else, while) float up off the floor and settle away from the broom.
That would be very cool!
Thanks for the site dedicated to those who handle steaming piles of spagetti code daily!
Cheers!
:)
ch for Win32 - RS, Janitor_Prg4 - 1
Followed a Google link here, searching for a SLOC counter, and want to get and install the 'ch' tool for Win32.
The Name on the link said the installed it, and here I am.
Thanks!
L8r!
Code Monkey and Proud - Mike - 1
I've seen the term "code monkey" thrown around a lot lately. It's a rather pejorative term that, given it's recent uses, I believe is a good approximation for "technically adept" The following most recent example I've seen in a post by somebody named 'bg'
http://discuss.joelonsoftware.com/default.asp?joel.3.320584.29
Given the original post I'll assume that
A) This isn't the only interview question
B) The job requires the ability to write C efficiently.
When exactly did being technically adept become worthy of insults in this profession? What does that make all the people that come by and ask the code monkey many questions on a daily basis?
autopsy - xix - 2
when i use autopsy on a floppy (i have not tried a hard disk) I can only extract strings how can I see the deleted files
thanks
Basic Ajax Kit available - Mike - 1
I put together a basic AJAX kit that I think would be a helpful starting place for people new to the technology or people that have heaping piles of spaghetti for their AJAX code on the client. This framework uses one simple object with three properties and two methods to encapsulate the essence of AJAX.
And really, how long could a site named Janitor Programmer not have AJAX available?
Just go to the home page and click on Simple AJAX Kit in the tools section
It's not Rocket Science... - Mike - 1
It seems almost everybody has already chimed in on this:
http://fullcoverage.yahoo.com/s/cmp/20051120/tc_cmp/174400424
It's not the Ajax is rocket science thing that bothers me so much (I spent 40 minutes last night putting together a workable Ajax framework for most applications I would want to write. Granted it's rough around the edges in a lot of ways, but I can't imagine getting the basics real rocket science, like thermodynamics, in 40 minutes) but the implied message in the interview that a great majority of software developers are dumb. Hell, if I was in management and I thought the majority of my development staff thought Ajax was rocket science, I would outsource development work in about 10 seconds flat.
Really, instantiating an xmlhttp object and populating the contents of a div tag (or another html element) with results from a serverside page is not "incredibly difficult" as the interview states. I'm guessing this is the same type of thought process that makes everybody say "wow, cool" when the .NET training folks wave their .NET magic wands to tell developers they can develop web applications without any knowledge of how the protocols work. Somebody actually said that to us in a training session a couple of years ago. He went on to say how he "hated writing code". I couldn't help but think "no wonder you are doing training sessions instead of developing software." It was really, really painful to hear. I have always, at some point, found it necessary to learn how things work under the covers.
I certainly don't want to discredit Microsoft's impact on this technology, but the current opinion that it is rocket science? I think that is a good litmus test for whether you should consider yourself a serious practitioner of software development. If you think Ajax is rocket science, you are NOT a serious software developer. This is not to say that it is not difficult. Depending on the type of functionality you are trying to cull from your application, it may be hard. But at its core, Ajax is pretty simple. And its not even that new. Well, except for the pretty new acronym.
I love Google - Mike - 1
So many people talk about how great Google is. I just had to share one personal story. Yesterday we had a customer that had one machine that wouldn't bring up our custom menu on the right click menu. We explored all the usual avenues, other addins installed causing conflicts, our COM addin not being properly registered, macro security and so on. All those looked fine. So, at a loss since everything looked the way it should, I searched google for the following "excel 2003 problem add right click menu item" and went to the Groups section. There at the bottom of the first page was the following link
http://groups.google.ca/group/microsoft.public.excel.programming/browse_thread/thread/96f58d70de2ae6b8/2142c2d650ea90a0?lnk=st&q=excel+2003+problem+add+right+click+menu+item&rnum=10&hl=en#2142c2d650ea90a0
We passed this off to the customer and that did the trick. Everybody is happy and I've learned yet another thing I didn't ever want to know about Excel...
working with multiple versions of .NET and we - Mike - 1
We do some application work that requires us to have the 1.1 and 2.0 versions of the .NET framework running for different web applications. We develop on XP boxes and one issue with IIS is that web services in 1.1 won't work if you hit the web services in 2.0 first. Since IIS 5.0 doesn't have application pools, you can't put the web services in different application pools, which is the recommended solution for IIS 6.0.
To this end I created a small VBScript that I put in my startup folder so it runs everytime the machine reboots. This script mimics bringing up the 1.1 and then the 2.0 services in the browser. Doing so allows both web services to run alongside each other without getting the "Server Application Unavailable" error that happens if you hit the 2.0 service first and then the 1.1 service..
user="myUserName"
pw="myPassword"
server="myServer"
oneOneUrl = "http://" + server + "/myOneOneService/myOneOneService.asmx"
twoOhUrl = "http://" + server + "/myTwoOhService/myTwoOhService.asmx"
set webconn = CreateObject("MSXML2.XMLHTTP")
webconn.Open "GET", oneOneUrl, False, user, pw
webconn.send
webconn.Open "GET", twoOhUrl, False, user, pw
webconn.send
Microsoft's Python Scripts - Mike - 1
Microsoft has a whole page of python scripts to make peoples lives easier. Lord knows hard core windows administrators can use all the help they can get!
http://www.microsoft.com/technet/scriptcenter/scripts/python/pyindex.mspx
I don't get the logic... - Mike - 1
After seeing that Monad will not be a part of Longhorn, http://p102.news.scd.yahoo.com/s/zd/20050609/tc_zd/153779, it seems there isn't much left that will be really new and exciting in that release. That is all fine and well and on some level expected, but the one thing I do not get is this
"We are changing the command line environment in Windows using a new object-oriented command line technology, code-named 'Monad,' that will exceed what has been delivered in Linux and Unix for many years," said Muglia in the interview. "It (Monad) will take three to five years to fully develop and deliver."
Now, this makes several assumptions. One is that Monad will in fact deliver on what it is promising. Two is that the shells for Linux and Unix will be standing still over the next five years. Three is that I don't understand how something that is not available will blow away stuff which you can get today and that has a very proven track record.
As an aside, one can use perl, python or a variety of other 'shells' for Windows. I don't see how Monad will get you any further than these solutions. If the big deal is that it is object oriented and can plug into native windows API's and such, well, I can almost do all this already with VBScript. With a python based shell using the win32all package I CAN do this already.
Heck, there is a python cookbook recipe that would give you the basics of monad without all the fanfare. It could use some polish, but hey, at least this is available today :-)
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/279407/index_txt
VS.NET 2005 debugging tip - Mike - 1
I was debugging a VSTO project today and there was an error on opening a workbook. In order to drop into the debugger I stuck a message box in before the offending code, switched over to VS.NET and attached the debugger to the Excel process that had my workbook listed. Set a breakpoint at the line after the messgae box, click OK on the message box, and you drop right into the debugger.
Not very pretty and probably not the "right" way to do it, but fast and effective.
New Tools Section - Mike - 1
I just added a tools section to hopefully help with some of the more mundane tasks people deal with, like finding out which files talk to which files. I'd seen other people request such a thing in various places and I had this more or less done, so I figured I would add some polish and make it available.
On the Genesis of Bad Code - Mike - 1
I was thinking about this the other day and I've had several discussions with people about this recently. This especially hit home with a project I've been working on. The schedule it tight, all the developers involved are working crazy hours and amzingly, for the most part, everything is humming along. But there are parts of the code, mine included of course, that could stand to use some refactoring. I was thinking about how some of this came about, and here is one way. In my C# editor I can type the following
myObject.Click +=
and the editor kindly adds in
myObject.Click += new EventHandler(myObject_Click);
and if I hit the TAB key twice at this point, the correct method is added to myObject's click event and myObject_Click is generated for me AND the cursor is moved down to start editing the function. How simple! WOOHOO!
Well, at this point, I more or less know the logic that needs to go into the click handler (I sometimes think before coding), so I add it in, as the editor was kind enough to get me going. With a couple of tweaks, I can get it working and move onto the next one. Well, I need to add another event for another object that does a similar thing. I'm not sure how similar. It's close enough that I can copy and paste myObject_Click's body and make the necessary tweaks, but far enough away where designing a more generic routine will take some real time. Plus, I have two more objects that need similar but not exact code. So, I type newObject += <TAB><TAB>, copy, paste, update, test until it works and repeat two more times.
At this point, everything works as far as the user would be concerned. Given that the project manager has been hounding me for a couple of days because she has a demo to give by the end of the week, I make the mistake of showing her how it is and getting some feedback. She looks and it does what she needs, so the next thing that comes out is "Great, now that you have that done, can you add features X, Y and Z. Oh, and make the background a lighter shade of mauve. And Kevin found this bug over here, but he doesn't have time to fix it, so can you take a look. And Larry has a potential sale with super mega corp but they need a customization on our Apple IIE version. I know you can knock that out pretty quick. Thanks."
Since these things usually are LIFO in order of importance, we unwind the stack by digging out the Apple IIE version of the code and getting the customization of super mega corp done (for which Larry will get a vacation to the Bahamas and I'll get a nice note saying "Great Job. We couldn't have done it without you!!" Why the two exclamation points?). Then we fix Kevin's bug because we like Kevin and hey, he's swamped. Or he just knows how to say no. Or whatever. I just want the bug fixed because nobody hates bugs more than I do. Then, since my brain is fried and Tuesday has already become Thursday, we tackle the horribly difficult and important mauve problem.
Now it's Friday and we have a choice to make. Do we make code that works, but may not later, more maintainable, or do we start tackling X, Y and Z? This is especially interesting because this whole exchange started with "Great, now that you have that done..." This gets even MORE interesting because there will be a status meeting next week, and I can go into it saying "Well, I got started on X" when my boss knows I could have gotten X, Y and Z done by the status meeting given that I would have started on Friday, or I say "I got X, Y and Z works except if you click on the Flooble button while holding down the shift key, which can be fixed by the end of the day". I know my boss's boss is applying pressure to get things wrapped up and shipped, so, not wanting to make my boss look bad, I go with option B.
And so a working but not optimally refactored piece of code hangs around. Features X, Y and Z get put in, and Y is a repeat of the four click event handlers. Unfortunately for me I'm not a super whiz bang guy that can crank out a reasonably elegant large application without some refactoring. I've actually worked with a couple of people like this over my career. At least, they do a better job of it than I do. The code more or less goes from brain to keyboard with little need for alteration, much like an Eddie Van Halen guitar solo. I'm more of the Randy Rhoads type. He would work painstakingly, writing and rewriting his parts until they were to his liking. I like to think that I can do a reasonable first pass, but I'm never, ever happy with my first pass and take the time whenever I can to go back and make it better.
I probably need to go read Death March: The Complete Software Developer's Guide to Surviving 'Mission Impossible' Projects. In the meantime, I think I just need to come to the realization that auto-complete is the genesis of evil code.
By the way, I did go back and fix those methods. Y could still use some work though...
New forum format - M - 1
I decided to make the forum more like a community blog. I guess I just really need more things to occupy my time with instead of slightly silly software updates for a user group of I think four and Hernacki now?
Anywhoo, I thought this might be a more useful and accessible format. And this way you don't have to depend on the topic alone to have any meaning. You can actually read the first message front and center.
