Slashdot Mirror


User: SanityInAnarchy

SanityInAnarchy's activity in the archive.

Stories
0
Comments
12,413
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 12,413

  1. They don't. on Important Court Decisions Chip Away At ISP Liability Shield · · Score: 1

    How can they hide behind a shield of common carrier...

    I cannot find evidence of any ISPs being recognized as common carriers. There might be a few, but it's the exception, not the rule.

    It would be nice, however, if ISPs strove for common carrier status.

  2. Semantics... on Richard Dawkins to Appear on Doctor Who · · Score: 1

    Agnosticism, in effect, says I have no evidence for the truth of [insert religion here], therefore I do not know whether [said religion] is true or untrue. Atheism simply takes that one step further: And, since I have no basis for believing [religion] is true, I shall therefore presume, pending further evidence, that it is probably false.

    You see, I consider "probably false" to be a form of Agnosticism.

    There's one step further in the original definition, if I remember -- the assertion that not only do we not know if God exists, but that the question is unknowable. See:

    On the other hand, if we started seeing molted unicorn horns inexplicably littering the streets, and if clumsy baby unicorns began bumping into pedestrians left and right, then the hypothetical unicorn-atheist would reconsider his position based on this evidence.

    That is testable, at least in so much as you can gather evidence for this unicorn. It could actually be anything, but ultimately, by the time you've caught the unicorn on infrared, or whatever works to capture an image of it, you've pretty much proven its existence.

    Not so with God. Most definitions of God are logically inconsistent (the three Omnis), and many more are not only unprovable, but impossible to prove. No amount of fire and brimstone can prove to me that I am dealing with the actual creator of the Universe, and not merely a technologically advanced impostor. Even real magic would prove nothing -- perhaps he's simply a talanted magician, but ultimately human. The fact is, God simply has too many claims which are untestable, and which we cannot logically derive from any other evidence. How would you prove that such a God is benevolent? How would you prove that he truly knows everything, or is capable of doing anything, and is not simply very knowledgeable and very powerful?

    It also means, by the way, that God is not even a valid hypothesis, and thus has no place in science, even long enough to accept or reject the idea.

    Now, can we please get over this? It's a semantic argument, at this point -- I would call you an agnostic, and you would call me an atheist.

  3. Re:I'm sure this guy has done just fine on Imperial Storm Troopers Skirmish in Latest IP Battle · · Score: 1
    and when he sold the design to Lucas, it stopped being his, end-of-story.

    <p>I don't see any mention of him selling the design.</p>
    <p>That's the essential question, then: Did he sell the design, or did he just make the costumes to order, without a contract? If the former, Lucas owns them. If the latter, he owns them, though I doubt very much he should really sue Lucas for anything.</p>
  4. Re:The death of security? on UK Banking Law Blames Customers For Insecure OS · · Score: 1

    but what if the neighbor kid is friendly with you? and one time while he's there when you go to the toilet, they install a physical key logger on your system?

    Social engineering is pretty irrelevant, as it works (or fails) regardless of whatever security measures are on the machine. (Oh, and I carry my keyboard around with me, so that wouldn't work very well.)

    the basic point is you can have the best security practices in the world, AND STILL GET compromised, because your 'openbsd' guys let a big remote vulnerability get through and they found out about it a month after black hats did.

    Which is irrelevant to the question of whether you should run antivirus. I would suggest that by the time we're worrying about physical keyloggers, darkening our windows, tempest attacks, and so on, any antivirus or antispyware is going to do exactly nothing for your security, one way or the other.

    That's the problem I have with this -- the requirement should be that the users run a reasonably secure system, or that the security of their system be audited if you're trying to blame the bank for fraud. Instead, the requirement is for some inane things like antivirus and antispyware -- which, seriously, by the time your antivirus list updates with the virus in question, you'll already be getting a patch for the vulnerability through your package manager.

    How late after the black hats exploit it is irrelevant, as again, as soon as the "white hats" know about it, they'll patch the vulnerability.

    The point is, antivirus and antispyware are only relevant on Windows, and then, mostly only if you know what you're doing. And if you don't know what you're doing, you can still be 0wned. It seems impossible to mandate end-user security properly -- seems like the best you can do is either start doing real two-factor authentication, or insure your users and eat any losses due to security issues, or simply stop doing Internet banking.

  5. Re:Yeah, Heston! on Charlton Heston's Impact On Sci-Fi · · Score: 1

    1) You're confusing (or conflating) the ten commandments with the movie "The Ten Commandments".

    Not particularly. I watched the movie as a kid -- I grew up Jewish, and I loved it. Now that I'm older and more cynical, not so much, but not because there's anything particularly Christian about it -- more because I'd rather have less religion, period.

    2) Why couldn't judeochristianity be fundamentalist? Certainly there's fundamentalist jews, too.

    By definition, a fundamentalist believes in certain fundamentals. I very much doubt the fundamentals of two different religions are compatible, and fundamentalists would naturally be against the lumping of two religions into one (the term 'judeochristianity'). Thus, a fundamentalist judeochristian is an oxy-moron.

    Certainly, you can have fundamentalist Christians and fundamentalist Jews, but I don't really see how there could be a conspiracy between them.

    3) Even if it couldn't, what does that have to do with the fact that the USA *are* (turning into) a fundamentalist christian country?

    Well, for one, not if I can help it...

    For another, my point was that I don't see how such a movie would cement Christian fundamentalism if it was also about Judaism. In fact, given that it faithfully recites those Ten Commandments, it seems to be in direct opposition to Christianity, with its crosses, Jesus statuettes, and Jesus, period.

    4) Why are you resorting to ad hominem attacks if you truly believe you've presented a convincing argument?

    Because UbuntuDupe opened with "At risk of sounding like a troll..." No, that doesn't excuse you from being a troll. You don't get to say things like "At risk of sounding like a racist, the only good nigger is a dead nigger." Acknowledging that your comment might be interpreted as offensive doesn't make it any less offensive.

    So if you say "At risk of sounding like a troll..." at the beginning of a troll, then yes, I'm going to call you a troll.

  6. Good idea! on Virginia Becomes First State to Mandate Internet Safety Lessons · · Score: 1

    Let's start by mandating them for adults, too!

    Seriously, if you have more than, say, five toolbars in your browser, I will not help you with anything other than a full format and reinstall. Learn to not download spyware.

    Also, spam obviously works, or there wouldn't (still!) be so much of it. Stop paying these fuckers!

  7. Re:FIOS availability on Comcast Blocks Web Browsing · · Score: 2, Informative

    Well, it's not Verizon, but Lisco gave me a map for my hometown. But I'm not sure how to do this for the general case.

  8. Re:Ruby? on Stroustrup Says C++ Education Needs To Improve · · Score: 1

    Personally, I think garbage collection is only good for covering up bad design, but let's do that another time

    Very briefly, I think garbage collection is one of those things which can be faster on average. But yes, it is doable without a VM, and there are libraries to do so.

    Also, for security reasons, I prefer the executable part of an application to be in a non-writable segment.

    I think it's possible to lock down a VM much tighter than simply locking the executable part of an application.

    I always assumed I just didn't get how to do this simply :o)

    Well, the trick is, every method can have a "block" -- exactly one. It is possible to map this to an argument (a Proc object), which is slower, but it lets you pass it to other methods, store it in a data structure, and so on.

    It is also possible to simply pass Proc objects around anyway. This is the more Javascript-like approach:

    def twofuncs(first, second); first.call; second.call; end
    twofuncs lambda{puts 'first callback'}, lambda{puts 'second callback'}
    # sorry, lameness filter wants me to have more characters per line.

    Although the more syntactically elegant thing to do here is probably to create an object:

    class TwoFuncs; def setFirst(&block); @first = block; end
    def setSecond(&block); @second = block; end
    def callBoth; @first.call; @second.call; end; end

    obj = TwoFuncs.new; obj.setFirst { puts 'first callback' }
    obj.setSecond { puts 'second callback' }; obj.callBoth

    The problem I have with it is that blocks, while they can be treated as Proc objects, are really subtly different -- most visibly syntactically, but also in implementation. For instance,

    def callTheBlock; yield; end

    is more efficient than

    def callTheProc(&block); block.call; end

    Even though both of them are called exactly the same way.

    I would imagine it would also make your code hard to read or understand.

    No more than any other DSL-ish trick. That is: Being effectively a dialect means that you can't just go pick up some random blogger's JavaScript tutorial and expect to understand what I'm doing -- but it also means that once you get it (especially if I have decent variables and function names), it's probably easier to read.

    Especially if it's good at expressing intent. I like that concept, thanks!

    And I'm the second-most unit test fanatic in our office :o)

    Something for your coworkers...

    (As an aside, perl's is really a type system in the variable names, which is something else again).

    Well, except it's limited to the primitives, as is Ruby's. And Perl's is much less useful, as after awhile, just about everything's going to be a scalar reference to something.

    Yes, but some, like C++, seems to be trivially convertible to a simpler syntax.

    Looks like you're right... except, of course, it would now generate exactly the same kind of errors that a similar method in Ruby would. The only difference is, as you say, yours catches them at compiletime -- which means a lot more must be known at compiletime.

    Eval could be encapsulated so that type errors in that case would be found at runtime. (Nearly) every eval is a failure of the language anyway.

    I would consider eval to essentially be a shortcut for certain kinds of reflection.

    Of course, this is all about duck typing. (If you mean the quacks and walks like a duck.) C++ has had duck typi

  9. Re:One Size Cannot Fit All on Should IT Shops Let Users Manage Their Own PCs? · · Score: 1

    The naive assumption is that most users will know how to do this.

    No, the assumption is that if it hurts not to know, most users will learn. The only way I see that failing is that a large number of users might not actually be capable of doing so, at which point, I'd seriously evaluate how much it's costing IT to support them vs how much it would cost to find a replacement for them.

    If you just prepared a strategy/vision doc. or new marketing plans for a clinet, or million other such things that you need to email to people as attachments, they will end up on laptops/desktops instead of servers.

    Google Docs, or something similar, if it absolutely must be a document, and not just an email. Gmail drafts will be autosaved similarly. Now it's stored and backed up by Google, auto-saved over the network every five minutes.

    And it again falls back to the matter of forcing best practices. If they don't get bitten early and hard, they will never learn, which means they will get bitten later, and harder, and it will be IT's job to clean up the mess.

    A relevant example at my own job -- we develop for Amazon EC2. The fact that an EC2 Instance (virtual machine) may go away at any time, and take all its local storage with it, forces you to develop a robust backup solution right away. Other services may be less prone to wiping out the entire local store, but you would still need backup, either way.

    Your machines might not always be confined to your network.

    Still not entirely sure what that has to do with a botnet -- or, again, why I have to care. Block the botnet activity at the network borders.

    If you hire someone at $75,000 per year, for accounting/martketing/whatever non-IT job, you don't want them spending cycles and getting context-switched by having to manage their machines. Many of them only understand computers in a very basic way.

    Because they are allowed to. Besides, it does not take much more than a very basic understanding of computers to keep yours clean, or at the very least, keep critical data off of it, so that it can be periodically re-imaged.

    By this definition, you have to be working at Taco Bell (and not at the cash register) to not be responsible for maintaining a computer.

    Pretty much. Or in construction -- or at a cash register which is kiosk-ified, as it doesn't need to behave like a computer...

    Let me put it another way: There was a point at which people would pay secretaries to take dictation for them. Now, pretty much everyone is assumed to know how to type -- when was the last time you heard of someone getting hired merely to type?

    We may not be there yet, but by now, basic computer skills -- typing, pointing and clicking, etc -- are basic requirements of getting a job. If enough companies decide they want to spend less on IT, then the same will be true of basic local admin skills.

    If Flash 8.x has some vuln and you haven't updated your flash plugin forever, a script checking for blacklisted apps is the safety net.

    Doesn't Flash auto-update now?

    You completely underestimate what it takes to keep data secure

    What does it take? Really?

    Flexibility in IT means, if someone needs just MS office for their job, are they able to install this cool new freeware (potentially malware) office plugin that makes xyz task easier, or do they not have the privilege to do that? That's where you end up making a decision which is essentially a balance between flexibility and security, get it?

    Flexibility in language/frameworks/tools is different than this, how?

    And the point is, again, that if it's all on the user's head, they should be a lot more paranoid about installing shiny new plugins.

    There is nothing difficult about this. My mother can do this. But as long as people have IT there to hold their hand, they won't, because they don't have to. Honestly, if we all had chauffeurs, very few of us would know how to driver, or would care to.

  10. Re:Where is that list stored? on UK Banking Law Blames Customers For Insecure OS · · Score: 1

    Well, the trouble is, here in the US, banks are required to have two-factor authentication...

    Except they fail it. Badly. Apparently, having an "authentication image" and a bunch of pointless security questions about your mother's maiden name, in addition to a password, is what passes for two-factor authentication, and no banks seem to want to do it right, with things like a physical key.

    At least it's all SSL... well, sort of. My bank redirects me to some third-party site to actually do the SSL stuff. I've memorized the domain, so I should be reasonably safe, but... GodDAMN are we backwards here.

  11. Re:Yeah, Heston! on Charlton Heston's Impact On Sci-Fi · · Score: 4, Insightful

    You do realize the Ten Commandments was in the Old Testament, right? Which is pretty much the Torah?

    Maybe if you said something about judeochristianity, you'd have a point... No, wait, then it couldn't be "fundamentalist" anymore.

    And yes, you are a troll, which is probably why you were modded as such.

  12. Where is that list stored? on UK Banking Law Blames Customers For Insecure OS · · Score: 1

    If a new password is issued over the wire to whoever's logged in, that won't help much.

    There's also the matter of session hijacking -- they don't need to be in your session very long to cause damage. I imagine the sessions would be just a bit more liberal, if they're making you go to the trouble of checking a list.

  13. Re:Bullcrap. Don't need that stuff. on UK Banking Law Blames Customers For Insecure OS · · Score: 1

    Why should I have a firewall? I have a NAT router (hardware firewall).

    First, that's only inbound. Whether or not you need outbound is a different discussion.

    Second, what's behind that router? What happens when a friend brings over a laptop?

    Why should I have antispyware? I know what I'm downloading.

    For the few times you want to be sure of something, or examine it. No reason you need to leave it resident all the time, scanning everything, but it is useful to be able to scan what you just downloaded.

    I think you've got that point, though:

    - I don't download cracks. When I DO need to use a crack I upload it to virustotal and then run it in a virtual machine.

    How secure is your virtual machine? They've had vulnerabilities before.

    More relevantly, since you have no firewall (just a NAT router), it's entirely possible one of your virtual machines is part of a botnet. It's not going to get your bank info, maybe, but it's still going to spam the rest of us. Please block outbound port 25, at least.

    - I run IE7 and Firefox. Although neither are perfectly secure I don't make it a habit to go to Russian warez sites.

    You're going to run into some site, somewhere, which is going to try to exploit you. I hope you're at least keeping those patched.

    Dear god, SOMEONE explain to me why any reasonable user should need this resource-hogging crap?

    Sadly, it mostly wasn't written for reasonable users. It was written for morons who shouldn't be allowed to have local admin, ever.

    That said, it's possible to find free alternatives which aren't going to waste your resources -- at least not to a point you'd notice, if your box is capable of running virtual machines.

  14. The death of security? on UK Banking Law Blames Customers For Insecure OS · · Score: 1

    Anti-spyware and antivirus is a band-aid for insecure software and user practices ("Why yes, of course I trust 66.184.142.51, why do you ask?")

    I don't think you fully grasp what a "hardened OpenBSD version" means, or how unlikely it would be that they are compromised. Either you are suggesting that antivirus and antispyware are actually viable solutions (proving you know nothing about security), or you are suggesting that we should all switch to more standardized hardware platforms to prove to our bank that we're secure.

    The challenge here is to come up with a way for users to be responsible for their own security (don't give out your password like an idiot; banks shouldn't be responsible for phishing either) without allowing the banks to completely screw you over (whoops, we got 0wned, but we're going to say it was your fault because you weren't using Norton Clusterfuck Edition.)

    Unfortunately, I'm not sure anyone really likes the solution -- giving out private keys and making the user responsible for them. Done right, the bank would be powerless to do anything other than change the public key on file, thus any properly signed fraud would be the user's fault.

  15. Re:Hope that 90% of companies make donations too! on Analyst Admits Open Source Will Quietly Take Over · · Score: 1

    However, at least some of them are going to have to modify said software internally, and at least some of those will make it back into the community.

  16. The simple answer... on Analyst Admits Open Source Will Quietly Take Over · · Score: 1

    I don't know about PostgreSQL, but MySQL is now owned by Sun, and it had a proprietary component before that.

    So just tell that business partner that if they need a guarantee of reliability, go talk to Sun. I'm sure they can find a contract somewhere.

    And did they actually talk about "hippies"? Wow.

  17. Re:That's Positive? Positively clueless. on Analyst Admits Open Source Will Quietly Take Over · · Score: 1

    When it comes down to it, setting up a Linux server in a nice, secure fashion is a royal pain in the ass. You have to type MILES of command lines and edit scores of .conf files to accomplish the same best practices that takes a couple of clicks and 2 minutes on a Windows machine.

    Erm... I'm calling bullshit on that.

    Because I don't know exactly which best practices you're talking about, there's not much I can say, other than that I suspect that the "couple of clicks and 2 minutes" is once you know how to do it, and the "MILES of command lines and scores of .conf files" is because you don't. A trivial example:

    sudo apt-get install lighttpd

    And I now have a webserver running. And that's just on a single machine -- if a thousand of them need webservers, it's not really going to take me any more time.

    Therefore, a competent Linux admin suddenly costs more money to hire because of his greater skill set and lower availability.

    He can also manage more machines. And if he's good, he can do it better and faster than you can.

    Oh, that and Exchange.

    And you claim not to hate yourself?

    Now, what you've said suggests that a Windows server may make sense to a small-ish shop, where, for whatever reason, they want to do everything in-house. Such a Windows server may well be easier to learn to setup than an equivalent Linux server.

    But on that scale, honestly, your admin skills are pretty much obsoleted by Google Apps and a Linksys router, as soon as they decide they don't need to do everything in-house. Why should a small business owner run Exchange or store documents in-house, if THEY DON'T FUCKING HAVE TO?

  18. Re:That's Positive? Positively clueless. on Analyst Admits Open Source Will Quietly Take Over · · Score: 1

    A lot of decision makers do not necessarily assume that free equals worthless, but rather that if it is free, then there is no accountability when stuff hits the fan.

    The problem is that the converse is not true. Proprietary software costs money, but you usually won't find accountability at any price, other than reinventing it in-house.

    Accountability is assured (in one way or another) when money changes hands.

    BZZZT! Wrong! Read the EULA and weep.

    However, it is possible to assure accountability -- by spending money -- on open source. You mention Red Hat, but I assume you're not talking about CentOS or Fedora -- you're talking about a subscription to Red Hat Enterprise Linux, meaning you actually get to call Red Hat when something goes wrong. And you can find this kind of support for just about any sufficiently popular open source -- it does confuse me sometimes why Red Hat is preferred to, say, Ubuntu, for which support is also available.

  19. Re:Of course! on Are Optional Ads Worth The Trouble? · · Score: 1

    That's most of what I want out of ads, actually. Right now, I adblock most flash and most animated gifs. Static images and text ads can stay.

    I do occasionally click on ads, low-key or not -- and I do often read them -- but if you piss me off, you are decreasing your chances of getting me as a customer.

  20. Re:Ruby? on Stroustrup Says C++ Education Needs To Improve · · Score: 1

    No VM is needed for that. Any decent implementation of eval will check the input string against a cache. Branch prediction is another example of what you are talking of, and again, no VM is required.

    And also garbage collection, and other things.

    I suppose the proper word is "runtime", because I do believe there are optimizations which can only be done effectively at runtime.

    Anything specific?

    Probably the biggest thing that bothers me right now is the fact that any sufficiently complex file is going to end like this:

    end
    end
    end
    end
    end

    That's something I can get around with a preprocessor, though, and people have -- basically, to make Ruby behave like Python. But that's a minor irritation anyway -- I type fast, and it has the advantage of having most editors understand C-like syntax (and be able to jump from start to end tags and back).

    There's also the lambda/block syntax -- it's very good for when you only need to pass a single block, but I do wish it was easier to pass a pair or more.

    And there's the fact that unlike JavaScript, methods are very much stuck to a class. It's something a lot of people seem to hate about it, but I loved -- I can rip a function out of anywhere, any class, any object, and apply it to something completely different. I can assemble a class not only from modules explicitly specified as such, or from direct inheritance from multiple other classes, but from, well, anywhere I want. I can completely make up my own class system.

    Most of that is available through things like Object.extend in Ruby, but that's not as easy to build classes with, and is complicated by the difference between "extend" and "include".

    I suspect that the main things I prefer about Javascript (instead of Ruby) is that Javascript is prototype-based, whereas Ruby is traditional class inheritance with mixins. It seems to me that a prototype system is a simpler set of primitives than a class system, even if it might be possible to build one from the other.

    I agree -- to a point. At some point, the code is either too trivial to test or requires too much scaffolding to test.

    I find that I mostly get into the latter situation out of my own lack of discipline. But at the same time, there's a lot of scaffolding out there -- there are browser-based unit tests for webapps.

    Unfortunately, in my line of work, we often have to make up the test data as we go along, and anyway, the problem we set out to solve is seldom the problem that turns out to be solvable.

    True. That makes for more test-driven development, rather than test-driven design. I know that certain projects won't accept patches unless they include tests, no matter which came first.

    But the thing is, people usually agree on what const means, while ! means sort of dangerous to some, destructive to others and apparently constant to a third group. Besides, string concatenation is no way to store information :/

    I'd agree that it's bad that it gets abused. But I'm beginning to appreciate naming conventions -- even when enforced in code -- like how a Constant in Ruby is anything Capitalized -- although perl $scalars, @arrays, and %hashes got annoying, especially when the scalars were more often a reference to a more complex type.

    Totally agree. Silly design, really. Not really the language's fault, though.

    Right, although it does stress the need for code conventions in any sufficiently flexible syntax.

    I worry that you have misunderstood me. It's the compiletime checking that interest me, not that you have to put types everywhere.

    I probably have. However, most implementations of compiletime checking do end up being verbose...

  21. Re:Next generation OS. on Vista is Slower, But XP Is Still Dying · · Score: 2, Insightful

    Depends on the game.

    If you mean all current and next gen games, you'd better have a few consoles, too.

    If you just mean enough, there are quite a few games with Linux ports (more than you'd think), and more run under Wine. I honestly don't have time to play all the games that I could play on Linux. I will confess I dual-boot, though -- to XP.

    The answer to Office and VS is to run alternatives -- in particular, if you have to run VS at all, chances are you're not developing anything that would run on Linux anyway.

    Personally, I'm much more willing to put up with the pain of getting games to work on Linux, then getting everything else to work on Vista -- or simply working with Vista at all. Right now, I'd sooner give up games than boot Vista.

  22. Re:Ridiculous on Lecture Notes Considered Infringement · · Score: 2, Interesting

    That link kind of disproves your point:

    Six readily accessible chapters were later compiled into a book entitled Six Easy Pieces: Essentials of Physics Explained by Its Most Brilliant Teacher, and six more in Six Not So Easy Pieces: Einstein's Relativity, Symmetry and Space-Time.

    Sounds like a textbook to me.

    Look -- a lecture, almost by definition, is not engagement, it's presentation, and a presentation can simply be duplicated. Anything good in a lecture is either already published, or likely to be published soon. For that matter, sometimes lectures are recorded, and effectively become a textbook themselves -- or at least another reference material.

    Again: A lecture is not engagement. A conversation is engagement. Some professors choose to have a conversation and call it a lecture, which is probably a better way of teaching, and cannot be duplicated. There are certainly other ways of teaching. While I am mostly self-taught, Wikipedia is no substitute for an actual classroom -- but the lectures themselves, at least, contain nothing in the way of facts or understanding which cannot be found elsewhere, even in print.

    And I'm sorry you can't find passion in textbooks or papers -- you must not have found very good ones, then. There are at least two separate books I've read on programming which got me excited about it, taught me to see it as an art, and fed my imagination with possibilities -- and that's on programming, even introductory programming, which you would expect to be a dry subject.

  23. Re:Education is fair, but who's notes are they? on Lecture Notes Considered Infringement · · Score: 1

    I can be sure that I own my homework solutions and essays even though they are "derived" from my notes.

    Depends what you're talking about, but in the general case, I'm not sure I agree.

    I frequently read documentation for the tools I use, particularly the languages. Should my programs be considered derivative works of ruby-doc.org?

    Of course, it also begs the question of whether the documentation is itself derivative of the tools...

    I'd say it depends entirely on whether it's a full-on derivative work, or merely something which relies on, borrows from, quotes, etc. Unfortunately, I don't know of a clear definition there, and I'm not sure there is one, legally.

  24. Re:Polaroid was a good idea. on Concept Computer Based on a Tea Cup Design · · Score: 1

    I've got to admit, it's creative. Stupid, but creative.

    So's this, to pick a recent example. Creativity alone doesn't save you from criticism.

    Get off the internet if you don't want to see anything stupid. Don't leave the house...

    I would say the same to anyone who can't handle criticism. I replied to someone who was "sorely disappointed by the negative responses in this article", and was speaking as if it was a brilliant idea, and we were all morons for not getting behind it -- as if we only criticize it because the hardware doesn't exist yet.

    It's a moronic idea, which does not work yet, and may never work. As such, I reserve the right to point and laugh, and wonder how it managed to get to the front page of Slashdot.

  25. Re:Ruby? on Stroustrup Says C++ Education Needs To Improve · · Score: 1

    It is, however, not possible for a VM to predict future calls either, and anyway, the VM would then have to waste clockcycles during every run, instead of having it calculated once and for all.

    I'd say that gathering statistics of what's actually being done is probably a strong enough indicator of future calls. Consider the following:

    source = 'some really long string of source code, possibly generated'
    eval source

    Will the code be compiled every time? I'd argue that a reasonably intelligent VM might notice that the source string isn't changing, and cache the result of that call. And if it's a sufficiently long string, it absolutely would be a net win in efficiency, even including VM overhead.

    You can't. That's the point about type-safety, it's a strong garantee. The code might fail, but it will be during compiletime. Barring bugs in the compiler or language, of course :)

    Or logical bugs in your type system design. Certainly, anywhere you typecast can fail at runtime.

    It catches a lot of errors at compiletime, yes. But not all; that's what tests are for.

    The compiler cannot assume a sane design :)

    No, but it should optimize for a sane design, right?

    Or we can say that COBOL optimizes for an insane design. I don't want to write that!

    Besides, it's a complex world, and sometimes you will need a complex design to solve the issue at hand.

    Which is why you break it into simple chunks.

    You yourself mention using evals at times, something which might return *anything*.

    The most appropriate time to use eval, I think, is early in the program -- during what would be the "preprocessing" stage in other languages. For instance, Rails has a "constantize" function which takes a string and returns the constant with that name -- and it uses eval to do so. But this is rarely done after program startup -- it's mostly used so that your source code can contain such strings, and so that the Rails environment can do things like read a file name "foo.rb", and do string manipulations (capitalize it to Foo), then look for a constant by that name.

    Many people would say they don't need unit test everywhere :p I do get that you don't want to specify types, and that is fine by me. It still means that ruby is not the perfect language for me.

    There are other reasons why I don't consider it the perfect language. Even syntactical reasons.

    And I think I could make a strong argument for unit tests everywhere -- again, I see a type check as just another form of unit test. But tests in general make it that much easier to make larger changes -- because after making the change, you can just run the test to see if it worked.

    There's even test-driven design, but that takes discipline.

    Besides, it allows you to specify intent in a very clear way --- the ! sometimes means constant, but sometimes it is more like "watch out, dangerous function".

    Well, it actually means "non-constant", but yes, I've seen it abused that way. One thing I've seen it overloaded to is raising errors instead of returning them, but I'd usually rather raise errors by default.

    Example: Calling foo.save! in Rails will throw exceptions on validation errors, but what is the point of foo.save, which simply returns true or false depending on whether it was successful? If I just want to see if the object is valid, I can call .valid?

    I do get what you mean now about expressing intent, and why that's important -- and I think that's what a high-level language is about. I'm also considering subverting it into an argument against explicit typing -- I don't intend for something to be any given type, I only intend for it