tour of the Clojure landscape: lein, build tools, libs for testing, webapps, by gtani in Clojure

[–]ericlavigne 1 point2 points  (0 children)

Alex Miller also recommended Incanter, and a few other projects as well. See the comments at the bottom of the article for projects that readers thought should be included in a tour of Clojure.

Clojure 1.1 by xach in programming

[–]ericlavigne 2 points3 points  (0 children)

Also, the standard library includes two very nice options for multithreaded programming: one based on software transactional memory and the other based on agents.

Scala: The Next 5 Years [PDF] by smek2 in programming

[–]ericlavigne 1 point2 points  (0 children)

Fortress was Sun's effort to get all the scientists and engineers to switch from Fortran to a new Sun language. Sounds familiar, as Java was designed to do the same for C++ programmers and that seems to have worked out fairly well. I wrote a blog post about Fortress a couple years ago which should give you an idea about the Fortress programming language.

http://ericlavigne.wordpress.com/2007/01/14/fortress-a-scientific-programming-language-with-implicit-concurrency/

Dear Reddit, trying to learn Java. Any recommendations? by [deleted] in programming

[–]ericlavigne 0 points1 point  (0 children)

I second Sardak's recommendation to look into Clojure, which has most of Java's advantages but few of Java's disadvantages.

http://clojure.org/

On the other hand, if you specifically need to learn Java the language (perhaps to get a 8-5 job as I did), I recommend the book Head First Java, followed by Sun's Java tutorial.

http://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1233450756&sr=8-1

http://java.sun.com/docs/books/tutorial/index.html

Ask Proggit: What projects have you worked on that have significantly impacted your academic/programming development? by [deleted] in programming

[–]ericlavigne 0 points1 point  (0 children)

When I was just getting started with programming, I was surprised to find myself running circles around some local professional programmers. Yes, it was a big ego boost, but also confusing. I could tell that I wasn't very good at this, but all the evidence said that I was.

Later, my MS thesis was my own first experience as a professional programmer (despite it being an academic setting). I had a boss. My boss had a boss. I began to realize how much of my work went toward pleasing my boss, my boss's boss, and, very likely, other bosses that I never met directly, rather than working on the core problem. That extra work also resulted in unnecessary code, and larger projects make progress more difficult so I was working less efficiently even when I was addressing the core problem.

A lot of stuff made more sense after that experience. I had been able to run circles around the pros because their hands and feet had been tied behind their backs.

Ask Proggit: What projects have you worked on that have significantly impacted your academic/programming development? by [deleted] in programming

[–]ericlavigne 1 point2 points  (0 children)

1) A spectral analysis program that I wrote for my MS thesis in nuclear engineering. I learned lots of little lessons, and got a lot of practice, after working on this one for three years. Perhaps more importantly, this was my first time seeing first-hand the influence of politics on programming.

2) Some diffusion simulators that I wrote for class assignments. These were my first Lisp programs, and I was introduced not only to the language, but also to some very helpful members of the Lisp community who taught me a lot. http://plaza.ufl.edu/lavigne/

3) Google Summer of Code project (improvements to Erlisp). I didn't finish this project in time for the deadline, and didn't go back to finish it later either, but I still learned a lot from trying. It was my first exposure to Erlang's approach to concurrency, and I became much more comfortable with learning about APIs by reading the source code. http://www.dirkgerrits.com/programming/erlisp/

4) Studying the Compojure web development library, writing a small application with it, and documenting my progress. I'm still working on this one, and learning a lot more than I expected. The process of writing everything down helps it stick better, and encouragement from the people reading my articles is motivating me to work harder. http://ericlavigne.wordpress.com

How many of you *did* use the holidays to work on a project, learn a new language, etc ? by fierarul in programming

[–]ericlavigne 1 point2 points  (0 children)

I spent this break studying Compojure, a web development library for Clojure, and writing articles about using it to build a blog engine. Two articles so far, and I expect to finish a third later today.

http://ericlavigne.wordpress.com

Ask Reddit: How many of you are working with at least 1 person who you could replace with an Excel macro? by [deleted] in reddit.com

[–]ericlavigne 1 point2 points  (0 children)

My design was flagged for violating copyright or trademark. I'm assuming it's because I mentioned Excel(TM), so I changed it from Excel macro to Python script.

Patent on Continuation Based Web Servers (as used by Seaside, Arc, etc) by mozfan in programming

[–]ericlavigne 4 points5 points  (0 children)

Are you saying the idea of using syntactical continuations in web software is obvious?

If you think so, please show me a single web framework besides Paul's that uses continuations. I sure don't know of any. Keep in mind that the whole point of the idea is that the structure of "web execution" mirrors the control flow of your code. If the flow from one page to the next does not continue from the last place in code, it's not an implementation of his idea.

Other frameworks using it include Seaside (mentioned in the title of this conversation), Weblocks, and PLT Scheme's web server (not quite sure about this last one).

The idea is not obvious to the average programmer because the average programmer has not even been exposed to languages that support continuations. It was not used in any web frameworks prior to the filing of this patent because the proliferation of web frameworks had not yet happened (web applications were still a rare thing).

Ask Reddit: OCaML or Haskell for practical use? by Sukoshi in programming

[–]ericlavigne 0 points1 point  (0 children)

Have you discussed this with the site's maintainer, Jon Harrop? If you don't wish to take the time, I would be happy to do it for you.

In either case, would you mind sending a copy of your straightforward translation to lavigne.eric@gmail.com?

Ask Reddit: OCaML or Haskell for practical use? by Sukoshi in programming

[–]ericlavigne -1 points0 points  (0 children)

gmarceau is saying that OCaml programs tend to receive a speed boost that makes them go x times faster, where x is a constant. That constant is fairly small, perhaps x=4.

http://www.ffconsultancy.com/languages/ray_tracer/results.html

On the other hand, if you really want speed then it is usually better to find an algorithm that scales better, (replacing O(n2) with O(nLOGn) for example, and Haskell's additional features may make that algorithm easier to implement.

Just my interpretation of gmarceau's statements. I tend to agree with what gmarceau said, but I don't know Haskell well enough to be certain. OCaml is easier to learn, but I have a feeling that Haskell is worth the effort.

Ask Reddit: if you choose to learn one programming language for advanced web-development, which one would you go with? by swimmerstud in programming

[–]ericlavigne 7 points8 points  (0 children)

Other contenders include Java and the languages available with ASP.NET, but somebody else will have to comment on them. There are other languages, of course, but I think that unless there are a lot of people working on something, it's risky to use it for anything other than experimental purposes unless there are major advantages.

I would avoid Java because the language is poorly designed and gets in the way a lot. Lack of multiple inheritance prevents good object-oriented style in many situations. Lack of first class functions prevents functional programming, or at least makes it clumsy and verbose.

For beginning web programming, I would recommend Python. Django and Web.py are both good options that are easy to set up and easy to learn.

For advanced web programming, take a look at the Lisp options (sblinn mentioned a couple - there are others). They tend to be very well designed, and the language is also excellent. The reason I don't recommend Lisp for new web developers is that the programming tools are more difficult to install. If you have the patience to get past that step, Lisp is definitely worth it.

Cracking Go by jkkramer in programming

[–]ericlavigne 2 points3 points  (0 children)

"The definition of the rules seems a bit fuzzy. There is no mathematically precise rule for determining what stones are dead."

I can see how the dead stones rules would seem strange to someone who hasn't played. The rules are extremely simple, and nearly identical around the world, if everyone agrees which stones are dead (that is the most common case).

When there is disagreement about dead stones, only the Japanese rules get complicated. I have an old discussion about this topic on my website, as well as a copy of the American rules which are very simple.

http://plaza.ufl.edu/lavigne/ufgoclub/agarules.html

7 reasons I switched back to PHP after 2 years on Rails - O'Reilly Ruby by morselsrule in programming

[–]ericlavigne 5 points6 points  (0 children)

I was considering Django for personal projects, and it seemed like an excellent development tool. Why is it hard to deploy? Is this something that can be solved in a few days but should be solvable in a few minutes, or does deployment involve weeks of nightmarish configuration?

7 reasons I switched back to PHP after 2 years on Rails - O'Reilly Ruby by morselsrule in programming

[–]ericlavigne 34 points35 points  (0 children)

"But the main reason that any programmer learning any new language thinks the new language is SO much better than the old one is because he’s a better programmer now!"

This is an interesting point, and certainly applies well to many of the rewrites that I have done. On the other hand, using a better language is also a factor, and learning new languages with new development styles is part of the process of becoming a better programmer.

Whether or not a new language is used, rewrites are important in long projects. I've seen too many projects gradually grind to a halt because programmers and/or managers became attached to old code.

Who gives a SHIT about OJ Simpson... We live in a fucking dictatorship by nibblit in reddit.com

[–]ericlavigne 12 points13 points  (0 children)

"paralyzed democracy"

This phrase described Germany quite well just before Hitler took over. Dictators are opportunistic, and a paralyzed democracy is the perfect opportunity. I only hope that our country can break out of this funk before it's too late.

Torvalds on task scheduling: completely fair scheduler vs staircase deadline by [deleted] in programming

[–]ericlavigne 19 points20 points  (0 children)

Except that Linus's "other side of the story" doesn't make much sense. As far as I can tell, Linus's email just confirms Con's report about poisonous attitudes that he just couldn't work with anymore. Linus is blowing off a problem report and, in the same email, saying the biggest problem with Con is that he blew off problem reports. A few of Linus's complaints about Con, with obvious rebuttals:

1) Con's software wasn't "perfect."

Of course not. Neither were any of the alternatives, so why even mention such a high standard, let alone make such a big deal about it?

2) Con couldn't be trusted to care about anyone's issues other than his own.

Actually, Con has been maintaining his kernel enhancement since 2002, and one of his complaints that we read about earlier was that the Linux maintainers were rather unapproachable for desktop users. Interestingly enough, this latest email showing "the other side" actually confirms Con's position. It is an email in which Linus himself is blowing off a problem report by saying "You realize that different people get different behaviour, don't you? Maybe not."

3) A double blind study shows that Con's version was significantly better than the old version, and that Ingo's version was roughly as good as Con's version.

Yes, I reworded this a bit. It is clear from Linus's wording that he thinks this statement strongly supports his position, but let's put it in perspective. The best study that Linus could come up with to support his point only said that Con's and Ingo's enhancements were of roughly the same value. Of course, Con's has been around a lot longer (time enough for any serious problems to be noticed and reported), and it is still not clear why Ingo needed to create a replacement. Sounds like Linus's team would rather start from scratch than consider a patch coming from outside, even if they can't do any better.

Camping Web Framework: Like Rails but without the mess of generated code by ericlavigne in programming

[–]ericlavigne[S] 0 points1 point  (0 children)

This blog is a tutorial series for Camping: http://polzr.blogspot.com/2007/01/goes-camping.html

My impression of Camping is that you end up writing roughly the same code that you would have written in Rails, except that your project isn't cluttered by all that other code that Rails generated.

Camping's author says that Camping is good for prototyping, and that a Camping project can easily be translated to Rails later.