Jay Taylor | programmer notes

So I recently found wepbuster, and have been trying to get it working with the Backtrack 4 Pre Release (or is it Pre-Final? ..).

BT4 doesn’t seem to come with all the right perl modules installed.  These errors were easily “fixed” by simply installing the requested packages.

root@bt4-pre-release:~/src/wepbuster-1.0_beta$ ./wepbuster
Can’t locate Number/Range.pm in @INC (@INC contains: /etc/perl /usr/local/lib/pe                                                    rl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/                                                    perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./wepbuster line 8                                                    .
BEGIN failed–compilation aborted at ./wepbuster line 8.

root@bt4-pre-release:~/src/wepbuster-1.0_beta$ ./wepbuster
Can’t locate Algorithm/Permute.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./wepbuster line 9.
BEGIN failed–compilation aborted at ./wepbuster line 9.

Wepbuster thread over at remote-exploit.org forums

, , , , , , , , , Hide

So, I got this weird exception when I ran the command:

python script_that_prints_output.py | head
..[some output, in fact, just the amount that head wanted(!)]..
Traceback (most recent call last):
File "./script_that_prints_output.py", line 86, in
print out
IOError: [Errno 32] Broken pipe

I was not sure why this was happening, because when I ran the command without piping it to “head”, it ran just fine, displaying the expected output with no exceptions or errors raised.

I found the explanation for this behavior, and thought it was interesting enough to warrant a post (that way if I encounter it again at some point in the future, the odds that I’ll remember are probably greater ;):

> IOError: [Errno 32] Broken pipe
>
> Anyone know why this is happening?

That’s normal, at least with Unix. When the program on the receiving end
of a pipe decides to close its end for some reason, Unix sends the signal
‘SIGPIPE’ to the sending end. Python catches this and turns it into an
IOError exception.
The only way around this (that I can think of) is to
catch the exception and exit the program gracefully. If you try to send
more data, you will get more IOErrors, since your program has nowhere left
to send data.

I actually thought of anohter way around it, albeit not efficient in any way (the whole point of the SIGPIPE signal is to stop the program from completing, since no further output is required from it).  This is definitely a rather ugly hack, but sometimes that is preferable to adding the exception handling, I guess.

python script_that_prints_output.py > tmpfile ; head tmpfile; rm tmpfile

Update 2009-12-17:  Useful information about broken pipes in Python at StackOverflow

, , , , , Hide

This time the insight lies in the part where he says “.. and wished that I could just use my hands instead of me feet ..”.  Cheers.

Re:Great (Score:5, Funny)

by dnahelicase (1594971) on Wednesday October 21, @09:16AM (#29824553)
This is exactly what I need. You don’t know how many times I’ve been driving and wished that I could use just my hands instead of me feet. This would free up my feet so I could use them to dial my cell phone, mess with the radio, flip people the middle toe…

, , , , Hide

Not quite sure what to make of this one, other than that it is obviously hilarious.  This is presented as a valuable find in the quest to making sense from nonsense, “The Theory of Quantum Interpretation of Uncertain Passages of Law”:

by GrandTeddyBearOfDoom (1483117) on Saturday October 31, @10:17PM (#29939605) Homepage
Here's the code in case you're wondering -- gtbod.

<!-- and NO this WASN't WRITTEN in DREAMWEAVER -->

<div>

<h1>The Theory of Quantum Interpretation of Uncertain Passages of Law</h1>

<p>by John</p>

<p>...</p>

<h3>31.4.15.9. If it isn't obvious at first glance, ignore it!</h3>

<p>Rationale: it could have been made obvious if it was necessary (the logic approach proves this) and thus it is simply not intended as a message for you and so you may logically just ignore it.</p>

<p>...</p>

<p>...56</p>

</div>


– The Grand Teddy Bear has Spoken http://chalisque.com/GrandTeddyBear.says%20Hello.Mum.from.John.png

, , , , Hide

I first looked at Python’s dom and minidom modules last Friday.  There was an initial wave of shock for me after looking over the apparently complex API.  Eventually I remembered that all I wanted to do was create a straightforward RSS feed document from a MySQL database.   I had to go to class so I didn’t make much progress on that attempt.

Today I revisited the project and randomly happened upon a 3rd party Python XML library called ‘lxml‘.  This module is purported to be an order of magnitude faster than Python’s dom/minidom (rendering them quite slow, painfully slow, even, by comparison).  Not that execution speed is a particularly important to me in this instance.  Anyways, after 4 minutes to compile the module from their Subversion repository (my server is slow, I guess..), 2 minutes of the tutorial, and approximately 10 minutes coding, I had the script doing what I had originally set out to do.  The lxml API seems much more practical, at least in this case where the task and goal were pretty simple (naturally, I can’t account for other scenarios).  At any rate, I guess this time around its “Vive lxml”.

At this point, the Python dom and minidom modules do have a feeling of circumstantial familiarity.  They remind me of the my days of having to troubleshoot and develop fixes to address protocol incompatibilities between the Java SOAP API implementation with PHP Pear SOAP’s API.  Shudder.

This is the source that pointed me to lxml.

, , Hide

right-click and bookmark this link, then when you are watching a YouTube video you want to download, click the bookmark.  Works as of 2009-10-29.

, , Hide

How to create a console window is a good place to begin as a point of reference.

, Hide

I don’t know how this is possible, but here is what just happened:

15 minutes ago I put my laptop into hibernation.

I put it in into its case and walked about an eighth of a mile to the class I was late for.

I entered the classroom, and listened to my professor for five minutes.

I then took out my laptop and pushed the power button.

After the machine resumed from standby, I entered my password.

Imagine my surprise when the Putty SSH session I had running before I put the machine into hibernation came back up uninterrupted.  I didn’t know that TCP connection routing information could persist across a hibernation cycle.  In fact, I would have snubbed anyone who made that claim.  I guess it is time to eat my words.

The Proof:

, , , Hide

In a way it seems almost paradoxically recursive.. in fact.. let’s not even go that direction with this exercise.  Instead, I present this as the first installment in my experiment of attempting to glean insight about the culture of Slashdot from Slashdot.  Hey, it’s all about the lulz.

This is likely the most amusing explanations of Slashdot culture that I have ever encountered:

Re:Whatever (Score:-1, Funny)

by Anonymous Coward on Sunday November 03 2002, @10:49PM (#4592270)
Doug,

If you weren’t aware of it before, you probably know it by now. Anything interesting or useful that rears its head on Slashdot will likely be ripped to shreds by what has quickly become the nets most vicious and petty peanut gallery.

Slashdottians know nothing, they accomplish nothing, and their opinions are worth nothing. They are uniformly bitter, small-minded geeks who overestimate their own importance and their own skillz. They are, for the most part, losers. Their biggest accomplishment is in insulting others’ spelling and grammar, attacking the GPL license despite their grade level understanding of it, and tricking people into clicking on goatse.cx links. They are know-it-all blowhards who use their computers primarily for Pornography and online gaming, at which they cheat regularly to offset their complete lack of motor skills.

Despite touting the wonderous greatness of linux and open source, they all use Windows and Internet Explorer. They like Macs because of OSX, but want it to run on X86 so they can steal a copy and give nothing back. They will eventually buy a Mac due to their inability to run Windows without crashing it constantly by their own stupidity, and become raving unbalanced lunatics who do more harm than good for the Mac community by claiming that the G4 is quadruple the speed of a dual 3Ghz Xeon box.

They lie about their own experience to make their case, and when you win an argument with them, they post anonymously in order to tell you they’ve had sex with your mother.

Don’t become a regular here, you will become retarded.

Signed,
Yoda the Retard

, , , , Hide

Oct/09

26

Automating Vim Actions

I have finally discovered how to automate the nice regular-expressions capable search-and-replace functionality with Vim.  This provides a way to run Vim commands without having to ever enter the program!  Very useful for automation.  Sed is a great tool, but I am so used to Vim, and usually computational speed is not my primary concern.

vim -c %s/old/new/g -c wq somefile.txt

(more…)

, Hide

<< Latest posts

Find it!