Slashdot Mirror


User: CoughDropAddict

CoughDropAddict's activity in the archive.

Stories
0
Comments
632
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 632

  1. Name isn't everything on How Important is a Well-Known CS Degree? · · Score: 1
    Here is my experience.

    I graduated in 2004 with a double major in Computer Science and Music from a relatively small private liberal arts college. I can be pretty much guaranteed that potential employers or grad schools have never heard of it. If they have, the CS department definitely doesn't stand out compared to other schools.

    However, I did what I could to distinguish myself. I got internships every summer. I did an independent study and a senior thesis. I co-presented at CodeCon my senior year. I graduated cum laude and got honors in both my majors. I would imagine that I got pretty good recommendations from my professors. Finally, I worked a lot on open source, learning and making connections.

    My senior year I applied to six grad schools: Princeton, University of Washington, UCSC, University of Minnesota, University of Michigan, and University of Oregon. I made it into all but Princeton (inevitable -- not all my application materials got in on time) and University of Washington.

    By the end of my senior year, I decided that grad school wasn't what I wanted right now. After graduation I started working at a company I had interned at the previous summer. Within a few months, one of my friends I met through open source said that he had been contacted by an Amazon.com recruiter and asked if I was interested. I said sure, why not? A few weeks later, I had an interview and a job offer.

    There's no way for me to know for sure what effect my school's name had in these outcomes (grad school and job offer), because I don't have a control group to compare against. However, I would make these observations:
    1. The school you went to, like anything else on your resume, is mostly going to affect whether you get an interview or not (if it affects anything at all). Once you're being phone screened or interviewed on site, the only thing that really matters is their direct impressions of you. The interview process is designed to cut through all the BS of misleading qualifications and figure out what's really left when it's just you and the white board marker.
    2. That said, I have heard remarks from people who do interviews to the effect of "wow, we really get lots of good people from school X." However, that doesn't mean that you will be presumed to be good if you are from school X, or that you have to be from school X to be considered. It's just a noticable trend.
    3. I know everyone says this, but it's so true: connections are everything! It's really surprising to me how many times in my life I have heard either "if you know any good people, send them our way" or "we're looking for good people; are you interested?" I don't quite understand how this can be true when I always hear stories (especially on /.) of smart people being unemployed. The only hypothesis that makes sense to me is:
      1. good people are in demand, but
      2. the cost of weeding through bad people is too high (believe me, I've heard my manager phone screen lots of poorly qualified people, which wastes his time), therefore
      3. by far, the best way for companies to find good people is to get referrals, which gives a much higher success rate than trying to weed through resumes
    Finally, I should mention that I don't tell this story with any hint of entitlement or condescension toward people who have had it rougher than me. I feel very lucky that things have worked out so well for me, and I wish anyone who is facing tough times the very best.
  2. Re:genexps on Python 2.4 Final Released · · Score: 1
    Interesting... that's close to what generators provide. That solution preserves the lexical environment between calls to the generator, but what it doesn't preserve between calls is the control flow.

    Let's say I want to create a generator that reads a stream of numbers, character-by-character, and for each number will yield that many dashes. As a Python generator:
    def dash_generator(int_producer):
    try:
    while 1:
    i = int_producer.next()
    for x in range(i):
    yield "-"
    except:
    # no more ints from int_producer
    return
    Every time you yield a dash in that loop, the current state of the routine is frozen, including how far you are into the "for x in range(i)" iteration.
  3. Re:genexps on Python 2.4 Final Released · · Score: 1
    Ruby iterator blocks can be passed to functions which use yield in an identical fashion to pass control over to them with any desired parameters.

    It's not an identical fashion.

    Yes, you can yield to a block, passing it values. All you've really done is make a function call to an anonymous function.

    What you can't do is pull the values the function yields, one by one.

    Let's define a simple fibonacci generator:
    def fib_generator():
    a, b = 0, 1
    while 1:
    a, b = b, a+b
    yield a
    It's true that you could create a similar type of thing in ruby:
    def fib_generator
    a, b = 0, 1
    while true
    a, b = b, a+b
    yield a
    end
    end
    However, there's a big difference in how you can use them. Let's say we want to print the next fibonacci number to the screen every time the user presses the "n" key. In Python, we could do something like this in the main loop:
    if ch == "n":
    print generator.next()
    However, with Ruby we can't do this. The best we can do is:
    fib_generator { |n| puts n }
    But this is unacceptable, because we only want to get the next fibonacci number in certain circumstances. Yielding to Ruby blocks is only appropriate when you know you want to fetch every value the function will yield in one fell swoop. All the code that is part of this iteration has to be in one anonymous function! Imagine my lexer example using Ruby blocks:
    lexer(input_stream) { |token| the_whole_freaking_compiler(token) }
    Do you really want to have to write a compiler function that gets called once for every token? That has to save all of its state between subsequent calls? That has to awkwardly communicate the results of the compilation by either returning it through the lexer function, or otherwise through side effect?

    Generators/coroutines really are cool, and something that I really wish Ruby had (and this is coming from a huge Ruby fan).
  4. Re:genexps on Python 2.4 Final Released · · Score: 3, Insightful
    Oops, I realized that probably the best way to do this in ruby is to use inject:
    print objGenerator.inject(0) { |sum, value| sum + value }
    No intermediate list, and you don't have to rely on having a function like "sum" defined -- it could be any operation.

    You could also add this to the "Enumerable" mixin:
    module Enumerable
    def sum
    return inject(0) { |sum, value| sum + value }
    end
    end
    Now you can call "sum" on any object that implements "Enumerable", and the example becomes:
    print objGenerator.sum
  5. Re:genexps on Python 2.4 Final Released · · Score: 4, Insightful
    At a language level, it's true that generators don't have anything to do with lambda or code blocks. But when you consider what these features are used for, there is some overlap.

    Consider the example you gave:
    print sum(obj.count for obj in list_all_objects())
    In Ruby, you can accomplish the same thing by writing:
    print (objGenerator.map { |obj| obj.count } ).sum
    where "objGenerator" is an object that mixes in the "Enumerable" module. An even better way (that really avoids building an intermediate list, even of integers) is:
    a = 0
    objGenerator.each { |obj| a += obj.count }
    print a
    There is one thing that generators give you that blocks can't, that is very, very cool. With a generator, you can create programs with a pipeline architecture, where different steps of the pipeline all can be written as if they have the main loop.

    Imagine you are writing a compiler. You could write (be easy on my syntax, I haven't written Python in a while)
    def lexer(input):
    state = STATE_BEGIN
    ch = input.read(1)
    if state == STATE_BEGIN:
    if ch == '(':
    yield TOKEN_LEFT_PAREN
    (...)

    def parser(lexer)
    token = lexer.get()
    if token == TOKEN_LEFT_PAREN:
    yield parse_expr(lexer)
    # gobble TOKEN_LEFT_PAREN
    lexer.get()
    (...)
    The beauty is that both your lexer and your parser can be written as if they have the main loop, and all they have to do is yield a token/expression when they find one. In reality, it's pipelined and you get the efficiency of not having to build up the entire list of tokens before you start parsing.
  6. Re:In Korea, on Things To Do Before You Die · · Score: -1

    Don't you think it's a bit premature to refer to a relatively minor joke that has only existed for 24 hours as part of "Slashdot subculture?"

  7. Private "keys" as real keys on E-commerce Single Sign-On Not Dead Yet · · Score: 2, Insightful

    IMO, the solution is to make private keys a real physical thing: similar in form factor to a USB key drive. It would store the private key, and have a small CPU that could encrypt/decrypt small messages using that private key. It would not be capable of transmitting the private key itself.

    The masses will never go for private keys that live on hard drives, and a good thing too because they would get compromised all the time! But ordinary people could understand the idea that they need to put a key in their computer to buy stuff online, the way they put a key in their car to turn it on.

  8. Getting people to read important messages on What Do People in the IT Field Do for Side Jobs? · · Score: 4, Funny
    When I was in college I was an administrator in the "Advanced Computing Lab" -- basically a lab that had slightly beefier machines and bigger monitors than other labs. It was intended for math and science students, but to many non-math/science people it was a place they were more likely to find a free computer than the busy general-purpose labs.

    One year they clamped down and started only letting math/science people log in. I was sitting in the lab working one day, shortly after this policy was instituted. To give people fair warning, I wrote the following message on the white board:

    PLEASE READ (<-- in HUGE letters)
    There is a new policy in place where only people
    on the ACLUsers list can login in this lab. You
    are on this list if you are enrolled in a math or
    science class in this building.


    You could not possibly miss this sign. And yet, over the course of the few hours I was there, I saw countless people exhibit the following behavior:
    1. walk in the door
    2. glance momentarily at the sign (long enough to read "PLEASE READ", but no more)
    3. sit down at a computer
    4. try to log in
    5. look puzzled
    6. try a few more times
    7. try a different computer
    8. come over and ask me "is there something wrong with the computers in this lab?"
    It was maddening! I wanted to smack them!

    It's tempting to conclude from this story (as I did at the time) that most people are just ignorant and lazy. I think that the more useful lesson is: you'll never get people to pay attention to something by asking them to. Writing "PLEASE READ" is a futile effort. You have to make them WANT to read the sign; people read things because they WANT to, not because they SHOULD.

    A much better strategy would have been to change the heading from "PLEASE READ" to "CAN'T LOG IN?"
  9. Re:IMAP? on Gmail Adds POP3 To Email Accounts · · Score: 1

    I would love to use IMAP to upload several hundred MB of old mail, so that ALL my mail is available to be searched. Mark Lyon's GMail Loader can do this by sending all your mail to your gmail account via SMTP, but everything is marked as unread, and the date in the browse view is the day you imported, not the day the mail was sent.

  10. Re:I am the parent poster and I agree on Ekush: A CherryOS For the Windows World? · · Score: 1

    Wow, you must be better at interpreting the GPL than the FSF's own lawyers!

    For those too lazy to follow the link: the interpretation of the FSF (you know, the people who wrote the license) is that "valid for any third party" means "anyone who has the offer can take you up on it."

  11. Re:This is the height of pathetic victim mentality on The Universal Off Button · · Score: 1

    FWIW, I posed that very position to a philosophy professor in college, and he said that Philosophy makes no such distinction between those terms.

  12. Re:Price Matching now? on Apple Announces New iBooks · · Score: 1

    You should always check the Mac buyers guide before buying a Mac, if you don't want the product cycle to get the best of you. In the iBook section, you would have seen that it was almost certain a new iBook would be released soon.

  13. Re:I gotta say ... on An Alternative to SQL? · · Score: 1

    So basically you are suggesting that C programs would be improved if...

    a[b[i]]

    were forced to be written as:

    *(a + *(b + i))

    because the latter might help people remember that arrays and strings in C are not bounds checked? That's going to help avoid dangerous calls to strcpy()? That's going to prevent dangling pointers and double-frees?

    C is not designed for people who need hints to remind them not to do dangerous things.

  14. Re:I gotta say ... on An Alternative to SQL? · · Score: 1

    It's not really accurate to say that C doesn't have strings or arrays. Just because they don't do what you want them to (namely bounds checking) doesn't mean they don't exist.

    Furthermore, the fact that arrays, pointers, and strings are not bounds checked is not a "flaw," it's a design decision. C is a language that interjects very little between a program and the assembly language that program is compiled into. C doesn't do bounds checking? That's because no such thing exists in hardware. Repeat for garbage collection, preventing buffer overflows, and probably most of the other things you see lacking in C. Citing these as evidence that C is poorly designed is nonsense.

    Is C more dangerous than the other languages you mention? Of course it is. But if it weren't for the existence of C and its design choice of being a "portable assembler," what would take its place as the tool that at least half the languages you mention are implemented in, with good portability and performance?

    So, right back at you: what's your point?

  15. Re:Slack or Suck! on Slack LCD TV Market Means Cheaper Phones And Monitors · · Score: 1
    19" LCD monitor $1000
    20" LCD TV $1600
    The look of the faces of the tards that don't know there is NO difference...PRICELESS!


    No difference except
    1. Speakers
    2. A Remote
    3. A Tuner
    4. More inputs (component, s-video, coax)
  16. Re:Not surprising on Slack LCD TV Market Means Cheaper Phones And Monitors · · Score: 1

    Those 5 moves in 7 years were all in the SF Bay Area, and never once did I think "Man, I need to get a smaller footprint monitor, so I can save on rent!"

    It's not about saving on rent, it's about having space left on your desk after you put the monitor on it.

    LCD is significantly below the quality of plasma as far as TVs go. LCD TVs are for the "Want Champagne, but can only afford Coors" crowd...

    When was the last time you looked at LCD TVs? I've been looking at TVs lately, and IMO the Sharp 26" LCD TV was one of the the best-looking things in the store.

  17. Re:For $1,299... on LG Flatron 2320A 23" LCD Media Station Reviewed · · Score: 1

    The Apple displays don't have composite, s-video, tuners, or speakers, making them useless as TVs. I'm in exactly this predicament right now: I want to get a big display that can double as a big monitor and a TV. The problem is that the LCD monitors don't have TV inputs, tuners, speakers, or remotes. The LCD TVs are too low in resolution and not as good at handing lots of different computer resolutions.

    The new Dell W2600 seems to be narrowing this gap, but it is stupidly low resolution (1280x768) for a 26" TV.

  18. Still no system address book support on OS X on Batch-o-Moz: Firefox, Thunderbird, Suite Released · · Score: 1

    Unfortunately, Thunderbird is useless to me on OS X until it can use the system address book.

    I can't find it at the moment, but there is a long-standing bug about this issue with lots of votes. What it comes down to is that Thunderbird has an address querying interface that is used for LDAP, and the OS X address book is queryable, but no one has connected the dots yet. :(

  19. Re:More than Just P=NP on The End of Encryption? · · Score: 2, Informative
    Oof! Undecidable is not the same thing as not computable. Undecidable, to simplify, means that a statement has no truth value in a system of axioms, i.e. its positive or negative could be added as an axiom and the system would still be consistent.

    Wikipedia (see here and here) and my Theory of Computation textbook disagree with you.

    From Theory of Computing -- a Gentle Introduction:
    We will use the term decidable language as a synonym for Turing computable language.
  20. Re:I am positive... on The Python Paradox, by Paul Graham · · Score: 1

    Lisp is for windbags who are more concerned with creating new words than actually saying anything.

    Python is for pragmatists who would rather use a reasonable set of predefined syntax and language constructs than recreate the Tower of Babel in the name of elegance.

  21. Re:What I'd need on What Will It Take For eBook Adoption? · · Score: 1

    You're calling "idiotic ranting" that which you clearly didn't even understand.

    Grandparent says: I demand either

    A. non-transferrable rights, entitling me to re-obtain the material I have licensed, or

    B. ownership of what I have purchased, including the right to re-sell without interference from the original seller. (this is the "first sale" doctrine).

    Why is he demanding A of electronic publishers? Because they deny him B.

    Who is the idiotic ranter? I'll leave that one to your confused self.

    (damn it's fun to be snarky to condescending bastards who are demonstrably wrong)

  22. Re:This is odd on Sal Wise, Philly eBay Scammer Strikes Back! · · Score: 1

    Did you READ the site in question?

    "These pics look better then the one on the news dont you think?"

    The news apparently showed some unflattering pictures, and he's trying to gain sympathy by circulating pictures of himself with kids. And it seems to work, even on Slashdotters.

  23. Re:Deja-vu on Microsoft Plans News Aggregator · · Score: 1

    There's a pretty big difference between a site with human submitters and editors and one that uses data mining to automatically aggregate the top stories from hundreds of different news outlets.

    It's like trying to compare the "links" page on Joe Blow's homepage to Google's search engine.

  24. Re:My Only Question on Gentoo for Mac OS X Released · · Score: 1

    I don't remember how I did it, but I had little problems getting X11 fink applications to work (including GNUCash). Remember that there is no need to install a X server, either binary or source, because OS X comes with an X server. All you have to do is point X apps to the X libraries, which wasn't much of a pain in my memory.

  25. Singing regulated on RIAA Sends Letter to Senate Supporting INDUCE Act · · Score: 4, Informative