HN user

calebmpeterson

381 karma

Started programming at 15 by accidentally signing up for a CS class in C/C++ (yes, both, it was an amalgam of C syntax with C++ standard libraries) which I though was keyboarding. I was totally freaked out until "Hello World" and then I loved it - you could say programming had me at "hello". Got a BS in EE/CS at a state university. I've done a lot a thick client UI and server work, but have also done web, embedded, and DSP. Java pays the bills; FP and Clojure bring the thrills. Bottom line: like many HN'ers, I love programming.

Posts7
Comments151
View on HN

Given that poor posture seems, at least in my case, to be a lack of good habit, how did you address this part? The exercises are intentional and engage the mind actively. But bad posture is what I do when I'm not paying attention... this seems particularly important if the OP is correct in stating that exercise will improve already good posture and further degrade bad.

A genuine question based on the requirement you gave for something to be scientific: how is Darwinian natural selection and the theory of macro (inter-species) evolution disprovable?

A new search engine 14 years ago

For what it's worth, you weren't the only one with that initial reaction.

I remained woefully ignorant of DDG until Spring of this year (no clue how, I just missed it), but once discovering it, my definition of a good search tool has been forever changed by a single character.

The ! (bang).

!walmart, !netflix, !.net, !clojure, !java, ...

!weatherspark (huh, it's not there, I'll submit that, now anyone can !weatherspark)

The ! means DDG is my single-point search engine for almost any site imaginable. And it uses that site's search feature instead of a naive textual scrape (a la Google).

I'm a bit younger and the father of two little boys; I had a very similar reaction. "Cool, I wonder how I can talk my sons into long boarding in the parks nearby when they get a little older."

And yes, as someone who lives less than five miles from work, it is a VERY compelling product. The only problem is traffic. In normal suburban traffic a long board + a helmet would make a motorcycle look downright benign in the safety department.

> Any conversation that mentions evolution triggers it.

I've noticed the same trend. Even if no one questions or faults the point(s) being made re: evolution, a vitriolic jab at religion (particularly Christianity and, to a lesser extent, Judaism) is quite common in the comments.

This is a loss. To quote Richard D. Alexander (professor of Zoology at Univ. of Michigan and an evolutionist):

"...indeed, at this moment creation is the only alternative to evolution. Not only is this worth mentioning, but a comparison of the two alternatives can be an excellent exercise in logic and reason."

Can you recommend any good literature discussing Galileo and Kepler and their "faith and reason" view of the cosmos? I do not ask contentiously but with genuine curiosity. In the (post) modern era there seems to be much noise about faith (Christianity in particular) and science being irreconcilable.

What little I do know about many founders of the major fields of science seems to indicate that the founding men and women saw no such dichotomy. Or at the least were willing to struggle with the questions rather than throw the entire matter out as "unscientific."

Lord Kelvin and Michael Faraday seem to have both Christians and creationists. Newton was a Christian and claimed that "all my discoveries have been made in answer to prayer." Joule (the unit's namesake) was at least a theist. Then we have Louis Pasteur, Christopher Columbus, George Washington Carver, Samuel Morse, and Blaise Pascal - each "men of faith."

Not that the above list should be taken as an argument by authority for faith. Certainly not. However, it does leave me wondering how these great thinkers saw the world so differently.

> However, few practical applications benefit from persistence in practice so this is often not advantageous.

This statement is questionable.

What is true is this: many professional software developers are comfortable with imperative/OOP/mutability. This is easier (not simpler) because it's familiar. The benefits of immutability are not obvious/familiar.

Persistent data structures enable immutable data with cheap(ish) operations that can produce updated versions of that data. This means I can expose data to multiple threads, calling functions, etc... without worrying about that data being placed into an inconsistent state or viewed in an inconsistent state by callers.

Back when much of our profession malloc'ed their memory, we always had to answer the question "who is going to free() this chunk of the heap?" And when we answered wrong, or forgot to answer, we leaked memory. Garbage collectors, while imperfect from a controlability and performance standpoint, are much better at this than humans.

An excellent analogy exists with mutable data. When I expose a piece of mutable data via any public interface, I have to ask the question "who can change this data and how will consistency be enforced?" I'm left with the answer "I don't know, I hope no one gets it wrong" or even worse: "they better lock the right semaphore(s) in the correct order". Immutable data (implemented via persistent data structures) enables me to instead say "here's the data, if any caller would like to update, they can a) pass me an updated version which I can validate, or b) call into some part of my public interface and instruct me what update to make"

Or, in the case of Clojure (my blub at the moment), put the runtime in charge of maintaining consistency during mutation using refs and the STM.

> I think it's incredibly important to remember that the plural of "anecdote" is not "data".

Honestly, where is the barrier between the two? I'm not suggesting it doesn't exist, just genuinely asking where it is, or at least where it's near?

Thinking in Datomic 14 years ago

So, Datomic is a persistent data structure persisted to nonvolatile storage... I've wanted one of these for at least the last 2 years.

If only there was an open source implementation of this concept that I could run on my own hardware. Does anyone know of such a beast?

And, no, I don't want to roll my own versioned/timestamped row schema in an RDBMS - been there, suffered that.

I can see "just a suggestion box" from the submitter perspective being really nice if it is really simple. I'm talking "e-mail your suggestions to box@getvetter.com" simple.

Perhaps some sort of analysis/aggregation on the backend for the person(s) who review the submitted suggestions. An interesting idea is using Bayesian spam filtering techniques to filter out "whiny" suggestions...

Thank you for pointing out to an avid CCW user that the Leinginen Support plugin had been released (not sure how I missed that by two weeks).

So education and the availability technology will eventually result in many people with basic programming skills will result in not only computer literacy in the "I can use MS Office" sense, but in the "sure, I can hammer out a Python script to get this task automated or sift through that data" sense.

Is there some sort of disruption of (basic) programming skills coming the way blogging has disrupted journalism?

Agreed; this was the most revolutionary idea for me when learning Clojure (coming from a classic C/C++/Java background).

Clojure's approach to state is so good/different that it has completely changed the way I write code. It was a huge paradigm shift for me.

Java got the vote from me, not because I hate it, not because it's a bad language, but because I use it every day.

There is so much that is good about Java language which I take for granted after working with it for years and yet, given my daily use of it, I see the things that it is sorely missing. I'm a huge fan of Clojure, and have worked with JavaScript a lot too... and in the end I gnash my teeth at Java for lacking immutable data structures and lambdas/first-class functions. If/when these two items become parts of the Java language and JDK, Java will be a language which I (again) find a pleasure to use.

As a user of these I couldn't agree more! I've thoroughly enjoyed using them and reading the source.

Having said that, could you do a remix of the Noir-blog example that uses Korma as the data layer :)

Because something designed to be reusable was probably designed with an eye towards reading the code a lot and may also (incidentally?) be more well factored?

Nice.

Having the canvas consume the full client area in the browser would be helpful; there's a lot of wasted space in the margins. The title/input area could be top center and z-ordered above the canvas.