There's also Leksah http://leksah.org/ . I used this a bit a few years ago. It does on-the-fly recompiles, reports errors, and shows type signatures.
HN user
twopoint718
There's an interesting post on the Haskell Cafe list from a while ago wherein Jason Dagit wonders if Git and Darcs aren't dual to one another. http://www.haskell.org/pipermail/haskell-cafe/2010-October/0...
I could make it that way, it's still pretty small at the moment. Here's the current list:
Theraputic refactoring - Katrina Owen, The Future of Programming - Bret Victor, Simplicity matters -Rich Hickey, Hammock Driven Development - Rich Hickey, Programming with nothing - Tom Stuart, Connections: Faith in Numbers - James Burke, Growing a Language - Guy Steele, Y Not - Adventures in Functional Programming - Jim Weirich, Cool Code - Kevlin Henney, We Really Don't Know How to Compute! - Gerald Jay Sussman, Keynote: Architecture the Lost Years - Bob Martin, Computer Heuristics - Richard Feynman, The Power of Abstraction - Barbara Liskov, The Mother of All Demos - Douglas Engelbart
That's exactly what I've started doing at my office. We watch a talk per week and discuss it after. Rich Hickey occupies several rows of the spreadsheet!
Totally agree. Demand better. Have your metaprogramming and be able to know where 'getPosition' was dynamically generated.
Acme is the part that I use even under OS X. The regexes are cool (they are recursive), it is easy to process a selection through a shell command, and the compiler integration is both simple but really useful.
I think what I like so much is that it is a rare example of an expert ui, designed for when you are really proficient rather than for learning or discoverability.
Love it. There are elements of this that remind me of Plan 9's Acme and the Plan 9 shell. Contrary to many people's opinion, using the mouse in concert with the terminal is a really powerful paradigm.
Thanks! I'll add this.
Nope, this article is the real deal. I was at this conference and the take on the community rings true to me. It was a no-holds-barred hug fest (and a fine conference, of course). Lest you accuse me of sockpuppet-ism, I've been on HN for 5 years.
I like how Joe points out that rebasing raises the same issues as time travel, namely paradoxes. If you have rebased commits that others have pulled, then you've created a situation where a commit both does and does not exist.
Also interesting is how rebasing can reorder the dates as seen in the log. All that git really cares about is the parentage of some commit.
Good and insightful post.
I know it is probably gauche, but here's a tl;dr: The "regexp" in your programming language isn't "regular expression" from language theory. Adding extra bells and whistles (like back references) gives "regexps" power at least equivalent to context-free languages.
This is an excellent article, and I hope the tl;dr makes you more likely to go and read it.
My two complaints are that the keyboard isn't the sort that I like, it's of the chiclet variety, and they only offer shortscreens (16:9 rather than 4:3). On the first complaint, this is really just my preference on keyboards. I'm a dvorak typist and so I'm a bit picky about keyboards; from my point of view, every laptop keyboard is bad, but I'm holding out hope for Thinkpads. On the second complaint it seems, unfortunately, that no manufacturer makes 4:3 laptops in 12"-15" sizes.
I have one of the ultra-thin models "Lemu1" and the body is plastic while the inner chassis is metal. It reminds me of the build on an iBook G4. It does feel a bit flimsy, but this model is about the size of a MacBook Air and so I figure some of the flimsiness is partly just physics.
Haha, take it just a bit farther. When you get hooked on a tiling window manager, all this twisting in the wind over what KDE/GNOME 3.0/Unity will do next really evaporates. The "surface area" of the GUI is so small there's very little to find issue with.
I think companies (yes companies) like System76 are the only real way forward for Linux On The Desktop but I think that they tend to get ignored in this discussion. Linux already has prominent commercial backing (Red Hat, Canonical, IBM, etc.) for server-focused systems and applications. And indeed, in this arena Linux has been very successful. Where these sorts of complaints should fall are directly on system builders (the Dells of the world). When someone hears about Linux, it should be possible for them to go to a store and maybe check one out.
Think about the last time you bought something. Did you go to a shop and kick the tires a bit? When I wanted an Android phone that was unconnected to any particular carrier, I was lucky enough that Best Buy was partnered up with Google. I could hold a Nexus S and see if I liked it before I bought one. This hands-on experience matters. Your local LUG is trying to get the word out, but they're volunteers. We need more businesses who have a vested interest in selling Linux to regular users. When they are, then the product will be a better fit for those users. This is the difference between 'The Spirit of St. Louis' and American Airlines.
Full disclosure, I bought a System76 machine and I'm very happy with it. It's good hardware and it all worked (and not just "works for me", but really worked). Getting a product like this is a good fit for a certain type of computer user. I have owned and bought computers before. It's refreshing to get a new computer that doesn't have layer upon layer of crapware pre-installed and I wasn't in need of some fetishistic unboxing experience; it came in a box that, when opened, it worked out of.
Also useful is WPKG: http://wpkg.org/ Though it isn't exactly the same idea (more related to multiple workstations).
This is what I thought. I wasn't going to pay attention until they specified the client protocol (Wave needs an Emacs mode). Most of the complaints I've heard about Wave stemmed from its AJAX-heavy user interface. How many people had new enough browsers to even use Wave?
I think there's at least one clojure plug-in for each of the main Java IDEs:
Enclojure (NetBeans)
Counterclockwise (Eclipse)
La Clojure (JetBrains)
The other thing that has really improved immensely is "project management" (right term?) provided by Leiningen. Now you can basically do "lein new proj_name", then edit a simple config file in the created directory and do "lein deps" to get all the packages that you referenced.There was a long post on the topic of 'regex-vs-parser' for email on reddit a while back. I hope I'm pointing to the correct person, but he wrote a parser in Haskell that validates against RFC5322: http://hackage.haskell.org/package/email-validate
I like this little bit about how the first self-hosting lisp compiler was created:
"The first self-hosting compiler (excluding assemblers) was written for Lisp by Hart and Levin at MIT in 1962. They wrote a Lisp compiler in Lisp, testing it inside an existing Lisp interpreter. Once they had improved the compiler to the point where it could compile its own source code, it was self-hosting.[4]
The compiler as it exists on the standard compiler tape is a machine language program that was obtained by having the S-expression definition of the compiler work on itself through the interpreter. (AI Memo 39)" -- http://en.wikipedia.org/wiki/Bootstrapping_%28compilers%29#H...
I was debating on whether or not "Super+n" was too much of a Linux/Emacs-ism. But, at least on my keyboard, it is a diamond: http://comedialabs.com/images-matti/lite2.jpg
The solution that (mostly) works for me is a combination of multiple virtual desktops (I use 9), and a tiling window manager (dwm). I usually don't exceed 2 or 3 windows per virtual desktop and the number of desktops is fixed. I have it wired into my fingers that Super+<n> takes me to desktop 'n', and then, typically I'm on the window I want. If not, it is a constant number of "Super+n" to get me to the window (because I don't exceed 3 windows per desktop).
This works for me because I can remember the "place" where windows are, and it is usually one or two chords away.
The TeXBook by Knuth is also good if you want to really get to know TeX (and by extension LaTeX). The writing is engaging and well-paced:
ISBN: 0201134470
It is also the final day of Nerdigras: http://www.google.com/search?q=nerdigras
I was curious and fired up sbcl:
* (= (+ 0.1 0.2) 0.3)
T
* (type-of 0.1)
SINGLE-FLOAT
* (= 0.3d0 (+ 0.1d0 0.2d0))
NIL
* (type-of 0.1d0)
DOUBLE-FLOATYeah I didn't notice what people were talking about for a bit. I almost always use highlight + middle-click. This:
http://www.jwz.org/doc/x-cut-and-paste.html
is an interesting article about the different avenues that text can take under X.
The case was: NEW WORLD COMMUNICATIONS OF TAMPA, INC., d/b/a WTVT-TV, Appellant, v. JANE AKRE, Appellee.
The source (that I found) is LexisNexis' compilation: "FL Courts of Appeal Cases from 1957"
That's what enriched text was supposed to be for http://en.wikipedia.org/wiki/Enriched_text . I say "supposed" because it seems that it has not really caught on. I consider HTML to be inappropriate for e-mail. Seems to be down at the moment, but http://www.avernus.com/~gadams/essays/20020418-html-mail.htm... is good.
Edit: fixed link
It seemed to me that in Tokyo many streets had names. It seemed more likely to have a name if it was multiple lanes and ran more or less straight for a significant distance.
Also, to me the word "opposite" seems misplaced. I think that "complimentary" would be more apt. It follows that adage that whenever there is more than one way to do something someone will choose each.
From the mailing list, my impression on the most frequently asked/discussed topics:
* Laziness: Does something hold onto the head of a list or does it drop it. Memory characteristics of the same. Unexpected memory usage.
* Compilation: When and in what way is clojure compiled. How to do AOT. How to produce named Java classes. How to create executable JARs.
* Java interop: Given a java snippet, what is the closest idiomatic clojure. What library is used to do foo.
* Performance: How can a snippet of code be made to run in less time. Why should or shouldn't a snippet of clojure be faster. What is the typical speed relationship between a piece of Java code and a piece of clojure code. How to type-hint a snippet of code. What can/cannot be type-hinted. What are and how best to use transients.
I feel like those topics account for a large percent of the traffic on the list. I'm certainly leaving things out. All of the above have been dealt with at one time or another on the list.
I think the answer to how the average person finds out about Wave is that because this is something that Google is doing, it will be reported on in the popular press; much like Twitter.