Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

exeunt (319)

exeunt
  fugaziNO@SPAMzyx.net

My perlmonks Personal Node [perlmonks.org]

Journal of exeunt (319)

Thursday September 19, 2002
11:09 AM

Rebuild of a box

My company wants to put an install of a bug/issue tracking software where our customers can enter their own bugs, and this can get filtered by our support team. It will also allow our customers to see if another customer have entered a bug.

We had a box with FreeBSD 4.4 installed on it running Bugzilla, which our RND team upstairs was using, so the idea was to install bugzilla (or RT, since I am starting to push for that) on a box that will be outside the firewall, at first, it was going to be a windows box, which I successfully changed their minds. Then they were going to have me install it on our DNS box, running linux, which I also successfully stopped, due to security reasons.

So now, I've taken the box running bugzilla, and moved that install of bugzilla over to another box, running our cvs server and other things, and have started rebuilding this FreeBSD box to 4.6.2.

For fun, I've renamed it from jedi to brimstone. We don't have an official naming scheme, and I chose jedi originally since it was a temporary box to play with. Almost all our other boxes are named after rocks or stones (which most happen to be streets near by too). Such as Ruby, sapphire, crystal, coral, etc. I chose brimstone, due to the hell/devil/bsd theme, and bugs are hell anyway ;). I would have used amber, due to obvious reasons, but that was recently taken by our new e450 sun box.

Right now it is sitting there updating itself from the ports tree, after a quick cvsup of my current port tree.

Too bad RT is not a port on 4.6.2-RELEASE, same with perl 5.8. (Edit: just found /usr/ports/lang/perl5.8 after cvsup was done updating them)

Tuesday August 20, 2002
05:21 PM

SOAP::Lite issues

I don't know much about SOAP, other then it's on my list of things to play with in the future.

Recently I was asked to "test" a WebService with perl, it was pretty simple.

use SOAP::Lite;
print SOAP::Lite->service('http://webserver/Hello/Service1.asmx?WSDL')->Hello("test");

It should print out "Hello test", but all it prints out is just "Hello".

Putting trace => qw(debug) into the use statement provides some nifty output.

(xml formatting done by me)

SOAP::Transport::HTTP::Client::send_receive: POST http://webserver/Hello/Service1.asmx
Accept: text/xml
Accept: multipart/*
Content-Length: 445
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://webserver/webservices/Hello"

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/1999/XMLSchema">
    <SOAP-ENV:Body>
        <Hello xmlns="">
            <parameters>Test</parameters>
        </Hello>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Connection: close
Date: Tue, 20 Aug 2002 21:51:25 GMT
Server: Microsoft-IIS/5.0
Content-Length: 349
Content-Type: text/xml; charset=utf-8
Client-Date: Tue, 20 Aug 2002 21:50:05 GMT
Client-Response-Num: 1

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <HelloResponse xmlns="http://webserver/webservices">
            <HelloResult>Hello </HelloResult>
        </HelloResponse>
    </soap:Body>
</soap:Envelope>

It appears it is missing the xmlns in the <Hello> tag, but nothing major.

From the actual WSDL file, the appropriate spots for SOAP requests (regular SOAP and GET ones)

<message name="HelloSoapIn">
    <part name="parameters" element="s0:Hello" />
</message>
<message name="HelloHttpGetIn">
    <part name="sender" type="s:string" />
</message>
<message name="HelloHttpPostIn">
    <part name="sender" type="s:string" />
</message>

And according to the "sample" ones, this is how it should be formatted for SOAP requests.

<soap:Body>
    <Hello xmlns="http://webserver/webservices">
        <sender>string</sender>
    </Hello>
</soap:Body>

To me it appears it contradicts itself, in the WSDL file, it wants <parameters>, which SOAP::Lite is doing.

On the other hand, according to this other page, it is wanting <sender>, which is for GET, not SOAP requests.

If anyone has any solutions, or pointers, let me know!

Of, and if it helps, the webservice is running off some .NET implimentation, I can get more details about any of this if needed.
Wednesday July 24, 2002
11:16 AM

Error messages

We just had one of our "3GL" text based systems outsourced to another company to make into a GUI. We just got one of our first bug reports on the new system. The client had this as the error message: "How the fuck did you get here?" It appears some programer thought it impossible to get this error message. It probably is along the same lines as this.

Thursday June 20, 2002
04:15 PM

We need perlrofl (or perlrotfl) to suppliment perllol.

I came up with this idea while looking at various perldoc titles. We have a perllol, why not perlrofl or perlrotfl. There are quite a few others we could speculate about, such as perlrtfm, and perlstfu.

Here is my idea list for perlrofl/perlrotfl, some are tounge in cheek:

References, Objects, Files and Lists.
References, Objects, Taint, Files and Lists.
Referenced Object Things For List
References Of Tied Filehandle Lists
Regularly Obfuscated File List
Recursion On Funny Lists
Recursion On Those Funny Lists
Referencing Objects For Laughs
Referencing Objects Twice For Laughs
Reading Online For Learning
Reading Online Tutorials For Learning
Researching Online For Learning
Researching Online Tutorials For Learning
Radical Online Tutorials For Learning

Now if I could only decide on one... and be able to write it.

Wednesday May 15, 2002
03:21 PM

Portability

As part of my job, I have to deal with some Java. Which isn't too bad, since I don't have to write it, I just have to make sure things compile, pass tests, etc.

We are getting ready to open source the framework our RnD team has been working on for the past year. There sure seems to be a lot of Java Frameworks out there. This one is specialized to the Aerospace Industry, so don't get too excited. I'll post more later, if someone is really dying to know more about it, and after we push the stuff out to sourceforge.

Back to the story at hand, which is portability. One of the main developers asks me to try running the JUnit tests on a unix server, since they do all their coding/testing/etc on windows machines. So I check out the latest version off our internal cvs server on the rnd linux server, and run junit tests. I get this nasty error from one of the unit tests about not being able to find a directory in the CLASSPATH to write a temp test file too.

My first impressions was that it was a permissions issue, so I chown a test directory to 777, and re-run it, same error. After I rechown the directory back to it's previous mode, I try running this off my windows machine. No error. Puzzled, I check the source code.

Here is a small section of the code:


    String cp = System.getProperty("java.class.path");
    StringTokenizer stknzr = new StringTokenizer(cp, ";");
    while (stknzr.hasMoreTokens()) { ...
    }

I quickly insert a System.out.println("Classpath: " + cp); and get a copy of the classpath. I notice something funny, the classpath separator is a :, not a ; as stated in the code. I run the same code, to output the classpath on windows, and the separator is ;. As a test, I change the ; to a : real quick, re-run it, and it works on unix now (imagine that!).

Now to make it portable. Since only how to do simple hello world and other stupid tricks in java, I was thinking I'd have to go down an ugly path of knowing what system I am on, and setting some variable to pathSeperator, or leave it up the real java programmers. Just as a quick step, I check google, and find my answer: System.getProperty("path.separator"). Now instead of the ";" it has the path.sperator value in there.

All is good now. Now to beat my developers into a portability mindset in the first place, and to find where else it won't work (find . -type f -name "*.java" | xargs grep '";"' turned up a few places they will have to re-visit).

Tuesday April 09, 2002
04:44 PM

CPAN PAUSE ID

Woohoo, I got a CPAN Pause ID: LARRYSH.

Now to unleash havoc on CPAN (j/k).

Still working on a few things before I acualy upload them.

Thursday April 04, 2002
03:41 PM

Cousins

I do admit, I have some very attractive cousins, but I would never marry any of them.

Wednesday March 20, 2002
06:07 PM

Mac OS X slickness.

Okay, my PowerBook G3 Pismo was in the middle of the 10.1 update, after a reinstall of OS 9, OS X. Unknown to me was my power supply had died, so it was running off battery. While at work, letting the update go, I looked over to see it in sleep mode, black screen, power light slowly fading in and out. I quickly try to diagnose the problem, and find out the fate of the power supply.

After a trip to Frys, and a new 3rd party power supply purchase (they were out of the stock apple yo-yo ones for my old PowerBook), I plug my laptop back in, and bring it out of sleep mode. Now I was expecting to find all kinds of errors spew forth, or a nice core dump, or the need to reinstall it all again. But no, it read '7 minutes left'. Which then turned into 47 hours left, and I saw the minutes fly off, and it took about 14 more minutes, and it was done.

So far, I have not experienced any problems after this, and I just have to take my hat off to Apple.

12:50 PM

Learning about inheritance...

Brought on by laziness, of having to get the web page into a variable, and then create the object for HTML::TokeParser, I knew there had to be a better way, while reading Object Oriented Perl, I decided to give it a try. Some of the items I want to change is to check for errors, and to allow files or actual html data passed to new(), not just a url, but that is just icing on the cake.


package HTML::TokeParser::URL;
use strict;
use warnings;

BEGIN {
    use HTML::TokeParser;
    use LWP::Simple qw(get);
    our @ISA = qw(HTML::TokeParser);
}

sub new {
    my $proto = shift;
    my $class = ref($proto) || $proto;
    my $page = get(shift);
    my $self = HTML::TokeParser->new(\$page);
    bless ($self, $class);
    return $self;
}

1;

Updated: Better (updated!) version of this on perlmonks here.

Monday March 18, 2002
02:31 PM

Comments Enabled

So I put a nice entry in my journal, asking for comments, but forgot to enable comments, and don't catch it till monday... ugh...

As I mentioned in an update to that entry, is there a way to have comments enabled by default?