Why, why did I go down this path? What drove me to it? Will I be forever
tainted?
Please Lord, help me.
For the past nine months I worked at a feverish pace, intermingling Lust,
Tcl/Tk, BLT, Img, and generous helpings of Inno Setup and FreeWrap.
My hideous progeny has tortured me relentlessly; Mary Shelley would have
been so proud.
I created a tool. This was no ordinary tool. I outline for you its
technical background:
In the Adult Internet, there are Thumbnail Gallery Posts (TGP's). Each TGP
has links to Pornographic galleries, and each Pornographic gallery shows
thumbnail images and links to full-sized glorious images.
My web tools molested the Adult Internet. It used a series of regular
expressions and heuristics to locate Pornographic galleries. It then
downloaded the images, faking referer tags and using cleverly-crafted timing
algorithms to fool web servers into thinking that it was a Lustful Human.
How clever I thought I was. I am now an empty shell, devoid of the life-
giving force that is every Child's due, if only for innocence.
Once the images had been downloaded, it calculated MD5 checksums, and
updated a PostgreSQL database that had become incensed with eros.
Another tool, every 5-6 hours would check to see if the galleries were still
online and were sending back the correct images, that matched with the
stored MD5's. I knew at these moments that I was giving birth to a sun-
king.
Once the database had new galleries that had been just newly molested from
the Internet, I had to categorize the content. I used a Tcl/Tk tool that
was just over 5k to categorize the content. The Img extension showed me the
images, and BLT zoomed in to regions of interest.
When the sun set upon the day, my web interface would be generated. This
would allow clients all around the net to get the latest categories of Lust,
and to receive their URL's and the needed timings and referer tags.
A client was built for Win9x. It allowed this Perversion to spread. It
would connect to the WebServer that interfaced with the Database, and it
would distribute this foul seed. Once impregnated in the minds of children
everywhere, what would become of the fields that I had sown?
Today, the Molester of Images, the Database of Impregnation, the Web
Interface of Sodom and Gomorrah have taken form, and the Client is 50% done.
It only requires a little more work, and I will have myself a polished turd.
I am now an empty shell of a man. I have feasted on the pain of others and
I have tasted Sin.
But this Path was lain long ago for me. The year was 1999 and I was horny.
I crafted a simple script that I named `pornripper2k'. Little did I know
that I was writing my history.
Today, I sit blankly, alone, my illusions shattered. I have no wants, no
needs, I am a product of this society that has sterilized my imagination.
The abuse of my brain. The pain of my Sins. I carry these forever.
I will never release this program. I will not contribute to the destruction
of society. I have perhaps doomed myself, but I will strive to save a
single Child.
Now the days stretch to the future, and I have no Path.
I must Redeem myself. What must I do?
I lay myself at your feet and ask only to serve. What does the Community
need from my weary heart?
I will Code for You.
--
Rennor Thomson
rennor.thomson*at*gmx.net
...
> I lay myself at your feet and ask only to serve. What does the Community
> need from my weary heart?
>
> I will Code for You.
>
> --
> Rennor Thomson
> rennor.thomson*at*gmx.net
While it may not be as exciting as you last project, you could
really help by writing up a non-blocking DNS thread implementation
for Tcl. When you open a socket to a host that does not have a valid
DNS entry, it will block the Tcl process waiting for the DNS query.
As far as I can see, the only way around this is to create another
thread and do the lookup there. Of course, you will also want some nice
snappy way to reuse the created thread the next time a DNS lookup
is done.
Does this sound like fun?
The Makefiles could also use a "make uninstall" target if you feel
hosing around in the build system.
cheers
Mo DeJong
> While it may not be as exciting as you last project, you could
> really help by writing up a non-blocking DNS thread implementation
> for Tcl. When you open a socket to a host that does not have a valid
> DNS entry, it will block the Tcl process waiting for the DNS query.
NAME
dns-helper - Non-blocking name resolver interface.
SYNOPSIS
dns-helper
DESCRIPTION
dns-helper Non-blocking name resolver interface.
OPTIONS
No options. This program is called internally by libg
nomeui32.
Just copy that... or write a Tcl interface to it. It's part of gnome.
I guess if it's under the GPL, you might have to rewrite it, but it
shouldn't be too hard.
--
David N. Welton
Consulting: http://www.dedasys.com/
Free Software: http://people.debian.org/~davidw/
Apache Tcl: http://tcl.apache.org/
Personal: http://www.efn.org/~davidw/
> Ok, that said, I would love to see gnu stow redone right
> with Tcl and Tk. Let's make Tcl the package management
> wonder of the age! I have an extension to donate to the
> project if you are interested in doing it.
I currently use epkg for all my systems. I originally used GNU stow, but it
wasn't as good as epkg.
What kind of extension do you have?
I feel overwhelmed with life and code.
--
Rennor Thomson
rennor.thomson*at*gmx.net
> NAME
> dns-helper - Non-blocking name resolver interface.
>
> Just copy that... or write a Tcl interface to it. It's part of gnome.
> I guess if it's under the GPL, you might have to rewrite it, but it
> shouldn't be too hard.
Do you perchance know what package I can find that program in?
How does this program relate to the threaded implementation that Mo wrote
about?
Thank you.
--
Rennor Thomson
rennor.thomson*at*gmx.net
> Firstly, put up a wiki page that says YOU are jooky, and
> that I am not. I can get all the killfile real estate
> I need on my own.
Under what Wiki page should this be written to?
> http://mini.net/cgi-bin/wikit/2971.html
Updated.
--
Rennor Thomson
rennor.thomson*at*gmx.net
Sorry for being boring: Do the same for gathering screenshots of GUI
apps. I'm often looking for good (or bad) examples of user interfaces
and such an gui-ripper would be a nice point of reference.
Ok, I'm boring, but I have a girlfriend ;-) Excuse me.
Jochem
> dav...@dedasys.com (David N. Welton) wrote in news:876657lj13.fsf_-
> _@dedasys.com:
>
> > NAME
> > dns-helper - Non-blocking name resolver interface.
> >
> > Just copy that... or write a Tcl interface to it. It's part of gnome.
> > I guess if it's under the GPL, you might have to rewrite it, but it
> > shouldn't be too hard.
>
> Do you perchance know what package I can find that program in?
In debian, it's in 'gnome-bin'.
> How does this program relate to the threaded implementation that Mo wrote
> about?
Well, it would be a matter of putting that code in its own thread...
I just can't put my finger on it. On one hand, they jar my sensibilities of good
task. But then, just as I'm ready to dump it in the bit bucket, profound words
emanate from the screen, with just the right mixture of humor.
Jooky has wit, intelligence, and a twisted ethic (so it would seem). Some
combination!
Marty Backe
-------------------------------
mgb...@usa.net
http://www.lucidway.org
>
>While it may not be as exciting as you last project, you could
>really help by writing up a non-blocking DNS thread implementation
>for Tcl. When you open a socket to a host that does not have a valid
>DNS entry, it will block the Tcl process waiting for the DNS query.
Funny you should say this but I'm just completing a DNS resolver in
pure Tcl. In other words a DNS client using TCP. This isn't quite what
we require I suspect but it's interesting none the less.
My implementation uses the style of fileevent based client found in
the http package so it can be timed out at any moment. Assuming that
calling socket with an IP number doesn't create quite the same delays
you can get by using a domain name it may help.
I'll be adding it into tcllib at sourceforge for discussion within a
day or so.
>
>As far as I can see, the only way around this is to create another
>thread and do the lookup there. Of course, you will also want some nice
>snappy way to reuse the created thread the next time a DNS lookup
>is done.
>
>Does this sound like fun?
Does to me - I seem to have thing going for network protocols. :)
>
>cheers
>Mo DeJong
--
Pat Thoyts http://www.zsplat.freeserve.co.uk/resume.html
To reply, rot13 the return address or read the X-Address header.
PGP fingerprint 2C 6E 98 07 2C 59 C8 97 10 CE 11 E6 04 E0 B9 DD
> Funny you should say this but I'm just completing a DNS resolver in
> pure Tcl. In other words a DNS client using TCP. This isn't quite
> what we require I suspect but it's interesting none the less.
Isn't DNS done over UDP?
Usually, but only because it's more efficient that way, since most
queries and responses will fit in one packet anyway. Larger operations
that exceed typical UDP packet size can go over TCP.
--
Darren New
San Diego, CA, USA (PST). Cryptokeys on demand.
The opposite of always is sometimes.
The opposite of never is sometimes.
>Pat Thoyts <Cng.G...@ovtsbbg.pbz> writes:
>
>> Funny you should say this but I'm just completing a DNS resolver in
>> pure Tcl. In other words a DNS client using TCP. This isn't quite
>> what we require I suspect but it's interesting none the less.
>
>Isn't DNS done over UDP?
Yes. But the protocol specifies that both UDP and TCP are allowed. The
recommendation is that UDP is used for queries and TCP for zone
transfers but there is nothing to prevent you from doing queries over
TCP. Well - unless you firewall blocks it!
However, as the protocol messages are (nearly) identical I'm arranging
the code so that if UDP is available (from Scotty maybe) then it
should be simple to make it use UDP. Otherwise I can do queries via
TCP.
RFC 1035 tells all.
In my case, I'm an avid Comics reader. BayArea.com used to have a comics
page where you could configure all the comics you wanted (from the list
they have available, of course) and it would show all of them to you in
one web page. Now they changed their format and you have to click on
comics one link at a time. If your client allows me to get something
similar to what I used to have at BayArea.com, I'd sure appreciated it.
L
--
Laurent Duperval <mailto:ldup...@microcelli5.com>
"Technically, Windows is an 'operating system,' which means that it
supplies your computer with the basic commands that it needs to
suddenly, with no warning whatsoever, stop operating."
-Dave Barry
You could even do things like creating a pool of dns-lookup threads/processes
(you have to deal with the case where thread-support isn't built into Tcl, and
might be interested in the gethostbyname_r() and gethostbyaddr_r() C API
functions). Also, you might want to think about how such a system might
interact with Tcl's asynchronous client sockets and what happens when a server
socket accepts an incoming connection...
Donal.
--
Donal K. Fellows http://www.cs.man.ac.uk/~fellowsd/ fell...@cs.man.ac.uk
-- I could even declare myself a religion, if that'd help.
-- Mark Loy <ml...@iupui.edu>
Fairly good assumption; numeric addresses are never resolved on socket creation
on Unix, but they *are* on Windows (but I do not know if it is *really* doing
it, as that depends on the Winsock implementation.)
You don't need threads to handle DNS. You could do DNS lookups in pure
Tcl with fileevents - It's just SMOP. The part that is hard to do in a
thread is all the ways of looking up domain names that aren't DNS, like
WINS (which probably works in a thread), NIS, NIS+, whatever NeXTStep
uses, whatever AppleTalk uses, etc etc etc. If you have an
/etc/hosts.txt that's 20 gig long, you're going to block while doing
lookups regardless of what you do.
But just mapping FQDNs to IP addresses (or other resource records) via
DNS doesn't require any blocking - it's just a network protocol like any
other.
Cameron Laird <Cam...@Lairds.com>
Business: http://www.Phaseit.net
Personal: http://starbase.neosoft.com/~claird/home.html
Advertising "Impressions".
Dejanews?
--
The Best Parent is Both Parents http://www.gocrc.com
Don't treat coding as a penance. Pick something that will satisfy some need
that *you* see and understand, and go after it. Browse the feature-request
list at SourceForge if you need inspiration.
Ecclesiastes 9:10.
--
73 de ke9tv/2, Kevin KENNY GE Corporate R&D, Niskayuna, New York, USA
Java development?
>
> Cameron Laird <Cam...@Lairds.com>
> Business: http://www.Phaseit.net
> Personal: http://starbase.neosoft.com/~claird/home.html
--
package require Tkhtml;package require http;pack [scrollbar .vsb \
-orient vertical -command {.html yview}] -side right -fill y;pack \
[html .html -bg white -yscrollcommand {.vsb set}] -fill both -expand 1
set t [http::geturl http://mini.net/tcl/976.html];.html parse \
[http::data $t];http::cleanup $t
Marketing?
Taking care of the bottom line.
L
--
Laurent Duperval <mailto:ldup...@microcelli5.com>
Voisin, vous seriez une vraie lumière... si on avait ouvert l'interrupteur.
-Lefuneste
Hmmm, I like Neil's wording better, but perhaps better wording is:
Taking care of *erasing* the bottom line.
--
Jeff Hobbs The Tcl Guy
Senior Developer http://www.ActiveState.com/
Well, since I work in a Java environment, and we're getting pretty good
results, I can't agree. But then again, we're not doing any GUI stuff.
L
--
Laurent Duperval <mailto:ldup...@microcelli5.com>
D'obscures manoeuvres ont eu lieu dans l'ombre et je ferai toute la lumière
sur ces ténébreux agissements! C'est du marché noir!
-Achille Talon
>
> package require Tkhtml;package require http;pack [scrollbar .vsb \
> -orient vertical -command {.html yview}] -side right -fill y;pack \
> [html .html -bg white -yscrollcommand {.vsb set}] -fill both -expand 1
> set t [http::geturl http://mini.net/tcl/976.html];.html parse \
> [http::data $t];http::cleanup $t
Neil,
That is the best sig I've ever seen.
Bruce
Thank you. I was bored, and saw another one of those "Just another Perl
hacker" sigs, so decided to start a Tcl/Tk fight back. It requires
Tkhtml, so it limits the audience somewhat. Still, I think it shows off
the genius of Tcl, when I email or post to other newsgroups. Perhaps a
page at the wiki for succinct sigs which demonstrate Tcl's greatness, so
people can spread the word.
--
I also do quite a bit with Java, and have a love/hate relationship with
it. Some things about it annoy me, but others I like. My remark was
based more on the recent thread on the demise of ArsDigita, than any
personal grudge against Java.
>
> L
>
> --
> Laurent Duperval <mailto:ldup...@microcelli5.com>
>
> D'obscures manoeuvres ont eu lieu dans l'ombre et je ferai toute la lumière
> sur ces ténébreux agissements! C'est du marché noir!
> -Achille Talon
Sounds like something from "The Meaning of Liff". If it's not, there
should be an entry.
Frank
--
Frank Pilhofer ........................................... f...@fpx.de
Experience is something you never have until just after you need it.
- Alfred E. Neuman
A Dilbert Moment.
Donal.
--
Donal K. Fellows http://www.cs.man.ac.uk/~fellowsd/ fell...@cs.man.ac.uk
-- Always running as a superuser is not a fault, it's an OS preference.
-- <mz...@hotmail.com>
in the spirit of "sniglits",
technofadication
Bob
--
Bob Techentin techenti...@mayo.edu
Mayo Foundation (507) 538-5495
200 First St. SW FAX (507) 284-9171
Rochester MN, 55901 USA http://www.mayo.edu/sppdg/
> In <m3wuxne...@nova.revier.com>, Jochem Huhmann wrote:
> > Sorry for being boring: Do the same for gathering screenshots of GUI
> > apps. I'm often looking for good (or bad) examples of user interfaces
> > and such an gui-ripper would be a nice point of reference.
> >
>
> In my case, I'm an avid Comics reader. BayArea.com used to have a comics
> page where you could configure all the comics you wanted (from the list
> they have available, of course) and it would show all of them to you in
> one web page. Now they changed their format and you have to click on
> comics one link at a time. If your client allows me to get something
> similar to what I used to have at BayArea.com, I'd sure appreciated it.
Maybe newzpoint can help. Note: Win* only.
--
Sincerely,
Andreas Kupries <akup...@shaw.ca>
Developer @ <http://www.activestate.com/>
Private <http://www.purl.org/NET/akupries/>
-------------------------------------------------------------------------------
}
Hey, even the screen shot at the top contains a page with Adam and Baldo in
it! Yes, that's what I would like to use but I don't use Windows (unless
I'm forced to). So unless a cross-platform version comes out...
L
--
Laurent Duperval <mailto:ldup...@microcelli5.com>
Why is it that when you're driving and looking for an address, you turn
down the volume on the radio?
Well, I looked at the code and the part that seems to be the most
challenging is all that optcl stuff. But TkHtml could possibly be put to
good use in this context. That, or have some kind of driver (in the sense
of automobile) for BrowseX.
L
--
Laurent Duperval <mailto:ldup...@microcelli5.com>
Have you ever imagined a world with no hypothetical situations?
Not knowing anything about opTcl (since it doesn't, as far as I can
tell, run on SPARC Solaris), I wonder aloud how much of its functionality
could be replaced by the http/htmlparse/tkhtml type code...
--
"I know of vanishingly few people ... who choose to use ksh." "I'm a minority!"
<URL: mailto:lvi...@cas.org> <URL: http://www.purl.org/NET/lvirden/>
Even if explicitly stated to the contrary, nothing in this posting
should be construed as representing my employer's opinions.
The purpose of opTcl is purely to embed the ActiveX MSHTML component
(the HTML rendering engine for IE) into Tk (for newzpoint). This
also means that it automatically picks up all the related stuff that
goes with it, like plugins (yes, I was able to test newzpoint using
optcl to embed IE, which in turn had the Tcl plugin embedded and
I could play tetris :) ), cookies, ...
You could replace all this with tkhtml as the renderer, and a lot
of other code to handle cookies, embedded components (like try
TclBlend to embed Java?), ... it would take some effort (a lot
loss than went into IE though ;) ), but it could be done.
--
Jeff Hobbs The Tcl Guy
Senior Developer http://www.ActiveState.com/
Tcl Support and Productivity Solutions
http://www.ActiveState.com/Products/ASPN_Tcl/
Well, browsex already does all that. A judicious use of send or any other
type of mechanism to drive it could be used here. I don't know if Peter
has anything to say about this. I haven't looked at brx's code lately so
I don't know if the hooks are present to do this already.
L
--
Laurent Duperval <mailto:ldup...@microcelli5.com>
You know how most packages say "Open here". What is the protocol if the
package says, "Open somewhere else"?
Phase 2: make it 4 lines or less (shouldn't be too difficult ;-)
R'
I don't know how I could make it any smaller. I could remove the
scrollbar, but then you wouldn't be able to see the whole page. BTW -
there is a page Larry Virden started on the wiki for my sig (at
http://mini.net/cgi-bin/nph-wikit/2993.html). I have created a small,
simple package to do the basics of creating a browser, hopefully making
Tkhtml much easier to use. I can't access my webserver at the moment to
make it available, but the basic usage is:
# A test of the browser package.
package require browser
pack [scrollbar .vsb -orient vertical -command {.html yview}] -side
right -fill y
pack [browser::browser .html -bg white -yscrollcommand {.vsb set}] \
-side top -fill both -expand 1
pack [label .l -bg gray -textvariable ::browser::browser(.html,status)]
\
-side bottom -fill x
frame .url
entry .url.e -textvariable ::url -font {Courier 10} -width 80
bind .url.e <Return> {.url.go invoke}
button .url.go -text "Go!" -command {::browser::geturl .html $::url}
pack .url.go -side right
pack .url.e -side left -fill x -expand 1
pack .url -side top -before .html -fill x
proc updateTitle {var1 var2 op} {
wm title . $::browser::browser($var2)
# Update the entry with the new URL as well;
.url.e delete 0 end
.url.e insert end $::browser::browser(.html,url)
}
trace variable ::browser::browser(.html,title) w updateTitle
This test.tcl file in the distro creates a fully working browser (no
history or forms, but still quite functional). Due to an efficient image
cache, it is very fast, particularly when viewing pages with common
images.
*g* One of the reasons to love P*rl is it's ingenious use of variable
and proc names. Along this line lies:
package r Tkhtml;package r http;pack [scrollbar .v -o v -co \
{.h yv}] -s right -f y;pack [html .h -bg white -ys {.v s}] -f \
both -e 1;set t [http::geturl http://mini.net/tcl/976.html];.h p \
[http::data $t];http::cleanup $t ; # :-)
Untested, since I haven't Tkhtml installed. So the `.h p' in line 3
might need to be a bit longer.
Stage 3: install Tkhtml on-the-fly if not found ;-)
R', just kidding...
Works fine! Starting to look a bit obsfuscated, but it's 4 lines now.
I'll patch the .sig! (Accepted a comment patch yesterday, courtesy
Stephen Trier). Maybe it should get a project on sourceforge... :-)
>
> Stage 3: install Tkhtml on-the-fly if not found ;-)
> R', just kidding...
--
package require Tkhtml;package require http;pack [scrollbar .vsb \
-orient vertical -command {.html yview}] -side right -fill y;pack \
[html .html -bg white -yscrollcommand {.vsb set}] -fill both -expand 1
set t [http::geturl http://mini.net/tcl/976.html];.html parse \
[http::data $t];http::cleanup $t;# Minimal web viewer in Tcl/Tk/TkHTML
Well, this is the latest version - hyperlinks work. Just click on a link
to be taken to that page. Careful - you'll get an error if you don't
click on a link, but as it's Tk you just get a message box, that can be
dismissed. 5 lines of code (*how* big is IE? :-)
--
package r Tkhtml;package r http;pack [scrollbar .v -o v -co {.h yv}]\
-s right -f y;pack [html .h -bg white -ys {.v set}] -f both -e 1;bind\
.h.x <1> {eval g [.h href %x %y]};proc g u {set t [http::geturl $u]
.h cl;.h p [http::data $t];http::cleanup $t;.h co -base $u};g \
http://mini.net/tcl/976.html;# Minimal Web Viewer, now with hyperlinks
But SF seems to be down ATM. :^(
Donal.
--
Donal K. Fellows http://www.cs.man.ac.uk/~fellowsd/ fell...@cs.man.ac.uk
-- I may seem more arrogant, but I think that's just because you didn't
realize how arrogant I was before. :^)
-- Jeffrey Hobbs <je...@ActiveState.com>
To Microsoft
I Microsoft
You Microsoft
He/She Microsofts
They Microsoft
Hmmmm, has potential...
Also, this is intended to be an HTML viewer. If you go to a web page
with forms, they won't currently be active in this version. There's
no 'back up' function, etc. All '''those''' functions are why web browsers
are so big...
Well, the latest .sig version is 4 lines, and handles (ignores) errors, and
hyperlinks. My "browser" package announced t'other day, tries to make some of
these browser features easier. It supports forms (not fully implemented: no
selections, and some options missing, also I can't get scrollbars to work with
text components at the mo), a simple back/forward functionality, following
redirecting URLs, automatic image downloading (the .sig version is text only).
It doesn't support Java, JavaScript, cookies, plugins etc, etc, but it acts as a
base for browser applications (for instance, I hear newzpoint has been converted
to use it already).
Admittedly, there is a *lot* of functionality in something like IE, but I wonder
how much is bloat, and how much is actually useful...
> --
> "I know of vanishingly few people ... who choose to use ksh." "I'm a minority!"
> <URL: mailto:lvi...@cas.org> <URL: http://www.purl.org/NET/lvirden/>
> Even if explicitly stated to the contrary, nothing in this posting
> should be construed as representing my employer's opinions.
--
package r Tkhtml;package r http;pack [scrollbar .v -o v -co {.h yv}] -s right\
-f y;pack [html .h -ys {.v set}] -f both -e 1;bind .h.x <1> {eval g [.h href %x\
%y]};proc g u {set t [http::geturl $u];.h cl;.h p [http::data $t];http::cleanup\
$t;.h co -base $u};g http://mini.net/tcl/976.html;proc bgerror args {};# NEM :-)
A job.
:-?,
John
I suggest looking at DJB's dns resolver code.
Take care,
John
Be careful though, if you actually want to use it for something, as it
is not free software.
--
David N. Welton
Consulting: http://www.dedasys.com/
Personal: http://www.dedasys.com/davidw/
Free Software: http://www.dedasys.com/freesoftware/
Apache Tcl: http://tcl.apache.org/
To be clear, it's not "Free Software" (ala the FSF) and it's not
"Open Source" software (ala opensource.org) but it's most certainly
very high-quality free software with source code -- it's just that
it's copyrighted (except for the stuff that he has placed into the
public domain).
Sorry for not being more clear earlier but I wasn't (intending to) suggest
that the DJB resolver code be used directly since the original poster
wanted to create a pure Tcl solution. I was (intending to) suggest that
he use the DJB resolver code as a very good example of what needs to be
done to create a good solution.
Take care,
John