programming

Automate the Boring Stuff with Python: Practical Programming for Total Beginners by super Python expert Al Sweigart is a pretty thick intermedia to somewhat advanced level programming book. It covers how Python works, so someone familiar with programming languages can get up to speed. Then, the book tackles a number of key important tasks one may use a computer for. This includes working with Regular Expressions, file reading and writing, web scraping, interacting with Excel spreadsheets and PDF files, scheduling things, working with email, manipulating images, and messing around with the…
Learn to Program with Small Basic: An Introduction to Programming with Games, Art, Science, and Math is yet another addition to the growing list of programming books for people interesting in learning programming. Basic is an under-appreciated language. I wish I had a good basic compiler handy, and I'd love to see a basic scripting version that worked like bash. Can you see the value of that? Anyway, Small Basic is an updated modernish basic that runs only on Windows, so while I can't use it, you might, and this book looks like a good intro. From the publisher: Small Basic is a free,…
Minecraft is a gaming world. Or, if you like, a "sandbox." This is a three dimensional world in which characters do things, all sorts of things. The context for the world of Minecraft is very open ended. The player builds things, moves things, gets things, does things, in a way that makes any one gamer's game potentially very different from any other gamer's game. You can buy Minecraft in various forms such as an XBox 360 version. It comes in Lego form (for example, this), and you can get a Minecraft cloud server version at Minecraft.net. If you install Minecraft from Minecraft.net (about…
New research from the Weizmann Institute of Science reveals that "cells in our brain form little hexagonal grids that keep us oriented, map-like, in our surroundings." Weizmann's resident blogger describes this finding as "a pyrotechnic flash of insight that changes how we understand the brain to work." Game developers delight; this discovery shows "that you can really apply mathematical models to understand how our mammalian brains get their bearings." It may also have immediate implications for understanding human brain disorders such as vertigo. Meanwhile, on ERV, Abbie Smith explores a…
My first computer language was PL/1, but soon after I learned, among other languages, Basic, and I really liked Basic and I still do. Basic is linear, and I think in linear constructs when I do any kind of computer program. This is probably, in part, because user interfaces are the last thing I want to deal with. I want a series of numbers to be treated in a certain way, or a set of formulas to generate a database. The most non-linear I tend to get is multidimensional arrays, and that's still linear. Python is potentially, and in practice, very different, and is essentially used as an…
I miss the 80s, when computing manuals were illustrated with things far removed from home computing. I found this amongst my pop's old computing books. Nowadays off-the-shelf programming software tends to be designed for a specific purpose, and I like to think that the artist here was trying to capture the infinite possibilties that lay ahead at the dawn of home computing, but perhaps I'm just being sentimental. Wait, there's more!
Chat bots are one of the coolest computing challenges. They're computer programs that are designed to simulate an intelligent conversation as if they're people. The ultimate goal is to pass what is called the Turing Test, where the chat bot fools human users into believing its a person, too. I recently received an e-mail from Suzette. She's a fantastic chat bot in need of winning a popularity contest. Go ahead and Say hello for yourself, and learn more about her. Once you're convinced that she's an incredible program, you can help her have a chance at winning the Chatterbox Challenge. She…
Light interacts with and controls biological systems in diverse and fascinating ways. Our eyes are made up of thousands of cells that respond to light, sending signals to our brain as light in different colors and shapes moves across them. Photosynthetic cells are full of receptors that can sense and respond to many wavelengths of light, allowing cells to absorb light for photosynthesis, but also to move towards areas of more sunlight and know when the seasons are changing. Synthetic biology takes these light-responsive systems as parts that can be recombined, shuffled and integrated into…
From the April Communications of the ACM, the Kode Vicious column is on The Data-Structure Canon. The reader question is: In most areas of science there are a few basic underlying laws that inform the rest of the study of a given subject. Physics, chemistry, and electrical engineering all have these basic equations. What are the basic equations in computer science? Or is computer science baseless? In other words, what's the fundamental intellectual basis of computer science? Well, according to KV, it's data structures! If there were any set of basics that I wanted to hammer into software…
As I've mentioned before, I've been spending a lot of time working on a book. Initially, I was working on a book made up of a collection of material from blog posts; along the way, I got diverted, and ended up writing a book about cloud computing using Google's AppEngine tools. The book isn't finished, but my publisher, the Pragmatic Programmers, have a program that they call beta books. Once a book is roughly 60% done, you can buy it at a discount, and download drafts electronically immediately. As more sections get done, you can download each new version. And when the book is finally…
I just saw this neat blog post about Conway's Game of Life projected into three dimensions. You can download the script and play around with it yourself!
My first exposure to programming was as a nerdy elementary schooler playing with Logo, a simple computer language written for educational use as a way to teach basic concepts in programming and computer science. The language controls the behavior of the "turtle," a triangular cursor in the middle of the screen that can be programmed to move around and draw lines.In one of the kid's versions I remember that the cursor even looked like a little turtle on the screen, not just a triangle. As you probably could tell, I'm fascinated by how computer scientists use language from living things and…
A couple of people pointed out that in my wednesday post about Go, I completely left out the concurrency stuff! That's what I get for rushing the post - I managed to leave out one of the most interesting subjects! Go provides very strong support for communicating processes. I haven't done a lot of hacking with the concurrency stuff yet - so my impressions of it are still very preliminary. But my early impressions arevery good. A lot of people have been talking about Go as a language for distributed computation. I don't think that's correct: Go programs run in a single, shared address…
I've been being peppered with questions about Go, the new programming language just released as open-source by Google. Yes, I know about it. And yes, I've used it. And yes, I've got some strong opinions about it. Go is an interesting language. I think that there are many fantastic things about it. I also think that there are some really dreadful things about it. A warning before I go on: this post is definitely a bit of a rush job. I wanted to get something out before my mailbox explodes :-). I'll probably try to do a couple of more polished posts about Go later. But this should give you a…
tags: Planet Earth, nature, animals, BBC, television, streaming video Martha Holmes, series producer of BBC Earth programs discusses the importance of preserving the planet, along with comments from her colleagues, Neil Nightingale and Dale Templar. This amazing series will air this Sunday, 20 September, from 300-800pm. Yes, I am jealous beyond words of all you people who have televisions.
tags: Planet Earth, nature, animals, BBC, television, streaming video Neil Nightingale, Head of the BBC Natural History Unit, discusses the impact and variety of BBC Earth expeditions, as well as the passion of the crew members. Martha Holmes and Brian Leith, share their thoughts on these subjects as well. This amazing series will air this Sunday, 20 September, from 300-800pm. Yes, I am jealous beyond words of all you people who have televisions.
tags: birding, bird watching, birds, television, Animal Planet, streaming video Richard Crossley, a birder who co-author the book, The Shorebird Guide, has been involved in making documentaries on birdwatching, and particularly on birds in cities. But unfortunately, the higher-ups at The Animal Planet network don't believe there is really a market for TV shows about birds and birdwatching. So the people producing bird shows are looking for a strong response from the birding community indicating that there is indeed a niche for such programs [5:28] Now that you've watched the video,…
In general, I try to keep the content of this blog away from my work. I don't do that because it would get me in trouble, but rather because I spend enough time on work, and blogging is my hobby. But sometimes there's an overlap. One thing that's come up in a lot of conversations and a lot of emails it the idea of cloud computing. A lot of people are interested in it, but they're not really sure of what it is, or what it means. So what do we mean when we talk about "cloud computing"? What's the cloud? How's it different from good old-fashioned client/server computing? The idea of cloud…
My good friend and blogfather, Orac, posted something yesterday about animal testing in medical laboratories. I've been meaning to write something about that for a while; now seems like a good time. I'm not someone who thinks that being cruel to animals is no big deal. I have known some people like that, but thankfully they're very rare, and none of them were scientists whose work involves doing animal testing in real laboratories. But animal testing isn't about pointless cruelty. It's about understanding things that we simply cannot learn about in any other way. It's extremely important…
Since I mentioned the idea of monoids as a formal models of computations, John Armstrong made the natural leap ahead, to the connection between monoids and monads - which are a common feature in programming language semantics, and a prominent language feature in href="http://scienceblogs.com/goodmath/goodmath/programming/haskell/">Haskell, one of my favorite programming languages. Monads are a category theoretic construction. If you take a monoid, and use some of the constructions we've seen in the last few posts, we can move build a meta-monoid; that is, a monoid that's built from…