Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

jdporter's bookmarks and miscellany

by jdporter (Canon)
on Jun 20, 2006 at 15:08 UTC ( #556425=note: print w/ replies, xml ) Need Help??

in reply to jdporter's treehouse
in thread jdporter

signs of intelligent life (in case anyone's searching ;-)

Top 10 reasons to start using ack

ack is a tool like grep, aimed at programmers with large trees of heterogeneous source code.

ack is written purely in Perl, and takes advantage of the power of Perl's regular expressions.

Win32 Perl Wiki

Discussion of my CPAN modules⇒ on CPANforum⇒.

The Computer Technology Documentation Project

Computational Linguistics

She's a supermodel. She's a philosopher. What more do you want?

Comic aboutDigitalKitty (by jkva's better half)

On 2005-10-14, I cleaned up some ancient cruft. The most interesting thing I found (and fixed) was the following. In the thread of Site How To (which, btw, is no longer an official site doc), some people had posted "root" question nodes as replies. Apparently they didn't know how to go to Seekers of Perl Wisdom and scroll to the bottom. So I yanked those nodes out and made them root nodes in the SoPW section. They were:

My Free Nodelet Hacks:

my patches

Some of my root and pseudo-root nodes:

2006-02-01SoPW SharePoint automation
2004-04-06Med There's Only One Way To Do It
2006-01-03Med Strategy Handles
2002-11-14Tut PerlMonks for the Absolute Beginner
2002-11-09PMD Make Purpose of each Section clear
2002-11-26PMD Automate your PerlMonks activities
2006-01-12PMD Pre-empt the node named 'Friar'
2003-03-03CUFP Create and Pop Up Outlook Notes from Perl
2006-01-11CUFP Control and Query Win32 Services at the command line
2003-01-27Code Check for recent replies to your posts
2004-08-15Code Statistics::SGT
2005-07-16Code Tie::Scalar::Substring
2002-11-06snip map-like hash iterator
2002-11-19snip IO::MultiHandle - Operate on multiple file handles as one
2003-05-01snip call setrlimit to limit process resource usage
2003-06-06snip Read and write Windows "shortcut" links
2005-08-29pmdevtopic Site section superdocs need sitedoclets
2006-02-06pmdevtopic in monktitlebar, link to sections by id?
2006-02-07pmdevtopic Let link text for patches be 'reason' rather than 'title'?
2006-02-12pmdevtopic Proposal for some new/improved shortcut types
2006-03-20pmdevtopic Uniform set of categories for all sections that have them?

In <32623.959291225@chthon>, tchrist wrote:

A programmer who hasn't been exposed to all four of the imperative,
functional, objective, and logical programming styles has one or
more conceptual blindspots.  It's like knowing how to boil but not
fry.  Programming is not a skill one develops in five easy lessons.

The Young Man and the Beach⇒ by tchrist

Dictionary of Algorithms and Data Structures⇒ at the (U.S.) National Institute of Standards and Technology.

Some interesting homenode replies:

O'Reilly has 36 syndication feeds:

The links above are to their default, which is Atom. If you want RSS1/RDF, append ?format=rss1 to the URL. If you want RSS0.9x/2.0, append ?format=rss2 to the URL.
Interesting thread: Useless unless. The "suggestion that Perl should have an otherwise" came from me. This thread is really about two issues: unless and otherwise. I don't care about the unless bit.

PP!n!PO o!G+OLCC+OLJ+OLP---OLL+Ee-Ev+Eon-uL++uS+w-

I became a ham⇒ on November 22, 2004. My call sign is KI4HTE.

Why do I go by "jdporter"?

This is my entry in the Thread That Dare Not Speak Its Name.

If you're interested in the geographical location of monks:

And don't miss the amazing pmplanet!

Two awesome lists of Perl resources:

Resources for Learning Perl

    In this order:
  2. Picking Up Perl
  3. Beginning Perl

Useful Bookmarks

Internal: External:

Design Patterns in Perl


  • Greenspun's Tenth Rule of Programming: "Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp."
  • Zawinski's Law of Software Envelopment: "Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can."
  • Porter's Conflation: "Every sufficiently complicated program includes a half-baked implementation of half of the POP (or IMAP) spec." For example:

On-line Bibles

Sometimes you hear people speaking obliquely about something in merlyn's past. Curious? Check it out⇒.

Single-Serving Goal: "the best phrase guides and language aides on the web and the most useable maps and trail guides."



Comment on jdporter's bookmarks and miscellany
Select or Download Code
Replies are listed 'Best First'.
last hour of cb
by Tanktalus (Canon) on Jan 26, 2007 at 20:59 UTC

    Updates more-or-less every 5 minutes (except when there is no activity). Extracted from Tanktalus' CB Stats' database. Feedback
    Shows the last hour or so, but never more than will fit in 64k, nor over two hours. Other sources of cb history
    Last update: Jul 30, 2015 at 23:50 UTC
    [jeffa]i wish there were an easy and constructive way to say "this is really not good" for Colorapt for Ubuntu/Debian
    [Lady_Aleena]The constructive way to tell someone their work is not good is by pointing to the problem areas and being specific when suggesting fixes.
    [Lady_Aleena]Also, being neutral in tone when pointing to the problems will go a long way. Being positive in the problems can be fixed with one's specific solutions will help too.
    [jeffa]that was a rhetorical question
    [jeffa]the other end of the deal is this -- when someone is asking for a critique, they should put their thick skin on
    [jeffa]question Lady_Aleena -- why do you want to learn OO programming?
    [Lady_Aleena]I was interested in it, however, I believe my interest has waned for the moment. OO does not appear to fit into my coding style.
    [Lady_Aleena]The looser procedural style seems to be a better fit.
    [jeffa]well, trying to learn by applying it to the code that generates your website is going to be next to impossible
    [jeffa]in other words, yes, the style you chose to implement that solution is 180 degrees the other direction from OOP
    [jeffa]this is most likely the source of your difficulty ... if you want to learn OOP, do it on other code, not your website
    [Lady_Aleena]Unfortunately, I have no other work other than my website, unless I come upon some silly idea for which I decide to write code.
    [jeffa]that's how you learn OOP ...
    [jeffa]you work with the code that the teacher is teaching you, until you get it
    [jeffa]understand that to port your solution to an OOP one is essentially changing every single line of code --- every single one
    [jeffa]you'd have to unravel all that wrapping you've done
    [jeffa]and then you do things like learn advanced concepts that you'll never need with a dynamic language :D
    [Lady_Aleena]As I said, my interest in OO has waned since it appears to go against how I think when I write code. I have yet to find a tutorial which would help me "think" in OO.
    [jeffa]not sure what you are expecting ... no one can do the learning for you
    [jeffa]what does "thinking in OO" even mean to you?
    [jeffa]which is why i asked why you wanted to learn it in the first place, what were you expecting to gain from it?
    [Lady_Aleena]For example when I write code and see I've repeated the same set of lines 3 or more times, I put those lines into a subroutine. Ususally that subroutine turns out to be a procedure. I have yet to come across sets of line which would lend themselves to OOP
    [jeffa]i remember when i first wanted to learn OO back in 1997, i had just finished my first semester in CompSci, and i wanted to learn OO that summer
    [jeffa]so i spent several weeks just reading
    [Lady_Aleena]At first it was because I was being told some parts of my code were very close to OOP, so I wanted to give it a whirl.
    [jeffa]most of your code is about dealing out actions ... you really process and delegate data in such a way that other code can use the results
    [jeffa]your code is actually very anit-OOP
    [mr_mischief]OOP is best suited to when you have a long-lived piece of data that has lots of things done to it. You can make any program OO, but some map to it better than others.
    [jeffa]most of your code does things like this: sub foo { bar(); } sub bar { print "hello" } foo();
    [jeffa]when it should be doing this: sub foo { return bar(); } sub bar { return "hello" } print foo();
    [jeffa]the difference is that yourcode like to print stuff out, from within functions that are called -- rather than return data and having the end user call print ... this will be difficult to port to an OO solution
    [Lady_Aleena]mr_mischief, apparently mine can't be rewritten in OOP.
    [jeffa]why do you say that, Lady_Aleena? why do you say it can't ... when all i said was it will be very difficult
    [mr_mischief]Any piece of code can be rewritten into OO, or functional, or table-driven, or actor-based, or ... It's a matter of how much effort it would take and whether it's suited to that model.
    [jeffa]and my point is mainly this --- if you truly want to learn OO, let go of trying to learn it by changing your website generation code
    [jeffa]stop trying to fit what you are being taught into the model that is that code ...
    [Lady_Aleena]jeffa, you said "next to impossible".
    [jeffa]because that code is very much designed from take actions way down the call stack, rather than pipelining common and generic functionality that is made specific by arguments
    [jeffa]which is another way of saying "Very difficult" and it certainly is not the same as "impossible" or "you can't do it"
    [jeffa]i say these things because you've been trying to learn for a long time now, and are not having any luck at all
    [jeffa]why not seek out a mentor that you can learn from one on one?
    [mr_mischief]If you're just learning OO it may be best to write something new with it. Trying to fit OO into an existing program is kind of like fitting a horse into yoke made for an ox. They both pull things, but they have different shapes.
    [jeffa]you have a lot of incorrect notions that need to be corrected, such as criticizing for it's Tr() ... you completely miss the fact that AUTOLOAD does the work
    [Lady_Aleena]I don't think someone would just give me that kind of time. Remuneration would probably be required.
    [jeffa]that is what i am trying to convey to her, mr_mischief ... someone would have to pay me a lot of money to port that code base to something more OO
    [jeffa]you assume too much as well, rather than just assuming what people will or won't do ... make the effort to see the truth
    [jeffa]isn't there some kind of silly effort to get more women into coding? seek those fools out and take their money :D
    [jeffa]i say that because i still see 90% males at conventions
    [Lady_Aleena]From what I've seen of objects is they are very self aware, but they don't know anything. I tell an object to get me some data, and I have to tell them where the data is instead of the data location being part of the object.
    [jeffa]an Object knows where to find its methods and it knows the state of its attributes (data) ... that is the point ... that everything is self contained
    [jeffa]you are confusing processing data with owning that data --- an object has its own data, but it can process other data, like make HTML
    [Lady_Aleena]It is like me having to lug a library around for the objects to use the books. Objects should have the books written into them.
    [jeffa]they do, you just are confused and misunderstand OOP
    [jeffa]again, you keep trying to bring this back to your Singularity -- your website
    [Lady_Aleena]I think it is why I prefer to use things like sub start { my ($thing) = @_; return $hash{$thing}{'start'}; } The sub knows to look at $hash for the start.
    [jeffa]But where is %hash declared?
    [jeffa]%hash is a global variable ... we want to not have to rely on global variables because they are hard to keep track of

    ↑Previous Hour↑
    ↓Current Hour↓

    [jeffa]in other words, why should i bother using your start sub when i can just grab that hash directly?
    [jeffa]Your::Package::start( 'foo' ) ... i can just use the hash directly: $Your::Package::hash{foo}{start} ... why should i use your method?
    [Lady_Aleena]I almost always have my %hash or other data at the top of the module if needed for the module.
    [jeffa]understand this: you prefer that code not because of what it does, but because that's the only way you know how to do it
    [jeffa]i already answered that question for you --- it is a global variable and global variables lead to spaghetti code
    [Lady_Aleena]I think I've used our %hash in 1 module to export.
    [jeffa]do you not understand that those methods you coded such as start were unecessary because you left your API wide open? these are reason why people like OOP
    [tye]directly access global variables leads to be encapsulation. So, yes, avoid global variables. But using global variables as part of a well-encapsulated set of routines is often a good design. So Lady_Aleena wins this design round.
    [jeffa]the OO version of your example might look like this: sub start { my ($self,$thing) = @_; return $self->{hash}{$thing}{start}; }
    [tye]*bad* encapsulation
    [jeffa]last i checked i make about 6 figure more than LA doing this stuff
    [jeffa]tye ... i win ok? you suck
    [jeffa]i make more money than you, and here i am living in CA without your help, k thx bye!
    [tye]which makes you advise to avoid encapsulation either sad or just trolling. At least it made me laugh. So thanks for that.
    [Lady_Aleena]I use my (lexical) instead of our (glbal) for my data, At least that is what I was lead to believe about my vs. our.
    [jeffa]well, when you try desperately to find flaws because you are jealous hater you'll find something alright
    [jeffa]who is the loser here? Lady_Aleena who still can't OOP
    [jeffa]after all, garbage in garbage out --- i can't help it if i was given a bad example to attempt to turn around into a good one, what kind of sad loser waits like you do to attack that?
    [jeffa]this is your legacy tye ... enjoy you bitter creep
    [jeffa]i'm done for the day so go ahead and borg me
    [tye]The little attention I pay is because I feel responsible to intervene if you go into another about of being abusive or excessively trollish. But enjoy your fantasies.
    [jeffa]how do you explain youself here, since i was being sincere?
    [jeffa]holding a grudge are we?
    [jeffa]funny how tye is only at Perlmonks ... no other social sites, this is because he only controls Perlmonks
    [jeffa]power trippin
    [jeffa]was it you who accused me of fantasties? here you are, pretending to be god
    [jeffa]..|. .|..
    [tye]FYI, I can't actually think of anything that I have to hold a grudge against you for.
    [jeffa]being here?
    [Lady_Aleena]I'd like to see what jeffa could do with my RolePlaying::Random::Size. (No html there.) ;)
    [jeffa]i'd rather work on my own code
    [jeffa]and HTML is my speciality
    [chuckbutler]is it just me, or is offline?
    [Lady_Aleena]chuckbutler, check it here.
    [Lady_Aleena]Maybe not, the short url appears slow.
    [chuckbutler]LA, no go. It looks like a DNS A record problem
    [Lady_Aleena]Nope, I used the wrong url. eeps.
    [Lady_Aleena]chuckbutler, it should be not I screwed it up.
    [jeffa]while you are waiting, maybe you can just install a Linux distro instead ;)
    [Lady_Aleena]I installed Linux, and now I have to use sudo whenever I want to cpan modules. :(
    [yitzchak]"other social sites"? perlmonks is a social site? well, that's it, I'm outta here
    [jeffa]i install Linux and perlbrew and cpanm and i do not have to sudo ... but why is having to sudo bad? this is good thing
    [Lady_Aleena]yitzchak, where'd you see that?
    [Lady_Aleena]Using sudo always slows me down.
    [jeffa]installing modules should not be a knee jerk reaction
    [Lady_Aleena]I never know when I have to use sudo and when I don't.
    [runrig]runrig tags yitzchak
    [jeffa]installing modules is system administration -- security, stability -- these things are more important than your lack of tenacity
    [jeffa]not understand sudo is not a fault of Linux, and in no way does that conversely make Microsoft attractive ... quite the opposite
    [Lady_Aleena]jeffa, you've never come across a module, said something akin to "neat" or "cool", and installed it just to play with it?
    [jeffa]do you attempt to understand when you need to use sudo? what steps have you taken to learn?
    [Tanktalus]Tanktalus likes yitzchak's post.
    [jeffa]yes, i install modules all the time under such circumstances, i also can uninstall them i am done
    [yitzchak]windows 10 install (read from bottom up)
    [yitzchak]hmm, that doesn't seem to have all the tweets. I hate twitter's interface, hate hate hate
    [jeffa]that's a feature
    [Lady_Aleena]I wish I had the fu where I could run 1 command from the command line to pay all my bills all at once.
    [yitzchak]jeffa++ # that's a feature
    [Tanktalus]I wish I had the money where I could pay all my bills all at once.
    [yitzchak]usually you can configure the payees to initiate the process, if you don't want individual control (which I do)
    [jeffa]i wish all my bills were income
    [Lady_Aleena]And another command to make dinner.
    [tye]now we're back to sudo (make me a sandwich)
    [Tanktalus]tye++ # sudo make me a sandwich
    [Tanktalus].oO( good thing this place doesn't count the number of requests users make per day... )
    [Lady_Aleena]After physical therapy today, I do not feel like standing at the stove making dinner.
    [beech]sit on it?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://556425]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (10)
As of 2015-07-31 00:02 GMT
Find Nodes?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...

    Results (274 votes), past polls