Slashdot Mirror


User: KeithIrwin

KeithIrwin's activity in the archive.

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

Comments · 271

  1. A functional language or programming tools on Programming Language Specialization Dilemma · · Score: 1

    Most companies understand the level of experience someone coming right out of college has. You don't need to be an expert as long as you're willing and able to learn. Being a good programmer is far more helpful than being an expert in any particular language (presuming you can get past the HR-department to a technical interview. College job fairs can be really helpful for this).

    If you want to be a better programmer, learn to program in a functional language like Lisp, Scheme, Ocaml, Eiffel or F#. It'll be tough since you're used to imperative languages, but in the end, it'll warp your mind in a good way.

    If you're not willing to do that and just want to feel up-to-speed and ready to work, the best thing to do would be to learn your programming tools. Get familiar with a source control package such as Subversion or Visual Source Safe and an IDE like Eclipse, NetBeans, or Visual Studio. These are fundamental tools which almost every programmer uses almost every day, but which are seldom covered by universities (don't ask me why).

  2. Re:Amazing on Are Quirky Developers Brilliant Or Dangerous? · · Score: 1

    "Josh" is the kind of guy that develops Googles, Yahoo, etc.

    Umm, no. Unlike the parent, I actually know some of the people who have done big things. Not to name-drop, but I know Joshua Schachter (del.icio.us) and Bram Cohen (BitTorrent). They're nice, friendly, personable people. They have good personal hygiene. They document their code.

    People with poor habits (be they coding habits, hygiene habits, interpersonal relationship habits) rarely get amazing things done no matter how smart they are. So, no, the "Josh" from the story isn't the sort of person who would create the next Yahoo or Google.

  3. BitTorrent is not a Network on Researchers Warn of Possible BitTorrent Meltdown · · Score: 5, Informative

    There is no such thing as "the BitTorrent network". That's like talking about "the HTTP network". It's a distributed download protocol. It doesn't do search and different trackers and torrents are not interconnected in any way. Thus, it is not a network. The ability to use BitTorrent will not be harmed in any way by any one site going down.

    Remember when everyone used suprnova and then it went away? The world of BitTorrent will be fine.

  4. Re:NO on A Teacher Asking Students To Destroy Notes? · · Score: 2, Interesting

    Most schools and universities have policies which say that teachers must disclose their grading criteria to students explicitly at the beginning of the course. If turning all notes over to the teacher was not mentioned in that grading criteria and she grades the student down for not doing it, then the student would certainly win a grade appeal and it would be a black mark on the teacher. If it was included in the grading criteria at the beginning of the course, the student should disputed it earlier.

  5. Re:Sold on Most Hackable Coupon-Eligible DTV Converter? · · Score: 1

    The Selective Output Control is specifically only an issue with cable and satellite, not over-the-air. The broadcast flag basically was SOC for over-the-air and that's what was specifically struck down. Most cable and satellite companies have an SOC mechanism in place, but have not been exercising it because the FCC has not given them approval to do so. The ATSC over-the-air television standard does not have an SOC mechanism, and at this point the standard will not be changed to add one.

  6. Re:The Basics. on Best Paradigm For a First Programming Course? · · Score: 2, Insightful

    I cut my teeth on BASIC as well, but really, it's a pretty terrible language for a beginner. The syntax is decent, in theory, but in practice, it's most of the older BASICs had weird little picky things involving spacing and stuff like that. And when you do mess up the syntax, you would only get "SYNTAX ERROR" without any explanation of what was wrong or how to fix it.

    Variables don't have to be declared before use, so small typos in variable names cripple programs rather than resulting in compiler errors. This makes it much tougher for new users to debug their own programs.

    The syntax also doesn't allow you to separate your code into blocks, so things like IF statements are a pain since they require using a GOTO if you want to do more than one statement. This makes the code harder to read and understand. Spaghetti code is a necessity in most BASICs.

    Beyond that, being able to build functions or procedures or subroutines or some form of reusable code is fundamental to teaching intro programming. The GOSUB command exists in BASIC, but it doesn't make sense in any simple way. If you understand already what a subroutine is, then GOSUB makes sense, but otherwise, it's just confusing. Named function/procedure calls are much cleaner and easier for starting students to understand.

    Obviously these issues could be solved by using a more modern BASIC, but then you lose most of the easier syntax because they've complicated it in order to add the new language features.

    For starting students, I think what you really want is a language where they don't have to worry about syntax at all, where they can just get used to putting programs together. Languages like Scratch or Alice I think are very nice first languages for students to learn. Unfortunately, Scratch lacks procedures and it's difficult to build completely new projects in Alice because you have to understand things like where to place the lights and the camera in a 3-d world.

    Alternately, a language like Logo which has fairly light-weight, but consistent syntax is also useful.

    Right now, I'm working on modifying Scratch to meet my needs for teaching introductory programming. Specifically, I'm seeking to add user-defined functions/procedures and to be able to make projects for students to complete where they have a goal to accomplish and have a limited set of statements available to complete it.

    In teaching Intro to Computer Science using Logo, I've found that a few students will want to just use Forward, Left, Right, Pen Up, and Pen Down to accomplish everything, even situations where they really should be using Repeat statements or building procedures. I want to add in a mechanism such that they'll need to use those tools to solve the problem. So if their task is to draw a square and they only have two "Forward" statements and two "Right" statements available, but they have a "Repeat" which they can use, then they'll learn to use the Repeat by necessity.

    Plus, by limiting the search space, they're more likely to be able to find an answer by trial-and-error at first. In the long run, you don't want people programming by trial-and-error, but that's how most all of us learned to begin with.

  7. Re:Computer engineering vs computer science on Twenty Years of Dijkstra's Cruelty · · Score: 1

    Do you live in some weird alternate reality where "computer engineering" means something other than "the study of the design of computer hardware"?

  8. Getting ahead of yourself on Computer For a Child? · · Score: 5, Insightful

    I think you're getting ahead of yourself. Two-year-olds are not old enough to understand how to treat things gently. I don't think it's possible to make a laptop that can stand up to a two-year-old unless you encased the whole thing (including the keyboard) in about a two-inch thick layer of plastic. Two-year-olds throw terrible tantrums. They're known for it. They'll often smash things up when they're angry. When my step daughter was two and upset, she ripped every page out of Blueberries For Sal. They don't understand the consequences of their actions. Whether or not he's curious about computers, age two is too soon. Wait, at least, until he gets to an age where he doesn't throw tantrums (which will probably be a little before age three if you don't make a practice of giving in when he throws tantrums and will probably be about age fifteen otherwise).

    At three, he'd at least be less likely to break it quickly. Personally, I'd probably wait until age four or so since he's more likely to have the needed cognitive skills to do things like recognize symbols at that age. But regardless of whether you wait until age three or age four, "almost two" is significantly too early for a computer.

  9. Not a DMCA takedown notice on Apple DMCAs iPodHash Project · · Score: 5, Insightful

    Interestingly enough, that's not a DMCA takedown notice. It's just a threat dressed up to look like a takedown notice. You can tell because it doesn't allege copyright infringement.

    Notice, for instance, that the "DMCA Certification" part at the bottom says "I hereby state, under penalty of perjury, that I have a good faith belief that the activities identified above are not authorized by Apple, that the information in this notification is accurate, and that I am authorized to act on behalf of Apple in this regard."

    What it doesn't say is that the works in question are owned by Apple or anything else which in anyway makes a copyright claim.

    What it does allege is that they're violating the anti-circumvention provision of the DMCA. There is no takedown procedure for violating the anti-circumvention provision because there is no safe-harbor. If you create an circumventing device, you have violated the DMCA and you can't escape liability by following takedown notices.

    The further reason that it isn't a DMCA takedown notice is that what they ask to remove is not something that the receivers have a legal obligation to take down. Information about the workings of Apple's cryptographic schemes, whether or not they comprise an means which effectively controls access to a work, are not unto itself a device which circumvents their schemes, and, as such, is not in violation of the DMCA.

    Although Mr. Ramage writes "The DMCA explicitly prohibits the dissemination of information that can be used to circumvent such technology." that's very simply not true. The DMCA outlaws the creation of circumventing devices, but it does not outlaw exchanging information about how to create one. This, along with the research exception, is why DRM and other security research can still happen and has only rarely been hindered by the DMCA, and even then only by the specter of lawsuits.

    Beyond that, Apple's hash scheme quite certainly doesn't apply for DMCA protection for one simple reason: it isn't a scheme which, under the definitions of the DMCA, "effectively protects a copyrighted work." There are two distinct reasons why it doesn't qualify. First, it doesn't protect copyrighted files. It only protects the database which is not copyrighted and not eligible for copyright since it is not a creative work. Second, the hash protects it against modification, not reading. As such, it does not "effectively protect a copyrighted work" because the legal definition refers only to protecting something from being read in an unauthorized manner, not from being written.

    So, this might have been a valid takedown notice if:
    1) The hash in question were an effective measure under the legal definition
    2) It were protecting copyrighted information
    3) The DMCA outlawed the dissemination of information which could lead to creating circumvention devices
    4) There were a safe-harbor provision allowing service providers to avoid liability

    Except that the actions so far also all fall under the interoperability exception. Given that their only goal is to allow other programs to work with the iPod, this falls very, very squarely under interoperability exception.

    So, there would also have to be a fifth condition;
    5) There were no interoperability exception.
    As it stands, this notice has no legal standing, and if it were sent to me, I would ignore it. Hopefully the lawyers with whom this project consults will come to the same conclusion.

    Now, what Apple could do instead would be to assert copyright over the disassembled/decompiled versions of the source code which appeared on the web page. I would argue that that approach would also be legally invalid, but at least it wouldn't be so obviously so. It could at least lead to some fairly subtle legal arguments.

    This notice, on the other hand, is just factually and legally incorrect.

  10. Not the same joke on Dead Parrot Sketch Is 1,600 Years Old · · Score: 5, Insightful

    Umm, those aren't the same joke at all. Just because they both involve selling and dying doesn't mean that they're the same joke. The premise of the older joke is that the man who sold the slave is saying something in a surprised manner which is obviously true. The contrast is between his surprise and the understanding of the audience for the joke that he shouldn't be surprised (since obviously the slave hadn't died before he sold it).

    The joke in the Monty Python sketch is that the parrot was dead when it was sold. The humor comes from the absurdness of the idea that someone could be sold a dead parrot without realizing it. The joke is furthered by the sales clerk's obviously futile attempts to claim that the parrot isn't dead and the colorful language used to attempt to convince the clerk that the parrot is dead. This is not at all the same joke. The premise is completely different, as is the type of humor involved. The Greek one is ironic humor. The Monty Python one is absurdist humor.

  11. What's the advantage? on Researchers Build Logic Gates With RNA · · Score: 1

    We already have DNA-based computing. Google "bacteria computer" or "bacterial computer". These are based on building DNA sequences which get up-regulated or down-regulated in the presence of certain chemicals. By joining these sequences together with sequences which produce the chemicals, they form logic gates. Researchers have been doing this for several years.

    So what's the advantage of using RNA to build circuits? The article doesn't seem to explain what the point of this is, how it would be applied, or how it's different from DNA-based cellular computing.

  12. They're threatening cybers? on FBI Warns of Sweeping Global Threat To US Cybersecurity · · Score: 4, Funny

    Threats against cybers? Uh-oh. I've been cybering all morning. Heck, I even did cam to cam once. No global sweepers have threatened me yet, but now I'm scared. I hope they don't hurt me.

  13. Re:Task based learning on How Should I Teach a Basic Programming Course? · · Score: 1

    This needing to learn debugging is actually why I would recommend teaching introductory programming in Logo or another similar more visual language rather than Java. The problem is that the "easy" programs in Java all have their logic hidden. It's all take something in, process it, output the results. And when the second step goes wrong, it's difficult to see why it went wrong.

    If you use a more visual language, where you can see the program running, then debugging is much easier. And once they get used to the process of debugging, then you can move to a language where debugging is more difficult.

  14. Re:You need to narrow the scope on How Should I Teach a Basic Programming Course? · · Score: 1

    Basic computer skills these days generally include knowing how to use Word and Excel. People who know how to use them will eventually use them to write macros. It's not actually a terrible idea to teach them a little bit about how to do that. It'll help improve the quality of what they produce.

    Curriculum should sometimes be based on what students need to know, rather than what they want to know.

  15. Re:Hmmmm on Complaints Pour In After Digital TV Test · · Score: 1

    8-track tape production was ceased by the major record companies in 1982, actually. And it really did piss a bunch of people off since at the time it had a pretty substantial market share. But they had all decided that cassette tapes were the wave of the future, so that was that.

  16. Re:From TFA on Nielsen Sends Wikipedia DMCA Takedown For Station Descriptions · · Score: 1

    You can't actually get a copyright on something like that. They can only get a copyright on their expression of facts, not the facts themselves, even if they invent those facts. A system of classification is not something which can be copyrighted, only the expression of that system of classification. If this ever goes to court, Nielsen will lose.

  17. Re:Perspective on Comcast To Cap Data Transfers At 250 GB In October · · Score: 1

    It's just a little odd in that they're selling you a peak rate of 7Mb/s, but an average rate of ~768kb/s. That's a 10:1 discrepancy. Funny that they don't like to mention that average rate in their advertising.

  18. Re:It's THEIR network. on AT&T Could Cut Off P2P Users · · Score: 3, Interesting

    Well, it's their network, but it's using radio frequencies which are leased from the public. They're part of a small group of carriers which have exclusive rights to certain blocks of frequencies. The limitations of the available bandwidth stop this from being a freely competitive market. As such, it is reasonable to discuss whether or not their policies are appropriate. If we collectively feel that their policies are inappropriate, then we should change the terms of the spectrum lease when it comes up for renewal to limit what they are allowed to do or require them to do certain things.

    Essentially, they're our tenants and if they aren't using our property in a way we find acceptable, we should change the lease. Now, while the current lease is in effect, it's their decision how to use the bandwidth within the bounds of the current lease. But it's perfectly reasonable for us to discuss whether or not we like what they're doing. Bandwidth leases are not given out blindly. They frequently have conditions attached to them which are meant to promote the general good. There's certainly nothing wrong with discussing a requirement that bandwidth used to provide internet service be free from user policies which restrict which applications can be used on that service.

  19. Re:Because they are cheap on Why Do We Have To Restart Routers? · · Score: 1

    I would like to pick stable and cheap, where do I find a router which is both of those? I can live with no fast, since my internet connection is only like 5Mpbs tops and connecting to the internet is the main thing I use it for.

  20. Re:Don't believe Time Warner commercials on Dial-Up Users "Don't Want Broadband" · · Score: 1

    Well, actually for quite a while there were special attacks which only worked on dial-up computers. They usually worked like this:
    1) infect their computer with malware
    2) have the malware change their ISP settings so that it would dial a number for some Caribbean island nation (which share the 1-XXX-YYY-ZZZZ number formatting of the US and Canada, thus meaning that it didn't require any special operators or anything else weird)
    3) the "ISP" in that nation would charge like $5/minute for the connection which would show up on the telephone bill thanks to the island nation's telecom company being terribly corruptible.
    4) the person who put the malware on the machine would get a kick-back

    This sort of attack doesn't work once POTS is out of the loop.

  21. The message from ICQ tells me to upgrade Pidgin on ICQ Starts Blocking Alternative Clients · · Score: 1


    I'm using Adium (haven't upgraded yet) and the message I get is this:
    "The client version you are using is too old. Please upgrade at http://pidgin.im"

    So I don't think that it's really a matter of freezing out alternative clients. If it were, it would tell me to go get the new official AIM client, not Pidgin. Instead, I think they're just trying to force an upgrade beyond some specific version of libpurple. It could be about security issues, but I haven't really researched it.

  22. Re:It *is* unethical to steal wi-fi on Confessions of a Wi-Fi Thief · · Score: 1

    Of course I wouldn't want to take responsibility for things that other people do using my open access point. As such, I don't take responsibility for it. I'm not sure why you think I would. Just because I open my access point doesn't mean that I'm responsible for what other people do with it. Providing someone a tool which can be used for many purposes doesn't mean that I'm responsible if they use it to commit a crime. If I lent my neighbor my shovel, and he used it to kill his wife, it's not my responsibility (you know, unless I could reasonably foresee the events. If he came to me and said "I need something to kill my wife with." and I said "Here, have my shovel", then obviously it would be my responsibility.)

    The whole "you're responsible for any traffic which comes down your connection" is just something which ISPs say to try to get you to be careful. It doesn't mean that you're legally responsible for crimes which other people commit. And if the cops show up or the RIAA files suit, the proper response is "It wasn't me. I run an open access point. I don't keep logs. It could have been anyone, but you might want to check people who live nearby first."

  23. Re:Not a thief on Confessions of a Wi-Fi Thief · · Score: 1

    Amongst the problems with this analogy is that the door didn't actually tell you to come in. If you turned the handle on a door and a sign popped up which said "Please come in", then, yes, you would be fully within your rights to come in. Although that wouldn't entitle you to steal stuff, but it would be perfectly reasonable for you to use the person's stuff while you were there.

  24. Re:Not a thief on Confessions of a Wi-Fi Thief · · Score: 1

    Look now, if you follow that logic, next you'll tell me that you aren't using your web browser to steal Slashdot just because the server gives it to you when you request it.

  25. Re:Ooooh on Apple Releases Mac OS X Leopard Security Guide · · Score: 2, Informative

    If FTP links are activated in the Finder then they become part of the file system. As such, they are treated like local files. Certain exploits in the past have allowed remote users to cause local programs to be executed. By combining these two things, they could successfully run arbitrary code on your computer by getting you to load the FTP link and then using an exploit to run a program accessed via that FTP link.

    If you change things so that FTP links are not given to the Finder, then the remote files will not be part of the file system unless you specifically choose to download them, thus preventing the second step of the attack from running the remote programs.

    Although I don't currently know of any exploits which can cause local code execution, there are likely to be other ones found in the future. A typical remote exploit requires that the attacker in some manner gets a program to treat the data they give it as code and run it. However, an exploit which only seeks to run a program off of your file system would not have to do this. In such an exploit, an attacker could potentially just overwrite one piece of data with another (for example, overflowing a buffer in order to overwrite the name of a program that was going to be launched). As such, these sort of exploits are tougher to prevent since many of the hardware and OS-level techniques do not address them.

    This type of exploit can also sometimes just result from immediate bugs in programs. For instance, let's say that there's a 3-D modeling program. The 3-D modeling program hooks in to an open source renderer which has been ported from Linux and runs on the command line. For certain types of files, which are not common, a special routine is used to invoke the renderer. Unfortunately, this routine has not been well tested, and it accidentally mixes up the order of the command it is going to run and the arguments to the command. Because the circumstances don't happen much, the programmer doesn't catch it, but the attacker notices it and uses this to build a web page to trap people. The web page offers a free download of a 3-D model for the program. It also launches an FTP URL.

    The user goes to the web page, it launches the FTP URL, which gets mounted on the desktop. The user either doesn't notice this or doesn't worry about it. Then they open the file, play with it, and tell the program to render it. The file is crafted to trigger that special case and to have the arguments be the location of a malicious application from the FTP site (accessed through the file system). And there you go, they now can run an arbitrary program on the user's system.

    This example is hypothetical, but realistic. It could also be done as an email worm. Having things set up so that FTP links do not mount on your file system will prevent this sort of attack.