<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Humanist → Blog - Latest Comments in General</title><link>http://humanist.disqus.com/</link><description>Computer Science, Business, Blogging, and Technology Blog by Luke Hoersten</description><language>en</language><lastBuildDate>Thu, 04 Sep 2008 12:32:48 -0000</lastBuildDate><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-2103615</link><description>Thanks for the comment. Unfortunately, I know what you mean. Programmers seem to be conditioned to look for a catch-all language and languages that fit a specific domain are easily cast aside for the wrong reasons.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Thu, 04 Sep 2008 12:32:48 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-2101941</link><description>Your site has beautiful layout and it's readable. Thank's also for information! &lt;br&gt;&lt;br&gt;Too bad Erlang sucks in the shootout. It gives some wrong signals about the language to newbies.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Banador</dc:creator><pubDate>Thu, 04 Sep 2008 06:24:35 -0000</pubDate></item><item><title>Re: Ubuntu Nvidia Compiz &amp;#8220;Black Window Bug&amp;#8221; Fix</title><link>http://humani.st/ubuntu-nvidia-compiz-black-window-bug-fix/#comment-2005524</link><description>THANK YOU</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">noob ubuntu</dc:creator><pubDate>Tue, 02 Sep 2008 15:57:01 -0000</pubDate></item><item><title>Re: Fix Disqus Validation Errors on Wordpress</title><link>http://humani.st/fix-disqus-validation-errors-on-wordpress/#comment-1113667</link><description>No worries man! Thanks!</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">winstonyw</dc:creator><pubDate>Wed, 06 Aug 2008 17:05:35 -0000</pubDate></item><item><title>Re: Fix Disqus Validation Errors on Wordpress</title><link>http://humani.st/fix-disqus-validation-errors-on-wordpress/#comment-1111669</link><description>You are correct. We can only fix code we host. The point of the iFrame is that it's hosted and controlled by Disqus. Sorry about that.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Wed, 06 Aug 2008 14:06:47 -0000</pubDate></item><item><title>Re: Fix Disqus Validation Errors on Wordpress</title><link>http://humani.st/fix-disqus-validation-errors-on-wordpress/#comment-1111266</link><description>Hi, please correct me if I am wrong, but I think this only fixes the snippet of code that is embedded at the end of our blogs? &lt;br&gt;&lt;br&gt;I am using the Firefox plugin: &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/249"&gt;https://addons.mozilla.org/en-US/firefox/addon/249&lt;/a&gt;, and it still shows me errors with the iframe: dsq-reply-frame, which contains &lt;a href="http://disqus.com/embed/reply.html"&gt;http://disqus.com/embed/reply.html&lt;/a&gt; (this is the form for adding a new comment, and in fact, this very page I am on right now while posting this, is invalid too).&lt;br&gt;&lt;br&gt;Any fixes for that? Or is that beyond our control? &lt;br&gt;&lt;br&gt;I have actually posted this question on the forum: &lt;a href="http://disqus.disqus.com/making_disqus_xhtml_compliant/"&gt;http://disqus.disqus.com/making_disqus_xhtml_co...&lt;/a&gt; and I think Daniel was trying to point me to this post.  &lt;br&gt;&lt;br&gt;Thanks in advance.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">winstonyw</dc:creator><pubDate>Wed, 06 Aug 2008 13:26:40 -0000</pubDate></item><item><title>Re: Talking to Erlang</title><link>http://humani.st/talking-to-erlang/#comment-1026788</link><description>Good find. Just to clarify for the readers, JSON-RPC is a special specification for calling functions remotely. This example is just a simple HTTP body with JSON. Designed with the explicit intent of simplicity. More functionality would come from adding different URLs like REST. &lt;a href="http://weblog.hypotheticalabs.com/?p=282"&gt;Kevin Smith&lt;/a&gt; has actually just completed a screencast that should describe this RESTful setup in more detail. I'll add a link when it becomes available.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Tue, 29 Jul 2008 03:26:47 -0000</pubDate></item><item><title>Re: Talking to Erlang</title><link>http://humani.st/talking-to-erlang/#comment-1026489</link><description>luke,&lt;br&gt;check this out, a somewhat similar but more constrained way of exposing erlang methods/ functions&lt;br&gt;&lt;br&gt;&lt;a href="http://www.lshift.net/blog/2007/02/17/json-and-json-rpc-for-erlang"&gt;http://www.lshift.net/blog/2007/02/17/json-and-...&lt;/a&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mark</dc:creator><pubDate>Tue, 29 Jul 2008 02:41:34 -0000</pubDate></item><item><title>Re: Personal Brand Management</title><link>http://humani.st/personal-brand-management/#comment-959361</link><description>I've been working at an algorithmic trading firm for a few months now. I hardly have time to even write once a month for my own blog but thanks for the offer.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Mon, 21 Jul 2008 19:46:26 -0000</pubDate></item><item><title>Re: Personal Brand Management</title><link>http://humani.st/personal-brand-management/#comment-953954</link><description>I love it! You are doing so well.  Still don't want to join up?&lt;br&gt;&lt;br&gt;Your quality is so high! You would really do well to publish with us big guy... PS. How is school?  You must be done by now, did you get your marks back yet?&lt;br&gt;&lt;br&gt;Good luck with the new job as I imagine it is coming up soon!&lt;br&gt;&lt;br&gt;Cheers&lt;br&gt;Roger</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">techwinter</dc:creator><pubDate>Mon, 21 Jul 2008 06:39:41 -0000</pubDate></item><item><title>Re: Shortcomings of Mercurial</title><link>http://humani.st/shortcomings-of-mercurial/#comment-818953</link><description>Ooops... sorry for repeating myself.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jakub Narebski</dc:creator><pubDate>Sat, 05 Jul 2008 18:18:32 -0000</pubDate></item><item><title>Re: Shortcomings of Mercurial</title><link>http://humani.st/shortcomings-of-mercurial/#comment-818923</link><description>Git pack files uses binary xdiff for deltaifying, so having many large binary files and moving them around shouldn't be the problem. On the other hand Git does not track renames, but does similarity estimate based rename detection, so if representation of binaries changes much (e.g. encrypted files) you are out of luck...</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jakub Narebski</dc:creator><pubDate>Sat, 05 Jul 2008 18:12:29 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-787039</link><description>I agree with you on both points. The first one I've addressed countless times already in response to other comments.&lt;br&gt;&lt;br&gt;The second point, I believe, is partly why Erlang has been so popular in industry: it's a small and simple language. Simple fine-grained explicit concurrency works well and composes well enough with a very shallow learning curve. This was done by focusing on a smaller problem set and cutting some of the functional features available in academic languages. &lt;a href="http://en.wikipedia.org/wiki/NESL"&gt;Implicit concurrency&lt;/a&gt;, for instance, is still very academic and doesn't have the pragmatic efficiencies that I tried to highlight in the conclusion of my post. There are already many fully-featured functional languages out there and you see how well they've done in industry. Point taken, though.&lt;br&gt;&lt;br&gt;Most functional languages start with abstraction and cut away until the hardware level is reached. Imperative languages tend to start with hardware and add abstraction. Erlang is one of the few functional languages that took the lessons of the highly abstracted functional languages and made it machine aware. Hybrids are the key and are why languages like Python and Ruby are becoming so popular.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Tue, 01 Jul 2008 04:15:57 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-786763</link><description>Nice article, the core point is very sound, but a couple of minor flaws: Firstly the syntax of Erlang comes largely from Prolog as you said, but Prolog is not a functional language (and one might argue that putting so much syntax from a logic-programming language into a functional language is a big part of what people are complaining about with Erlang syntax). And secondly I don't believe that too much work has gone into using the immutability properties of Erlang code as a basis for compile-time optimization, although in theory it's certainly possible. Unfortunately Erlang only has the nice properties of functional languages at the smallest scale, the explicit fine-grained concurrency makes it harder to reason about on a larger scale.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Greg M</dc:creator><pubDate>Tue, 01 Jul 2008 03:17:25 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-780566</link><description>There is no direct implementation of a priority queue in the Erlang stdlibs as far as I know but it has everything you need to build one. It's pretty reminiscent of C++'s stdlibs with sets, queues, trees, and dictionaries. Googling &lt;a href="http://www.google.com/search?hl=en&amp;q=erlang+heap&amp;btnG=Search"&gt;"erlang heap"&lt;/a&gt; turned up a &lt;a href="http://en.literateprograms.org/Heapsort_(Erlang)"&gt;heap sort&lt;/a&gt; which looks comparable to any imperative language. You wanted something pre-made though, correct?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Mon, 30 Jun 2008 12:28:09 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-776059</link><description>Is &lt;a href="http://erlang.org/doc/apps/stdlib/ref_man_frame.html"&gt;this&lt;/a&gt; the library you mentioned in our conversation? I am pretty familiar with these modules--I even used a couple in my final project (pg stands out). Unfortunately there is nothing in here that I saw could be forced into a priority queue.&lt;br&gt;&lt;br&gt;I seem to remember going through these modules with you to see if anything would work. It was so long ago so I may remember wrong :)</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">philharnish</dc:creator><pubDate>Mon, 30 Jun 2008 02:01:07 -0000</pubDate></item><item><title>Re: Erlang Circular Process Communication</title><link>http://humani.st/erlang-circular-process-communication/#comment-775553</link><description>Thanks a lot =)</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Sun, 29 Jun 2008 23:25:20 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-775548</link><description>Erlang may or may not actually copy the data. The point is that if the user is unable to treat the data as mutable, the compiler or VM can know more about the data and optimize where possible. Think of it like copy-on-write except without the write, we don't ever need to copy. So to the user, the data is always "copied." Similar tricks are done with tail recursion etc.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Sun, 29 Jun 2008 23:24:01 -0000</pubDate></item><item><title>Re: Erlang Circular Process Communication</title><link>http://humani.st/erlang-circular-process-communication/#comment-775160</link><description>Nonetheless you did brilliantly. That is a very elegant solution. I hope you keep at Erlang. It is a very important language.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">AlainODea</dc:creator><pubDate>Sun, 29 Jun 2008 21:32:58 -0000</pubDate></item><item><title>Re: Erlang Circular Process Communication</title><link>http://humani.st/erlang-circular-process-communication/#comment-774353</link><description>The eat function is the actual "dining" or resource sharing code. You'll have to write that part yourself =) You could have it simply print out the neighbors to see who all can communicate with each other.&lt;br&gt;&lt;br&gt;I was more interested in the actual setup of a circular communication ring because it's not as trivial as it seems. This was my first Erlang program so doing it cleanly was a bit of a challenge for me.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Sun, 29 Jun 2008 16:55:33 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-774012</link><description>This is a very good overview of the reasoning behind some of the more fundamental design choices in the Erlang VM. I found it very interesting and informative.&lt;br&gt;&lt;br&gt;Why does Erlang copy data between functions and messages if it has immutable data? It seems like copying is only really required for isolation if data is mutable. I have read that it certain circumstances (large binaries or lists for example) that the arguments/messages use shared memory under the hood if the receiver is local.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">AlainODea</dc:creator><pubDate>Sun, 29 Jun 2008 15:04:42 -0000</pubDate></item><item><title>Re: Erlang Circular Process Communication</title><link>http://humani.st/erlang-circular-process-communication/#comment-773941</link><description>It is interesting to see how concisely Erlang's message-passing and pattern-matching addresses the Dining Philosophers problem. I would like to see how Kilim does this since it uses cooperative multi-tasking unlike Erlang which uses preemptive multi-tasking.&lt;br&gt;&lt;br&gt;I would love to try this, but the dine_phil module does not compile:&lt;br&gt;./dine_phil.erl:50: function eat/3 undefined</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">AlainODea</dc:creator><pubDate>Sun, 29 Jun 2008 14:41:08 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-772215</link><description>I think that if you actually looked at Erlang you would see that the reason for this is very simple and obvious. In Erlang it is perfectly legal to have *different* functions with the same name but with different arities, so if you want to reference a function uniquely you need to specify the arity. Of course, in some limited situations this may not be necessary but in the general case it is.&lt;br&gt;&lt;br&gt;This is usually demonstrated in the second version of factorial shown, the tail-recursive one.&lt;br&gt;&lt;br&gt;Sorry for being so sarcastic here but this feature is so basic that to have missed it is really surprising.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">rvirding</dc:creator><pubDate>Sun, 29 Jun 2008 01:05:20 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-766187</link><description>yeah, the syntax for referring to top-level functions is pretty absurd.  i've only barely peeked at Erlang, but i'm fairly sure the reason for this particular eccentricity is that (on account of the language's roots in Prolog) lower-case symbols are "atoms" (while upper-case symbols are variable references).&lt;br&gt;&lt;br&gt;so when they added closures to the language (see Armstrong's fascinating "History of Erlang"), these could naturally be assigned to (upper-case) variables and then referred to by same.  but top-level functions, historically lower-cased and distinguishable from atoms only by the syntax of their use (function application versus argument-passing), had to have their names mangled (prefixed with "fun", etc.) in order to distinguish them when used as arguments.&lt;br&gt;&lt;br&gt;(i don't know why the compiler is so lazy as to require that you specify the function arity.)&lt;br&gt;&lt;br&gt;it seems the best solution would have been to leave Prolog behind and name functions in the same way as other variables, reserving a special naming convention for atoms.  Common Lisp's ":foo" syntax is not bad, and would leave lower-case names for variables.&lt;br&gt;&lt;br&gt;i'm also worried about the scope of Erlang's atoms -- instead of using them to distinguish record types, i would prefer abstract datatype constructors (ala ML or Haskell) that are assigned to variables and thus scoped like everything else so that software can be safely composable (are atoms universally scoped in Erlang?!) -- but maybe this is an important mechanism for making hot code-update feasible (i've used a similar mechanism to ease schema migration in persistent object databases).</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">daniel b. giffin</dc:creator><pubDate>Fri, 27 Jun 2008 23:07:39 -0000</pubDate></item><item><title>Re: Why Make Erlang a Functional Language?</title><link>http://humani.st/why-make-erlang-a-functional-language/#comment-765730</link><description>When I say that "Erlang’s syntax derives from the functional programming paradigm," I don't mean to imply that Prolog is a functional language. I'm trying to point out that the syntax was chosen to try and facilitate the functional paradigm. Whether that was achieved or not is not in the scope of this post. The real point of this post is on &lt;b&gt;data immutability&lt;/b&gt; and is why syntax was only mentioned in the first few paragraphs. I was trying to show that someone who wanted to bash on Erlang certainly could find something more fundamental than the syntax which they didn't even create.&lt;br&gt;&lt;br&gt;I in fact agree that Erlang has a sub-par syntax but again, that wasn't the point of this post.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LukeHoersten</dc:creator><pubDate>Fri, 27 Jun 2008 21:59:48 -0000</pubDate></item></channel></rss>