The Mind’s I

The Mind’s I by Douglas Hofsdater and Daniel Dennett is a collection of short stories and excerpts focusing on meaning of self, consciousness and artificial intelligence. Each chapter consists of a story or excerpt followed by reflections of Hofsdater and Dennett.

Continue reading

The Thrilling Adventures of Lovelace and Babbage by Sydney Padua

Being somewhat fan of both the difference and analytical engines, The Thrilling Adventures of Lovelace and Babbage by Sydney Padua sounded like a book I definitely should read. It tells a story of polymath Charles Babbage, mathematician-writer Countess of Lovelace (better known as Ada Lovelace) and their ingenious analytical engine in graphical novel format. Since analytical engine was never built, the story is set in the alternative universe.

Continue reading

New writing project

I haven’t been writing much here recently. Partly due to starting a new job (after busy day I just want to relax) and partly due to playing lots and lots of Crusader Kings 2 (not quite sure if this is that relaxing game though). But I have been tinkering with some code and other stuff on my spare time still.

One of those other stuff – projects is Hy Files. As far as I know, there hasn’t been an attempt to write a book about Hy before. Initially I wanted this to be a neatly laid out pdf or even physical book, but quickly realized that by the time I would get around finishing it, the Hy would be really different language. So I decided to publish what little I had gotten written and make it a living book. Sources are available at GitHub and I plan to keep on chipping this on my spare time.

The Reasoned Schemer

The Reasoned Schemer by Friedman, Byrd and Kiselyov is one of those deceptivingly thin books that are packed full of content. It’s written in the same style as The Little Schemer and The Seasoned Schemer, namely in form of questions and answers that slowly teach you how relational programs are written. Slowly probably isn’t the correct word though, as the book is only 160 or so pages long, so the pace is actually quite high and at least I couldn’t internalize everything in one go (not even after re-reading it multiple times).

Continue reading

Gödel, Escher, Bach: An Eternal Golden Braid

Gödel, Escher, Back: An Eternal Golden Braid by Douglas Hofstadter is one of those books that are somewhat hard to describe. On a first glance it seems that the book is just a collection of funny stories, puzzles and anecdotes about codes, mathematics and music, while sometimes touching things like biology. Upon further inspection a theme appears that is woven through each and every chapter: what is consciousness and how can it emerge from simple mechanical constructs.

Continue reading

Timesharing between projects

Not sure if timesharing is 100% correct term, but it’s the best term I could think of. I’m a person who likes to tinker with lots and lots of different things. This is fun and there’s always something new to see and try out. The problem of course is that the nothing ever gets finished.

To try to remedy this, I decided to do a little experiment and divided my week between three projects: reading through Gödel, Escher, Bach: An Eternal Golden Braid,working with pyherc and learning Unreal Engine.  Monday and Thursday are reserved for GEB, Tuesday and Friday for pyherc and Wednesday and Saturday are for Unreal Engine. Sunday isn’t specifically for anything. On every given day, I would spend at least an hour or two working on the given subject.

After trying this for one week, I have spotted some problems with the idea. Especially coding is something that isn’t easy to constrain within fixed slot of time. Sometimes progress is quick and you want to keep working on more. Sometimes problem is so interesting that you would want to spend more time on it. And so on.. This happened on both times I was working on pyherc. I have there fairly interesting problem to solve, which requires quite a big rewrite of code. One evening twice a week is too short time to get really deep in the code and start cutting pieces and rearrange them differently.

However, with GEB this system is working fairly well. I read one evening and then spend two days mulling over the ideas and digesting them. Then I read some more and repeat the process. Concepts and ideas presented in GEB take me some time to really grasp after all.

On the Unreal side I haven’t made much of progress yet. I did get tools installed and simple example project compiled and running (even made a standalone .exe for Windows just for fun). But mostly my time is spent perusing the documentation and going through quick start guides. I’ll probably try and make something really simple eventually with it. Simple enough that I can actually finish it and complex enough that I have chance to try different things.

I’m also thinking that for the next week I’ll slightly adjust things and have consecutive days reserved for single subject. Then it would be GEB on Monday-Tuesday, pyherc on Wednesday-Thursday and Unreal on Friday-Saturday. Then depending on how things work out, I’ll keep doing that or try something slightly different. Eventually I should discover a way to do all three things and make progress on each of them (and have time for family, playing games and all the other things).

Learning NumPy Array

I recently got a review copy of Ivan Idris’ “Learning NumPy Array” from Pact Publishing. I have read his earlier book “NumPy Cookbook” and found that useful, so I had my expectations quite high when I started.

The book is not huge brick, but still has enough content for almost 150 pages. As usual, first chapter is dedicated for installing NumPy, Matplotlib, SciPy, and IPython in various operating systems. While the information is good, I think just pointing to online resources would have been sufficient.

The second chapter is reserved for NumPy basics. This is where things are starting to get interesting if you haven’t worked with NumPy and arrays before. It is a good idea to read this chapter carefully, if you aren’t familiar with NumPy. Later chapters are built on top of the foundation laid here and are easier to understand when you understand the basics.

Starting from the 3rd chapter, the book dives into details of NumPy arrays and tools that are available to work with them. I like the fact the each subsequent chapter is built on a theme (basic data analysis, simple predictive analytics and signal processing techniques) with concrete examples. Mostly examples are built around various kinds of weather data, but there’s a little bit of stocks thrown into the mix too. Mathematical foundations are only explained in briefly because of the limited amount of the pages the book has. There’s enough detail for reader to understand what is going on and more information is readily available on internet.

Near the end of the book, there is short chapter about profiling, debugging and testing. Especially the part about testing I found very brief and not that useful, but this is book about NumPy after all and not about testing. This is probably the weakest part of the book and could have been left out. The pages used for this chapter could have been used to explain NumPy in more detail.

The last chapter of the book touches other related libraries briefly. It’s good to know how NumPy relates to for example SciPy and scikit-learn.

All in all I found the book very enjoyable to read and easy to follow. Sometimes graphics was getting a bit on the way, like when textual output was shown as an image of text instead of text (so font differed just slightly or the output had different coloured background). The author is already working on the next book, called “Learning Python Data Analysis” which also sounds quite interesting and is expected to come out 2015.

Instant SymPy Starter

I got a review copy of Instant SymPy Starter from Packt Publishing.

Since the book is from Instant series, it is not a thick one, only around 50 pages and it does not aim to teach each and every feature of the SymPy to the reader. Instead of that, 5 common features were chosen to be covered in the book. These features are: creating and manipulating expressions, numerical evaluation, calculus and solving equations. In addition to that there are instructions for installing SymPy and various other tools that could be useful and a quick example on curve sketching.

Each section contains clear examples that teach how to for example simplify symbolic expressions or calculate limits. The mathematical reasons behind examples are not explained, but it assumed that the reader is proficient with mathematics. I liked the decision since it kept the book short and compact and there are plenty of resources for mathematics elsewhere.

In the end of the book there is some resources for further study, like articles, tutorials, mailing lists and blogs.

The book is good purchase for a person who has not used SymPy before and wants to quickly get started with the basics. The same information can be found from internet of course, but in the book it has been laid out in a nice format and explained in such a way that the reader does not get sidetracked with unnecessary details.

The book is available from Packt Publishing at: http://www.packtpub.com/sympy-python-starter/book