Slashdot Mirror


User: jtdubs

jtdubs's activity in the archive.

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

Comments · 353

  1. Luckily for you... on IBM Buys Rational Software · · Score: 2

    Eclipse is plug-in based. I don't know if you used Eclipse the open-source workbench, or one of IBM's new WebSphere products, but it's completely plugin based. It's much better architected than the old VA tools.

    It's just a matter of getting lots of wonderful plugins written, such as class and method browsers as you mention.

    Justin Dubs

  2. I disagree on SmartEiffel 1.0 Released · · Score: 2

    Actually, you can judge a language from it's "Hello World." The books How to Think like a Computer Scientist comment on this as well, not that I endorse those books.

    A "Hello World" program demonstrates very clearly how "simple" a language is. How much syntax and how much structure you have to use to get even the simplest of things accomplished. It also usually demonstrates the difference between an optionally interpreted language and a purely compiled one, as compiled languages, on average, tend to require use of more syntax to get up and running.

    As an example, Java.

    public class HelloWorld {
    public static void main(String[] args) {
    System.out.println("Hello World!");
    }
    }

    It's hello world program involves both a class definition and a method definition. Neither of these things are relavent to the goal of printing a string, but Java makes you go through the motions anyway. Java forces you to use OO for even the simplest of problems, and this much is evident from looking at it's solution to the simplest of problems, printing a string.

    Perl, Python and other optionally-interpreted languages tend to be far simpler to bootstrap, allowing for things such as:

    print "Hello World!"

    However, this syntax makes you use a function to print the string, evidence of an imperative language rather than a functional one in this case. Although, to be fair, Python is very 'functional' and actually can do without the print statement. In a functional language in which you deal with expressions rather than statements, all values are self-evaluating and allow for "code" like the following in most functional languages:

    "Hello World."

    This string, being a value, evaluates to itself in most functional languages including, Python, Lisp and others, and results in the value being displayed back to you. If you want to be pragmatic about it, as this code won't do anything if compiled in a functional language (most of 'em anyway), you can change it to something like:

    (princ "Hello World") ;; lisp
    or
    print 'Hello World' # python

    This throws back to the notion of function calls, which are evidence of compilation in the case or most functional languages.

    You can learn a lot about a language from looking at it's Hello World. Mainly it simplicity, or lack there-of in the case of languages like Java or, yes, Eiffel.

    Eiffel makes you digest concepts like class creation and features (methods in this case), along with a whole lot of syntax, to accomplish the simple goal of printing a string.

    The main problem with any syntax being forced on you, aside from making it more difficult to parse, is that it limits the languages flexibility in a practical rather than theoretical sense. You could practically never write a macro system as astoundingly powerful as the one found in most Lisp dialects in a language like Java or Eiffel. Too much syntax. Not enough closure.

    While having a lot of required syntax won't prevent a language from being good at real-world tasks, in fact quite the contrary for reasons I won't go into here, it does limit it's simplicity and, in my mind, beauty.

    Justin Dubs

  3. I can't take it anymore on New License Forbids Human Rights Violations? · · Score: 1, Flamebait

    I can't put up with all of this bullshit from the FSF about how their licenses are "free" and everyone mumbling about how they are without "restrictions." It's absolute bullshit.

    There are no licenses without restrictions. That's why you put a license on it; to restrict things.

    Public domain is free. GPL is not free. BSD/MIT are not free, but are far closer than the GPL.

    Come on people, this is obvious. The BSD license, and especially the MIT license place far fewer restrictions on the end-user than the GPL or the LGPL or any of the FSF's licenses. The only thing I've found with less restrictions than them is the public domain. And isn't that a good measure of freedom? How many restrictions it places on those who accept it? More restrictions means less free, right?

    The GPL is not "free" software. The LGPL is not "free" software. It's not free if it's enforced by a license. The GPL is enforced freedom, which is pretty much a contradiction. The GPL makes code free to do anything, other than become non-free. This is a restriction, and hence makes the code non-free.

    Here are a few licenses are what restrictions they put on the end user.

    Public Domain:
    None

    MIT License:
    Original source, if redistributed, must include the original license.

    GPL:
    Original source, if redistributed, must include the original license.
    Derivative work (modified source) must remain under the GPL.
    Work linked against the source must be under the GPL.

    Explain to me how, given this knowledge, the GPL can possibly consider itself to be "free" with a straight face?

    Sometimes I wonder if more people would choose the MIT or BSD-style licenses if the FSF weren't busy shouting their GPL propoganda from the roof-tops of the insane asylums that most of them belong in.

    Justin Dubs

  4. Re:Speech Recognition on 5 Predictions for 2012 · · Score: 2

    Unfortunately, I believe that a perfectly correct grammar checker is just as difficult as language comprehension, but I'm truly not certain about that.

    As you said, good grammar checking isn't that difficult and can aid in the choosing of homophones as such, but is not perfect.

    This is all AFAIK. I could be horribly wrong. Definitly food for thought,

    Justin Dubs

  5. Re:Speech Recognition on 5 Predictions for 2012 · · Score: 4, Interesting

    This is wrong, depending on your definition of "proper."

    What's AI-complete is /perfect/ speech recognition, as well as speech understanding, which is also known as "The Natural Language Problem," as long as we are both copying and pasting from link you posted.

    The reason perfect speech recognition is AI-complete is that it requires perfect speech understanding to choose between homophones (words that sound the same but have different meanings, such as to, too and two, or there, their and they're), and that problem is AI-complete.

    Of course, most humans don't have perfect speech understanding, and hence also don't have perfect speech recognition.

    Satisfactory speech recognition may indeed be as close as 2012. Maybe not, but it is possible. It has come a long way recently.

    This has nothing to do with the Turing Test, and many people are of the belief that the Turing Test is a pretty silly milestone in AI anyway as it is a poorly formed, incredibly subjective measure of intelligence.

    Passing the Turing Test is a matter of being able to fool a human into thinking you are human via a simple converstion, held with words only, sight-unseen. Some humans fail the Turing Test and some computers can already pass a limited variation of it.

    Something that is AI-Complete is believed to require human-level intelligence to solve, and is an entirely different, and likely far more complicated problem.

    Justin Dubs

  6. Design Patterns on Interview With Martin Fowler · · Score: 5, Interesting

    Everyone all hopped up on Design Patterns that has any background in high-level programming needs to read:

    Revenge of the Nerds, by Paul Graham
    http://www.paulgraham.com/icad.html

    Paul Graham is a Lisp guru, among other things. His perspective on "patterns" is quite in contrast to that of the XP fab four.

    Specifically, I refer to this fabulous quote:

    "If you try to solve a hard problem, the question is not whether you will use a powerful enough language, but whether you will (a) use a powerful language, (b) write a de facto interpreter for one, or (c) yourself become a human compiler for one. We see this already begining to happen in the Python example, where we are in effect simulating the code that a compiler would generate to implement a lexical variable.

    "This practice is not only common, but institutionalized. For example, in the OO world you hear a good deal about "patterns". I wonder if these patterns are not sometimes evidence of case (c), the human compiler, at work. When I see patterns in my programs, I consider it a sign of trouble. The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough -- often that I'm generating by hand the expansions of some macro that I need to write."

    He's my hero. :-)

    Justin Dubs

  7. Re:a working example on Using Sound To Test Internet Connections · · Score: 2

    ping localhost | perl -pe 'print "\007" if /ttl/'

    perl -pe expr is equivalent to:
    perl -e 'while() { expr; print }'

    In other words, the -p takes care of the while() print loop for you.

    Just FYI,

    Justin Dubs

  8. Re:This equates to the RIAA and MPAA arguments on Only Thieves Block Pop-Ups · · Score: 2

    Yes, yes, yes, I understand all of that.

    The HTML DOES include a reference to the ad, which your browser loads itself. Yes, yes, blah, blah, obvious.

    My point was that you don't have the intrinsic right to request a copy of the HTML without the reference to the ad. Hence my analagy of saying you might as well be able to request any random part of the HTML then, modified by the server at your whim. It just makes no sense.

    What you do with the HTML once you get it is, of course, entirely up to you and your browser.

    Justin Dubs

  9. Re:This equates to the RIAA and MPAA arguments on Only Thieves Block Pop-Ups · · Score: 2

    So, you believe that you have the right to make companies give you whatever you want, however you want it? So, you want a kid's meal with no toy, huh? That's not their problem. The toy is part of the package.

    I want a big mac without the extra layer of bread in the middle, and leave off one of the burgers. Hell, just sell me a bun. What do you mean you don't sell buns? You sell burgers. They have buns on them. Just take the burger off. What do you mean "get the hell out?" Ouch... ouch! Alright, I'm leaving...

    Companies sell products. If you don't like the product the way it's sold, don't buy it. You do NOT have the right to request a special modified just-for-me version of the product. If the company decides to offer the opportunity for customization, good for them.

    You do have the right to modify the product once you own it. If you aren't allowed to modify it, as with, say, most commercial computer software, than you are faced to accept the fact that you don't actually own it. Yeah, you payed for it. Yeah, you have the right to use it. But its not actually yours. You bought, and now own, *privileges* with respect to the software, not the software itself.

    With respect to websites. No, you do not have the "god-given" right to request a Ad free version of a website. You can choose to ignore the ad's after you've gotten them. You can find some inane way of making them translucent and small and putting them in the corner so they don't bother you, or some way of closing them automatically. More obviously, you have the right to not go to that website anymore. Just go somewhere else.

    But you do NOT have the right to connect to the server and say, "Give me your page without ads." You might as well be able to connect to a site then and say, "Hey, site, give me just the leftmost frame... uhhh... words 10 through 12... and, could you make it green for me, i think that's pretty."

    Anyway, long rant, no real purpose. The rest of your post I agreed with. Probably bed time for me...

    Justin Dubs

  10. Re:Oz book here: on Postmodern Computer Science · · Score: 2

    Thanks for the link, I'm reading through it right now.

    Justin Dubs

  11. Re:Multi-paradigm language Oz on Postmodern Computer Science · · Score: 1, Offtopic

    I found logical programming.

    There is a package for LISP called Screamer that provides a logical programming system with backtracking-based non-determinism and constraint-satisfaction primitives.

    Still working on finding relational programming code for LISP...

    Justin Dubs

  12. Re:Multi-paradigm language Oz on Postmodern Computer Science · · Score: 4, Insightful

    Oz is a very cool language. I've played with it before.

    The advantage of LISP is that rather than being a Multi-paradigm language is's a no-paradigm language.

    LISP is the most generic and powerful language I've ever used.

    It's syntax is simple and uniform. It's functionality is also simple. But with it people have built a complete, powerful, OO system, written in LISP, running within LISP, which transform LISP into an OO language.

    Implementing PROLOG as a language within LISP is less than two pages of code.

    Functional programming is built in to the core.

    I'm certain that logical and relational programming could be written in LISP, it's just a matter of whether they have been. I will look in to that.

    But, better yet, any future paradigms are also implementable as LISP programs.

    Anyway, that's enough of my LISP ranting for now. I'll do some more reading on Oz. I've always meant to, but just never got around to it. Thanks for the idea.

    Justin Dubs

  13. Re:Summary of the paper... on Postmodern Computer Science · · Score: 5, Funny

    A flexible language? Without rigid structural or developmental style?

    It's a shame we don't have any languages like that right now.

    Someone, quick, go invent LISP...

    Justin Dubs

  14. Re:a bit offtopic, but on Mac OS X to Get Journaling FS · · Score: 2

    Darwin is not anything special OK? Large parts of which, it should be noted, were already written. It's also a distro with no graphics capabilties and virtually no desktop apps. What use is that? Linux/FreeBSD already do nicely on the server thanks.

    The rest of your points are even worth arguing, but this one is.

    No graphics capabilities? It run XFree86. It runs KDE. Have you ever even CHECKED this crap before you posted it? Ever seen fink?

    It has a hell of a lot of graphical ability and desktop apps. Not as many apps as linux, but they are easy to port and many people are.

    Most of it was already written?

    Unlike linux whose kernel was originally a free rip-off of minix and now uses the GNU tools which they didn't write.

    Justin Dubs

  15. Re:a bit offtopic, but on Mac OS X to Get Journaling FS · · Score: 3, Interesting

    Damn them with their proprietary hardware that cannot be built by anybody but them (under threat of lawsuits).

    Yes, how dare they try and make profit to support the further development of their OS and fund researches and UI analysts. Until you show your business model of 'give things away for free' to be successful, don't knock everyone elses.

    Damn them with their entirely closed source OS above the kernel level, and what kind of madness is an "open source" kernel where they can change the conditions under which it is licensed at any time they like?

    It's not closed-source above the kernel. The entire unix core is open sourced. The kernel, the command-line utilities, the ENTIRE unix core. It's a complete, free, unix distribution. The closed-source part is the GUI layer, some drivers, and some other miscellaneous pieces.

    Again, show us that your business model doesn't suck and people will think about using it.

    How dare they threaten lawsuits against the creator of an Aqua mozilla skin, despite everybody knowing that they themselves prove in court you can't protect a look and feel.

    How dare they protect the name and look-and-feel that they invented? They actually named the linux theme "Aqua", not very subtle for a rip-off. They ARE allowed to protect the name, aren't they??

    Speaking of look-and-feel, remember how well the OSS community showed off their maturity when RedHat took the OPEN SOURCE KDE and Gnome look-and-feels and unified them.

    May they roast in hell for their DRM enabled (yes, it is) mp3 media player that had to be reverse engineered for the people that wrote much of their OS.

    This is funny cause apple has had a LONG time anti-DRM stance. DRM on the iPod is OPTIONAL. I've never had problems putting MP3's on it. Have you?

    And why is there STILL no QuickTime player for Linux, despite the fact that they use large amounts of GNU code. A lot of open source software has been ported to MacOS, but do they port anything back in return? No.

    Yeah, they give nothing back. Except for that free unix distro, Darwin, and that whole Rendevouz thing. Also, GNU != Linux. Even assuming apple uses LOTS of GNU code in it's quicktime player, they are under no obligation to give back to the community. That's part of the GPL and LGPL. Plus, why linux? Why should apple devote resources to porting a Quicktime player to an OS with almost no share of the desktop market.

    Justin Dubs

  16. Re:a bit offtopic, but on Mac OS X to Get Journaling FS · · Score: 5, Insightful

    Yeah, damn that "lockin nastyness."

    Stupid OS X.

    Basing there graphics system off such properietary API as *gasp* OpenGL. And having native support for running that un-portable proprietary Java language, whatever the hell that is.

    And using that damned open-source Mach microkernel.

    And that stupid open-sourced Darwin unix core.

    And that acursed POSIX API (still a work in progress).

    And CUPS.

    And OpenFirmware.

    How dare they rely on such proprietary things as firewire and usb for peripherals. And 802.11b for networking. And optional LDAP authentication. And how dare they invent new, cool, peer-to-peer automatic network configuration protocols (Rendevouz) and then open up the spec and source.

    They are practically the devil.

    And I love how on every point OS X wins. You agreed that it was easier to use, had better hardware integration, and better software. Plus, I think most of us agree that it's really cool tech and is prettier.

    And then you say "Linux is free. Nuff said." as if this clinches it and Linux has won despite losing in every category other than price.

    So, hard to use, poorly-integrated OSs with bad software-support beat easy to use, well integrated OSs with good software-support as long as they are free?

    Damn that apple and their embracing of open standards.

    Justin Dubs

  17. Re:which functional language to learn? on ICFP 2002 Contest Winners Announced · · Score: 2

    Thank you for the corrections,

    Justin Dubs

  18. Re:which functional language to learn? on ICFP 2002 Contest Winners Announced · · Score: 3, Interesting

    Functional programming eh?

    I'd suggest the following three languages:

    1. SML

    SML is the language on which OCaml is based. OCaml is really just SML with different (read: worse) syntax, some small differences, and then OO support.

    SML will probably be easier to start off on, is better supported and better documented.

    Once you've got SML down, OCaml will be easy.

    SML is strongly-typed, via type-inference.

    2. Common Lisp

    This is probably the most powerful language in existance.

    Functional if you want. Side-effects if you want. Based on mathematical theory. Closure of data and code. With CLOS (builtin) you get an incredibly powerful OO system.

    Common Lisp is dynamically typed and CLOS supports dynamic multiple-dispatch for typing.

    Lisp's defmacro system will open your eyes to a whole new world. It is the most powerful macro system you'll ever use. You can perform arbitrary transformations to your code. You'll never think the same way again once you've gotten the hang of defmacro.

    3. Haskell

    A very simple language to pick up the basics of. Pure functional. Lazy evaluation.

    A different idea than SML or Lisp.

    I think those three languages would expose you to pretty much all of the concepts of functional programming as well as all the different kinds of syntax you are likely to run across in functional languages.

    If you have some time to read up on lambda calculus it might be worth it.

    I also strongly recomment both of Paul Graham's Lisp books.

    Good luck,

    Justin Dubs

  19. Re:Coming from a professional on Designing Computer Animation Software? · · Score: 2

    If you are using OpenGL there are many more speed-up rendering speedups...

    If trying to be generic and use straight OpenGL 1.4:

    Arrange your geometry data (vertecies, normals, texture coordinates) into parallel arrays and use an index array to access it.

    Read up on glVertexPointer, glDrawElements and it's bretheren.

    Try to use triangle strips, which are O(N+2), or triangle fans, which are O(N+1), as opposed to regular triangle lists, which are O(3N).

    This will get you around 20M tris/sec on newish hardware.

    Also, try and arrange your data to minimize texture-swapping. If you can sort your buffers so your render all the triangles using one set of textures first, then the next set of triangles using the next set of textures, and so on, it will help.

    If you don't mind using some NV or ATI specific extensions:

    Do the above, but lock your arrays before using them. This will allow them to be transfered over AGP once per frame which will save you a LOT of time if you are doing multi-pass rendering.

    If you want to dive in to some new-ish NV and ATI tech:

    Read up on the Array Object extension.

    This will allow you to upload the various parallel arrays and index buffers to video card memory so you never need to transfer it over AGP again.

    This can push new cards up to the 60M to 80M tris/sec range.

    Also:

    Read up on vertex and pixel shaders. OpenGL 1.4 has finally approved ATI_fragment_program and ATI_vertex_program extensions.

    They make perfect per-pixel lighting far easier and faster than previous methods, although not nearly as easy as OpenGL 2.0 will make it next summer.

    With proper use of transformation matrices and vertex programs you should very rarely (hopefully never) have to actually change the verticies of your models, making extensions like the Array Objects absolutely wonderful.

    There so much more you can do; the list is nearly endless.

    The best of luck to you,

    Justin Dubs

  20. Re:Apple/BSD vision collision on Interview Jordan Hubbard, Apple's BSD Tech Manager · · Score: 2

    This would appear to be moot as:

    1) Resource forks are deprecated

    2) I just did the following:

    # tar cf Applications.tar Applications/
    # rm -Rf Applications
    # tar xvf Applications.tar

    And all of my applications still work...

    Justin Dubs

  21. Re:great product on Multi-Touch Keyboard Technology · · Score: 5, Interesting

    Now, I'm just talking here, but...

    Why do you need the keyboard fixed in place on this thing? Why do you need keys with boundaries?

    It seems as though this thing could just make the keyboard be wherever the hands feel like being. Wherever you put your hands on the pad, that's where the keyboard is.

    If you have the hands resting in the touch-type position, regardless of position on the pad, and the left index-finger is depressed, type an 'F'.

    If an area is tapped that is just a bit above and to the left of the left middle finger, type an 'E'.

    Just put your hands down and do the motion of typing, no need to line anything up.

    Or, is this how it already works? Or, is this a bad idea and I'm just a fool?

    Justin Dubs

  22. Re:I call it linux, here's why, in a few short poi on FSF Issues GNU/Linux Name FAQ · · Score: 2

    We call Mac OS X, OSX. We do this because Apple told us to. And it's up to them since they package it and sell it.

    We call things whatever they are called when they are packaged. Not when they are made.

    If I install Corel WordPerfect on my Win2k box, and install Cygwin, should I then call it Corel/Cygwin/Windows 2000?

    I don't. I call it Win2K regardless, because that's what it is branded as.

    The GNU tools don't make up all of RedHat linux. What about the kernel, Linux? What about the Windowing System, XFree86, Afterstep, Gnome, KDE? What about random-tool-x written by random-guy-x?

    I don't call it GNU/X11/KDE/Linux. I don't append the names of all my installed products to my OS name. I call it whatever the box tells me to call it, possibly abbreviated.

    Shit, even GNU's Linux is called Debian, not GNU/Debian or GNU/Debian/Linux.

    RedHat call's it RedHat Linux. Mandrake calls it Mandrake Linux. Therefore, I abbreviate both with the common subset of Linux.

    Deal with it. RMS is a conceited fuck and should shut the hell up as he is actually hurting is own cause by being such a dumb-ass.

    Justin Dubs

  23. Re:its sad on Apple Patches Security Flaw in Terminal.app · · Score: 4, Informative

    Simple solution.

    Use the Mac like it's supposed to be used, not like a damned windows box.

    When you close a terminal window, use Apple+W, NOT Apple+Q. Mac's are document-based, not application-based. Close the window, not the terminal app.

    Now, when you click on the terminal again it will open up a new window in a fraction of the time.

    Justin Dubs

  24. Re:Method seems easily breakable. on More on Bayesian Spam Filtering · · Score: 2

    It depend if the bayesian method is naive or not.

    If for the top 1000 highest and lowest words you build a pair-wise table of each highest paired with each lowest and keep probabilities for these pairs as well then that would solve the problem.

    For regular email that contain no spam words, no problem. For spam that contain only spam words, no problem. For spam that contain both kinds of words the pair table would catch them.

    I mean, how many valid emails can you possibly have that both have scientific terms and words like "hot teen sex." Unless, of course, it's a scientific study about either spam, or hot teen sex.

    Unless, of course, I'm completely wrong about this whole thing and just don't realize it, which is sometimes far more likely than I approve of.

    Justin Dubs

  25. Re:Wow on Run Mac OS X Under Linux · · Score: 2

    This is a moot argument.

    All the points you make are equally true of porting between ANY operating systems, not just OS X.

    Any program that uses routines particular to it's kind of executable file format, uses assembler or uses file-system specific things like /proc are bad at being ported.

    Anything that uses a specific library without abstracting it away behind a interface is bad at porting because it's tied to that library.

    These are just general rules of software development and have nothing to do with OS X.

    Yes, porting to OS X can be less trivial than porting to BSD, but that's only because BSD and Linux are incredibly similar from the superficial standpoint of user-space.

    OS X and Linux are incredibly similar in terms of available API (think POSIX), but are very different on other things, like file-system layout, kernel api and driver api. But, that's also true of ANY operating system that isn't Linux or BSD.

    Try porting to Windows. It's FAR more difficult than porting to OS X.

    I think Fink makes a very convincing argument of ability to port to OS X. Hell, they've ported KDE for god's sake. That's far from a trivial program.

    Anyway. Yes, porting can be difficult. If you do certain things that make your program less portable. But that will make it hard to port to ANY other os, not just OS X. But, it's not as hard as you make it out to be, depending on the application.

    If it's a GUI program, than that's another matter entirely and you have my full sympathies. But, still, assuming you have a well-designed model-view separation, you should be able to write a new GUI in any language, for any toolkit, and get it to work.

    Justin Dubs