Computer SW Languages Perl - Berkeley CSUA MOTD
Berkeley CSUA MOTD:Computer:SW:Languages:Perl:
Results 301 - 431 of 431   < 1 2 3 >
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2024/11/27 [General] UID:1000 Activity:popular
11/27   

2013/4/9-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Apps, Computer/SW/Languages/Perl] UID:54650 Activity:nil
4/04    Is there a good way to diff 2 files that consist of columns of
        floating point numbers, such that it only tells me if there's a
        difference if the numbers on a given line differ by at least a given
        ratio?  Say, 1%?
        \_ Use Excel.
           1. Open foo.txt in Excel.  It should convert all numbers to cells in
              column A.
           2. Open bar.txt in Excel.  Ditto.
           3. Create a new file in Excel.
           4. In cell A1 of the new file, enter this:
              =IF(foo.txt!A1=0, IF(bar.txt!A1=0, "same", "different"), IF(ABS((b\
ar.txt!A1-foo.txt!A1)/foo.txt!A1)<1%, "same", "different"))
           5. Select cell A1.  Hit Ctrl-C to copy.
           6. Select the same number of cells as the number of cells that exist
              in foo.txt or bar.txt.  Hit Ctrl-V to paste.
           7. Hit Ctrl-F.  In "Find what:", enter "different".  In "Look in:",
              choose "Values".  Click "Find All".
           Another way is to write a C program to read the two files using
           fscanf("%f") an do the arithmatic.
        \_ does this help?
#!/usr/bin/python
import sys

threshold = float(sys.argv[3] if len(sys.argv) > 3 else 0.0000001)
list1 = [float(v) for v in open(sys.argv[1]).readlines()]
list2 = [float(v) for v in open(sys.argv[2]).readlines()]

line = 1
for v1, v2 in zip(list1, list2):
    if abs((v1 - v2) / v1) >= threshold:
        print "Line %d different (%f != %f)" % (line, v1, v2)
    line += 1
        \_ Something like this might work ($t is your threshold):
           $ perl -e '$t = 0.1 ; while (<>) { chomp($_); ($i,$j) =
             split(/ \t/, $_); if ($i > ((1+$t)*$j) || $i < ((1-$t)*j)) {
             print "$_\n"; }}' < file
2012/12/18-2013/1/24 [Computer/SW/Languages/Perl] UID:54561 Activity:nil
12/18   Happy 25th birthday Perl, and FUCK YOU Larry Wall for fucking up
        the computer science formalism that sets back compilers development
        back for at least a decade:
        http://techcrunch.com/2012/12/18/print-happy-25th-birthday-perl
        \_ I tried to learn Perl but was scared away by it.  Maybe scripting
           lanauages have to be like that in order to work well?
        \_ I tried to learn Perl but was scared away by its incoherience.
        \_ I tried to learn Perl but was scared away by its incoherence.
           Maybe scripting languages have to be like that in order to work
           well?  I don't know other scripting languages.
           \_ We laugh at Perl today and say it is the new COBOL, but to give
              credit, Perl came out at a time when awk/sed were the ways of
              doing things. People didn't know any better, and programming
              languages/compilers/parsers were not as formalized as it is
              now today.
                Try Python, it is a very elegant language that
              came out as a result of a lot of the earlier trial and error
              and undos a lot of the mistakes that earlier folks made.
              Python is VERY consistent (syntax, usage, etc) and very
              readable, so that 10000 developers can read and develop
              each other's code. Computers evolve. So do languages.
              \_ Part of this is just image. People hate perl now. People
                 loved perl before. Python is cool now. Next it will be
                 ruby or something else. All of these languages, whether
                 FORTRAN, COBOL, C++, Java or Python do basically the same
                 shit to an order of magnitude.
                 \_ you are not a computer science major. Yes you are correct
                    that all modern languages all perform the same computations
                    and have the same power in the Chomsky Hierachy. They
                    will however provide different features, most of them are
                    time savings or productivity boosts. Features such as
                    static typing and static analysis (bane of old dynamic
                    languages) detects type errors BEFORE the program even
                    runs (sorry Perl). Dynamic languages saves people time
                    by not requiring a long dance (e.g. verbose Java/C
                    declarations) so programmers can focus on coding instead
                    of syntax. New languages have both features of dynamic
                    and strong/static typing (e.g. Go, Scala) which allow
                    programmers to code like dynamic languages AND allow
                    the compilers to perform semantic analysis. Sorry again
                    Perl (it is not even a language that can be described in
                    a standard AST). Look, even old Java itself was a big
                    thing as programmers no longer need to spend so much
                    time worrying about memory management and debugging
                    and monitoring stack trace and heap. Java provides
                    faster time-to-market over C, just as Go/Scala/etc
                    will provide faster time-to-market over Java. Don't
                    discount future programming languages, runtime, and
                    compilers. There will always be something better
                    (sorry, Ruby is NOT better) and meta-productivity will
                    always increase with further language research.
                    BTW you are probably wondering how much productivity
                    a higher level language provides. Read the Mythical
                    Man-Month. It is provide concrete numbers. Read it.
                                        -CS, thesis in programming languages
                    \_ I have a MS in CS from UCLA and I stand by my statement.
                       Most of what you say is true, but it doesn't
                       contradict anything I said. What language is
                       "better" depends on a lot of variables. Note
                       specifically that I am not claiming that FORTRAN, Perl,
                       Java, and C++ are equivalent. Of course not. However,
                       for solving certain classes of problems they certainly
                       are. Further, sometimes some of the "advantages" aren't.
                       There is definitely some element of a beauty contest
                       when it comes to the "new, improved" language du
                       jour. When all you have is a hammer, everything looks
                       like a nail. I see this with freshouts all the time.
                       \_ what is your thesis? What is UCLA's ranking?
                          \_ Why don't you ask me how big my penis is?
                             \_ Since you brought it up...
                                \_ Are you hitting on me?
                                   \_ It depends on what your answer is.
                       \_ compare scripting to scripting, and static typed
                          compiled languages to static typed compiled
                          languages. Any other comparison is apple & orange.
                          Perl is a scripting language that can be easily
                          replaced by any modern scripting language just as
                          FORTRAN can be replaced by any C/C++ variants today.
                          How many companies today still actively develop
                          their products using COBAL?
                          \_ What is your claim here?
2011/11/2-8 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:54208 Activity:nil
11/2    Celebrating fifty days of uptime!
        00:16:58 up 50 days, 19 min, 13 users,  load average: 1.00, 1.00, 1.00
        \_ Thanks, jordan!
        \_ I would bitch about the 1, but it is not like anyone else is
           trying to do anything resource intensive with soda.
           \_ The culprit:
             PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
           25757 edilaic   20   0 32088 4284 2052 R  100  0.1  21565:48 perl
           \_ Yeah I saw that too, but it is not like he is slowing anyone
              else down. This is some kind of irc bot, right?
              \_ rodney on irc.csua/#hosers -- it announces nethack deaths.
2011/1/19-2/19 [Computer/SW/Languages/Perl] UID:54012 Activity:nil
1/19    Perl god, please go to http://perldoc.perl.org/perlre.html
        Go to "Quantifiers" and the greedy operator, such as
        +?, *?, ??, {n,}?, {n,m}?
        So I understand the greedy operator that does matching
        based on having different choices (instead of the default
        maximal munch). What about "{n}?" ?  What are some
        examples of using "{n}?" ?
        \_ s{2,} will match "ssss" once.  s{2,}? will match it twice.
           \_ that is clear. s{n,} and s{n,m} will match between n to
              m number of s. Traditionally regex is maximal munch.
              However the "?" minimal munch operator such as s{n,m}?
              will perform minimal munch.
                My question is, if you have just s{n} and you match
              exactly n number of s, then what is the point of the
              minimal match, given that there is no choice?
              \_ It's just for consistency.  s{n} and s{n}? are identical.
                 \_ ^consistency^redundancy
                    ^consistency^stupidity
                    Perl programmers are like Republicans-- righteous,
                    unapologetic, and incapable of seeing the point
                    of view from other languages.
                    \_ How would you design it?  If s{2,3}? is legal but
                       s{2,2}? is an error, then s{$min,$max}? will fail
                       if $min and $max happen to be equal.  That seems
                       suboptimal.
        \_ "$_Wha???" lol
2010/12/11-2011/2/19 [Computer/SW/Languages/Perl] UID:53984 Activity:nil
12/11   Anyone have experience with Perl PDF::API2 or PDF::API3?  Can you
        point me to a good tutorial for creating a simple document (a small
        table of 2-3 rows and a single image)?
2010/8/12-9/7 [Computer/SW/Languages/Perl] UID:53922 Activity:nil
8/12    Ruby coders, do you mostly DIY your stuff or use the ruby libs out
        there?   How is their quality compared to other libs you have used
        for other langs?  Thx.
        \_ I use Ruby for hobby stuff, etc.  I use libraries for system stuff
           (web access, process, etc.) but that's about it.  Perl libraries are
           much better/more complete.  I assume because of the maturity and
           size of the community.
        \_ I've found the quality of ruby libs to be lower than perl, which
           also often has quality issues.  The plus side is reading the ruby
           code to figure out wtf is going on is easier than reading perl, imo
           \_ what do either of you think of python libs by comparison
              (speaking of readability)?
        \_ python is quite mature and the programmers that use it tend to
           be much higher quality than ruby. ruby programmers, on average,
           are just slightly above average php programmers, which isn't
           a very good bar to begin with.
           \_ I've looked around with some libraries, most of which give me
              the feeling that you are right,  from their code base, they
              seem to have been made for "grab that low hanging fruit for
              mindshare" - it's the dancing bear problem of software.
              Mostly written by yeah college kids or highschoolers.  Reminds
              me of MySQL codebase. Which I guess is where most of these
              people are from...
              \_ dancing bear?
                 \_ You don't grade the bear on its routine, you are jus
                    amazed it dances at all.
2009/8/18-9/1 [Computer/SW/Database, Computer/SW/Languages/Perl] UID:53283 Activity:low
8/18    trying to write an intentionally slow regex.
        what is your worst regex ever?
        this is using MySQL regexp but I'll also accept
        perl format         --brain
        \_ you need to know how regex is implemented internally in order to
           have a worst regex in terms of running time. Something that uses
           a decent hash table that fit in L1 cache will be fast regardless.
           Lexical analysis with a hash lookup of constant time will be linear
           (to the length of input). NFA->DFA. Are you not a CS major?
        \_ rather than responding to trolls:
           yes, I specified MySQL for a reason:
           The inherent linear nature of most
           regex engines is what makes the problem challenging.
           Soliciting for ideas, not a lecture on how regex works;
           remember I went to Cal too.  Although if you know how the
           MySQL regexp works, I'll take anything you got!  --brain
           \_ Sorry but I don't think you're a CS major.
              \_ Is the OP even aware of DFA vs NFA/traditional NFA/posix
                 as a start?
           \_ What is a MySQL regexp?  You should look up the
              Qadafi/Khada'ffi regexp.
        \_ There are some fairly ugly regexps built into procmail for
           things like FROM_DAEMON, and there's some ~6K regexp for
           fully validating email addresses (may be in the RFC). These are
           big, but not necessarily slow. If MySQL doesn't precompile its
           regexes, and it supports extended regexes, you can do stuff with
           nested ranges: (.{1,100}){1,100}
           Perl regex for RFC822 validation:
           http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
2009/6/2-5 [Computer/SW/Languages/Java, Computer/SW/Languages/Perl] UID:53072 Activity:nil
6/2     http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html
        Ruby sucks.
        \_ Looks no different than python/perl/etc.  It's a scripting language
           that needs a virtual machine if it is ever going to be fast.  The
           scary thing is how much modern computing doesn't need stuff to
           be fast, especially when dealing with web applications.  There's
           also a big problem with that shootout; there's no concept of
           how your average coder will do in language x.  Some languages
           are amazingly powerful, and if you know what you are doing you
           can write good, terse, fast code, but if you put an average
           engineer down and teach them the language they will write
           unmaintainable garbage that noone can read (even after years
           of experiance).  That's what dependability really means.
        \_ As above, if Ruby sucks here then so do Python and Perl.
2009/5/6-14 [Computer/SW/Languages/Perl, Computer/SW/Languages/Web] UID:52961 Activity:kinda low
5/6     I'm sure you've seen web sites that distribute software by making
        a user fill out a form and then e-mailing the user a randomly
        generate link to the software that works just once. What software
        is used to do this? I'd like to distribute software in such a way.
        \_ "Software"?  What web server/web application environment
           are you using?
           \_ Yes, software. Like let's say I have a software package I am
              distributing and it's a tar.gz. Right now people just
              download it, but I'd like to use one of these more
              sophisticated systems to track who downloads it and give
              them a link that works just once. I can use whatever web
              server or environment will do the job.
        \_ Uck.  Those types of links suck.  Please don't.
           \_ What sucks about it? I never had any issues with these. It is
              not acceptable to publish a publically accessible link, so
              what do you suggest instead?
        \_ I've never downloaded softward this way, but I have downloaded
           a secured copy of my tax return from my CPA this way.  They use
           something from LeapFILE.   -- yuen
           \_ I'll look into it, thanks. Any other suggestions? I am surprised
              most of you have never dealt with this. It's really common
              when downloading commercial software like compilers and such.
              \_ It's something I could build in an afternoon, and by
                 doing it myself it would be a lot easier to integrate with
                 all my existing deployments.  Sometimes it's just easier to
                 write it yourself.
                 \_ It's usually a lot more trouble to write it yourself.
                    Then you get to maintain it, too. These hacks are
                    always simple upfront and evolve into headaches later.
                    Seems a lot of people use PHP + MySQL for this and
                    continually reinvent the wheel, which I think is silly. A
                    perl module sounds like a good idea. It's also a lot of
                    baggage for something so simple. I need to install a
                    *database* and a scripting language just for this? Just
                    installing PHP will probably get me hacked.
                    \_ Gee, you already have a scripting language, it's
                       called perl.  You are going to need a database of some
                       sort no matter what.  (It doesn't need to be mysql
                       or a relational database, but you are going to need
                       some sort of data store.)  A perl module doesn't make
                       sense.  If (token in store) then (remove token and
                       serve application).  How hard is that to write?
                       \_ perl module makes a lot more sense than PHP to me.
                          You also don't really need a database of any kind.
                          Why for? You can do fancier things with a DB,
                          but it's not really needed. All you need is to
                          be able to do is generate a random URL and keep some
                          counters. It's not a matter of "how hard is that
                          to write" as it is that I'd rather spend $50 for
                          an app to do this than spend $100/hour for a
                          developer to write and maintain this, even if he
                          spends just 10 hours/year on it.
                          \_ Because you are forgetting the time to
                             install/set up the damn app in the first place.
                             That takes time too.
                             \_ Yes and it will have to be setup and installed
                                no matter if I write it or buy it. So that's a
                                wash.
              \_ curious, why go to the trouble?  What's to stop someone from
                 replublishing the software on their torrent site of choice,
                 unless you're also watermarking the software image, ni effect
                 customizing the copy for the downloader ?
                 \_ CYA. If someone else publishes it then they are the ones
                    that will go to jail. Whereas, if I publish it to the
                    world then it will be me in jail.
                 \_ There's a legal aspect to it. If I have a one-time link,
                    I can make sure you only get the software after you've
                    agreed to my license agreement. If you can download the
                    software without clicking through the license, you can
                    argue that you're not bound by the license.
                 \_ You might also want to avoid people being able to
                    "deep link" to the software, thereby depriving you of
                    ad revenue. The place I work for is in this situation.
                 \_ He wants to collect email addresses.
2009/1/14-22 [Computer/SW/Languages/Perl, Computer/SW/Languages/Misc] UID:52378 Activity:nil
1/13    I want to extract a couple integer from an xml file, mainly,
        xml file from http://weather.com so I can put it on my xplanet marker
        file. has anyone done similar things (parse and extract data
        from xml) using shell script instead of python/perl?
        in the world of perl, it make sense to dump things into a hash
        which i can easily extract key/value pair.  can i achieve similar
        things with xmllint/xmlcatalog?  thanks
        \_ xmlstarlet lets you do xpath/xslt stuff via the command line
           \_ didn't know this existed... Thanks
           \_ thanks again for telling me about xmlstarlet.  this is
              wonderful and easy to use tool.
2024/11/27 [General] UID:1000 Activity:popular
11/27   

2009/1/7-12 [Computer/SW/Languages/Java, Computer/SW/Languages/Perl] UID:52334 Activity:nil
1/8     I have several old CS books that I want to get rid of, just in time for
        the new semester. If someone from the CSUA wants to pick them up for
        the CSUA library or for themselves, contact me. I don't have a list
        handy but they include the dinosaur book, dragon book, some crappy
        EECS122 networking book, an intro to Java book that was used in 61B,
        and a few others. I'm keeping my Programming Perl book but might get
        rid of K&R ANSI C as well. --abe
        \_ More books for our library! You're in Cupertino, right? I wonder if
           Steven might be close enough to pick them up. He may already be back
           in Berkeley, though. --t
           \_ work in Cupertino, live in SF (Haight/Ashbury). Here's what I
                could find (I have another box of maybes somewhere, includes
                an^H^Hthe ANSI C book and Design Patterns):
                computer networks 1558603689
                java language specification 0201634511
                java how to program 0132634015
                operating system concepts "dinosaur" 0201591138
                DBMS 0070507759
                \_ If you'd like me to pick stuff up, I can come to
                Cupertino.  Email vp@csua if so inclined.
2008/11/26-29 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Perl] UID:52111 Activity:nil
11/25   Yargh! They sank the wrong pirate ship!
        http://news.yahoo.com/s/ap/20081126/ap_on_re_as/as_piracy_1
        \_ Oh shit!
        \_ duh, work with indian java monkeys sometime.
           \_ That's stereotyping!  Other language (C, C++, Perl, etc.)
              monkeys are also the same.
        \_ The boat was taken over by pirates!  Now no one needs to worry about
           paying ransom.  Why didn't they think of this earlier?  Oil prices
           and environmental awareness are too low as it is.  Fire away!
2008/7/14-16 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:50557 Activity:moderate
7/14    Shell Programming question: I want to call a script with 1 arg
        and have it figure out whether $1 is a MAC address or an IP address
        and then do call the appropriate function.  What is the best way
        to do this, given that sh/bash/ksh do not have something like
        the =~ in perl.  Check for exit status of grep, or is there a
        a better way?  For the moment, let's just say the two tests are:
          echo $1 | fgrep : > /dev/null && echo isMAC || echo notMAC
          echo $1 | fgrep . > /dev/null && echo isIP || echo notIP
          and if neither, then Usage()
        I want to avoid requiring the user to either do "-i IP" or "-m MAC".
        Note: this doesn't have to do extensive syntax checking ... it's
        not a security application.  Just trying to save typing.
        \_ You may want to recheck your assumption of bash not having =~.
           \_ Thanks for that information.  I didn't know know about that.
              Although right now it is in sh.  Any portable pure sh ideas?
              I'm really interested in what is the "right" way to do this,
              rather than just coming up with something which works.
              \_ "right" depends on your situation. If you actually need
                 to support old systems, or be portable across many systems,
                 then maybe you should stick with sh. If you know your
                 audience is all going to have bash or whatever (and that
                 is not at all unlikely these days), then I see no good
                 reason to suffer under older, less capable tools.
              \_ Dude, it's a sh script.  If it works, it works.  Seriously.
                 Stick it in a function if it looks too ugly and then forget
                 about it.  If you need something to be maintainable or
                 it's a called enough there is any concern about it being
                 too slow you are going to have to bite the bullet and use
                 a reasonable scripting language.  Otherwise just make it work
                 and move on to something that is worth spending time on.
              \_ I think "right" in this case, means readable and maintainable
                 by the next poor guy that has to come along. Just document
                 your code and you will be fine.
              \- I think one way to distill the question is "how do i get =~
                 in sh" ... would you do "echo $string | egrep <regexp>" + $?
                 to get exit status of the grep ... I think the case approach
                 below is nice and clean as long as you are ok with something
                 like *:*:*:*:*:* for MACs and *.*.*.* for IPs, and dont need
                 "true" regexps.
                 "true" regexps. I wouldnt use awk to test, but maybe if you
                 need to mangle.
        \_ Why would you do this in a shell progam?
        \_ use case:

        found="NO"
        case "$1" in
             *:*)    echo "isMAC"; found="YES";;
             *.*)    echo "isIP"; found="YES";;
             *)      if [ "$found" = "NO" ] ; then
                        echo "NOT MAC" ; echo "NOT IP";
                     fi
                     ;;
        esac
2008/6/18-22 [Computer/SW/Languages/Perl] UID:50292 Activity:nil
6/18    Anyone reccomend a simple way in perl to detect an animated gif?
2008/5/28-31 [Computer/SW/Languages/Perl, Computer/SW/Languages/Misc] UID:50069 Activity:nil
5/28    dreamhost tells customers to quit complaining about email and just
        use gmail
        http://www.informationweek.com/blog/main/archives/2008/05/huge_web_hostin.html
        \_ search for dreamhost on motd. sucky suck.
        \_ http://csua.com/?entry=45409
           http://csua.com/?entry=45383
2008/4/29-5/5 [Computer/SW/Languages/Perl, Computer/SW/Languages/Python] UID:49852 Activity:moderate
4/29    Scaling your web app in the real world:
        http://teddziuba.com/2008/04/im-going-to-scale-my-foot-up-y.html
        \_ This article is crap.  While yes, 99.9% of all websites don't
           need any serious scalability plans, if any of them become worth
           anything they will need to scale.  If you write a web application
           without careing about scalability you are writing a webapp that can
           never be more than niche.  Any developer should know where the
           next few scaling bottlenecks live in his application and have some
           basic plan for how to solve them when they become an issue.
        \_ I feel the same way about language Nazis. "Java is the best!"
           "No C is the best!" "Perl sucks it's not readable!" "Python rules!"
           Dumb asses blame the language and not the stupid programmers.
           \_ Different tools for different jobs.  That said, I particularly
              like python.  Its syntax is very clean.
              \_ I don't know python.  I like Pascal the best, although I
                 haven't used it in 18 years.
                 \_ If you liked Pascal, you will love python, unless you
                    get hung up on the fact that blocks in python are
                    defined by indentation rather than by "begin/end"
                    \_ Yeah, I like python, but that blocks by indentation
                       thing drives me up the wall.  Couldn't they at least
                       make it optional? -!pp
              \_ My experience is that Ruby is a lot cleaner than Python, and
                 doesn't have stupid syntactical whitespace. However, I have
                 only used Perl for stuff at jobs etc due to familiarity.
                 Python's object orientedness was less complete than Ruby's
                 and I definitely don't like the indentation thing.
                 \_ I struggled, trying to like Python.  Then I found Ruby and
                    it's the most fun I've had programming in a *long* time.
                    The fact that regexes are as easy as Perl in Ruby was a big
                    deal.
                 \_ Ruby is whitespace sensitive. -- ilyas
                    \_ Far less so than Python.
                       \_ I am not a huge python fan, and I don't like python's
                          whitespace indentation, but I found ruby's specific
                          whitespace sensitivity far more confusing. -- ilyas
                          \_ Interesting, I've never noticed a problem.
                             \_ Perhaps this is because you are not used to
                                programming with closures (blocks are
                                the closest thing in ruby to closures).
                                Ruby blocks have very odd whitespace
                                requirements:
                                (1..3).each {|x| puts x} works
                                (1..3).each {|x|
                                                puts x} works
                                (1..3).each
                                            {|x| puts x} does not work.
                                        -- ilyas
                                \_ No, I use closures, just never have had to
                                   break across the line.
                                   \_ I write fairly hairy closures sometimes,
                                      and often my closure code is nested.
                                      I find this behavior completely bizarre
                                      and unintuitive.  I can't even imagine
                                      why Ruby would insist on this. -- ilyas
                                      \_ I got yer hairy closure right here,
                                         pal.
        \_ This is funny, but not really applicable to real world scaling.
           I have been doing this stuff for 15 years and scaling is more of
           a system architecture and capacity planning issue than a developer
           issue. Of course, if your code is bad enough, no one can make
           it scale.
           \_ I disagree completely. I've taken courses on optimizing
              applications for performance and the best bang for the buck
              is almost always received by altering the code to run
              faster. Sure, things like high-speed interconnects to reduce
              latency can solve problems not easily solved by modifying
              code, but the majority of problems are developer issues that
              they (I would say unknowingly, but maybe because they don't
              care) foist upon the systems people.
              \_ Most cases of performance scaling problems I have encountered
                 have been due to the volume of data being written to disk.
                 These problems can be fixed by using the right RAID type,
                 better use of filesystem caching, a better filesystem, or
                 most often, simply by throwing more disks at the problem.
                 These are not the kinds of issues I would expect a programmer
                 to know or even care too much about. I haven't "taken courses"
                 on it, but I have worked on numerous overloaded web and
                 application sites in the Real World.
                 \_ Sounds like you have haven't encountered a large
                    variety of problems then. Often when a developer
                    profiles his code he can find all sorts of
                    bottlenecks. Often it seems easier to throw h/w at
                    problems, but the biggest gains come from writing
                    better code. For instance, don't write so much data to
                    disk or be smarter about how you do it. You are
                    correct that programmers don't know and care about
                    these issues, but they should. They usually only care
                    when they are forced to because their code doesn't
                    meet requirements, because it compares unfavorably to
                    competing code, or because the hardware solution has
                    failed or is too costly to implement.
                    \_ "In nearly every case the most serious bottleneck
                        is an overloaded or slow disk." -Adrian Cockcroft
                        Sun_Performance_And_Tuning (Ch 1, Paragraph 1)
                        \_ You ever wondered why Google search is so fast?
                           They have the world's largest RAM disk. They
                           index and keep most of their search data
                           ***IN MEMORY***. Last time I attended a talk
                           I learned that they have more a shitload more
                           RAM than many corporations have on disk. It
                           is ridiculous.
                           \_ Thanks for making my point.
                        \_ Well no shit, but this is tangential. The
                           question isn't "Is disk slower than RAM?". It
                           question isn't "Is disk faster than RAM?". It
                           is "Is there a way to do this such that it
                           doesn't write to disk as much?" One example is
                           when developers decide to write 6 million
                           small files in one directory and the filesystem
                           bogs down. Sure, you can buy a faster
                           filesystem but that's correcting the symptom
                           and not the problem. You don't need to buy $$$
                           hardware that probably still can't handle that
                           particular issue if the code didn't do something so
                           stupid.
                           \_ I heard reiserfs is really good at storing lots
                              of little files.
                           \_ I heard reiserfs is really good at storing lots of
                              little files.
                              \_ unfortunately, it stores them in a dumpster
                                 in San Leandro.
                           \- lexis/nexis was pretty fast at seearch +20 yrs
                              go. the old bell labs people [who after all were
                              working for a phone company] have lots of
                              interesting stories about optimizations for
                              various phone company applications. one of
                              the main altavista people wrote some code to
                              use a cache that was physically closer to a
                              processing unit to avoid die-crossing latency
                              [and had numbers to show the difference it
                              made]. google is mostly read data and it's not
                              authoritative but a cache/copy for much.
                              contrast this with say ebay. for a somewhat
                              interesting discussion of scaling look at
                              randy shoup's presentation/talk on ebay scaling.
                              [trivia: randy was a high school acquaintance of
                              mine. i thought he was going to become a lawyer
                              and i was mighty surprised he went into cs/
                              databases].
                              \_ Getting all your caches right is not really
                                 a developer responsibility, but I admit that
                                 it starts to cross disciplines. Most people
                                 are just sort of confused how it works, so
                                 in this case, the one eyed man is king.
                                 \_ Whose responsibility do you think it is
                                    if not the developer? If he doesn't
                                    have the knowledge then he needs to
                                    consult with someone who does, but
                                    he's the implementer. Too often the
                                    developer has no idea, doesn't ask
                                    anyone, and implements something stupid.
                                    \_ I guess I would have to say that it
                                       is a shared responsibility between the
                                       system architect and the developers.
                                       A lot of times developers don't know
                                       what is possible, especially what is
                                       possible at a reasonable price point.
                                       How big a RAM disk cache can you expect
                                       to have available for your application
                                       in a shared disk array? How would a
                                       developer hope to possibly know that?
                                       But far too often system administrator
                                       types don't share this kind of info,
                                       even if they do know it themselves.
                                       \_ I would argue that developers
                                          should know what they don't know -
                                          or at least consider these issues
                                          early (before they become a problem).
                                          Part of the problem is that people
                                          with systems knowledge often come
                                          into the project late in the
                                          development of it - too late to
                                          make major changes. We see this
                                          problem in spacecraft operations.
                                          The hardware guys build a shiny new
                                          spacecraft without consulting with
                                          the people who are going to fly it.
                                          They make "sound technical decisions"
                                          and h/w design decisions that are
                                          intended to save lots of money, but
                                          they have no knowledge (or, worse,
                                          just enough to hang themselves) about
                                          how to operate the h/w they build.
                                          This often ends up being a case
                                          of saving $$ on the h/w and spending
                                          $$$$ on the operations (or not being
                                          able to operate at all - or with
                                          greatly increased risk). The *good*
                                          h/w guys know who to involve early in
                                          the process and why, but they are a
                                          small minority even in large,
                                          experienced companies like Lockheed.
                                          With scaled systems it's rather
                                          the opposite. The s/w guys design and
                                          build a system without considering
                                          h/w (or the systems environment).
                            \_ I had that exact problem at one place (millions
                               of files in one directory). We talked about
                               various ways to fix this and decided that
                               switching from WAFL to VxFS was the best
                               solution. In some ways this was just because
                               the developers were too lazy to figure out how
                               to use a database, but it worked.
                               \_ Why not spread those millions of files
                                  over many directories? In itself that
                                  helps a lot and it's a simple fix. A
                                  database is another idea. Switching
                                  filesystems sounds pretty drastic to me.
                                  \_ It was already hashed, so what we really
                                     had was billions of files, millions in
                                     each directory. There is no magic bullet
                                     for dealing with that quantity of data.
                                     Millions of directories is not really
                                     a good solution either, for reasons that
                                     should be obvious. By the time I left
                                     the company, they had started work on
                                     what was essentially their own filesystem
                                     but I don't know what happened to that
                                     project.
                                     \_ What a disaster. This sounds like poor
                                        s/w design.
                                     \_ All that because the devs don't want to
                                        figure out how to use a db?
                                        \_ Yeah, well it was 1999 and good
                                           developers (or sysadmins) were hard
                                           to come by. The new filesystem I was
                                           referring to had a DB included.
                                           \_ You think they are easier to come
                                              by now? If anything, it
                                              seems to be getting worse as
                                              a lot of Microsoft-trained,
                                              Java-loving weenies have
                                              entered the field and very
                                              few hardcore assembler-loving
                                              PDP-11 weenies still exist.
                                              Over time it seems the
                                              average developer/sysadmin
                                              knows less and less about
                                              the details of the systems
                                              in favor of high-level constructs
                                              like WWW and GUI design. There's
                                              a place for both, of course,
                                              but I am horrified by what
                                              recent CS grads do not know.
           \- I disagree as well. Some simple problems are solved by
              throwing money at them ... say $20k - $100k problems.
              But at some point programmer time does become cheaper than
              cycles, space etc. And there are other cases where the best
              hardware cant do what brainpower can. Trivial example are new
              crypto attacks. Another case is reading 10gb traffic streams...
              you cant just naively throw hardware at the problem. It's
              combination of hardware [ASIC, FPGA other specialized network
              devices], OS/kernel/devce driver hackery, and application
              design.
              \_ Any network with 10gb of traffic on it that cannot be easily
                 broken up is not scalable.
                 \- what you control may affect your options. we want to
                    do IDS on 10G. We cant tell say ESNet to tailor bandwidth
                    provisioning around IDS. What we can ask for is $ for
                    hardware as long as we're not being stupid about it.
                    The "web application scaling" is a different problem
                    than some other scaling issues ... something like the
                    LHC has different scaling issues, for example.
2008/3/4-7 [Computer/Networking, Computer/SW/Languages/Perl] UID:49324 Activity:moderate
3/4     Does anybody have some code or know of a program that will take a
        network/mask and return the list of address in that CIDR block?
        e.g. "iplist 10.10.10.0/24" and return 10.10.10.0 ... 10.10.10.255
        [I have a way to do this, but it involves distributing a large
        amount of code, which is kind of a hassle. Looking for something
        lightweight and either standard or easdy to rpm/port/yum install.]
        \_ shouldn't be hard to do, its all bitwise binary math.
          \_ Because I was interested in how to do it in perl, I hacked up
             some quick code.  ~mehlhaff/netmask.pl   for your enjoyment. -ERic
        \_ there are couple out there. The one I settled on is sipcalc
           \_ Thanks for the pointer. I only knew about the "builtin"
              ipcalc. I see sipcalc return the "usable range" in the
              form 10.10.10.1 - 10.10.10.254. Is there a way to get
              it to return each of the 254 addresses, one per line, which
              can be piped to another program's stdin etc.
        \_ doing  it in perl?  Net::IP  http://search.cpan.org/dist/Net-IP/IP.pm
        \_ doing  it in perl?  Net::IP
           http://search.cpan.org/dist/Net-IP/IP.pm
        \_ look at nmap code
           \- i thought the nmap code was somewhat hard to understand
              [this was maybe 2yrs ago]. however, you can steal this
              exact function and parser from a modern version of fping
              which supports the "-g" flag. nevertheless, i'd be interested
              in a real standalone untility for this. starting with fping,
              this is do-able in like 30min [you can also do it in 2 lines
              if you want to do this in a stupid but perfectly workable way].
              it would take me a lot longer to extract this from nmap. --psb
              ./fping-psb -n -g 10.10.10.0 10.10.10.56 | wc -l
                    57
              ./fping-psb -n -g 10.10.10.0/30 | wc -l
                     4
        \_ I wrote a script last year that basically produces the same output
           as psb's solution.  My perl vs. mehlhaff's perl.  Round 1: Fight!
           ~dbushong/bin/expand-ip-range  --dbushong
           \_ dbushong is definitely sexier than mehlhaff. meh!
           \_ Hah, oops.  Mine only expands the last two octets.  (i.e. doesn't
              do anything useful for /n where n < 16)  Ah well.  --dbushong
              \_ clever code vs. simple code w/comments. Two very different
                 styles to accomplish the similar things.  It is left as a
                 exercise to the student to decide which they like better. -ERic
2008/2/11-14 [Politics/Domestic/President/Clinton, Computer/SW/Languages/Perl] UID:49115 Activity:nil
2/11    Clinton's campaign manager replaced with a perl script. News at 11.
2008/1/14-18 [Computer/SW/Languages/Perl] UID:48942 Activity:nil
1/14    My perl foo is weak. What's a simple elegant way to write the content of
        $result to the file $filename? Thanks!
        \_ open(FILE,">$filename");print FILE $result;close FILE;  -tom
           \_ Added a $ in the right spot
        \_ Depending on what you're doing: perl's print default to STDOUT, so
           you can also just print $result; and then run your script from the
           command line as: foo.pl > file.  When doing the open() you also
           probably want to test that the open succeeded.  You may not have
           perms on the file, you may have typod the path, etc.
        \_ Dependin on how complex $result is you can also do shell escapes
           in perl.  I.e.   system "echo $result >> $filename";
           \_ Not exactly elegant when the real solution fits in about 1/2
              again as many characters.
2007/10/22-25 [Computer/SW/Languages/Perl] UID:48415 Activity:nil
10/22   I want a perl regex that reduces 2 or more consecutive newlines to
        2 newlines.  perl -pe 's/\n\n(\n*)/\n\n/gms' doesn't work, and I
        don't understand why.  Any ideas?
        \_ You're reading your input one line at a time.  Try this:
           perl -0pe 's/\n\n+/\n\n/g'  --mconst
        \_ Are they just \n's or are they \n\r's?
2007/10/20-24 [Computer/SW/Languages/Perl, Recreation/Pets, Computer/SW/Languages/Misc] UID:48397 Activity:nil
10/19   I'm the op who threatened to delete dog posts using my super
        script. I didn't actually write one, but I did trick you guys
        into posting dog shit amonst others. Boy, that was fun!!!
        \_ POODLE!  (super script?  It's a few lines of perl... ARF!)  Maybe
           you need a nice lab: someone who can keep up with you.
2007/9/23-24 [Computer/SW/Languages/Perl, Computer/SW/WWW/Server, Computer/SW/Languages/Web] UID:48152 Activity:kinda low
9/23    I have an Apache question:
        If I have a directory which allows both CGI handler and Perl
        handler (mod_perl) how can I tell which is being invoked by the
        web server? The scripts are being executed, but I have no idea if
        mod_perl is running correctly or if the CGI Handler is just
        picking them up and running them. How can I tell?
        \_ If you like wasteful suburban living, chances are you don't
           need to know if they're running. They're all magically taken
           care of by other tax payers, like freeways and support systems
           for your big suburban mansion.
        \_ http://modperlbook.org/html/3-10-How-Can-I-Tell-if-mod_perl-Is-Running.html
        \_ http://urltea.com/1khw (modperlbook.org)
           Also you're supposed to get a 50X performance difference so try out
           a bunch of your own DoS clients and see the latency or something.
        \_ http://www.perlmonks.org/?node_id=377648
           Check the http header! Look for:
HTTP/1.1 200 OK
Date: Tue, 27 Jul 2004 07:10:54 GMT
Server: Apache/2.0.48 (Unix) mod_perl/1.99_13 Perl/v5.8.0 PHP/4.3.5  <=== !!!
...
           \_ I do not think this is valid for RHEL, which loads mod_perl
              as a .so. Certainly my server does not say this and yet it
              certainly does not complain when it loads the module. RHEL
              installs apache as an RPM and mod_perl as another RPM, so I
              don't think the apache ID string reflects reality. My
              question is not really "Is mod_perl installed?". I am sure
              it is. The question is "How do I know that my configuration
              is working the way I want it to, with mod_perl handling the
              .pl scripts instead of .cgi?"
2007/9/18-22 [Computer/SW/Languages/Perl] UID:48097 Activity:nil
9/18    What does "qq/.../" in Perl mean? I don't want to ask my "leet"
        stuck up co-workers because they'll think I'm an idiot. Well
        maybe it's already too late but whatever. ok thx.
        \_ 2 q's mean same thing as double-quote.  Now for the bonus question:
           what does "q/.../" mean?
           \_ Please don't do other people's homework.
              \_ Why not?  We're old.
        \_ man perlop
2007/9/10 [Computer/SW/Languages/Perl] UID:47986 Activity:low
9/10    Hi.  I'm running a package based linux distro.  Should
        I install perl CPAN modules through the provided packages,
        or through sudo cpan> install modulename etc ?
        Opinions?
        \_ Depends on the package system you're using, you may have to
           deal with both.  I had an experience where I installed via
           CPAN because the packaged version was older than what I needed.
           Later, I installed an RPM via yum that installed the CPAN module
           package, causing it to be downgraded and breaking my app.
2007/8/24-27 [Computer/SW/Languages/Perl] UID:47746 Activity:nil
8/24    perl 5 slash fiction:
        http://tinyurl.com/2ouhb2
2007/8/22 [Computer/SW/Languages/Perl] UID:47707 Activity:nil
#!/usr/local/bin/perl

           of choices out there with different tradeoffs.           of choices o\
ut there with different tradeoffs.
2007/8/20 [Computer/SW/Languages/Perl] UID:47665 Activity:nil
#!/usr/bin/perl

Oakland police put the main suspect in the killing of a journalist investigating\
 Your Black Muslim Bakery in an interrogation room with the bakery's leader afte\
r the two were arrested, then left them alone and didn't record the conversation\
, sources close to the case said Friday.
2007/8/13-15 [Computer/SW/Languages/Perl] UID:47608 Activity:very high
8/13    Is there a unix command to print the full filesystem path of
        something? e.g.
        % pwd
        /home/troll
        % print-full-path drivel
        /home/troll/drivel
        \_ function print-full-path { (cd "$1"; pwd); }
           Implementation as a csh alias left as an exercise.
           \_ that doesn't work... $1 could be a file
        \_ You need something like:
           FDIR=`dirname "$relpath"`
           FBASE=`basename "$relpath"`
           FABS="`cd \"$D\" 2>/dev/null && pwd || echo \"$D\"`/$B"
           \_ christ. ok the answer is "no, you need a script".
        \_ which foo
        \_ Ok here's my little perl script for this, if anyone cares. -op
           \_ locate foo
              whereis foo
              find `pwd` -name foo -maxdepth 1
              echo `pwd`/foo
              \_ that last thing would work but I wanted symbolic links
              \_ `pwd`/foo would work but I wanted symbolic links
                 and relative paths converted to absolute paths.
                 The others don't work in general.
        \_ Here's my perl script for this, if anyone cares. -op
                #!/usr/bin/perl
                chop($cwd = `pwd`);
                foreach $arg (@ARGV) {
                  chdir $cwd;
                  chop($rel = `dirname $arg`);
                  chop($base = `basename $arg`);
                  chdir $rel || die "path not found: $rel\n";
                  chop($full = `pwd`);
                  print $full;
                  print "/" if ($full ne "/");
                  print $base if ($base ne "/");
                  print "\n";
                }
                \_ Look up chomp() as a chop() replacement for removing \n.
2007/8/7-13 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:47555 Activity:nil
8/7     I'm trying to figure out whether it's possible for get wget to
        authenticate to a web page protected by a login form ('post'
        method to send username/pass, and cookies.)  Cookies don't seem
        to be the problem, with --save-cookies and --keep-session-cookies
        but getting the username/password submitted isn't doing it.  On
        this particular page, getting to a link, let's say 'example.aspx',
        redirects to 'login.aspx?href=/example.aspx'; login.aspx is a
        standard http form.  Anyone ever get this working?  -John
        \_ You want a single wget command or are you scripting this?
           If scripting just hit the logon page first to get your cookie.
           Otherwise you have to recognize you've been redirected.
        \_ Why wget?  Have you tried curl?
        \_ I've been able to get this working using wget's CLI options
           --user=[user] and --password=[passwd] or by posting the
           right form elements for authentication.
           \_ Yeah tried both, no good.  Curl sounds like it might
              work, though.  Thanks.  -John
        \_ If curl doesn't work for you, I've done this in perl before.  It
           isn't that hard with cpan's lwp, cookie libraries, etc.
           \_ Or if you hate Perl, Ruby does a good job too.
              \_ Curl works for submitting the credentials, but I'm having
                 trouble with cookies; the site issues 4 for a normal
                 browser login, but with curl I only get one.  I'll keep
                 plugging.  -John
              \_ How can you hate perl for a hack script like this?
2007/8/1 [Computer/SW/Unix, Computer/SW/Languages/Perl] UID:47500 Activity:high
8/1     perl/sed/awk/etc question:
        Is there a good way to change every other delimiter or string
        match?  For example change a colon delimited list to a :+, one...
         Apple:12:Pear:2:Orange:9:Plum:7:Banana:22:Mango:2 to
         Apple:12,Pear:2,Orange:9,Plum:7,Banana:22,Mango:2
        (And I dont mean a trick that relies on some fields being
        alpha and some numeric or only a known number of fields).
        \_ How 'bout the straightforward approach
           s/([^:]+:[^:]+):/$1,/g
           \_ That didn't work?!  Am I doing something wrong?
              echo Apple:12:Pear:2:Orange:9 |sed -e 's/([^:]+:[^:]+):/$1,/g'
              Apple:12:Pear:2:Orange:9
              \_ use perl, sed will kill you with quoting.
                 \_ Thanks! perl -pe ... does it!
              \_ One more question, why is there a differene between : and |?
                 I now need to use |.
 echo "Prog 1:61.3:Ch 2:91.0:Num3:83.4" |perl -pe 's/([^:]+:[^:]+):/$1,/g'
Prog 1:61.3,Ch 2:91.0,Num3:83.4

 echo "Prog 1|61.3|Ch 2|91.0|Num3|83.4" |perl -pe 's/([^|]+|[^|]+)|/$1,/g'
Prog 1,,|61.3,,|Ch 2,,|91.0,,|Num3,,|83.4
                 First one works. Second does not.
                 \_ man perlre, search for |
2007/7/31 [Computer/SW/Languages/Perl] UID:47482 Activity:nil
7/27    I just wrote a perl script to delete your puppy bullshit
2007/7/6 [Computer/SW/Unix, Computer/SW/Languages/Perl] UID:47196 Activity:high
7/6     my google fu is weak.  How do I match EOF ( tr or perl or sed or any
        linux tool that will do substitutions in a file)? thanks.
        \_ What are you trying to do?
2007/6/15-16 [Computer/SW/Languages/Perl] UID:46958 Activity:nil
6/15    Haha - Perl using Vista voice recognition
        http://tinyurl.com/2td2y3  -John
2007/5/1-4 [Computer/SW/Languages/Perl] UID:46497 Activity:nil
5/1     Oops, Tenet's a big fat liar.  He claims that he ran into Perle the day
        after 9/11 and Perle said that Iraq had to pay.  Problem is, Perle was
        out of the country and couldn't get back until 9/15
     http://weeklystandard.com/Content/Public/Articles/000/000/013/593daqmw.asp
        \_ Do you think Perle didn't say that?
           http://thinkprogress.org/2007/04/30/perle-five-days-after
           Is Tenet a liar and Gonzales not?
           Is Tenet a liar and Gonzales not? -scotsman
           \_ There's a difference between saying "Iraq has to pay for what
              happened yesterday" and saying "there are links between OBL and
              SH".  Oh, and Gonzales is either a liar or an incompetent. -op
              \_ So, again, you don't think "Iraq has to pay for this" or
                 something very close came out of Perle's mouth in Tenet's
                 presence?
                 Also, as those "links" were included in the authorization
                 to attack Iraq, do you honestly think you can call that a
                 distinction with a difference?
                 Also: http://edition.cnn.com/TRANSCRIPTS/0109/16/en.00.html
                 Let's look at the full transcript.
                   Even if we cannot prove to the standards that we enjoy
                   in our own civil society that they were involved. We
                   do know, for example, that Saddam Hussein has ties
                   to Osama bin Laden. That can be documented.

                   So, on the theory, which seems to be a valid one,
                   that if you support terrorists and they then commit
                   atrocities against Americans, you are responsible.

                   Unless we hold those countries responsible, we will
                   be chasing terrorists without significant effect.
                 So.. Iraq is responsible, and we must hold them responsible.
                 Still think there's a difference? -scotsman
                 \_ Not to mention that Perle was a signatory to the PNAC
                    letter saying we should attack Iraq back in January 1998.
                    http://www.newamericancentury.org/iraqclintonletter.htm.
                    (Note that letter doesn't mention bin Laden or terrorism:
                    9/11 was just a convenient excuse to do what they wanted
                    to do anyway).  -tom
2007/4/13-16 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Perl] UID:46288 Activity:kinda low
4/12    Just finished a programming quiz. Do you think critizing the test
        was OK? They wanted someone to write code for something that could
        be done via shell aliases. This was at Riverbed.
        \_ I assume Riverbed is a company and this was an interview?  If so,
           I think this kind of criticism is a great thing to do.  It shows you
           really know your stuff if you can do both.  If they count that
           against you they are idiots and you don't want to work there anyway.
                \_ this was actually after the phone screen. Probably not a
                    good sign. Or maybe the manager's worries too much.
        \_ IMO, the right way to handle something like this is to say, "Oh,
           this would be really easy to do with shell aliases, and I can show
           you how I'd do it that way after I write the code to do it..."
           -dans
        \_ It makes you think twice about their ability to create well
           architected code if they cant come up with a good quiz; especially
           considering what is already out on the net. I have seen too many
           cases these days crafty perlers who write terrible code. Knowing
           what $_ means does not you are good engineer or coder.
           \_ Jesus christ you are an idiot.  A programming quiz is not
              real work.  It is a way of saying "prove to me you can do
              basic tasks in this language."  Making it a simple problem
              means it is something you can actually have someone write
              in half an hour or so.  Most simple tasks are probably easier
              to do with a shell script than with a real program.  So what.
              That's totally orthogonal to the tester's goal.  Oh and I'd
              almost take dans's advice.  Start with answering the problem
              the way they asked and then mention, as an aside, not a
              critisism, something like "you know, if this was something
              I had to solve at work I'd probably just do x instead."
              You don't come across as too good for the test (which looks
              very bad, lots of otherwise good engineers are a disaster
              because they don't work well with others), you show you know
              your mad shell skillz, and you are letting someone know that
              you know to use the right tools for the right job.  I've seen
              people rewrite stuff like find | xargs grep because they
              didn't know diddly about unix.  That kind of stuff is never
              pretty.
              \- sort of the flip side of this, for a sysadmin interview,
                 i've asked questions like "how would you generate a 10
                 random numbers between 1-100 from the shell", "how would
                 you generate the numbers 1-100 from the shell" etc and
                 people who would do it in C are slightly missing the point.
                 people who would do it in C are sort of missing the point.
                 i mean it is fine to say "i dont know how i would do it from
                 the shell, but here is the 5line C program, that took 2min
                 to write", but to say "that's dumb to do from the shell"
                 will not serve you well. yeah, there are a lot of people
                 unfamilar with xargs, mapcar, apply, lambda ...
                 while riverbed may be in an inflationary phase, i suspect
                 they are still small enough that they are being careful
                 about who they hire. the OP had an interesting quandry
                 whether to not to de-anonymize himself on the motd ... if
                 he's an active member of the sloda community he faced either
                 a "oh i dont know about his technical chops, but he seems
                 pleasant enough" to "i havent seen his code, but he seems
                 like a dumbass" ... given that various people here have
                 various riverbed connections.
                 various riverbod connections.
2007/2/5-7 [Computer/SW/Languages/Perl, Computer/SW/Languages/Misc] UID:45654 Activity:nil
2/4     Help UNIX experts. I setup a crontab and it keeps outputing
        crap. The cron is as follows:
        0 4 * * * /bin/sh -c "cd mydir; tryit.pl 2>&1 > /dev/null"
        The error/email I keep getting is as follows, what does this mean?
        "stdin: is not a tty"
        \_ Check to see if "mesg y" is set anywhere. Disable that.
        \_ Instead of mushing about running /bin/sh to get a 'cd', I would
           put the 'cd' as part of the perl script and run that directly
           with a full path: 0 4 * * * /myhome/tryit.pl 2>&1 > /dev/null.
           Also, since this appears to be new code you might want to let
           cron mail you any output instead of devnulling it, at least for
           the first few runs.
        \_ This suggests your script is doing something that looks at stdin.
           Normally when you run the script from commandline, you are on a tty.
           Things run from cron arent.  One way to test the different operating
           environment is to ssh into soda without a tty, and test.  Try
           'ssh soda /bin/csh -i' and try running your command.  That will
           start a tty-less shell. -ERic
2006/11/10-12 [Computer/SW/Languages/Perl] UID:45314 Activity:nil
11/10   perl question: I want to bind the result of a pattern match on one
        variable to another variable.  I constantly find myself doing something
        like:
                $myvar1 = $long_string;
                $myvar1 =~ s/.*(regex.*)/$1/g;
        and it seems silly to do an assignment followed by a modification.
        Am I missing something?  Is there a way to do this in a single step?
        \_ Not a good way.  One of the things ruby fixes and that they're fixing
           in Perl6. You can do: ($myvar1 = $long_string) =~ s/.*(regex.*)/$1/g;
           but since you're being a good little perler and using strict, you'll
           still need two lines since you need my $myvar1; in there somewhere
                                \_ (my $myvar1 = $long_string) ... ?
           Now mconst will explain how there's an even better way.
           --dbushong
        \_ Not to nick pick but what's wrong with two lines? There's a fine
           line between convenience and readability. In either case regex in
           Perl is 100X easier to code and read than Java/STL/Python.
        \_ there's always the match, then assign...
           $long_string =~ /.*(regex.*)/;
           $myvar1 = $1;
2006/10/25-27 [Computer/SW/Languages/Perl] UID:44961 Activity:nil
10/25   I recall there being a really quick easy perl way to do global
        replace from the command line, but I can't seem to quite get it
        right.  Something like:
        perl -e 's/pattern/replace/' file.txt
        Help?
        \_ I know how to do it with sed:
           sed -e s/pattern/replace/g file.txt > /tmp/output.txt
           \_ modern seds support perl's -i syntax as shown below:
              sed -i -e s/pattern/replace/g file.txt
        \_ perl -pi -e 's/pattern/replace/' file.txt
           (You need the -pi)
2006/10/6-7 [Computer/SW/Languages/Perl, Computer/SW/Languages/Python] UID:44706 Activity:moderate
10/5    Python experts, help. I'd like to do the following Perl regexp
        and reg substitution equivalent in Python, what's the best way?
        $line=~s/hello/world/i;
        if ($line=~/(foo\w+)/) {
           $myfoo = $1;
        } elsif ($line=~/(bar\w+)/) {
           $mybar = $1;
        }
        My limited Python knowledge says I must do the followings which
        seems really awkward:
        import re
        ...
        matchFoo = http://re.compile('(foo\w+)')
        matchBar = http://re.compile('(bar\w+)')
        m = matchFoo.match(line)
        if (m):
          myfoo = m.group(1)
        ...
        \_ I don't know Perl so I'm not sure what you are trying to do,
           maybe this link will be of some help:
           http://gnosis.cx/TPiP     -scottyg
        \_ One of the reasons I gave up on Python and love Ruby is that Ruby
           has OO but maintains the nice regex syntax of Perl.
           \_ Its OO is also a lot cleaner and more consistent than Python's,
              and none of this indentation-is-important i-can't-paste-code
              bullshit
              \_ Yeah, those would be some more of the reasons.
        \_ I don't know python, but this would be the equivalent, AFAICT:
           import re
           line = re.sub(r'(?i)hello', 'world', line)
           m = re.search(r'foo\w+', line)
           if m:
             myfoo = m.group(0)
           else:
             m = re.search(r'bar\w+', line)
             if m:
               mybar = bm.group(0)
           --dbushong
           \_ Now I remember why I never learned python.
2006/10/4-5 [Computer/SW/Languages/Perl] UID:44658 Activity:kinda low
10/3    Does anyone know why using DB_File in perl would suddenly stop working
        and start storing only blank entries into the DB?
        The code is something like this (there can be multiple instances of
        this perl script running hence the lockfile)

        open (LOCKFILE, ">lock_file");
        flock (LOCKFILE, $LOCK_EX);
        dbmopen (%PERLDB, db_file, 0666)
        set values in %PERLDB
        flock (LOCKFILE, $LOCK_UN);
        close (LOCKFILE)
        dbmclose (%PERLDB);

        So once in a while if I set a value in %PERLDB it just sets it to
        blank (nothing) instead of the right value.  I've tried checking the
        value afterwords, and setting it over and over again until it sticks,
        but that eventually leads to Too Many Files open.  Is there a way
        to check file handle leaking in perl?  I don't see a place where I'm
        opening a handle without closing it in my script ...
        \_ You need to do the dbmclose before you unlock the lockfile.
           \_ good catch
        \_ Maybe you're hitting a race condition between the open() and the
           flock().  -tom
           \_ I think so too if that's what the code actually looks like.
              OP, why do you open()/close() the lock file at all?  Why not
              just lock/unlock it?  Can you show us the actual production
              code block?
              \_ I commented out the flock and opens and the problem didn't
                 go away.  It turns out the open was a braindead way of making
                 sure that file existed, I'll fix that too.
                 \_ Without locking and multiple instances of this code
                    running I would expect Bad Things(tm) to happen.  You do
                    want locking of some sort.  You don't need the open().
                    I'm left wondering if your file is randomly named or is
                    really the static "lockfile" in your code.  Again, if you
                    can post the real production code you'll probably get
                    better help than this sort of vague hand waving.
                        \_ Actually I take what I said back, the flock/open
                           is correct, at least according to examples on how
                           to lock a file.  How do you do a flock on a file
                           that you haven't opened?
                           \_ My error.  In perl you do have to open the file
                              to get a filehandle for flock.  Anyway, perl
                              relies on your OS's underlying locking mechanism
                              which may not even exist and you should really
                              be testing the return value, not assume it has
                              been successfully granted a lock.  If you test
                              the return value you may find you're not getting
                              a lock which is why your code behaves the same
                              with and without the flock().
2006/9/14-16 [Computer/SW/Languages/Python, Computer/SW/Languages/Perl, Computer/SW/Languages/C_Cplusplus] UID:44378 Activity:kinda low
9/14    http://www.salon.com/tech/feature/2006/09/14/basic
        I never knew C++ was a higher-level language than BASIC
        \_ It's salon.  So what?
           \_ More specifically, it's David Brin, who writes decent hard sci-fi.
              Too bad he apparently didn't get a decent computer education
              either.
           \_ More specifically, it's David Brin, who writes decent hard
              sci-fi.  Too bad he apparently didn't get a decent computer
              education either.  [formatd]
              \_ Still doesn't bother me.  He's a fiction writer, not a
                 scientist.
                 \_ A friend of mine was in a technology-related tv show
                    with David Brin, and reports that he's pretty
                    technically naive / clueless.  I do like his books,
                    though.  - niloc
                 \_ It doesn't bother you that he's saying "the problem with
                    doing X w.r.t educating our children is that <incorrect
                    fact>"?
                    \_ Not at all.  It's a slate article online, not an
                       official publication from anyone who has anything to do
                       with education.  I give it the weight it deserves: zero.
        \_ I once read an article by a tech analyst which said the internet was
           invented in year 1991.
           \_ Wow that guy is a total idiot.  Everyone knows it was the year
              1991 when they invented the 1nt@rw3b!1.
        \_ Quick, someone tell that man about ruby/python/scheme/whathaveyou
           \_ He already discarded Perl as "too high level"  He doesn't seem
              to understand that crappy != "low-level"
              \_ He mentions Python os well, and calls C++ "high-level."
2006/8/17-19 [Computer/SW/Languages/Perl] UID:44038 Activity:nil
8/17    Any movabletype experts on soda? When I try to create an entry
        on my blog I get a huge perl process and 'Out of Memory!' in my
        error log. The post appears in an individual archive but not on
        the main page. Thanks! -sameer
        \_ Maybe the post is generating an E_HOTAIR.
2006/8/16-18 [Computer/SW/Languages/Perl, Computer/SW/Languages/Misc] UID:44021 Activity:nil
8/16    Having some trouble with jhead, maybe someone has an idea:  I have
        a large number of pics with no EXIF creation date, but a correct
        file modification date.  jhead lets you set the modification time
        to the same as the creation time, but I can't figure out how to do
        it the other way around--any ideas?  Thanks.  -John
        \_ Doesn't look like it'll do it.  I wrote a script to do this:
           ~dbushong/bin/filedate2exif
           \_ Many thanks, I'll try this.  -John
        \_ for i in ...
           do jhead -ts perl -MPOSIX -e "print strftime(\"%Y:%m:%d-%H:%M:%S\", l\
ocaltime((stat(\"${i}\"))[9]));" ${i}
           done
        \_ Embed the timestamp into the filename, YYYYMMDD_HHMMSS_nnnn.jpg.
2006/8/11-14 [Computer/SW/Languages/Perl, Computer/SW/Languages/Functional] UID:43974 Activity:low
8/11    How do you find out the max # of file descriptors for a process,
        thread, and entire system?
        \_ Dep on OS. Are the youth today assuming "linux is the standard"?
           That is kinda sad.
           \_ LINUX RUUULES!  W1ND0ZE DR000LEZ!
        \_ while(true) { do(something that uses a fd) if (good rc) counter++; print }
        \_ while(true) { do(something that uses a fd) if (good rc) counter++;
                         print }
              \- well AssOS is better than windows like perl is better than
                 basica. but it's not actually good. i can understand using
                 something "useful" instead of good [like using perl instead
                 of lisp today] but it's non-good when you dont know what is
                 good because you have no exposure to it ... "It's a light
                 saber. The weapon of a Jedi Knight. Not as random or clumsy
                 as a blaster. An elegant weapon for a more civilized age."
                 \_ This post is unintelligible.
                    \_ E_TOOSHORT
                       \_ How about E_FUCKINGINCOHERENT
                          \_ Worse than that... this person got into Cal.  I
                             wonder what their application essay looked like.
        \_ while(true) { do(something that uses a fd) if (good rc) counter++;
                         print }
        \_ sysconf(3) maybe what you are looking for.  I think the variable
           for max fds is _SC_OPEN_MAX. Also try unlimt -a (or -n).
2006/6/29-7/3 [Computer/SW/Languages/Perl] UID:43527 Activity:nil
6/29    Visual Programming in Perl:
        http://search.cpan.org/dist/Acme-EyeDrops/lib/Acme/EyeDrops.pm
2006/6/16-19 [Computer/SW/Languages/Perl, Computer/SW/Languages/Misc] UID:43422 Activity:nil
6/16    Is there anyway in Ant to change/append the value in java.library.path
        before starting the script?  I'm trying to use Ant to generate a DLL
        and then call a Ant task which needs native libraries in that DLL.
        I'd rather not have to modify my system path to include libraries
        before they have been generated...
        \_ Use perl.  Wait, sorry, nevermind.  :-)
        \_ Use ruby (rake).  Wait, sorry, nevermind.  :-)
2006/6/13-15 [Computer/SW/Languages/Perl, Computer/SW/Languages/Web] UID:43374 Activity:nil
6/13    In PHP what is the Perl equivalent of
        map {$_="HEY $_ HO";} @array; ? Thanks so much!!!
        \_ foreach ($array as $i => $val)
             $array[$i] = "HEY $val HO";
           --dbushong
2006/6/2-4 [Computer/SW/Languages/Perl] UID:43255 Activity:nil
6/1     Writing a hash/array/scalar traversing function. How do I tell
        if a variable passed to me is a hash, scalar, or array
        in Perl? Thanks.
        \_ You can't, unfortunately.  If you really want to do that, you
           have to pass a reference instead.  --mconst
           \_ Ah I got it. I need to dereference a variable, then
              do a ref($var) to see its type. THANKS SO MUCH mconst.
        \_ Guessing that you really mean you were passed a reference, call ref()
           on it, which will give you undef (it was just a scalar), 'ARRAY',
           'HASH', 'SCALAR', etc, meaning it was a reference to one of those.
           --dbushong
        \_ Welcome to perl, the worst of all typing worlds
           \_ How about PHP, where the only way to find out if something is
              an array or a hash is heuristically (i.e. "are the first few
              keys ordered ints starting from 0?")
              \_ And to be fair, ruby does some amazingly annoying things
                 with arrays as return values.
                 \_ Really?  Like what?  I've always found ruby's behavior
                    w.r.t. arrays to be as convenient as possible while still
                    completely flexible.  --dbushong
2006/5/23-28 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:43168 Activity:nil
5/23    I'm trying to learn sh, bash, and csh programming. What's a good
        site that has sample syntax of the following ***psuedocode*** for
        each of the shells?
        foreach $file in (<dir/*>) do;
          echo I have file $file
        done;
        switch ($var) {
          case 0: echo hello; break;    // this is a comment
          default: echo default; break;
        }
        if ($z>=5 || $str eq '12345) {print $hello}
        \_ not really.  I'll start w/ sh:  --dbushong
           for file in dir/*; do
             echo I have file $file
           done
           case "$var" in
             0)
               echo hello
               ;;
             *)
               echo default
               ;;
           esac
           if [ $z -ge 5 -o $str = 12345 ]; then
             echo $hello
           fi
        \_ bash is basically a superset of sh.  Whenever I need to brush up
           I usually just google for shell scripting, and frequently
           (re)discover this site:
           http://vertigo.hsrl.rutgers.edu/ug/shell_help.html
           Incidentally, csh is a great interactive shell, but there are some
           compelling arguments why you may want to avoid it for general
           scripting purposes (of course, one nerd's compelling arguments are
           another nerds religious claptrap so ymmv):
           http://www.faqs.org/faqs/unix-faq/shell/csh-whynot
           Also, I find the O'Reilly UNIX Power Tools book to be a very useful
           reference to have around when shell scripting. -dans
        \_ I gave up on csh for all but the simplest shell scripting when
           I noticed it didn't handle nested if/then cases sanely, and went
           through coding hell trying to workaround it.  If you're
           going anything more than 2-3 lines, use a sh based shell, or
           a "real" script language like perl. -ERic
           \_ I'll second that.  I still use tcsh from the cmd line just because
              I find it more pleasant than bash, but meh.  I'll tend to use
              perl unless the script is going to end up being more than about
              25% program executions.  --dbushong
           \_ My rule is 10 lines.  If I can't write it in 10 lines of some
              shell script language in a few minutes I'll use perl instead.
2006/5/8-9 [Computer/SW/Languages/Perl] UID:42970 Activity:nil
5/7    >./news.cgi
Can't locate XML/RSS.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.\
8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.\
8 /usr/share/perl/5.8 /usr/local/lib/site_perl .)
        Can someone install the XML/RSS module?  Thanks.
        \_ Done.  --mconst
2006/4/26-28 [Computer/SW/Languages/Perl] UID:42845 Activity:nil
4/26    How come the Perl man pages aren't installed? (or where are they?)
        Like, e.g., "man perlfunc". Ok thx.
        \_ Sorry about that; I've installed them.  Please let me know
           if anything else seems to be missing.  --mconst
           \_ how 'bout "man sex" ?
              \_ As long as it's done in safe mode, more power to you. Mount
                 that host yourself.
2006/4/16-17 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Perl, Computer/SW/Languages/Python] UID:42756 Activity:nil
4/16    I'm very disappointed with os x:
        I made an application bundle around a python script: it executes fine
        but dropping a file on it doesn't work
        turns out finder passes a ProcessInfo object
        and you get that as argv[1]
        well, you get its UID- and that is the only arg you get
        so far the on;y way i have found to translate the UID into a process
        info, and thus to get the path of the file i dragged, is with cocoa
        i.e. c++ or objective c.
        doesn't seem to be any decent applescript way to do it, or i could just
        shell out to osascript
        i guess this explains why all the droplet hacks use a binary executable
        to call shell, perl, or python scripts
        this man-made creation troubles me
2006/4/5-7 [Computer/SW/Languages/Perl] UID:42693 Activity:nil
4/5     any online tutorials/exam question for Perl? thanks
        \_ {ajani,darin}@csua.berkeley.edu taught a perl decal class, try
           pinging them. -dans
2006/3/27-28 [Computer/SW/Languages/Perl] UID:42473 Activity:nil
3/27    Anyone have experience with embedded Perl in C/C++ apps? I've been
        using this for a while but now I find out I can't "use POSIX" for
        example in the Perl code, and trying to follow instructions on
        the internet for how to load extensions like this doesn't seem to
        work. So, maybe someone can help describe what should be done...
        I tried putting in an xs_init function generated by ExtUtils, but
        for example when the DynaLoader tries loading POSIX it can't
        resolve symbols that come from perl.h (PL_sig_name).
2006/3/18-20 [Computer/SW/Languages/Perl] UID:42306 Activity:kinda low
3/18    I'm looking for a file management utility that will copy files
        and create directories based on the date of the file.  I recently
        bought a new digital camera (old was canon; new is casio) and their
        file storage naming conventions and directory structures are totally
        differently.  Each different "loader" does a different thing.  And
        Picasa doesn't copy and create directories based on file date.  What
        I want to end up with is a directory structure like this:

        My Pictures/2006_03_18/img12345.jpg

        I don't care about the filename since each camera has their own
        naming convention.  But the directory name has to be customizable
        to that exact format.  SW doesn't have to be free.  I'll pay for this.
        Thank.
        \_ This sounds like a 5-10 minute perl hack to opendir/readdir a
           directory structure, cd'ing around, then moving files based on
           an fstat.  I suspect any of dozens of people here could write this
           blind folded, drunk, asleep and off their meds.  Or maybe a list
           created with find piped through perl.  There's a lot of ways to
           do something like this depending on what your starting structure
           looks like.
        \_ perl -MFile::Find -MPOSIX -e 'find(sub{-f&&rename($_,strftime("/My Pi\
ctures/%Y_%m_%d/$_",localtime((stat)[9])))},".")'
        \_ perl -MFile::Find -MPOSIX -e 'find(sub{-f&&rename($_,strftime("/My Pi\
ctures/%Y_%m_%d/$_",localtime((stat(_))[9])))},".")'
           Change the part after strftime to suit your format and run this from
           the directory you want it to start the search at.  --dbushong
           \_ This breaks if you have any %'s in your filename, btw, though
              that isn't hard to fix.  --dbushong
           \_ Thanks for the responses.  I guess I wasn't clear.  By the
              date I mean the date of the picture embedded in the EXIF header
              inside the jpeg file, not the date of the file itself.  And
              this has to be a windows xp program.  I can't write code anymore
              so I'm looking for some generic photo manager SW that can do
              this.  Thanks.  -OP
              \_ Oh, just download some real tool then, like Organizr or
                 Picassa.  (Though modding that line of perl to use EXIF header
                 Picasa.  (Though modding that line of perl to use EXIF header
                 is also easy :-) --dbushong
2006/3/10-13 [Computer/SW/Languages/Perl] UID:42187 Activity:low
3/10    I wrote a little perl, that had a little curl
        right in the middle of it's call stack.
        And when it crashed, it crashed very very fast,
        but when it was slow, it was working
        \_ LWP::UserAgent!
           \_ Can I use LWP::UserAgent to do multiple concurrent requests,
              and time them?  Will it deal with a redirect automatically?
        \_ There's also a parallel version of LWP:UserAgent but it is a
           bit clunkier to use but if you need it, I found it better than
           forking off multiple child procs.
           \_ Eh, using the default one with Parallel::ForkManager's pretty
              easy.  I used that for the remote-link checking part of a
              linkchecker I wrote and it was pretty easy.
              \_ I haven't used P:FM.  I assume it's forking off procs?
                 I'll take a look at it, thanks.  I wonder if P:FM or
                 the P version of LWP:UA is faster....
           \_ How would you time the parallel requests in perl?  (how long
              one takes to complete).
              \_ Since I was running dozens or even hundreds at a time, I just
                 did a simple $end - $start timer for entire runs.  Timing a
                 single connection is a tiny bit harder because the start time
                 is just a "go do them all now" call but you can time any
                 particular connection if you want.  You know when you fired
                 off the batch, you control if the batch runs in order or as
                 fast as possible/parallel, you know for each connection when
                 you get the first bits back and you of course can tell when a
                 particular connection is done.  But as I said, I just fired
                 off however many, noted the start and end times and that was
                 it.  Divide # requests by total time was good enough for me.
2006/3/2 [Computer/SW/Languages/Perl] UID:42064 Activity:kinda low
3/2     LDAP help: I am trying to dump the userPassword from an ldap database
        with ldapsearch but it is coming out base64 encoded:
        userPassword:: e2NyeXB0fWhhKllueGJrSXhrR2M=
        Is there a shell tool to decode this ... I want to avoid re-writing
        the whole thing in perl (I'm not that familar with LDAP or encodings
        and this isn't important enough to spend a lot of time on ... but I've
        answered a lot of motd questions in my areas of expertise so hoping
        somebody can return the favor.)
        \_ If you've got OpenSSL installed:
        \_ If you have OpenSSL installed:
                $ echo '[passwd]' | openssl base64 -d
           If you've got perl and Base64.pm installed:
           If you have perl and Base64.pm installed:
                $ perl -e 'use MIME::Base64; print decode_base64($ARGV[0])' [passwd]
           Some versions of uudecode also support base64 decoding:
                $ echo '[passwd]' | uudecode -rm
        \- I have to do this once in a blue moon and use the emacs base64*
           functions. Wont work on shell stream but YMMV.
           \_ These answers are great!  Feel the love.
2006/1/28-29 [Computer/SW/Languages/Perl, Computer/SW/OS/OsX] UID:41579 Activity:moderate
1/27    Can anyone recommend a good open-source PDF creator for
        os x? Thanks.
        \_ File -> Print -> PDF -> Save as PDF?
                \_ Oops, sorry. I mean SERVER-SIDE PDF creator.
                   I need to create PDF documents for users of our
                   web site. -op
                   \_ Create them from what?  You can generate PDF directly
                      in perl with perl-PDF.  Or you can use htmlpdf to
                      convert HTML to PDF.  -tom
        \_ Create a CUPS printer with a PDF driver.
           On the Mac OS X machine go to <DEAD>localhost:631<DEAD>
        \_ If you don't have to produce too many documents, you could do this
           with AppleScript.  The performance is ass, but fine if your not
           trying to pump out many documents a minute.
                \_ I won't (I only need approx 1 document/day). How do I use
                   Applescript? I've never used it before. Thanks. -op
2006/1/18-21 [Computer/SW/Apps, Computer/SW/Languages/Perl] UID:41420 Activity:low
1/18    I need to gain 20-30lbs of weight and want to track my progress.
        I could do this in an Excel spreadsheet but I don't have it
        installed right now and would rather have some nifty web thingie -
        I googled and most of the stuff I found kind of sucked. Before
        I revert to Excel (if lazy) or write my own (if bored) does anyone
        have recommendations?
        \_ "need" to gain?  why?
           \_ My BMI is 15.4 . If it wasn't from being sick and/or I was a
              girl, I'm sure that's eating disorder range :) -op
        \_ http://www-128.ibm.com/developerworks/library/l-gnuplot
           Look at figure 8.
           \_ Sigh, duh. I actually have used gnuplot a fair amount. This
              should be perfect for an unpolished barebones thing. Thanks!
              -op
        \_ If I wanted to gain 30 pounds, I'd get a spiked tail grafted on to
           my ass.  This would help with both balance and self-defense, and
           seems like the best possible way to gain weight.  It might also be
           possible to use your mouse or trackball with the tip of your tail,
           increasing productivity.
        \_ Dude, just roll your own. It's a really simple bit of Perl.
           \_ I'm not a big Perl hacker. It is pretty trivial but a nice
              one with login/security, and pretty pictures rather than text
              would take me at least a few hours to write, because I'm not
              particularly familiar with the web/graphics libraries - op
        \_ The less you do on the couch, the faster you can put on that
           weight.  (or more seriously, vi does this just fine)
           \_ depends on what kind of weight.  he could put on a lot of
              weight sitting on the couch or in front of the computer, he
              just needs to eat more.  EAT MORE LARD!
              \_ I lost the weight because I was/am sick, and need to gain it
                 back in a healthy way or it defeats the purpose. Thanks
                 anyway! (defeating silly comments with reasonable responses)
                 - op
                 \_ So far as I know the only way to quickly gain weight is
                    to gain fat.  If you eat right and exercise a lot, you
                    might take a couple of years to gain 30lbs of lean-ish
                    body mass.  Unless you have naturally high levels of
                    testosterone and/or take steroids.  Though there are some
                    other drugs you could possibly take.
                    \_ Luckily (?), I am actually on (safe) steriods for medication
                       for a few months. I have seen a nutritionist... it's not
                       too bad to put on a pound a week, it turns out (eat a lot
                       and drink Ensure). More than that, maybe I'll get lucky -
                       if I'm underweight, maybe my body wants to recover or
                       something. -op
        \_ I know dawne wrote one a few years ago; I'll see if it's still lying
           around somewhere and easy to get working again.  --dbushong
           \_ Found it: http://bushong.net/dawn/widgets/tracker
              The graphing's a little sluggish b/c GD's broken under mod_perl
              for me, but otherwise it seems to work.  --dbushong
              \_ Oh, right, it doesn't handle weight _gain_.  I'll work on it.
        \_ If you have a palm use EatWatch:
           http://www.fourmilab.ch/hackdiet/palm
2006/1/15-17 [Computer/SW/Languages/Perl, Computer/SW/Languages/Misc] UID:41383 Activity:high
1/15    This is a computer question which photo geeks would appreciate.
        I am trying to
           extract date/time from JPEG's EXIF header and use that to
           override Windows/NTFS's filename's create time.   I need to
           do this in a batch mode involves hundreds of photographs.
           How to do this?  write a shell script in cygwin?  which library
           do you recommend to extract EXIF header?  how to modify ctime on
           NTFS?   thanks.                      kngharv
           \- i dont know anything about the windows side but i use "jhead"
              [http://www.sentex.net/~mwandel/jhead/] or tcl. ok tnx. --psb
              \_ thanks.  jhead fits that part of my need.  However, I am
                 also looking for something where I can add a field to
                 EXIF, namely "FocusLengthIn35mm."  If any of you guys
                 knows how to do this, please let me know.   OP
                 \_ Image::ExifTool --dbushong
           \_ http://jpgtime.learsy.com i've used it to change the time stamps,
              not sure if it can add other exif data
        \_ Since the beginning of my digital camera days, I've adopted
           the policy of renaming my digital camera images
           YYYYMMDD_HHMMSS_NNNN[_tag].jpg (where NNNN is the sequence
           number and tag can be the camera model). The time a picture
           was taken is more important to me than all the other
           attributes, and name my files this way make sure that
           information will not be lost and every file has a unique
           identification. I use my own perl script to do this, but I
           am sure you can find utilities that does rename for you. My
           script can also re-touches file timestamp based on the time
           embedded in the filename, so I can very easily adjust the
           file timestamp if necessary. The important thing is to make
           sure your camera's clock is set correctly (for the timezone
           you are in), but my script has an offset option for those
           "ops" occasions. On my last trip we used 2 cameras, and the
           file ordering allows me to dump the pictures from both
           cameras together and do slide shows in the order the
           pictures were taken across both cameras. Email me if you
           want to give it a try. -chiry
           \_ I didn't agree with "The time a picture was taken is more
              important to me than all the other attributes" until I became a
              parent.  When other people see my baby's pictures, the first
              question they ask is nearly always "how old was he?".  For those
              pictures without imprinted dates, I quite often find myself
              unable to answer.
              pictures without imprinted dates, I usually find myself unable to
              answer.
           \_ unfortunately, the reason why I've asked this question at
              first place is that I am still using 35mm and other film cameras.
              and they don't have EXIF info :p
         \_ might be a bit overkill, but these should be able to do what
            you want:
            http://www.luminous-landscape.com/reviews/software/asset-management.shtml
2006/1/4-6 [Computer/SW/Languages/Perl] UID:41229 Activity:nil
1/4     How can I kill a win32 process in perl that I created from fork?
        I tried fork + Win32::Process::KillProcess, but I don't think that's
        the right process id.
        \_ One would assume you could just call kill() on whatever id you got
           back from fork(), but that probably makes too much sense.
           \_ I've tried kill, and it doesn't kill the proc.  I of course tried
              that first.  It works fine on Unix.  I'm using activestate perl.
        \_ what are you forking?
           \_ The child proc exec's mplayer, the parent monitors it and kills
              it under certain conditions.
2005/12/18-20 [Computer/SW/Languages/Perl] UID:41065 Activity:nil
12/18   With FreeBSD's sysinstall program, is there a way to search for
        packages by name only and not by description?  That is, if I search
        for perl, can I filter out all the zillion modules that happen to
        mention "perl" in their description?  Alternatively, is there a way
        to navigate the long lists of packages without continuously using
        page-up/page-down? (Why are the first letters highlighted in a
        different color if they aren't mnemonics?) Is the answer simply:
        "don't use sysinstall, use ports"?
        \_ either use
           cd /usr/ports; make search name=whatyouarelookingfor
           or poke around http://freshports.org - danh
        \_ check out portupgrade too. if you use its -PP option, it
           will only use packages
2005/12/7-9 [Computer/SW/Languages/Perl] UID:40911 Activity:kinda low
12/7    Sure, call me crazy, but is there a way to run Perl on a PDA?
        I stfw, and all I found was a 2001 article on http://Perl.com saying
        that it's impossible, but in tech terms, this is like finding a
        1930s article saying it's impossible to send a man to the moon.
        \_ uh... which PDA?  I don't see why not, and probably the only
           issue is limited memory.
           \_ I wouldn't say limited memory is an issue w/ PDAs these
              days. I think my Treo has more memory than my first linux
              box (it certainly has a bigger "hard drive" - 1 GB flash)
              \_ Well, your Treo still has only 16 MB of RAM, much of which
                 is probably in use.  The 1 GB flash doesn't really help
                 here.  And even then, Palm OS has a pretty puny stack.
                 Anyhow, it's still an issue for some PDAs, hence my
                 question about which one.
                 \_ Well, it's more of a wishlist kind of thing. I'd like
                    a PDA that I test some scripts on; being able to read
                    a PDA that I can test some scripts on; being able to read
                    ebooks and listen to music on it wouldn't be bad, either.
                    Suggestions?
        \_ There is something for WinCE:
           http://www.rainer-keuchel.de/wince/perlce.html
           Supposedly there is a port to PalmOS, but it looks dead:
           http://sourceforge.net/projects/palmperl
           I think there are some Linux based PDAs that come w/
           Perl (Zarus?)
           \_ Is the Zaurus discontinued? I'm having a hard time finding one
              for sale....
        \_ Is JavaScript close enough?  We have pretty good DOM/JS support in
           recent versions of the AvantGo client.  --dbushong
           \_ Sorry, no, Perl-heavy work environment.
2005/12/5-7 [Computer/SW/Languages/Perl] UID:40851 Activity:nil
12/5    Ever since the reboot, I've been getting the following messages:
            procmail: Kernel-lock failed
            procmail: Kernel-unlock failed
        many times.  What does this mean?  Anyone know what might be
        causing this?
        \_ I think we're missing the perl module File/MkTemp.pm; want to mail root
           for both of us?
          \_ Done. -op
2005/11/22-24 [Computer/SW/Languages/Perl] UID:40693 Activity:nil
11/22   "Beginning Perl" vs. "Picking Up Perl", which one is better for
        learning Perl from scratch?  I know C for more than a decade but don't
        know any Perl.  Thx.
        \_ if you can borrow it, borrow Beginning Perl, it's a quick easy
        \_ if you can borrow it, borrow Learning Perl, it's a quick easy
           read, makes for a good intro.
           \_ Programming Perl may be just as good of a choice or better.
2005/11/18-19 [Computer/SW/Languages/Perl] UID:40650 Activity:nil
11/18   In C, argv[0] is the command that invokes the program.  Is there an
        equivalent in Perl?  Thx.
        \_ $0
           I believe the perlrun manpage has all you would ever want to
           know on this subject.
           \_ It works.  Thx.
2005/11/12-14 [Computer/SW/Languages/Web, Computer/SW/Languages/Perl, Computer/SW/Unix] UID:40555 Activity:nil
11/11   Hey MOTD, I'm looking for a good webhosting service.  A coworker has
        recommended http://dreamhost.com.  Does anybody have any first hand experience
        with that provider?   Does anyone have any suggestions, warnings or
        general advice?  Ideally I'm looking for a place with a unix shell,
        php, perl, and possibly mysql & cron -- but it doesn't have to have
        heavyweight bandwidth, etc.    TIA.                    -mice
        \_ It may be more money & work than you wanted, but I've had good
           luck w/ http://johncompanies.com.  You get root on a jailed system: FreeBSD
           w/ ports tree available or some Linux distro w/ some pkg system.
           So you can run any sort of mail/web/anything server you want.
           Very responsive support.  But it's like $30 - $70/month.  --dbushong
           \_ Is that how much you pay for http://csua.org?
              \_ No, currently I just run it off my home DSL.  I'm thinking
                 about getting either a colo'ed box or something like this
                 one of these days just to have the option to scale a web app
                 to higher bandwidth on short notice should I ever actually
                 manage to market anything successfully (e.g.
                 http://floatingsheep.com/wishlist ), but for now it's not
                 quite worth the expense. --dbushong
        \_ I have friends who use dreamhost (and one of them gave me a login).
           AFAICT it seems to be pretty good (unix shell, perl, php, mysql,
           and I assume cron).  If I had to pay for hosting myself, I'd
           probably go with them. --jameslin
2005/10/24-26 [Computer/SW/Languages/Perl] UID:40247 Activity:kinda low
10/24   Dear motd.  I need some perl to randomize the lines in a text file.
        I know this is easy but i have no perl-fu.  Please help.
        \_ @lines = <FILEHANDLE>;
           print splice(@lines,rand(@lines),1) while @lines;
           \_ Let's hope your file is not bigger than the amount of virtual
              memory of the machine.
              \_ Yes, since motd so often grows to fill memory on soda....
              \_ Let's... How completely pointless.  This was a 2 minute perl
                 snippet, fer chrissake...
           \_ Maybe I should show what I have and you can tell me where I'm
              going wrong, This uses a fisher-yates randomization to be
              unbiased:
              #!/usr/bin/perl
              open(FILE, "+< $_");
              while (<FILE>) {
                  push(@lines, $_);
           while (@lines) {
             print splice(@lines,rand(@lines)%@arraylength);
              }
              @reordered = fisher_yates_shuffle(@lines);
              foreach (@reordered) {
                  print $_;
              }
              sub fisher_yates_shuffle {
                  my $list = shift;  # this is an array reference
                  my $i = @{$list};
                  return unless $i;
                  while ( --$i ) {
                      my $j = int rand( $i + 1 );
                      @{$list}[$i,$j] = @{$list}[$j,$i];
                  }
              }
              \_ Your function isn't returning the array.  @reordered is being
                 set to "0" (The return value of the "while").  Change
                 "foreach(@reordered)" to "foreach(@lines)" and this code
                 should work.
           \_ Careful about using rand with %.  You can get into distribution
              problems there.
              \_ The % doesn't do anything; perl rand called that way can
                 never return >= @lines.
                 \_ Upgraded as per dbushong.  I didn't trust perl enough.
           print splice(@lines,rand(@lines)%@arraylength) while (@lines);
                 \_ Upgraded as per dbushong
              \_ Where's $_ coming from in the open() line?
        \_ #!/usr/bin/perl
           die "usage: $0 file\n" if @ARGV != 1;
           open(my $fh, '<', $ARGV[0]);
           my @offsets = (0);
           push(@offsets, tell($fh)) while <$fh>;
           pop @offsets;
           while (@offsets) {
             seek($fh, splice(@offsets, rand(@offsets), 1), 0);
             print scalar <$fh>;
           }
           close($fh);
           ## this is how i'd do it.  --dbushong
           \_ My (extremely short) version:
              /msg dbushong hey, can you write a solution to that motd thing?
           \- i have had problems using perl rand to do this on files with
              more than 32k lines. you may want to test this out ... maybe
              rand returns more values than it use to but i had to re-write
              this for larger files ... this was +5yrs ago. if you want the
              codes mail me. oh also for larger files performance can be an
              issue. [i dont mean really large files ... i typically was
              operating on about 130k entries ... 2x/16netblocks of addresses]
                                                        --psb
           \_ Actually, it looks like it's not perl rand, it's just
              manipulating the slices efficiently on large arrays that's
              making things suck.  I'll ponder.  --dbushong
           \_ OK, redone to user fisher-yates as above.  Now it only takes
              22 seconds on soda on /usr/share/dict/words:  --dbushong
              #!/usr/bin/perl
              die "usage: $0 file\n" if @ARGV != 1;
              open(my $fh, '<', $ARGV[0]);
              my @offsets = (0);
              push(@offsets, tell($fh)) while <$fh>;
              for (my $i = @offsets - 2; $i >= 0; $i--) {
                my $j = int(rand($i));
                @offsets[$i,$j] = @offsets[$j,$i] if $i != $j;
              }
              for (@offsets) {
                seek($fh, $_, 0);
                print scalar <$fh>;
              }
              close($fh);
              \- hello my codes taeke about 5-6 sec on /usr/dict/words
                 on sloda but the sloda numbers are not that stable
                 it is interesting to see the memory growth variations
                 of the different approaches. ok tnx.
                 this time i didnt check the quality of the shuffle.
                 SSH-soda{12}[~/bin]% while 1
                  loop==>  ./rand1.pl /usr/share/dict/words > /dev/null
                  loop==>  end
                 0:05.46sec, [3.961u 0.100s 74.3%], [10080Kbmax 0pf+0#swap]
                 0:06.56sec, [3.949u 0.146s 62.1%], [10078Kbmax 0pf+0#swap]
                 0:05.42sec, [3.953u 0.108s 74.7%], [10080Kbmax 0pf+0#swap]
                 0:06.70sec, [3.921u 0.172s 61.0%], [10082Kbmax 0pf+0#swap]
                 0:08.29sec, [4.041u 0.182s 50.9%], [10074Kbmax 0pf+0#swap]
                 0:05.19sec, [3.870u 0.185s 78.0%], [10074Kbmax 0pf+0#swap]
                 0:04.79sec, [3.830u 0.176s 83.5%], [10078Kbmax 0pf+0#swap]
                 0:04.55sec, [3.902u 0.159s 89.0%], [10074Kbmax 0pf+0#swap]
                 0:06.07sec, [3.917u 0.182s 67.3%], [10076Kbmax 0pf+0#swap]
                 \_ How would an Intel Critical Asset randomize a file?
2005/10/19 [Computer/SW/Languages/Perl, Computer/SW/OS/Windows] UID:40189 Activity:nil
10/18   This is a serious thread, please don't delete it. I'm about to get
        \_ Ah come on... Beastiality never goes out of style.
        married and will be sharing my XP file server files (MP3 and videos)
        on 802.11x. The server will be up and accessible 24x7 to run regular
        stuff too like TV (all-in-wonder card), browser for house guests,
        etc.  I also have about 50G of porns on it and I need to hide them
        from my wife since she doesn't like them. Since she's in tech
        she knows how to mount, log in, and do other things. What's the best
        way to hide my porn collection? Thanks.
        \_ Burn to DVD and then delete.
           \_ Agreed.
              \_ Or buy a firewire drive, transfer everything to it, keep
                 it unplugged and in a closet for the duration of the
                 visit just to make sure that some random guest doesn't
                 accidentally replug it in.
                 \_ Yes, but you'll be stupid and leave it plugged in after
                    a really good session. Poof. Caught. Just admit to yourself
                    you have a porn collection, cull it down to just Good Porn,
                    and put it somewhere she won't see right away. Make a
                    backup because once she does find it, she'll delete it.
                    Get yelled at. Find another place to hide in directory
                    structure. Best place? Game and app directories.
        \_ Can't you just make the folder not readable for other users?
           \_ Yeah, win xp has per-user security stuff available like unix.
              \_  What about 2k and NT?  -- !OP
                  \_ i think it's tied to NTFS
        \_ This is hilarious!
        \_ I guess you could try just obfuscating it under some innocent
           directory tree and rename all the files with a perl script or
           something.
        \_ nuke it all.  enjoy your wife more.
           \_ link:csua.org/u/drp (work-safe)
        \_ PGPDisk.  Confidential_work_docs.pgd.  And make a backup to a
           3.5" USB drive.  -John
        \_ pkzipc -pass foo ......
           \_philcompress
              \_ Did phil ever graduate, or is he still a perpetual undergrad
                 creeping closer to graduation one unit at a time?
2005/10/6-9 [Computer/SW/Languages/Perl] UID:40002 Activity:nil
10/6    Is there an easy way in Perl to enumerate a complete file tree from a
        given directory?
        \_ File::Find?
           \_ This looks far too complex for what I need.  But if there's
              nothing simpler I guess I can use it.
              \_ use File::Find;
                 find(sub { print("$File::Find::name\n"); }, '.');
                 # how much simpler did you want?
                 \_ Yeah, after trying it, it was easier than I thought.
                    Thanks for the recommendation.
2005/9/23-27 [Computer/SW/Languages/Perl] UID:39836 Activity:low
9/23    In the interests of not re-inventing the wheel: anyone know of
        a simple way,inside a  perl program ,to have a command start at
         the top of the minute? Thanks
        \_ cron
        \_ on a not-busy system cron is good at starting commands at the top
           of the minute but does not guarantee your job will run at that time,
           just at *some* time during the minute.  if you really actually need
           to run at the top of each minute, you could write a check vs the
           current time and do a "sleep 1" or something equally silly in a loop
           until $current_second_in_minute = 0 or whatever your criteria is.
           on a busy system all bets are off.
           \ This is a test program that needs to send specific data
             to a device which bins data  every sixty seconds and I am
             losing bits at the beginning and ending of the test
             because the test code does pay attention to where in the
             minute its started. Its a small but noticable error
             that I would like to get rid of; if possible.
             \_ What sort of granularity do you need? Less than a second?
                Less than two seconds? Less than a tenth of a second?
             \_ I would just sleep # of secs until next minute then run command
                if you need greater precision there are probably millisec calls
                \_ I would at least like to start off with a +/- 1
                   second and go from there. The sending and receiving
                   machines both use the same ntp servers so the clocks are  in
                   sync.
          \_ setitimer() is what you want, but it is in C, Time-HiRes uses
             it in perl. Or you could write a few lines of C to sent your
             perl a signal every min.
             \_ I'd second this. Let us know if there are other limitations.
        \_ use a real-time language (ie not perl/java)
           \_ What does the language have to do with it being real-time or
              not? There are plenty of real-time JVMs out there. The
              OS/environment is responsible for this, not the intrinsic
              language.
2005/9/21 [Computer/SW/Languages/Perl] UID:39789 Activity:low
9/21    In Perl how do I pass by reference a scalar variable?
        \_ \$foo  --dbushong
2005/9/2-3 [Computer/SW/Languages/Perl] UID:39466 Activity:nil
9/2     Hey motd I used to have perl w/DBI 1.42 & DBD 2.9003. After
        upgrading Perl, DBI 1.48, & DBD 3.0002_1 I'm seeing something
        really weird. The following used to work:
        $dbh=$DBI->prepare("INSERT INTO data VALUES(\?)");
        for ($i=0; $i<10; $i++) {
          if (!$dbh->execute($i)) {
            print("Oh no! Can't execute: ",$dbh->errstr);
          }
        }
        This runs ok before the upgrade. After the upgrade, if I ever
        see just one error, the rest of the execute statements give
        me an error, even though they do insert. Anyone run into this
        problem? Is this a bug? ok thx.
        \_ Hi, I'm the op. I tried DBD 3.0002 instead of 3.0002_1 even
           though the CPAN web site lists them with the same number
           of PASS/FAILED tests. I guess they missed this simple test case.
           Anyways, DBD 3.0002 seems to work. Thanks.
2005/8/31 [Computer/SW/Languages/Perl] UID:39376 Activity:nil
8/31    Looking for an XML parser for Perl, preferably one that
        doesn't require installation (something already built in).
        If it's not already built in, I prefer something that doesn't
        require C compilation, and that I can just stick the *.pm
        to use. I'm looking for portability, not performance. Thanks.
        \_ What's wrong with using CPAN?
           \_ Sometimes it's nice to be able to just give someone
              a self-contained tar-ball and say "here, run this"
              without expecting them to debug the various CPAN error
              messages that might crop up. I've always found CPAN to
              be a slight PITA.
              \_ Huh? CPAN simply automates the compile for you. It's not
                 like you can simply tell someone to tar xzf foobar.tgz
                 without doing a perl Makefile.pl and then doing a make
                 on it for the majority of modules. Given that you aren't
                 guarenteed where the site modules for perl reside on
                 any given distribution, your safest bet in terms of
                 portability is to utilize make. In the majority of cases,
                 it usually just simply dumps the pm files in the correct
                 place. If you have problems with CPAN, then you most
                 likely will have problems with installation of perl modules
                 anyway. The only way you can really ensure no make, no
                 brain portability is if you have the same setup on all
                 your distribution machines and then do a straight tar off
                 of it. If you're that paranoid about it, you can simply
                 wrap CPAN into a script...
           \_ By searching for XML Parser on CPAN I got like over 1000
              results. I never know whech CPAN modules are the best to
              use and end up wasting time experimenting them. Let me give
              you an example. Someone put up XML::Parser. The name is good
              but the format they use is completely fucked up (hard to use).
              Someone else put up XML::Parser::EasyTree, which is much
              easier to use. By the time I figured out which one has the
              least bugs or problematic or easiest to use, I've already
              wasted 2-3 hours.
        \_ I've been using XML::Simple... I'm only doing basic stuff.
           \_ Interesting! Unlike shitty XML::Parser, according to
              XML::Simple the following two cases are actually equivalent!
                case 1:  <tag1 field=value>HELLO</tag1>
                case 2:  <tag1><field>value</field>HELLO</tag1>
              Do you ever run into problems? I think this is perfectly
              acceptable for my cases and actually makes my life a lot easier.
              THANK YOU MOTD, YOU ARE GREAT.
              \_ Four problems w/ XML::Simple:
                 1) if you're trying to _output_ XML to conform to a specific
                    schema/DTD, it's very hard
                 2) unless you turn off some of the behavior that makes it
                    easy to use, a different file of the same schema can
                    produce a different data structure in perl; not always what
                    you want
                 3) at least when I used it, it caused mod_perl to die horribly
                 4) It reads the whole file into memory.  If you have a huge
                    file you should use something like XML::Twig
                 --dbushong
2005/8/31-9/2 [Computer/SW/Languages/Perl] UID:39372 Activity:nil
8/31    Anyone here use ruby? Is it worth learning (say for someone who
        mostly programs in perl/c)?
        \_ You don't say what your intended use is.  For what?  For personal
           pleasure because you're a language geek?  For work?  For a big
           team project?  For one off throw away code?  What?
           \_ I've been hearing a lot about it from co-workers and
              I wanted to know if I should spend some time to learn
              it b/c it is one of those things that any reasonable
              unix person is expected to know.
              Also it is pretty nice, I'd like to re-write some of
              my personal perl programs so I can ditch perl.
        \_ Yeah, it's worth learning, why? Because it's not perl. I'd suggest
           learning Python over Ruby (probably bigger base). Scripting in
           perl just plain sucks, especially if you have to come back to
           it in a couple of months and update the crap.
           \_ If you write crap code in ruby, it will still be crap code
              months from now.  Don't blame the language if you're a shitty
              programmer.
        \_ I started on it.  I read all the online intro/how-to/beginner docs
           but since I'm already proficient with perl I just couldn't find a
           real excuse to write anything in ruby.  Same thing happened to me
           with python.  Yes, there are some things that might be somewhat
           easier in one language over the others, but not so much better
           that I saw value in climbing the learning curve for the rest of it.
        \_ So, all the "small clean code" fans I know swear by it,
           including my boss.  They usually say it's got the best of Perl
           and Python, plus some new features.
           \_ Getting paid to write in it is different than choosing to
              because you like it.  If my boss swore by it I'd be over that
              pesky little learning curve.  :-)
        \_ I use ruby for scripting, primarily because I know Smalltalk
           and I don't know perl. Ruby has a bit of kitchen-sink syndrome
           (let's throw in another language construct / feature!), but
            all-in-all it's decent.
           If you can already do everything you need to in perl,
           there's probably no need to learn ruby, but, I think ruby programs
           are usually easier to read and ruby has some features like
           continuations that are good to know for general programming
           knowledge.  - ciyer
        \_ I've started to use it.  A buddy of mine who was a bigtime
           coldfusion programmer says that Ruby on Rails is prob one of
           the coolest things out now for web app dev.
           see: http://www.michaelbuffington.com and search for ruby.
                                                - vallard
        \_ Ruby is probably the most fun language I've ever coded in.  It makes
           writing everything as beautiful little OO jewels beautifully easy.
           It also lets you do lots of "cool hacks" that probably don't lead
           to good, maintainable code, but they're a hell of a lot of fun to
           write.  That being said, it has some issues:
           * it's the slowest modern language i've ever used
           * dynamic typing + no sigils (perl's @foo, $foo, %foo things to
             sort of indicate type) = lots of runtime errors, for me.
             supposedly if you're a better programmer this doesn't happen, but
             I'm just weak.
           --dbushong
           \_ Yeah this is what I'd say. Well, the slowness part. The lack of
              sigils is a benefit I think... if it's a problem I think you
              might try using naming conventions. But mainly I've only played
              around with it for fun because nobody at work knows about it,
              it's slower, and the smaller userbase and "stuff" out there
              for it compared to Perl. Perl's OO blows so hard though.
              \_ I think one thing Perl is teaching me is that it's important
                 to give pretty names to stupid things.  'Sigil' sounds so
                 much better than 'declare-with-every-use.'  -- ilyas
        \_ I like perl, being a slow learner I have a hard time learning
           yet another new language.  I think what you get with The use of
           ruby on rails is nice; Active Record, MVC (CRUD w/ scaffolding),
           AJAX 'api', testing and debug builtin, reflection (MINIMAL schema
           configuration), etc.  Check out the intro videos on.
           http://www.rubyonrails.org
2005/8/25-26 [Computer/SW/Languages/Perl] UID:39273 Activity:nil
8/25    Is there any way in Perl for win32 to explicitly kill a process started
        with fork?  kill 9, $pid doesn't do it.
        \_ cygwin or activestate?
           \_ I'm using activestate. -op
2005/8/19-22 [Computer/SW/Languages/Perl] UID:39181 Activity:nil
8/19    Sight Seeing with Google: http://perljam.net/google-satellite-maps
2005/7/15-18 [Computer/SW/Languages/Perl] UID:38643 Activity:nil
7/15    How do you check what Perl libraries you have on your machine?
        \_ Perldoc isn't working for me to figure out command line way right
           now, but you can always 'perl -V' and manually look in the @INC
           directories.
        \_ If you just want to know if module Foo is installed, you can say:
           perl -MFoo -e ''
           If Foo is present, this will exit silently.  If it's absent, you'll
           get an error to the effect of 'Can't locate Foo.pm in @INC' -dans
2005/7/12-14 [Computer/SW/Unix, Computer/SW/Languages/Perl] UID:38585 Activity:nil Edit_by:auto
7/12    Your favorite O'Reilly books online, for free. This includes
        big titles on Java, Perl, networking, UNIX, Oracle, Linux, and Samba.
        http://www.unix.org.ua/orelly
        and here
        <DEAD>www.hackemate.com.ar/textos/O'reilly%20-%20Complete%20Bookshelf<DEAD>
        \_ With all the political trolling that's been going on around
           here, at first I thought this was about Bill O'Reilley.
        \_ keywords: book learning perl mysql postgres Oreley
           keywords: OReilly Reilly OReiley Reiley OReilley Reilly Orelly Orelley
2005/7/7-10 [Computer/SW/Languages/Perl] UID:38467 Activity:nil
7/7     Is there an easy way in Perl to parse command-line arguments like:
        -opt1 val1 -opt2 val2?
        \_ Getopt::Std module
           \_ Ah, thank you--both for the useful answer and the quick reply.
           \_ Specifically, look at the getopts() function in there.
        \_ How about in Python?
           \_ python has a standard getopt too. stfw.
2005/6/27 [Computer/SW/Apps, Computer/SW/Languages/Perl] UID:38320 Activity:nil
6/27    PDF -> Excel question.  In a PDF file there are rows and columns
        of numbers (a spreadsheet).  Is there an easy to to copy and paste
        that into excel and preserve the format?  I tried it many times
        and spent a lot of time dicking around with the "paste formatter"
        manually putting in column delimiters.  And it still didn't come
        out ok because the columns couldn't line up.   Is there a third
        party software that can do this?  or some other way like export
        the highlighted PDF segment into some other format/document and
        then move it back into excel?   This is not for a small table.
        It's huge and I probably need to do this for several PDF files.
        Manual input is out of the question.  Thanks.
        \_ perl, Perl-PDF and Spreadsheet::WriteExcel  -tom
2005/6/21-23 [Computer/SW/Languages/Perl] UID:38230 Activity:high
6/21    My math and/or perl fu is weak. Is there a way to get integer
        multiplication in Perl the way it's done in C? i.e. limiting
        to 32 bits. Like 1588635697 * 1117695901 = 1166976269 in C.
        \_ Can't you just multiply and then mask all but the last 32 bits?
           \_ I don't think so; that's not the same as mult overflow.
              > perl -e 'print (1588635697 * 1117695901)'
              > 1.77561160671918e+18
              > perl -e '$foo = (1588635697 * 1117695901); printf("%u",$foo)'
              > 4294967295
              > perl -e '$f=(1588635697*1117695901)&0xffffffff;printf("%u",$f)'
              > 4294967295
              I guess I could call C from perl but I'd rather not. Or construct
              my own slow 32-bit binary multiplier in Perl, haha.
              \-ObUseLISP
              \_ People sometimes give me a hard time for disliking Perl, but I
                 really do feel it's not a well-designed programming language.
                 This is one example of why.  Most other high level languages
                 have a notion of a native integer and native floating point
                 type.  Lisp and ML languages certainly do.  By the way,
                 what you want to do is 'use integer;'.  In other words:
         perl -e 'use integer; $f=(1588635697*1117695901);printf("%u",$f)'
                        -- ilyas
                 \_ Perl never claimed to be strong computationally.  It's
                    a text munging engine at its core.  That "use integer"
                    is required isn't all that surprising.
                    \_ Neither Lisp nor ML claim to be strong computationally
                       either (they are both meant for symbolic processing).
                       This does not stop them from having good design, and
                       a GC that doesn't leak.  Matlab, which is often used
                       for numerical tasks, has a base numeric type that is
                       a complex-valued matrix!  This excuse is neither here
                       nor there.  Perl's poor quality coupled
                       with Perl's popularity really lowered consumer
                       expectations, I feel, which is a pity.  -- ilyas
                 \_ Thanks, that works... except I had to play around a bit.
                    For example this case doesn't work:
         perl -e 'use integer; $f=1117695901*(3177271395/2); printf("%u",$f)'
                    > 137188522
                    The division seems to throw a wrench in it. But it works
                    if I put only the multiplication in a block by itself,
                    with 'use integer' there. I'm not sure I trust this thing.
                 \_ how do you get the C-integer behavior in Lisp?
                    \_ Lisp, by default, uses bignums in case of overflow,
                       but it is possible to get around this with some
                       syntax verbosity, for instance in cmucl:
                       (defun f (x y)
                         (declare (optimize (safety 0)))
                         (declare ((unsigned-byte 32) x y))
                         (the (unsigned-byte 32) (* x y)))
                       (print (f 1588635697 1117695901))
                       There's probably a shorter way, but I don't care
                       enough to find it.  At least it does the Right Thing
                       always, unlike Perl above. Notice that Lisp treats this
                       issue as one of type safety -- setting the safety knob
                       to 0 forces it to use the unsigned 32 bit integer type
                       for the result even if it cannot prove the result will
                       'fit.' -- ilyas
                 \_ well those people are idiots. Perl is not a programming
                    language, it's a bunch of ugly hacks that look like a
                    programming language. The fact that Perl is so popular
                    is not so much that it is intuitive or has features of
                    good languages, but the fact that it has one of the
                    most comprehensive libraries out there. I hate Perl,
                    but I also hate writing stuff in Java or scripts where I
                    need to build or find my own CGI lib, XML parser, code
                    generator, sql mod, and all the extra nice things that
                    are readily available on Perl.
                    \_ You should give Python a try.  It has plenty of
                       drawbacks, like any interpreted language, but its
                       a million times better than Perl IMO.  And you get a
                       huge set of the aforementioned bells and whistles that
                       are roughly comparable to what Perl has.  Note that
                       one of the first complaints about Python is usually its
                       use of whitespace as a block delimiter, so if you can't
                       get past that you're probably SOL.
                       \_ I feel Python is a poorly implemented, inelegant
                          Lisp with decent library support.  See Norvig's
                          essay on this subject. -- ilyas
                          \_ From Norvig's site: "The two main drawbacks of
                             Python from my point of view are (1) there is very
                             little compile-time error analysis and type
                             declaration, even less than Lisp, and (2)
                             execution time is much slower than Lisp, often by
                             a factor of 10 (sometimes by 100 and sometimes by
                             1). Qualitatively, Python feels about the same
                             speed as interpreted Lisp, but very noticably
                             slower than compiled Lisp. For this reason I
                             wouldn't recommend Python for applications that
                             are (or are likely to become over time) compute
                             intensive. But my purpose is oriented towards
                             pedagogy, not production, so this is less of an
                             issue."

                             Overall from what I can tell, he seems to *like*
                             Python despite these objections, and his main
                             objection seems to be that you can't compile it.
                             I've done tons of useful production work with
                             Python, so while I see where he's coming from I
                             don't see the practical downside of his complaint.
                             I can see why a computer scientist might object
                             to Python, though.
                             \_ You have to understand that Norvig works at
                                Google now, and Google has standardized on
                                Python, like it or not.  I am not really
                                familiar with internal politics over there,
                                but it wouldn't surprise me if he was somewhat
                                pressured to not hate Python too much.  I feel
                                scheme + SICP is the best pedagogy tool for
                                CS.  There are a lot of really clunky things
                                about Python I don't like, but then again,
                                that's true of most languages.  That's why I
                                want to roll my own one day.  Also, the kinds
                                of things I like in programming languages are
                                fairly obscure, hard to explain and verbalize
                                things. -- ilyas
                                \_ Well, roll your own then.  It's
                                   actually pretty easy these days.  Jim
                                   Gray is quoted as wondering why
                                   everyone isn't doing it.
                                   \_ Writing is easy.  Designing is hard.
                                        -- ilyas
                          \_ "A poorly implemented, inelegant Smalltalk
                              with decent library support," is probably
                             a more accurate description of the language.
                                - ciyer
                             \_ How do you feel about ruby? -aspo
                                \_ Yeah, ruby is a new take on smalltalk
                                   (dynamic typing, everything is an object).
                                   Python resembles lisp more than
                                   smalltalk. -- ilyas
                                   \_ So.  What do you think about ocaml?
                                      \_ I don't like ocaml as much as I once
                                         did.  It's a good implementation
                                         (which is rare), but I have been
                                         finding design problems.  E-mail me
                                         if you are interested in a serious
                                         discussion rather than half-hearted
                                         trolling attempts. -- ilyas
              \_ Foolish me for thinking that perl used bignums instead of
                 magically converting ints to floats. -pp
                 \- people who think perl is good as opposed to useful
                    typically have not been exposed to something actually
                    good. while one can debate what is the "Right Thing"
                    it's pretty pointless to debate what somebody else
                    finds useful. i use perl now and then but at the back of
                    my mind i am always a little nervous because of all the
                    things it is doing behind the scenes [to allow sloppiness]
                    which i dont understand. although admittedly i havent
                    seen perl do too many really crazy things since perl 4
                    [where you would hit crazy implementation as opposed to
                    design bugs like you would reorder a case statement and
                    all of a sudden perl core dumped. it's funny how berkeley
                    unix was the example of "worse is better" in the famous
                    "essay" and now BSD Unix is sort of the gold standard.
                    \_ psb, did you write some Open Source polynomial solvers
                       in Lisp?  I came across some code by a "psb" at my
                       last job.
                       \- um, i did write some stuff for MACSYMA a while ago.
                          this was sort of pre-open src so it was more like
                          i threw it out there. this actually indirectly came
                          out of a ucb linear algebra class. a dumbass friend
                          of mine brought us what he said was an extra credit
                          homework problem, but turned out sort of a hard
                          problem [maybe a Knuth 42] and this lead to some
                          useful stuff being written. the only place i was
                          aware this was being used was IBM.
                    \_ My favorite thing that Perl got wrong is their
                       garbage collector, which leaks on cyclic data structures.
                       There is even an AI koan about this very subject.
                         -- ilyas
                        \_ point is valid. Luckily, most Perl programs
                           like CGI/PHP don't persist too long. Perl doesn't
                           scale well for real huge programs.
                        \_ Is that a GC bug or a result of the way it was
                           designed?
                           \_ It was designed that way. -- ilyas
                           \_ It was designed that way.  See koan #2 here:
                        http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?AI+koan
                                -- ilyas
2005/6/7-8 [Computer/SW/Languages/Perl] UID:38010 Activity:nil
6/7     Who the hell is toshi?
92998 toshi         -22   0 21652K  7340K swread   0:04  1.60%  1.56% perl
93677 toshi          60   0 22400K 11632K RUN      0:03  1.92%  1.51% perl
92893 toshi          62   0 25020K  7788K RUN      0:09  1.80%  1.42% perl
93173 toshi          62   0 25060K 17216K RUN      0:07  1.22%  1.22% perl
93020 toshi          63   0 25048K 15072K RUN      0:08  1.17%  1.17% perl
92957 toshi          62   0 25028K 11168K RUN      0:08  1.03%  1.03% perl
92988 toshi          61   0 25020K  9380K RUN      0:08  1.30%  1.03% perl
93074 toshi          61   0 25028K 15584K RUN      0:07  0.98%  0.98% perl
        \_ Isn't he the dinosaur that Mario rides?
           \_ nah, that's yoshi
              \_ Yeah, was Toshi the evil cat-child in 'The Grudge'?
                 \_ I think you mean Toshio, though I don't speak Japanese
                    so for all I know that might functionally be the same.
        \_ http://www.toshireagon.com
2005/4/29-5/1 [Computer/SW/Languages/Perl] UID:37411 Activity:moderate
4/29    I need help getting information off a web site.  A page presents
        information about an item in locations spread througout the page.
        Each page presents information about one item. What is a quick and
        easy way to go through several pages, capture all the information
        related to each item, and put them into a spreadsheet with a unique
        index?  I think this might be possible by scraping the screen, but how
        does one go about this from a Windows workstation (with no app
        servers)?  Would it be easier to record a bunch of copy and paste
        actions with automation / macro recording software and replay the
        macro?
        \_ On a windows machine with dotnet you can just simply write
           the whole thing in a couple lines of C Sharp. They've even
           got a snarf util in the O'Reilly book.
        \_ perl.  -tom
           \_ Typical Tom answer.  Tom, when you dont know much about
              something, why don't you leave it for others to answer?
              \_ what do you mean?  perl is a fine solution.  -tom
                 \_ WWW:Mechanize is a valid suggestion.  "Use perl" is a
                    step away from "write a prgrogam."  Sad you can't see
                    this.
                    \_ If you know anything about perl, you know
                       there's more than one way to do it.  I wouldn't
                       use WWW::Mechanize, though that's certainly a
                       reasonable approach.  -tom
           \_ more specifically, WWW::Mechanize is useful -dwc
        \_ Python's urlib module does this quite easily also. -scottyg
2005/4/13-5/25 [Computer/SW/Languages/Perl, Computer/SW/SpamAssassin] UID:37167 Activity:nil
4/14    Perl upgraded to 5.6.2. SpamAssassin (spamd/spamc) upgraded to 3.0.2.
        moria (and angband, and NPPAngband) installed, for all you really
        old-schoolers.
2005/4/4-5 [Computer/SW/Languages/Perl] UID:37058 Activity:nil
4/4     entry-level whitebox testing job at hot startup, involving crazy
        Big Brother type technologies.  Email brain for details!  Have a resume
        and be prepared to code C++, Java, and possibly perl.  Code is more
        crucial than QA skills; I'll show you that part.        -brain
        \_ big brother in a good way or in a bad way? of course, how could it
           be in a good way?
           \_ I think he means the s/w called Big Brother, which monitors
              the health and status of systems.
              \_ Problem solving is the more important part in any QA.
                (Person who is doing Sr QA and  deals with programming
        QA types outsourced to  Russia who  can perl like a demon but
        can't understand  testing  worth a damn.)
                 \_ Developers who can't write their own functional and unit
                    tests are dangerous and not to be trusted.
2005/3/25-29 [Computer/SW/Languages/Perl] UID:36872 Activity:nil
3/25    In Perl, how do I specify a SIGHUP and SIGKILL handler? I want to
        clean up stuff when I press CTRL-C on my Perl script. -ok thx
        \_ RTFM. Look for %SIG in "man perlipc"
        \_ STFW: http://www.unix.org.ua/orelly/perl/cookbook/ch16_16.htm
        \_ Above trolls should STFU.
           \_ Methinks you need to STFW for the definition of "troll"
              \_ ROFL LOL, WTF!?
2005/3/24-25 [Computer/SW/Database, Computer/SW/Languages/Perl] UID:36846 Activity:nil Edit_by:auto
3/24    How do I do non-blocking read in Perl? For example, let's say I do
        open(FD, "tail -f file.log |");
        And I'd like to read it, but not block it. Can that be done? -ok thx
        \_ Yes. You need to use fcntl to mark FD as non-blocking and then
           you need to use select and sysread to read from FD.
        \_ http://www.unix.org.ua/orelly/perl/advprog/ch12_03.htm
           http://www.unix.org.ua/orelly/perl/cookbook/ch07_15.htm
           Bottom page, very useful
Open the file with sysopen, and specify the O_NONBLOCK option:
use Fcntl;
sysopen(MODEM, "/dev/cua0", O_NONBLOCK|O_RDWR)
    or die "Can't open modem: $!\n";
If you already have a filehandle, use fcntl to change the flags:
use Fcntl;
$flags = '';
fcntl(HANDLE, F_GETFL, $flags)
    or die "Couldn't get flags for HANDLE : $!\n";
$flags |= O_NONBLOCK;
fcntl(HANDLE, F_SETFL, $flags)
    or die "Couldn't set flags for HANDLE: $!\n";
Once a filehandle is set for non-blocking I/O, the sysread or syswrite calls tha\
t would block will instead return undef and set $! to EAGAIN:
use POSIX qw(:errno_h);
$rv = syswrite(HANDLE, $buffer, length $buffer);
if (!defined($rv) && $! == EAGAIN) {
    # would block
} elsif ($rv != length $buffer) {
    # incomplete write
} else {
    # successfully wrote
}
$rv = sysread(HANDLE, $buffer, $BUFSIZ);
if (!defined($rv) && $! == EAGAIN) {
    # would block
} else {
    # successfully read $rv bytes from HANDLE
}
2005/3/4-6 [Computer/SW/Languages/Perl] UID:36520 Activity:high
3/4     Rave: Chapter Two of Damian Conway's Object Oriented Perl is hands
        down the clearest exposition I've ever read of perl modules,
        namespaces, references, as well as local vs. my.  I wish I'd read it
        sooner.  Well worth the just over $20 to get it as a PDF, and I will
        probably drop the $40 or $50 needed for the dead trees edition.
        Two pages later, it also features the clearest exposition of closures
        I've ever read, and I'd highly recommend it to anyone taking 61A in
        order to help get your head wrapped around the magic that is lambda.
        -dans
        \_ sometimes you can find editions cheap on amazon used books.
        \_ Can I give you $10 and you mail me a copy of the pdf? -poor student
           \_ 26$ for a "like new" used hardcopy from amazon.
           \_ You can easily get a copy off of emule for free.
           \_ Are you really so poor that you can afford $10 but not $20?
              That's two, maybe three trips to La Burrita.  Also, seeing as I
              like Conway's work, I'd like to see him get paid and perhaps
              write more at a later date.  Why don't I arrange to donate a
              copy to the CSUA library? -dans
              \_ What I find depressing is how many people seriously don't
                 see a problem with paying money for IP they like, and stealing
                 IP they don't like.  As if their subjectivity is any yardstick
                 to measure people's rights by.  Or, if you like, as if stupid
                 people didn't have the same rights as everyone else. -- ilyas
                 \_ Fair enough. Do you pay for your copy of Windows and
                    every single warez you've had in your life?
                    \_ Yes, my copy of windows is paid for.  I do not 'own'
                       any warez, and never have.  Why must you assume everyone
                       is as much of a scumbag as you? -- ilyas
                    \_ I don't know aobut ilyas, but the one copy of Windows
                       I've ever used was legit (paid for by my company). I
                       also paid for all the software I currently use on my
                       Macs. Most of my other systems run either Linux or BSD,
                       and I don't have any commercial software on those systems.
                       At one point in my life (10+ yrs ago) I did have some
                       commercial software (mostly games, though I don't
                       think I ever had a license of MacDraw) on my MacSE,
                       think I ever had a license for MacDraw) on my MacSE,
                       but back then when you bought a computer you just
                       assumed that the stuff on the old hd was yours.
           \_ Not only would this be illegal, it is also just plain wrong.
              As a published author, nothing bugs me more than people who
              feel that they somehow have a right to STEAL your work w/o
              compensating you for it.
              If everyone was like you and refused to pay for books, the
              incentive to write (what little there already is - a tech
              author may get ~ $2 per copy sold) will completely disappear.
              Who wants to waste their nights and weekends (most of us
              need real jobs b/c writing tech books doesn't come close to
              paying the bils) if there would be no benefit beyond some
              minor recognition on one's resume?
              If the book helps you out, PAY FOR IT. </rant>
              \_ I buy most of my technical books used.  This is legal, however
                 the author still doesn't get any money.  What do you think of
                 that?  If authors asked used buyers to send them a couple
                 bucks, I'd do it, but I've never heard of such a system.
              \_ I buy most of my technical books used.  This is legal,
                 however the author still doesn't get any money.  What do
                 you think of that?  If authors asked used buyers to send
                 them a couple bucks, I'd do it, but I've never heard of
                 such a system.
                 \_ I have no problem w/ used books. The original purchaser
                    has already compensated the author. Once they bought
                    the physical book (or electronic copy), they can sell
                    it or give it away to someone else assuming that they
                    do not retain a copy for their own use.
                    \_ Just for shits and grins, why don't you try putting a
                       message in the next edition of your book that says
                       "If you really love this book and find it useful send
                       me a dollar" and see what happens.
2005/2/25-27 [Computer/SW/Languages/Perl, Computer/SW/Languages/Python] UID:36415 Activity:low
2/25    Any python guys on the motd?  I'm trying to find a python equivalent
        to $/ (the perl input record separator) so that I can parse a file
        with odd record separators (ie, not \n).  The data I got on google
        suggests that no such thing exists, but those posts were from 2003.
        Has support for this been added of late?
        \_ string.split('record_sep_char') I think.
           \_ Problem with this is having to read in data blocks from the
              file, because otherwise there's an implicit split on \n
              (which my records contain).
               \_is the file really big?
                 f = open("/usr/dict/words")
                 f.read().split('record_sep_char')
                 I'm curious too if there's a better answer
        \_ I don't do much work in Python so I don't know if this will
           actually work, but my copy of Python in a Nutshell mentions the os
           module has an attribute linesep which is set to '\n' on Unix and
           '\r\n' on Windows.  What happens if you try to set that attribute
           to your desired separator before sucking in your file? -dans
2005/2/17 [Computer/SW/Languages/Perl] UID:36220 Activity:high
2/17    This *has* to exist: I'm working w/ a text file that uses ascii #2
        for record separators and ascii #1 for field separators.  Is there
        a utility that will print out these ascii values for me, so I can
        (for example) use them with command line awk and perl scripts? Ex:
        fs=`atoi 1`
        perl -pi e's/(.*)$fs(.*)/$1$fsfoobar/g' myfile.txt
        Also, what would the actual perl syntax be for what I'm trying to
        do with the above command?  Platform is OS X.  TIA
        \_ perl -002 -a -F'\001' -lpi -e '$_="$F[0]foobar"' myfile.txt
           OK, this sets in the input record separator to #2 (instead of
           newline), sets the field separator to #1, strips the \002 from the
           input and readds it on output (-l) and autosplits into @F on \1
           --dbushong
           \_ What about a function that just prints an ascii code -
                printf("%c", atoi(argv[0]));
              would be fine, it just seems ridiculous that this doesn't
              already exist.
              \_ In most shells, you can press ^V before a keystroke and have
                 that keystroke inserted literally, without being interpreted
                 by the shell. Thus, ^V^A would produce a literal ^A (ASCII
                 code 0x01), and ^V^B would produce a literal ^B (ASCII 0x02).
                 Alternatively, try fs=`echo -ne '\001'`. -gm
                 \_ Ah, that works very well, thank you.  I also
                    discovered the perl function chr, which takes an int
                    and returns the associated ascii character.
              \_ I think you meant argv[1], there, buddy.  Anyway, it's
                 trivial, so why don't you write it?
                 \_ You're correct, and yes it's trivial, but so is the
                    command "yes" which repeatedly prints out "y" forever.
                    The thing is, I need to have other people run this
                    script for me, and I don't want to waste their time
                    with "ok, now run gcc -o asciify asciify.c" if asciify
                    already exists.
2005/1/19-20 [Computer/SW/Languages/Perl] UID:35796 Activity:nil
1/19    What's the difference between regular threads and threads created
        with async in Perl?
2005/1/16-17 [Computer/SW/Languages/Perl, Computer/SW/Languages/Web] UID:35734 Activity:high
1/15    What's the easiest/best thing to use to quickly create small GUI
        tools/apps for Windows? (cross-platform ok too) Like the equivalent
        of a perl script with a Windows GUI. Only for myself right now but
        I need to decide what to invest my time learning. So it might as well
        be cross platform if there's no big downside. I have hardly any
        experience with GUIs. Thanks.
        \_ I have the same question but maybe not for a perl script, also
           the GUI can be as simple as possible.
                \_ perl/tk is decent, though you might want to look into VB if you
                   want to interact with the os.  I'd advise staying away from
                   Java at all costs. --darin
                   \_ ya, sounds like VB is what the op is looking for.
                      \_ Is VB cross platform?
                         \_ and free? :( -op
                   \_ Performance aside, why no Java?
        \_ http://wxperl.sourceforge.net
           There's also APIs into wxwindows for Python and other languages.
           I think it's what the original windows version of BitTorrent is
           written in.  --dbushong
           \_ Ok I started playing with wxruby so I'll see how that goes, even
              though it's beta. found at http://wxruby.sourceforge.net.
2005/1/12-13 [Computer/SW/Languages/Perl] UID:35680 Activity:low
1/12    How can I email a group of people individually if I have
        a list of their email addresses and names, and I want each
        email to begin with a personalized greeting (e.g. Dear Mr. A)
        Any platform is ok. Thanks.
        \_ write a script.
        \_ This used to be called "mail-merge" in the days of paper
           mail which needed to be printed. I'm sure a similar functionality
           exists within most modern day email programs for something like
           this, especially Microshaft Outlook.
        \_ Oh please don't be a spammer.
                \_ don't worry, I'm not; it's for school. -op
           \_ anyone here work for a spam company?
        \_ perldoc Net::SMTP
           The remainder is left as an exercise to the reader. -dans
2005/1/12 [Computer/SW/Languages/Perl] UID:35671 Activity:nil
1/11    What does the @{ } syntax mean in Perl? As used in "man perldsc".
        Oh nevermind I just read about references. Perl sucks.
        \_ It's accessing an array, like @foo.  The expression inside the
           braces should evaluate to an array reference.  See "man perlref".
           \_ Yeah I just found that, thanks.
2005/1/11-12 [Computer/SW/Languages/Perl] UID:35668 Activity:moderate
1/11    FIX YOUR SPAMASS
  3293 root           60   0 22512K 16640K RUN     42:15 12.74% 12.74% perl5.005
  2610 root           60   0 22328K  8036K RUN    277:52 12.60% 12.60% perl5.005
  amirs     3293 12.7  2.1 22512 16640  ??  R     4:08PM  42:18.75 /usr/local/bi\
n/spamd -a -c -d -m 5 -r /var/run/spamd.pid (perl5.00503)
s  etol     2610 10.9  1.0 22328 8036  ??  R     3:29AM 277:55.77 /usr/local/bin\
/spamd -a -c -d -m 5 -r /var/run/spamd.pid (perl5.00503)
        \_ pretty sad that spamass can run out of control like that
           \_ It is.  It might also be the fault of the ancient perl we're
              running it on.
              \_ I dunno, the docs I read specifically warn against
                 running spam assassin on large emails. (>250K)
        \_ I switched from spamd to spamass after spamd kept dumping
           huge cores in my home directory, putting me over quota.
           Has this problem been fixed?
           \_ I dunno, did you ever tell root that that was happening?
              \_ No, I just switched to using spamassin directly.
2005/1/11-12 [Computer/SW/Languages/Perl, Computer/SW/SpamAssassin] UID:35663 Activity:nil
1/11    How do I set up a spam filter without hosing soda with perl processes?
        (something running on soda, not in my Windoze e-mail client)  Thanks!
        \_ The best you can do is to run spamc (which uses the shared spamd
           daemon) instead of running spamassassin directly.
2004/12/29-30 [Computer/SW/Unix, Computer/SW/Languages/Perl] UID:35476 Activity:kinda low
12/29   Is there a command like 'tail' that will read a file backwards?
        Tail does not do what I want because of a limited buffer size. I
        want to read the *ENTIRE* file backwards. Less doesn't work because
        it relies on line numbers and the file is corrupted. (Essentially,
        I can read 1-n and n+EOF lines but n itself is corrupt.) More/less
        lets me read 1-n, but tail won't let me go back far enough.
        (tail -100000 and tail -3000 are equivalent because of the buffer)
        \_ you could pipe it through a perl script that reads the file
           backwards, i can write a multi line one, maybe one of the perl
           geeks around here will post a 1-liner.
           \_ Thanks! I found a PM called File::ReadBackwards that worked.
           \- hello, you can use the "tac" command or sed '1\!G;h;$\!d' --psb
              \_ Tac looks cool, but seems to be a Linuxism. It's not on
                 soda, for instance. (Yes, it could be ported.)
                 \-tac is a random hack that probably predates linux.
                   portability is why i added the sed cmd. --psb
        \_ if you use 'less +G' it doesn't actually try to figure out line
            numbers, it just goes to the end of the file. You can then scroll
            back ward normally. -ERic
            \_ I tried this and it did not work. I went to the end of the
               file, but when I tried to scroll back it attempted to
               calculate line numbers even when told not to.
2004/12/29 [Computer/SW/Languages/Misc, Computer/SW/Languages/Perl] UID:35468 Activity:moderate
12/28   Does anyone have a good (free) program for converting .ogg to
        .mp3?  Either for Linux or Windows.
        \_ CDex
        \_ Download the official Vorbis tools and then use oggdec + LAME.
           \_ Not recommended for Windows. On linux it's a one line perl script.
              \_ Why is this not recommended for Windows?  Can't you use a
                 one-line Perl (or even .bat) script there too?
                 \_ Because the Windows CLI is a piece of crap. Yes, you can
                    install cygwin, but by the time you go through the song
                    and dance of installing cygwin you could've already
                    converrted your ogg vorbis files to mp3 already with
                    CDex. Not only that, unlike Linux you can't simply
                    install an RPM/DEB or emerge in gentoo lame and oggdec.
                    You have to manually download each piece of software and
                    unzip it and path the directories correctly. It's just
                    a hassle. I mean, if you really want to write a batch
                    file go right ahead, but why bother?
2004/12/17-19 [Computer/SW/Languages/Perl] UID:35343 Activity:high
12/17   I am doing some simple subtraction on perl, and its generating
        output like 8.39999999999998, how do I fix this? Thanks.
        \_ Omg.  I can't believe people ask this shit.  Did you graduate
           from Cal with a CS degree?  You are a fucking disgrace.
           \_ There are a significant number of non-CS majors here.
              \_ There IS a significant number.  Fucking disgraces, all
                 of you.  Ugh.  Go die.
                 \_ Wrong, dumbass. "A number of ___" is a plural noun.
                    "Are" is correct.  Fucking disgrace.
           \_ Agreed.
        \_ you fix it by giving us example code or int($num + .5)
           \_ I am doing something very simple, reading some numbers into
              a variable, and subtract them. in my case, the number is
              595 - 586.84, which should give me 8.16, but perl output
              8.15999999999997, I need 8.16.... thanks...
              \_ Like the poster below said, numbers like 8.16 can't be
                 represented exactly in binary, so you'll always get some
                 error.  You can use $num = sprintf("%.2f", $num) to force
                 $num to have exactly two digits after the decimal point --
                 this also means that 8.5 will become 8.50, which is usually
                 what you want if you're dealing with money.
              \_ And what is the precise binary representation of .84 pray
                 tell?
        \_ Math::BigFloat
        \_ If there's a specific precision you want, use fixed-point math or
           round.
2004/12/14 [Computer/SW/Languages/Perl, Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Misc] UID:35286 Activity:insanely high
12/13   http://khason.biz/blog/2004/12/why-microsoft-can-blow-off-with-c.html
        Why Microsoft Can Blow Off with C the Language (humor/funny)
                                                       \_ not really.  -tom
             that's because tom holub is the anonymous humourless nuker _/
        \_ Feel the babelfish flow through you.
        \_ Any body who thinks Fortran hasn't seen widespread acceptance hasn't
           spent much time outside of the world of software development and
           systems administration, methinks. Out where I do my civil
           engineering thing, Fortran is the standard langauge. -- ulysses
        \_ Not the law is clear? There is a beard - there is a success.
           There is no beard - you are guilty.
2004/11/30-12/1 [Computer/SW/Languages/Perl] UID:35129 Activity:nil
11/30   Perl question, I want to make a sub do_these which when called as
        do_these(('foo','bar')); will call foo() and bar()
        will something like
        foreach(@_) { &$_(); }
        work?
        \_ Yup.  If you get an error about "strict refs", add the line
           "no strict 'refs';" at the beginning of sub do_these.  --mconst
        \_ I'd suggest looking through hoserchat source code (locate hoserchat
           on soda) and look at how the function pointers are done there.
           \_ mconst says I'm good to go, but the way hoserchat does it is to
              use function references, not dereferenced fuction names.  Is
              this a TWTOWTDI situation, or is it illegal to dereference a
              function name, since $_ will after all be a string?
              \_ TMTOWTDI.  Real references are sometimes safer: they work
                 regardless of what package you're in, and they keep working
                 even if the original function gets renamed or undefined.
                 (That's why "use strict" disables the ability to use a
                 function or variable name as a reference.)  It's usually
                 not a big deal, though.  The cool thing is that your code
                 will actually work either way -- if you want to use real
                 references, just call do_these(\&foo, \&bar) instead. --mconst
        \_ OK, because I'm calling specific instances of a class function
           (probably should have mentioned that)  I actually needed to use
           $self->$_ in do_each(), as &$_() just gave calls to member function
           of an uninstantiated class.  All in all, thanks a bunch to both of
           you. -op
2004/11/24-26 [Computer/SW/Languages/Perl] UID:35061 Activity:nil
11/24   I was looking at the Perl CGI.pm and I noticed that most of its
        functions existed only as source code stored in a big hash of
        %SUBS = (sub_name => 'sub source')  What's the reason for doing this?
        \_ They compile the functions on demand, to reduce startup time.
           \_ So if you make repeated calls to some of these functions, will
              you see much of a performance hit?
              \_ Nope -- once CGI.pm compiles a function, it becomes an
                 ordinary perl function with no extra overhead.  On the other
                 hand, even that single compilation is a waste if you're using
                 something like mod_perl that precompiles your code, so CGI.pm
                 does have an option (-compile) to disable the hack and just
                 define everything at compile time.  --mconst
2004/11/22-23 [Computer/SW/Languages/Perl] UID:35028 Activity:kinda low
11/22   How do I get find to return me a list of files with every questionable
        character escaped by a backslash?  ', ", ?, <space>, etc are
        "questionable"
        \_ find . -print0 | perl -0pe 'chop;s#[^\w/.,-]#\\$&#g;$_.="\n"'
           (assumes you have perl and find which supports print0; both common
           on modern boxes; also i specified the list of "OK" characters rather
           than questionable ones; i think it's safer; note also that -print0
           by itself may have been what you were looking for, since this will
           possibly give you results like this:
           file\ with\ newline\
           in\ it.txt
           (the newline is blackslashed, but that may or may not help you)
           --dbushong
        \_ Pipe it through perl -ne 'print quotemeta $_'
        \_ Pipe it through perl -ne 'print quotemeta $_' --scotsman
           \_ or just perl -pe 'print quotemeta'
              \_ Er, no. perl -ne 'print quotemeta'
              \_ Er, no. perl -ne 'print quotemeta' --scotsman
                 \_ perl -pe '$_=quotemeta'
                    -geordan
                    \_ Actually, perl -pe 's/./\Q$&/g'
                       -geordan
                       \_ That's slick, but the newline issue applies there.
                          --scotsman
                          \_ I guess
                                perl -pe 's/./\Q$&/gs'
                             would fix that, but it's still just getting
                             escaped. -geordan
           \_ This doesn't work if any of the files have newlines in their
              names.  --dbushong
              \_ Well, it escapes it, just as yours does. --scotsman
2004/11/22 [Computer/SW/Languages/Perl] UID:35012 Activity:very high
11/22   Dear Perl monkeys, how do I match a substring at the end of a string?
        I want to match '.txt' but not '.txt.gz' or similar.  -thanks
        Something like if($filename <ends with> @valid_extensions) {}
        \_ $ext = join '|',@valid_extensions;
           if ($filename =~ /\.($ext)$/) { ... } # -geordan
2004/11/19-20 [Computer/SW/Languages/Perl] UID:34983 Activity:nil
11/19   I don't want logwatch to tell me that there were "134 messeges sent"
        but I would still like to have it parse the maillog file.  I can
        comment out the line in the perl script in "scripts"   but that
        doesn't seem clean.  Same with it telling me that my user has logged
        in.  I know my user logs in; can I tell it not to watch for me?
                Is there a way to modify the .conf files in services to tell
        it not to send this info?  I've searched around a lot for this and
        can't find anything.  <DEAD>logwatch.org<DEAD> just has the man page for docs.
                If anyone knows of some more extensive logwatch docs on-line,
        it would be appreciated.
2004/11/16 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:34922 Activity:high
11/16   "sed '/^[0-9].*$/\!d' inputfile" will print out only the lines
        of a file that start with numbers.  Supposed I want to print out
        the 1st, 6th, 10th, 16th, etc lines that begin with a number.
        How can I do that elegantly with sed or perl or whatever?
        \_ perl -ne 'print if /^\d/ && $count++ % 5 == 0'  --mconst
        \_ You can replace all the newlines with a new record separator (eg
           "FOO") and then awk '{print $1, $6, $10, $16}'.
           \- to do this either you need to understand a little bit about
              how sed works and then write a little sed program OR if
              you want a cryptic one liner, it heavily depends on the
              version of sed ... i cant think of a simple way to do
              this in "genreic sed" ... i assume your list doenst end
              at 16 ... that is trivial. i think gsed supports the +5d
              operator. --psb
        \_ perl -ne 'print if /^\d/ && <compare $. as line #>' file
           the compare could be e.g.: $. =~ /^(1|6|10|16)$/
           --dbushong
           \- if all you want to do is print out those 4 lines it is
'             trivial ... sed -n -e '1p;6p;10p;16p'  --psb
         \_ This has to work for a file that is 100000 lines long.  That's
            what I meant by etc.  I would have thought there would be an
            elegent way to basically tell it to print the first line,
            skip the next n lines, print the next line, skip the next n
            lines, etc. -op
            \_ Is n 5, 4, or 6?
2004/11/8-9 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:34742 Activity:low
11/7    Is there a shell command that will unsort (randomize) a file,
        like the way sort does on a line-by-line basis?  I don't need any
        mathematical randomizing, just want to mix up my input lines
        occasionally. tia.
        \_ ~mconst/bin/shuffle
        \_ i have some short code to do this. if the file is "large" [+32k ll]
           it's somewhat tricky to do ... need a good random generator.
           like perl's default doenst have enough seed values. why do
           people ask stuff like this anonymously? --psb
           \- this looks really slow to me:
              /bin/time  ./rand-mconst.pl < /tmp/infile > /dev/null
              real       46.9
              /bin/time ./rand-psb.pl < /tmp/infile > /dev/null
              real        4.3
              \_ What do you expect?  One's an algorithm, one's a one line
                 hack.
        \_ my stupid shell script that works fine for small files:
           #!/bin/sh
           awk 'BEGIN { srand() }{ print rand(),$0 }' $1 \
             |sort|sed 's/^[^ ]* //'
             \-I dont think this is portable to "classic awk" ... but
               gawk is probably good enough. --psb
               \- btw, i just stumbled, er shuffled, on to:
                  perldoc -q shuffle  --psb
2004/11/1 [Computer/SW/Languages/Perl] UID:34491 Activity:kinda low
10/31   I've got a file full of names of mp3 files that I want to delete.
        Problem is that many are contain ', (, ), and other unlikeable
        characters that make it hard to feed to a bash for loop or a
        perl script.  Is there any (perl?) function to autoescape that
        sort of thing?  tia.
        \_ Why not run the file through sed?
        \_ perl -lne unlink filename.txt  --dbushong
2004/10/28-29 [Computer/SW/Languages/Perl] UID:34404 Activity:nil
10/28   Has anyone had trouble building SpamAssassin 3.0.1 on RH 9?  It seems
        to have major problems, and I can't tell if it's SA's fault or
        Redhate's.  perl Makefile.PL yields a Makefile with stray single
        quotes and truncated lines.  google searches yield no help.
        --scotsman
        \_ No idea about that in particular, but can you generate the makefile
           on some other system and copy it in?
        \_ doesnt answer your question (this IS the motd) but it worked out
           of the box for me on Solaris 9 and Gentoo 2004. Instead of using
           the makefile, i ran:
                perl -MCPAN -e'install Mail::SpamAssassin'
2004/10/15-16 [Computer/SW/Languages/Perl] UID:34153 Activity:nil
10/15   In Perl, what does
        $| = 1;
        mean?
        \_ Flush write buffers after every write
        \_ Flush write buffers after every write -scotsman
           \_ why the strange syntax?
              \_ There are many perl switch varibles.  There are also named
                 aliases for almost all of them.  read the perlvar manpage
                 for some mnemonic help -scotsman
              \_ Perl has no other kind. -- ilyas
2004/10/11-13 [Computer/SW/Languages/Perl] UID:34038 Activity:nil
10/11   Perl web programming job at AmBusi. See /csua/pub/jobs/ambusi. -ali
        \_ how much they pay nowadays and how's the job market?
2004/10/7-8 [Computer/SW/Languages/Perl, Computer/SW/OS/Windows] UID:33976 Activity:high
10/7    What is the best free mass-renaming application for windows?  -thanks
        \_ cygwin
        \_ perl
        \_ "ren *foo *bar" in Command Prompt.
           \_ don't do that.
              \_ why not?
                 \_ It would be bad.
                 \_ "Try to imagine all life as you know it stopping
                    instantaneously and every molecule in your body exploding
                    at the speed of light."
                    \_ <gulp> Total protonic reversal.
2004/9/29-30 [Computer/SW/Languages/Perl] UID:33841 Activity:nil
9/29    How do I use perl to delete some registry setting? such as
        HKCR\Something. I want to automatically nuke the entry...
        Thanks...
        \_ From the 1st google result for 'perl registry'
           http://jenda.krynicky.cz/perl/Registry.pm.html
           Load the Win32:Registry module and go from there...
2004/9/24 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:33738 Activity:insanely high
9/24    I have a directory with a bunch of image files names DSCNxxxx.jpg.
        What's the quickest way to rename them all to Dscnxxxx.jpg? (just
        changing the capitalization of the first 4 letters).
        \_ foreach i (*.jpg)
           mv $i `echo $i | sed -e s/DSCN/Dscn/`
           end
           I'm a hardware engineer and even I can come up with something
           \_ You're assuming the OP has csh access to the directory.
              \_ Okay, the why don't you just "dir" the files to a
                 text file, send it to your soda account, write a script
                 to change the names (DOS batch file), and viola.
              \_ ObCygwin
           \_ I'm looking for a one-liner that actually works... this
              gives me "i: Undefined variable.". This is on linux and I do
              have csh access. The perl suggestion below is a good idea but
              it's overkill for what I'm doing right now. -op
              \_ In Perl:
              #!/usr/local/bin/perl
              #
              # Usage: rename perlexpr [files]

              ($regexp = shift @ARGV) || die "Usage:  rename perlexpr [filenames]\n";

              if (!@ARGV) {
                 @ARGV = <STDIN>;
                    chomp(@ARGV);
                    }

                    foreach $_ (@ARGV) {
                       $old_name = $_;
                          eval $regexp;
                             die $@ if $@;
                                rename($old_name, $_) unless $old_name eq $_;
                                }

                                exit(0);

                  Use 's/DSCN/dscn/' for the regex at the commandline or just
                  modify the $regex variable.
        \_ Your OS?
        \_ What you want is a nice perl script that renames it to
           YYYYMMDD_HHMMSS_xxxx.jpg. This is the way to archive images.
           Besides the image, the time is the next most important thing,
           but with Windows and day light saving time and time zone, and
           that sometime you forget to set the camera's clock correctly
           when you travel, relying on file timestamp and exif time is
           really not a good idea. Embed the picture time into the filename
           is a permanent way to record the time of a photo.
        \_ If you are using 4NT, just do "ren DSCN* Dscn*"
        \-ls | awk '{print "mv " $1"   "$1}' | sed 's/  DSC/Dsc//' | sh
           \_ This works in NT Command Prompt.  You don't need 4NT.
        \-ls | awk '{print "mv " $1"   "$1}' | sed 's/  DSCN/Dscn//' | sh
             --psb
           \_ you should just use gsub in your awk.
              \- as i said last time this came up on the motd, anybody
                 asking a question like this isnt going to be familiar
                 with complicated awk or sed, backrefs etc. So it's best to
                 make something easy to modify. i suppose i should have
                 used the nth match for sed. i would personally just do
                 this in emacs. --psb
2004/9/22 [Computer/SW/Languages/Perl, Computer/SW/Languages/Misc] UID:33693 Activity:moderate
9/22    I have a form that posts a heap of text from textarea box to a Perl
        script that puts the info into a flat database file. I'm using
        $in{'mytext'} =~ s/\</&lt;/g;
        to change any html tags to harmless <>s, but how do I replace newlines
        with <br>?  I've tried:
        $in{'mytext'} =~ s/^M/\<br\>/g;
        $in{'mytext'} =~ s/\^M/\<br\>/g;
        $in{'mytext'} =~ s/\n/\<br\>/g;
        and I'm still getting ^Ms in my file.  Help!
        \_ ^M is \r, not \n.  -tom
        \_ Aren't HTML form lines ended with \r\n like Windows?  And doesn't
           Perl::CGI deal with this?
           \_ (responding to myself) yes, it's \r\n (CR LF):
              http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.2
              \_ what would you want Perl::CGI to do with a textarea that
                 contains newlines, other than put the newlines in the
                 variable?  -tom
                 \_ I couldn't remember if the newline was platform-
                    independent, but if it wasn't that CGI would have a
                    plantform-independent method of splitting/replacing/etc.
           \_ This did the trick, thank you.
2004/9/16-17 [Computer/SW/Languages/Web, Computer/SW/Languages/Perl] UID:33560 Activity:low
9/15    Are there any opensource website management systems that will let
        you create a site similar to http://cnn.com ? PHPNuke and Slashcode might
        be able to work but doesn't seem to be quite right.
        \_ PHP: Midgard: http://www.midgard-project.org
           Perl: Mason:  http://www.masonhq.com
           --dbushong
        \_ Sorry, I used the wrong term. I'm not looking for a CMS. I'm
           looking for a tool/app? that let's me create nice frontend templates
           can nicely display entries from either flat files or possibly,
           a CMS. midgard and mason both seem like a good start though. tnx.
2004/9/9-10 [Computer/SW/Languages/OCAML, Computer/SW/Languages/Perl] UID:33448 Activity:high
9/9     Why are there so much politics on the motd? Isn't this the
        CSUA? Doesn't the C stands for something computer??
        \_ Its stands for Computer Stuff and Unrelated Arguing
           \_ Golf clap.
              \_ I didn't know there even was such a thing as a golf ho,
                 and you're telling me they've got their own VD's?
        \_ Yeah, let's talk about computer, or girls!!
        \_ When someone says something stupid, I feel I must succinctly show
           them the error of their ways, or at least show other reasonable
           people.  Oh well, I'll just let stupid people keep thinking that
           way.
        \_ The CSUA as an organization doesn't manage or have anything to do
           with the contents of motd.public. Politics get discussed so often
           because it's one of those things that never ends. You never finish
           the argument. And unlike more esoteric subjects for debate,
           politics is something that anybody and everybody feels qualified to
           participate in. Politics is always in the news. Other things show
           up on motd many times but nothing more than politics. Or Perl.
           \_ Hey, I would talk about programming languages, but not a lot
              of people care.  P.S. Perl is morally wrong. -- ilyas
                               \_ Methinks he doth protest too much.  --dbushong
                                  \_ SILENCE, SINNER!
                               \_ what do you think of ocaml?
                                  \_ Ocaml is a language built around a type
                                     inference system, and I think that's like
                                     the tail wagging the dog.  The bar for
                                     languages is set so low that if people
                                     see something with lambdas that's fast
                                     they get excited.  It shouldn't be that
                                     way. -- ilyas
                                     \_ Have you ever looked over Java?  I've
                                        generally found the structure of the
                                        language really presents itself for
                                        large SE projects.  The string
                                        manipulation elements built directly
                                        into the language are pretty awesome
                                        also -- they really cut down on the
                                        dev cycle, I've found.
        \_ Pontification is preferable to work.
        \_ it wasn't like this from 1980s till the late 90s, when the
           failed jobless laid-off dotcomers got bitter and started to rant.
           \_ Obviously someone who doesn't remember the bitterness of
              joblessness of the early 90s...
2004/9/9 [Computer/SW/Mail, Computer/SW/Languages/Perl] UID:33427 Activity:moderate
9/8     So, I asked this a few years ago, it seems there should have been
        some progress on this front:   A calendar server for linux?
        Would be nice if it could work with outlook clients but not
        mandatory, would be nice if people could update their Cals from
        the web, would be nice if it was free.  I'm looking at calcium
        which seems like http://www.brownbearsw.com has just taken their
        popular but kind of klunky (and not free) ical and ported it to
        perl. [spelld]
        \_ There exist a number of commercial products for Linux including
           probably the ones from IBM, Oracle, and Sun/iPlanet but I don't
           think they work with Lookout.
        \_ Isn't there something from Ximian that apes all the nifty Exchange
           stuff?  Look around, there's quite a few things along these
           lines.  I believe Outlook is also fairly flexible in how it
           synchronizes with various apps.  For a nice web-based groupware,
           look at phprojekt.  I have some others lying around, mail me
           if you want me to dig them out.  -John
2004/9/2-3 [Computer/SW/Languages/Perl] UID:33302 Activity:kinda low
9/2     How do I use a variable expansion in perl regex?  Something like
                $PATTERN = ".*foofoofoo";
                $_ =~ s/$PATTERN//g;
        Basically I'd like a C #define style expansion of $PATTERN.  TIA
        \_ The above should work. You might want to add the "o" flag to
           the s/// operator for efficiency if your $PATTERN doesn't change.
        \_ Also, you don't need to say "$_ =~ "; it's implied.
2004/8/27-29 [Computer/SW/Languages/Perl] UID:33194 Activity:low
8/27    How do I get perl to read in a hex value from a file and store it
        as an int?  I basically want strtol for perl
        \_ int(hex($value)) should give you what you want
        \_ hex($value) should give you what you want
2004/8/17 [Computer/SW/Languages/Perl] UID:32967 Activity:nil
8/17    Is there a Maildir compatible equivalent of frm?
        \_ Third hit on Google for: frm maildir
           Come _on_ people
           http://www.eyrie.org/~eagle/software/mdfrm
2004/8/17-18 [Computer/SW/Languages/Perl] UID:32966 Activity:high
8/17    My sister is looking to learn perl, but she's not really a professional
        programmer.  Can anyone recommend a decent perl book which isn't too
        complicated?  TIA.
        \_ Learning Perl, 3rd Ed
           \_ Seconded. You might be able to get it for free after mir
              from fry's this week.
        \_ Just curious.  What for?
        \_ Not really a professional programmer?  Perl sounds perfect!
           \_ Riiiight.  Whatever, man.
2004/8/13 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:32883 Activity:nil
8/12    I am not a techie but I am trying to learn some perl to do
        some text manipulation for my research.  I am having trouble
        with hashes.  Can someone give me an example of how to read
        in something like the password file (say, user, directory, shell)
        into a hash?
        \_ The question belies a slight misunderstanding of hashes.  A hash
           is a simple set of key value pairs, so reading a password file
           in would require a bit of thought to the structure.  You could
           make the key be uid and the value be a pointer to an array of
           the passwd line, i.e. (username,pw,uid,gid,gcos,hdir,shell).
           You could alternately key on username.  You could make an array
           of hash references where each array member is like
             username => 'root',
             pw => '*',
             uid => 0,
             gid => 0,
           etc.  But using a single 1-dimensional hash on something like
           an entire passwd file would yield you the data from the last
           line in the file.
           \_What would be the right structure to use to read in the
             whole password table and hold it in a structure so I could
             refer to some arbitrary piece of data like "the shell of
             user user1"?  Like if I wanted to merge the encrypted password
             from the shadow file with the login and shell fields from the
             password file?  Thanks for your explanation.
             \_ Now that you could do with a hash, but easier would be to use
                (getpwnam('user1'))[8] to get the shell.  But to do this for
                the whole passwd file (as an example) would be
                  open PW,'/etc/passwd';
                  my %shells;
                  foreach my $pwentry (<PW>) {
                    chomp $pwentry;
                    ($name,$shell) = (split /:/,$pwentry)[0,6];
                    $shells{$name} = $shell;
                  }
                  close PW;
                Oh wait.  I didn't catch the part about shadow password, but
                this should give you an idea of where to start.
2004/8/11 [Computer/SW/Languages/Perl] UID:32831 Activity:high
8/11    Is there any way a shell or perl script can can input from keyboard
        without showing it on the screen, such as for a password?
        \_ man getpass/getpassphrase and write a helper program, or look
           into using a curses library or similar.
        \_ stty -echo
2004/8/6 [Computer/SW/Languages/Perl, Computer/SW/Languages/Misc] UID:32750 Activity:high
8/6     On Linux, how can I find out how much space a directory takes up?
        (Including all it's files and subdirs, etc.)
        \_ du -sk .  -tom
        \_ try windirstat (ok, it's not linux), it's awesome!!
           \_ on Linux we just take such things for granted
              (hint, du -k | sort -rn )
              \_ windirstat is a lot more advanced than du -k. come on, this is
                 no longer the 80s.
        \_ For each file, type ls -l.  Copy that down in notepad.exe.  Then
           write a perl script to take the input you save in notepad.exe,
           put a plus sign "+" inbetween the numbers and pipe it through the
           'bc' command, take the output from 'bc' and print it out, send a
           fax of the photocopy of your printout to your boss's secretary
           asking her to ask him to approve the numbers, and don't forget that
           at each stage you should have the security department double check
           everything so you're not in a state of policy violation.
        \_ ~jameslin/bin/dirstat is a lame awk script I made awhile back to
           calculate this. --jameslin
2004/7/27 [Computer/SW/Languages/Perl] UID:32492 Activity:high
7/26    In Perl, s/.*/foo/g will match twice and produce foofoo but
        s/.+/foo/g only once and produces foo.  Why?
        \_ Maybe because .* means zero or more, so it matches the zero too?
        \_ .* first matches starting from the beginning of the string until
           end, consuming all the characters. Then it tries to match the
           empty string at the end of the string, and succeeds since it will
           match 0 characters. .+ does not match 0 characters, so it does not
           match the empty string at the end.
2004/7/5 [Computer/SW/Languages/Perl] UID:31164 Activity:high
7/4     Is there something like a macro in Perl?  Couldn't find any in
        the Camel book.
        \_ If you truly need macros in Perl, you probably want AUTOLOAD.
           Of course, if you truly need macros, Perl is the wrong language for
           what you are doing.  -- ilyas
        \_ I don't know perl, but don't almost all interpreted languages have
           some kind of eval function?  If so, you don't really need macros;
           you can build up a string and evaluate it.
           \_ There is eval in perl, and yes I know I can use eval, but it
              is highly inefficient as the same code gets recompiled N times.
        \_ Standard motd answer: tell us what you're actually trying to do
           and we'll tell you the right way to do it instead of what you
           think you want to do.
           \_ What I want to do is pretty simple.  Assume Perl had #define
              then what I want to do would be like
                #define myMacro(a) if (flagP) {a} else {foo}
              Basically I want macro as a time saving device, rather than
              than the all powerful macro featured in Lisp.
              \_ Why don't you just run your Perl source files through
                 the c pre-processor?
                 \_ Would cpp conflict with Perl's grammar?
2004/6/29-30 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Perl] UID:31060 Activity:high
6/29    I can't remember a bit of C syntax.  I have funtion foo that
        returns a value that I need to put in a variable.  If that value
        is not Null, I want to take some action.  Will this work?
        int bar = 0;
        if(bar = foo())
          do something;
        \_ Someone should save this for the Classic Trolls Of All Time Hall
           Of Fame.  I wish I had thought of something so simple as asking
           an arcane C syntax question.  --lesser troll than op
           \_ Maybe you should try an obscure Perl question.
        \_ How about:
           if(foo()) {something;}
        \_ foo() can return NULL, so it's returning a pointer.  Therefore
           bar should be a pointer.  Probably it's a char* pointer.  So:
           char* bar = NULL;
           bar = foo();
           if (bar != NULL) { // Do something. }
           , or, if (!bar) { // Do something.} (but I like the previous one)
           \_ The null pointer is just an integer equal to zero.  If the
              declaration of foo is 'void foo()' then 'if(foo())' will fail.
              The NULL pointer evaluates to false.
              \_ op said he wanted to store the value of foo() in a variable,
                 and also wants to check if it is NULL.  (This is common for
                 text-parsing functions.)  Hence the code.
              \_ 1. if the declaration of foo is "void foo()", it can't even
                 return anything, and "if(foo())" won't even compile.  What are
                 you trying to say?
                 2. There is nothing in the C specification that says NULL is
                 necessarily 0.  Its value is implementation dependent,
                 although in almost all implementations it's 0.
              \_ Not exactly.  The preprocessor symbol NULL is guaranteed to
                 be 0, but it's not necessarily an integer type (it may be
                 defined to be (void*) 0).  NULL is not the same as the "null
                 pointer"; the compiler transforms 0 in pointer contexts to
                 the appropriate null pointer, which may not necessarily be
                 all-bits-zero. --jameslin
        \_ The answer is yes.  The syntax is:
           if (bar = foo())
            |    \_ Assign 'bar' to be the return value of foo().
            |
            \_ The value passed to 'if' is the result of the assignment, which
               is the value of 'bar'.  Any non-zero integral value will
               evaluate as true.
        \_ "if (bar = foo())" will work, but the compile will probably try to
           be nice and warn you that you might have mistyped "=" when
           you really wanted "==".  To avoid such a warning, you can do
           "if ((bar = foo()) != NULL)".  With compilers these days, it'll be
           optimized the same way as "if (bar = foo())" anyway if the value of
           NULL is 0.
           \_ And this compiler should be promptly thrown in the trash.  In
              over 10 years of C/C++ development, I've only been bitten by this
              once or twice.  Having to munge my code to avoid spurious
              warnings only helps newbies who should quickly exit the rank of
              newbie anyway.
                 \_ Isn't this based on the assumption that NULL == 0 or
                    some equiv. There is nothing in the standard (AFAIK)
                    that requires this.
                    \_ No.  When a pointer converts to an int, it must convert
                       to 0 if it is NULL, regardless of the actual bit pattern
                       of the pointer.
                        \_ ic. tnx.
              \_ Chill down.  The compiler gives a warning, not an error.
                 \_ Spurious warnings make it difficult to find real problems.
                    Many software shops have a rule of compiling with no
                    warnings and no errors, so warnings are a problem anyway.
                    \_ Having to munge your code for spurious warnings is
                       a bad thing.  However, I challenge your determination
                       that this particular one is spurious.  I would want
                       all my developers to NEVER have an "if (bar = foo())"
                       statement.  That's IMO, anyway.  They can still do
                       it if they want; I wouldn't complain too much if
                       following the rule affected their productivity, what
                       with good people being hard to find.
                       \_ How many more coding guidelines do you want checked
                          in your compiler?  Check it in lint instead.  Why
                          should I have to avoid legal code because *your*
                          software shop doesn't like that?  It's a common
                          idiom, and it takes all of 5 seconds to learn it.
                          \_ I don't think you really read what I wrote.
                             I believe if you got into a meeting with the
                             top 5 coders in your organization, they would
                             agree "if (bar = foo())" is bad form, but they
                             wouldn't bash it over your head, which is what
                             I've been saying.  (Of course you can use whatever
                             you like if you're not working with other
                             programmers.)
                             \_ I did read what you read.  Your complaint is
                                one of style, which is not what a compiler
                                should check--or at least the complier should
                                have a way to turn off all stylistic warnings.
                                \_ I agree with you that the user should be
                                   able to turn off "stylistic warnings".
              \_ You want to throw gcc in the trash?
              \_ I was grateful of compiler warnings when I had a very sloppy
                 programmer working on my team.  Eventually he was let go after
                 one year.
                 \_ Which is the right thing to do with sloppy programmers:
                    teach them or fire them.
2004/6/27 [Computer/SW/Languages/Perl, Computer/SW/Unix] UID:31028 Activity:nil
6/27    Stupid UNIX question: In a shell program, how do I read in
        standard input?  I want the program to take standard input
        and manipulate it in some way and then output the result to
        a file.  Once I have the program written, I know how to invoke
        it, but how do I, within the program, tell it to work with the
        standard input?
        \_ Read from fd 1:
           while read LINE ; do echo $LINE ; done <&1
        \_ If you just want to pass stdin through various external commands,
           it's easy; just run them, and the first one will consume stdin if
           it needs it; e.g.:
               #!/bin/sh
               awk '{print $2}' | sed 's/a/b/g' > file
           will "just work".  If you want to perform actual line by line
           shell script programming, you'll have to do like the previous post
           says.  But really, if you're doing actual custom programming of
           this type (i.e. not lots of external program invocations), you
           almost certainly are better off using perl or <insert favorite
           text munging language here> --dbushong
2004/6/24-26 [Computer/SW/Languages/Perl] UID:31002 Activity:moderate
6/24    I defined a function in Perl
          sub myPrint {
             &print;
          }
        And perl complains that it main::print is undefined.  How do I
        refer to the builtin print?
        \_ print;
           \_ But according to the camel book, &print; should pass the current
              @_ to print while print; does not (I have tried).
              \_ I don't believe that works for builtins
                 \_ Right, and it's deprecated even for functions.  Just
                    say what you mean: print @_;
                    \_ Isn't the whole spirot of PERL that there is > 1 way
                       to code what you want?
2024/11/27 [General] UID:1000 Activity:popular
11/27   
Results 301 - 431 of 431   < 1 2 3 >
Berkeley CSUA MOTD:Computer:SW:Languages:Perl:
.