Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Applied Ethics with Tcl/Tk

24 views
Skip to first unread message

Rennor Thomson

unread,
Feb 8, 2002, 3:56:11 PM2/8/02
to

Please forgive me but there is a weight on my shoulders that threatens to
consume my very soul.

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

Phil Ehrens

unread,
Feb 8, 2002, 4:55:47 PM2/8/02
to
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.

Mo

unread,
Feb 8, 2002, 5:02:45 PM2/8/02
to
Rennor Thomson wrote:

...



> 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

Phil Ehrens

unread,
Feb 8, 2002, 5:05:50 PM2/8/02
to
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.

David N. Welton

unread,
Feb 8, 2002, 5:11:02 PM2/8/02
to
Mo <m...@nospam.com> writes:

> 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/

Rennor Thomson

unread,
Feb 8, 2002, 5:14:28 PM2/8/02
to
peh...@nospam.ligo.caltech.edu (Phil Ehrens) wrote in news:a41i3u
$r...@gap.cco.caltech.edu:

> 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

Rennor Thomson

unread,
Feb 8, 2002, 5:45:03 PM2/8/02
to
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?

How does this program relate to the threaded implementation that Mo wrote
about?

Thank you.

--
Rennor Thomson
rennor.thomson*at*gmx.net

Rennor Thomson

unread,
Feb 8, 2002, 5:46:25 PM2/8/02
to
peh...@nospam.ligo.caltech.edu (Phil Ehrens) wrote in
news:a41hh3$r...@gap.cco.caltech.edu:

> 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?

Phil Ehrens

unread,
Feb 8, 2002, 5:57:47 PM2/8/02
to

Rennor Thomson

unread,
Feb 8, 2002, 6:08:51 PM2/8/02
to
peh...@nospam.ligo.caltech.edu (Phil Ehrens) wrote in news:a41l5b
$8...@gap.cco.caltech.edu:

> http://mini.net/cgi-bin/wikit/2971.html

Updated.

--
Rennor Thomson
rennor.thomson*at*gmx.net

Jochem Huhmann

unread,
Feb 8, 2002, 6:05:52 PM2/8/02
to
* Rennor Thomson <jo...@jooky.jooky> wrote:
> 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.

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

David N. Welton

unread,
Feb 8, 2002, 8:39:18 PM2/8/02
to
Rennor Thomson <jo...@jooky.jooky> writes:

> 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...

Marty Backe

unread,
Feb 9, 2002, 3:16:05 AM2/9/02
to
Taken as a whole, these Jooky posts have provided me with more entertainment (I
don't usually laugh out loud when reading comp.lang.tcl, but it's been happening
the last week or two) then perhaps I deserve.

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

Pat Thoyts

unread,
Feb 9, 2002, 4:08:04 PM2/9/02
to
Mo <m...@nospam.com> writes:

>
>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

David N. Welton

unread,
Feb 9, 2002, 4:18:38 PM2/9/02
to
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?

Darren New

unread,
Feb 9, 2002, 11:33:34 PM2/9/02
to
"David N. Welton" wrote:
> 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

unread,
Feb 10, 2002, 7:32:21 PM2/10/02
to
dav...@dedasys.com (David N. Welton) writes:

>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.

Laurent Duperval

unread,
Feb 11, 2002, 8:23:04 AM2/11/02
to
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.

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

Donal K. Fellows

unread,
Feb 11, 2002, 11:30:01 AM2/11/02
to
Mo wrote:
> 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?

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>

Donal K. Fellows

unread,
Feb 11, 2002, 11:43:21 AM2/11/02
to
Pat Thoyts wrote:
> 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.

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.)

Darren New

unread,
Feb 11, 2002, 12:06:16 PM2/11/02
to
Mo wrote:
> 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.

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

unread,
Feb 11, 2002, 12:35:11 PM2/11/02
to
In article <YAP98.7039$f67.4...@weber.videotron.net>,
Laurent Duperval <ldup...@microcelli5.com> wrote:
.
.

.
>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
.
.
.
Anyone have a name for this? What do you call it when
a boss/organization/client/... comes to you and says,
"We have this thing that works, and satisfies people,
and we want you to make it more painful and less re-
warding"?
--

Cameron Laird <Cam...@Lairds.com>
Business: http://www.Phaseit.net
Personal: http://starbase.neosoft.com/~claird/home.html

Darren New

unread,
Feb 11, 2002, 12:14:36 PM2/11/02
to
Cameron Laird wrote:
> "We have this thing that works, and satisfies people,
> and we want you to make it more painful and less re-
> warding"?

Advertising "Impressions".

Chris Nelson

unread,
Feb 11, 2002, 12:34:42 PM2/11/02
to
Cameron Laird wrote:
>
> In article <YAP98.7039$f67.4...@weber.videotron.net>,
> Laurent Duperval <ldup...@microcelli5.com> wrote:
> .
> .
> .
> >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
> .
> .
> .
> Anyone have a name for this? What do you call it when
> a boss/organization/client/... comes to you and says,
> "We have this thing that works, and satisfies people,
> and we want you to make it more painful and less re-
> warding"?

Dejanews?

--
The Best Parent is Both Parents http://www.gocrc.com

Kevin Kenny

unread,
Feb 11, 2002, 12:54:16 PM2/11/02
to
Rennor Thomson wrote:
> 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.

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

Neil Madden

unread,
Feb 11, 2002, 1:13:38 PM2/11/02
to
> What do you call it when
> a boss/organization/client/... comes to you and says,
> "We have this thing that works, and satisfies people,
> and we want you to make it more painful and less re-
> warding"?

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

Bryan Oakley

unread,
Feb 11, 2002, 1:02:30 PM2/11/02
to
> Anyone have a name for this? What do you call it when
> a boss/organization/client/... comes to you and says,
> "We have this thing that works, and satisfies people,
> and we want you to make it more painful and less re-
> warding"?
> --

Marketing?

Laurent Duperval

unread,
Feb 11, 2002, 1:49:35 PM2/11/02
to
In <F5C2DFEA830DF20C.592442F6...@lp.airnews.net>,

Cameron Laird wrote:
> Anyone have a name for this? What do you call it when a
> boss/organization/client/... comes to you and says, "We have this thing
> that works, and satisfies people, and we want you to make it more
> painful and less re- warding"?

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

Jeff Hobbs

unread,
Feb 11, 2002, 3:07:48 PM2/11/02
to
Laurent Duperval wrote:
>
> In <F5C2DFEA830DF20C.592442F6...@lp.airnews.net>,
> Cameron Laird wrote:
> > Anyone have a name for this? What do you call it when a
> > boss/organization/client/... comes to you and says, "We have this thing
> > that works, and satisfies people, and we want you to make it more
> > painful and less re- warding"?
>
> Taking care of the bottom line.

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/

Laurent Duperval

unread,
Feb 11, 2002, 4:43:39 PM2/11/02
to
In <3C682494...@ActiveState.com>, Jeff Hobbs wrote:
> Hmmm, I like Neil's wording better, but perhaps better wording is:

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

Bruce Hartweg

unread,
Feb 11, 2002, 5:23:02 PM2/11/02
to
Neil Madden wrote:

>
> 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


Neil Madden

unread,
Feb 11, 2002, 5:52:55 PM2/11/02
to

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.


--

Neil Madden

unread,
Feb 11, 2002, 5:58:22 PM2/11/02
to
Laurent Duperval wrote:
>
> In <3C682494...@ActiveState.com>, Jeff Hobbs wrote:
> > Hmmm, I like Neil's wording better, but perhaps better wording is:
>
> 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.

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

Frank Pilhofer

unread,
Feb 12, 2002, 3:47:56 AM2/12/02
to
Cameron Laird <cla...@starbase.neosoft.com> wrote:
>
> Anyone have a name for this? What do you call it when
> a boss/organization/client/... comes to you and says,
> "We have this thing that works, and satisfies people,
> and we want you to make it more painful and less re-
> warding"?
>

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

Donal K. Fellows

unread,
Feb 12, 2002, 6:53:20 AM2/12/02
to
Cameron Laird wrote:
> Anyone have a name for this? What do you call it when
> a boss/organization/client/... comes to you and says,
> "We have this thing that works, and satisfies people,
> and we want you to make it more painful and less re-
> warding"?

A Dilbert Moment.

-- Always running as a superuser is not a fault, it's an OS preference.
-- <mz...@hotmail.com>

Bob Techentin

unread,
Feb 12, 2002, 8:51:56 AM2/12/02
to
"Cameron Laird" <cla...@starbase.neosoft.com> wrote

>
> Anyone have a name for this? What do you call it when
> a boss/organization/client/... comes to you and says,
> "We have this thing that works, and satisfies people,
> and we want you to make it more painful and less re-
> warding"?

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/


Andreas Kupries

unread,
Feb 12, 2002, 1:11:35 AM2/12/02
to
Laurent Duperval <ldup...@microcelli5.com> writes:

> 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.

http://mini.net/tcl/2952.html

--
Sincerely,
Andreas Kupries <akup...@shaw.ca>
Developer @ <http://www.activestate.com/>
Private <http://www.purl.org/NET/akupries/>
-------------------------------------------------------------------------------
}

Laurent Duperval

unread,
Feb 12, 2002, 10:46:42 AM2/12/02
to
In <87ofiv4...@bluepeak.home>, Andreas Kupries wrote:
> Maybe newzpoint can help. Note: Win* only.
>
> http://mini.net/tcl/2952.html
>

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?

Laurent Duperval

unread,
Feb 12, 2002, 11:18:54 AM2/12/02
to
In <CNaa8.19164$f67.9...@weber.videotron.net>, Laurent Duperval wrote:
> So unless a cross-platform version comes out...
>

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?

lvi...@yahoo.com

unread,
Feb 13, 2002, 2:35:10 PM2/13/02
to

According to Laurent Duperval <ldup...@microcelli5.com>:
: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.

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.

Jeff Hobbs

unread,
Feb 13, 2002, 4:15:17 PM2/13/02
to
lvi...@yahoo.com wrote:
>
> According to Laurent Duperval <ldup...@microcelli5.com>:
> :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.
>
> 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...

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/

Laurent Duperval

unread,
Feb 13, 2002, 5:48:11 PM2/13/02
to
In <3C6AD765...@ActiveState.com>, Jeff Hobbs wrote:
> 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.
>

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"?

Ralf Fassel

unread,
Feb 14, 2002, 1:59:00 PM2/14/02
to
* Neil Madden <nem...@cs.nott.ac.uk>

| 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.

Phase 2: make it 4 lines or less (shouldn't be too difficult ;-)

R'

Neil Madden

unread,
Feb 14, 2002, 5:41:23 PM2/14/02
to

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.

Ralf Fassel

unread,
Feb 15, 2002, 5:07:41 AM2/15/02
to
* Neil Madden <nem...@cs.nott.ac.uk>

| I don't know how I could make it any smaller.

*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...

Neil Madden

unread,
Feb 15, 2002, 9:32:02 AM2/15/02
to
Ralf Fassel wrote:
>
> * Neil Madden <nem...@cs.nott.ac.uk>
> | I don't know how I could make it any smaller.
>
> *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.

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

Neil Madden

unread,
Feb 15, 2002, 10:07:39 AM2/15/02
to

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

Donal K. Fellows

unread,
Feb 15, 2002, 10:42:24 AM2/15/02
to
Neil Madden wrote:
> 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... :-)

But SF seems to be down ATM. :^(

-- 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>

Robert Oates

unread,
Feb 19, 2002, 8:10:33 AM2/19/02
to
> "Cameron Laird" <cla...@starbase.neosoft.com> wrote
>
>Anyone have a name for this? What do you call it when
>a boss/organization/client/... comes to you and says,
>"We have this thing that works, and satisfies people,
>and we want you to make it more painful and less re-
>warding"?

To Microsoft

I Microsoft
You Microsoft
He/She Microsofts
They Microsoft

Hmmmm, has potential...

lvi...@yahoo.com

unread,
Feb 19, 2002, 12:59:58 PM2/19/02
to

According to Neil Madden <nem...@cs.nott.ac.uk>:
: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


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...

Neil Madden

unread,
Feb 19, 2002, 1:38:14 PM2/19/02
to
lvi...@yahoo.com wrote:
>
> According to Neil Madden <nem...@cs.nott.ac.uk>:
> :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
>
> 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 :-)

John D. Mitchell

unread,
Mar 7, 2002, 10:56:38 AM3/7/02
to
In article <F5C2DFEA830DF20C.592442F6...@lp.airnews.net>, Cameron Laird wrote:
[...]

> Anyone have a name for this? What do you call it when
> a boss/organization/client/... comes to you and says,
> "We have this thing that works, and satisfies people,
> and we want you to make it more painful and less re-
> warding"?

A job.

:-?,
John

John D. Mitchell

unread,
Mar 7, 2002, 11:11:39 AM3/7/02
to
In article <3C67F189...@cs.man.ac.uk>, Donal K. Fellows wrote:
> Mo wrote:
[...]
> 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...

I suggest looking at DJB's dns resolver code.

http://cr.yp.to/

Take care,
John

David N. Welton

unread,
Mar 7, 2002, 12:24:08 PM3/7/02
to

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/

John D. Mitchell

unread,
Mar 7, 2002, 12:54:19 PM3/7/02
to
In article <87bse0g...@dedasys.com>, David N. Welton wrote:
> "John D. Mitchell" <jo...@mitchell.org> writes:
[...]

>> I suggest looking at DJB's dns resolver code.
>
> Be careful though, if you actually want to use it for something, as it
> is not free software.

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

0 new messages