faehnri.ch

the blog fantastic

Back at It

I took a week off after being at a point I can call my Lisp interpreter clasp finished. Now I’m starting a series of small projects to learn front end development. I’m calling it n-days.

All but Finished With Clasp

I’m all but finished with my Lisp interpreter written in C, clasp. The big milestone I got to with it is I’m able to define variables of lambdas and can evaluate those lambdas. This is enough to write Newton’s method of calculating square roots.

It’s not done. I still have to implement the cars and cdrs and such to process lists. I know, I can’t call it LISP if there’s no LISt Processing. With lambdas done I feel I’m through the most difficult part, I have a good idea of how to do the rest and it won’t be as much work. I’ll run into bugs for sure, but not as many as I had with define and lambda.

I do feel it’s well enough done that I can talk a little about it’s development.

Local Creationism

creationism photo: Creationism Creationism.jpg

I’ve heard people talk of the Creation “Museum” saying it was in Ohio. “That monument to ignorance isn’t in MY state!” I would respond. Well, it isn’t but I had no idea if there wasn’t another in my state. A quick search revealed there was one. The Akron Fossils and Science Center.

With the recent Bill Nye and Ken Ham debate bringing creationism into the spotlight again, the Akron center put out a few posts about it starting with one about their thoughts on it.

What I’ve Been Up to: C and Lisp

I read feeds and news sites to find interesting posts or projects. This leads to an exponential explosion of links causing the act of “reading” to be reduced to “mark to read later.” Realizing my ability to consume content is limited to a serial fashion that can not feasibly keep up with this fractal procession of content, I’ve adopted the heuristic of “just pick something.”

With this, I pick one thing and stick to it. I’ve violated this already since I’m really working through two things at the moment: the programming languages C and Lisp.

What I Think About Math

I recently talked with Jeremy Paul of Theater Ninjas about their upcoming production of C∅dΣ. They want to know people’s thoughts on things like computers, software, and math. So here’s some of my thoughts on math.

Finally Done With This Garbage

I don’t know if I committed to posting once a day in the new year, but if I did then I already failed by missing yesterday. I make up for it with an early additional post of what wasted my time not allowing me to do anything else yesterday.

I found the creationist book Creation: Remarkable Evidence of God’s Design by Grant R. Jeffrey in the science section of a used book store while I was looking for Jerry Coyne’s book Why Evolution is True. I thought it was funny there was a creationist book right by an evolution one so I bought both. I had the intention of going through the entire book Creation and mark every misunderstanding, fallacy, god-of-the-gaps, or other usual creationist bad arguments.

But I couldn’t, there was just too many that I would have just highlighted the entire book. So instead I read through it and made comments in the margins. The book is under 300 pages with large type, spacing, and margins, so wasn’t hard to get through in two evenings while writing notes in it.

Jeffrey is an apologist, so that basically means to make fancy arguments that your particular religion is real (usually Christianity) but those arguments fall flat if you actually think about them. Apologetics starts with the conclusion that their god did it, then try to say how that fits reality. You see this in the very first paragraph where he states that statements in the Bible are scientific. Right there he also admits that he doesn’t understand the processes of science, it doesn’t involve just accepting something written thousands of years ago.

The book tries to show how scientific discoveries disprove evolution and show evidence of design. The entire thing is an exercise in irony as the methods that made those discoveries are the same ones that lead us to accept evolution. If you accept how one scientific discovery was made, you should accept others made the same way.

He is at least honest when he says if you accept evolution then you reject the literal account of biblical creation, and if you don’t accept one thing in the Bible as literal then how can you be confident of anything else? You can’t, nor is there reason to, so good reason to just chuck the whole thing. But of course he wants to hold onto his premise so he’ll throw out any evidence to the contrary.

You can tell he already has the conclusion he wants because in all the arguments it isn’t just a vague intelligent design. No, it’s specifically the Christian god. He never gives a reason that it can’t be Zeus or Odin.

He also tries to show how the Bible totally said things that we only now are discovering with science. There’s usually two types of things in the Bible that make people say it is totally scientific. The first is it’s something so obvious that they already knew, like when he claims the Bible knew blood was important to life. Any bronze-age butcher or murderer knew that.

The other type of statement are the vague ones. The problem with these are they are so vague you could say they mean anything. It could have also meant something that ended up being wrong. The problem is you have as much reason to think it meant one thing as another person saying it means another. And the amount of reason for both is none. You must prove that it means what you think.

Note how only now saying it talked about something once science has validated. With that he is bowing to authority of science.

One funny claim was that the Earth orbits in a perfect circle. Of course we know the orbit is an elipse that goes from 91 million miles from the sun to 94.5 million miles.

I think I’ll purge my brain of this garbage by reading Coyne’s book now.

Happy New Year!

I don’t make new year’s resolutions. If I want to change something, I just decide to do it right there and then. A recent one was to write on this blog more. I write here mostly for myself, I could use practice expressing my thoughts.

However, it is convenient and feels good to start things on a new year. So I’ll try writing every day starting today. I wrote a couple posts recently which means I got a head start if anything. I’m trying to throw in a few ostentatious words and phrases too.

Other resolutions, that I’ve already been doing, is to work through books like The C Programming Language like I mentioned yesterday. I’ll work through it a bit each day. I also want to write at least a little software each day, even if just changing a single line of code. I would also like to work with others on projects or just gather and talk about this kind of stuff. I’ve heard of mentoring as a way to improve your software development, but don’t really know how that would work so just getting together seems like enough.

Like most, a resolution I’m throwing in there would to be more fit. I’ve been going to a personal trainer for three years then felt confident enough on my own and joined a Crossfit gym. Continuing goals includes persuing fitness even less dependent on others and go to a gym more on my own. Food and nutrition is a part of this too. I eat relatively healthy but can improve. I mostly cook from fresh ingredients so that on its own is a way to keep things healthy.

Another resolution is to get rid of things. I don’t need as much stuff as I have.

Looking back on 2013, I gues it was a good year. Got more serious with fitness and ran my first half marathon (on trail.) Also started a new job and rode my bike to work a few times. I started playing in the Cleveland Softball League on the team Crank-Set, I would say that was one of the best parts of my year.

Lots to look forward in 2014 though, here’s hoping for a good one.

C Esoterotica

With my new Kindle from Christmas, along with an Amazon gift card, I looked for digital books to read. The C Programming Language being on my list of books I think I should go through but for some reason thought not essential, I felt as a gift card purchase was a good reason to get something like this that you normally wouldn’t.

I’m in the introductory chapter. It’s just an intro to the language, just something to have you quickly writting in it. On the part about functions, it goes into the history I think only to show you how bad or weird the original C language had you defining functions.

This was how you defined a function in the original C:

power(base, n)
int base, n;
{
  int i, p;
  p=1;
  for(i=1;i<=n;++i){
    p=p*base;
  }
  return p;
}

If no return type was declared then it was assumed to be int. You declared the parameter types between the name and the statement block.

You know how C makes you declare a function at the top of your source file before using it if you use it before the definition? You could declare it like this:

int power();

Parameters weren’t allowed in the declaration. And I say “could” because since in this case the return type is int you weren’t even required to declare this function with a prototype.

And this all compiles in ANSI C, so it could while in a “transition period” that I guess they never left. I wrote this function in a source file, after main where it was used without a prototype declaration, and it compiled fine (no warnings if you have the default warning level, but a bunch of warning if you have all warnings on.)

Conclusion

Programming languages can be weird, and that’s even without strange historical artifacts and backward compatibility.

Further Reading

See my notes on C (not done) where you can find links to stuff like this: