Hacker News new | past | comments | ask | show | jobs | submit | patrickc's comments login

troll, perhaps? gave me a laugh


The post is about how a programmer thinks that there is a lot of things that are more complicated than those should be; and even use web development as an example. PHP is a programming language with a lot of native functions to do things in the web that would be a lot harder otherwise...

So, what is the trolling here? The lack of serious tone in the comment?


Yes. Google walmart "moving pennies" and click on the first result


Please don't use google as a reference. Please, when you want to make a reference, use anything else.

The first two results are to hacker news (this page!) and after that the results are to pages about penny stocks.

http://www.google.dk/search?q=walmart%20%22moving%20pennies%...

I know my google-fu is worthless but I can at least follow directions, and it still comes up with nothing.


To be honest, I think he was making a joke about the HN post being its own reference, although I'm not too sure...


I was trying to illustrate that telling someone to google for references when they already indicated that it was unsuccessful, is not likely to be successful.


To quote Douglas Crockford on JavaScript, "Lisp in C's Clothing"


Before I learned a Lisp, I agreed with that statement. Now, I think nothing could be further from the truth.


Indeed. Lisp is a simple language that can be completely defined in half a page. A naive implementation takes less than a thousand lines of code. The language is homoiconic, i.e, there's no difference between programs and data -- everything is a list. This enables programmers to perform complex transformations on code using macros. Lisp compilers such as SBCL generate code that is almost as fast as C++. Oh, and the original Lisp as described by McCarthy is strictly rooted in mathematics. If you limit yourself to writing only a subset of Common Lisp/Scheme -- one that emphasizes immutability and recursive functions on lists of symbols -- it is possible to use formal methods to prove the correctness of your code.

None of that is true for JS. I don't think Crockford thought his remark through.


As a lisp (Scheme and Clojure) user who nonetheless takes issue with this statement:

1. Modern (JS) runtimes have JITs that can generate code almost as fast as C++.

2. You can write purely functional code in JS.

3. JS has arguably less features than R5RS Scheme, which itself is hard to fit on half a page.


What do you mean by point 2? Unless you don't plan on doing any I/O, you can't write purely functional code in JS. Not that you can in Lisp either...


I meant that there is nothing about JS that prohibits writing pure functions and reaping all the associated benefits (formal reasoning, etc.)


If it ain't got macros, then it ain't a Lisp. Javascript is definitely no Lisp, but I really like that it allows function composition, which is somehow reminiscent of a Lisp. f(g(h(x))); instead of (f (g (h x)))


Um, pretty much every C-derived language supports function composition, and uses that syntax for it. Am I missing something?


You're right. I meant to say passing first-class functions as arguments, rather than pointers to functions as you would in C or an object method as you would in Java.


I agree. I think this "JS is Lisp" nonsense is a pretty little platitude that many developers use simply because they don't know any better.


Crockford goes on to clarify that Javascript is really a combination of Java syntax, Self inheritance, and Scheme-like lexical scoping.


This is brilliant in its simplicity. It would be very feasible to implement on a single web server, but what are some ways to extend it into a protocol?

If multiple servers mirror an email thread, how does one edit what he has already sent/posted? I think this can be done by using a public key encryption scheme, so that only the person who published it with their key can edit it on the multitude of servers that share this new email protocol.


The source code is well commented


I wonder if this means more DRM is on its way to Ubuntu.


They specifically state that there is no included DRM. However, publishers are free to implement their own DRM, however ineffective it might be.


What DRM?


I highly doubt that. You can't have an open source software with DRM.


Why not? It's the encryption keys that are important, not the encryption method itself.


Because in DRM is security through obscurity. The data/programme/file is encrypted to hide from the user, but must also decrypt it from the user, and the user has full technically and legal rights to that code.

If you have a DRMed music file, and (say) an open source music player can play it, then the file is encrypted and the encyrption key is kept with/in the file. You can just look at the source code of the music player and see it extracts the key from the file (or from your master key file), and see how it decrypts the file. You can then decrypt the file yourself. ergo drm breaking.

DRM can also force restrictions like "Only allow person with account id X from opening this programme", that could be implemented in the code as a function that says "doesUserHavePermission()". If the code is open source, then you just change that function to always return true, and to always allow everyone to use it. (Since it's an open source programme, you can then distribute your code with your 'fix' applied)


You can just look at the source code of the music player and see it extracts the key from the file

To be fair, we can also do that without source code. It only (yet again) proves DRM is pointless against technical people that are determined to break it.

Non-technical people or people that do want to play "by the rules" won't do that. Also, the vendor could do things such as embed the name of the buyer inside the downloaded executable/data, to discourage sharing...


To be fair, we can also do that without source code

You can, but it's not the same.

With an open source programme:

* it's much easier to find & disable the DRM checks

* I can (legally) distribute a version with DRM disabled

* I can legally distribute a (probably small) patch that disabled the DRM, it's much easier for someone else to verify that my patch disabled the DRM, and doesn't have a trojan than if I give a binary diff.

* With open source programmes, I could submit my patched version (that disables the DRM) to a very freedom loving distro (like debian), and campaign for it's acceptance into the package index (making all Debian users not have DRM, etc.)

These things are technically possible with propriaty software, but you don't have the advantages above.


Most people just browse to web. If you want a shell, it's way easier to use a linux thinkpad that has a proper keyboard and proper OS, as opposed to an iPad. But that's not to say that an iPad is not good for some things.


Thank you for posting this to HN.


I'll second that. Strang's book is by far my favorite introductory math book. He addresses fundamentals quite well, and gives good treatment to applications such as linear programming and game theory.


I've no doubt they can monetize it, but I suspect there'll be "traffic forwarding" libraries popping up on Github, if this idea takes off


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: