From the category archives:

Uncategorized

Weekend miscellany

by John on January 15, 2010

Math and aesthetics

Beautiful architecture video.  No explicit math, but lots of math behind the scenes.

Some math and some great images:  3-DSpirographs

Advanced math with some pictures: algebraic topology books for download from J. P. May and Allen Hatcher. (Hatcher’s book has more pictures.)

Miscellaneous

There’s really nothing that cannot be innovatived

Failure insurance for students

Genes and patents

Why Donald Knuth does not use email

{ 0 comments }

Spacecraft made from tape measures

by John on January 14, 2010

The struts on the LightSail solar sail spacecraft are made from of Stanley tape measures. For details, listen to this episode of the Planetary Radio podcast.

{ 0 comments }

Technology history quiz

by John on January 14, 2010

I was skimming through Big Ideas: 100 Modern Inventions the other day and was surprised at the dates for many of the inventions. I thought it would be fun to pick a few of these and make them into a quiz, so here goes.

Match the following technologies with the year of their invention.

First the inventions:

  1. The computer mouse
  2. Radio frequency identification (RFID)
  3. Pull-top cans
  4. Bar codes
  5. Touch tone phones
  6. Cell phones
  7. Car airbags
  8. Automated teller machines (ATM)
  9. Magnetic resonance imaging (MRI)
  10. Latex paint

Now the years:

  1. 1948
  2. 1952
  3. 1953
  4. 1963
  5. 1968
  6. 1969
  7. 1973
  8. 1977

Two of the years are used twice. Quiz answers here.

All examples taken from Big Ideas: 100 Modern Inventions That Have Transformed Our World

{ 5 comments }

Abstractions are never perfect

by John on January 11, 2010

Better to have a simple system than a complex system with a simple abstraction on top.

Abstractions are never perfect. Every new layer creates failure points, interoperability hassles, and scalability problems. New tools can hide complexity, but they can’t justify it … The more complex the system, the more difficult it is to fix when something goes wrong.

From the preface to RESTful Web Services.

Related posts:

Obscuring complexity
Baklava code
Leaky abstractions
Less isn’t more; just enough is more

{ 0 comments }

Weekend miscellany

by John on January 7, 2010

I accidentally pushed “publish” while I was working on this, so here’s this weekend’s miscellany post a little early.

Economics

Market failure and government failure
If you’re paying, I’ll have top sirloin

Engineering

Engineering aphorisms
Evolution of complex systems

Math

World War II mathematician
Packing tetrahedra

Software development

11 wrong programming assumptions
Programmer competency matrix
The greatest program ever written
Classic software development mistakes
Wrong Correctness

Miscellaneous

Some ideas for visualizing knowledge
Why I like Twitter
Rhonda Tiption’s podcast list
15 Awesome Uses Of The Periodic Table
Comparing Avatar and Pocahontas

Get Microsoft Silverlight

{ 6 comments }

Regular expressions in R

by John on January 4, 2010

Notes on using regular expressions in R. R uses POSIX regular expression syntax by default but you can ask it to use Perl’s flavor of regular expressions.

Related links:

Regular expressions in C++, Mathematica, Python, R, PowerShell
R for programmers coming from other languages
R: The good parts
Daily regular expression tips

{ 0 comments }

Regular expressions in Mathematica

by John on January 4, 2010

Regular expressions are fairly portable. There are two main flavors of regular expressions — POSIX and Perl — and more languages these days use the Perl flavor. There are some minor differences in what it means to be “like Perl” but for the most part languages that say they follow Perl’s lead specify regular expressions the same way. The differences lie in how you use regular expressions: how you form matches, how you replace strings, etc.

Mathematica uses Perl’s regular expression flavor. But how do you use regular expressions in Mathematica? I’ll give a few tips here and give more details in the notes Regular expressions in Mathematica.

First of all, unlike Perl, Mathematica specifies regular expressions with ordinary strings. This means that metacharacters have to be doubly escaped. For example, to represent the regular expression \d{4} you must use the string "\\d{4}".

The function StringCases returns a list of all matches of a regular expression in a string. If you simply want to know whether there was a match, you can use the function StringFreeQ. However, note the you probably want the opposite of the return value from StringFreeQ because it returns whether a string does not contain a match.

By default, the function StringReplace replaces all matches of a regular expression with a given replacement pattern. You can limit the number of replacements it makes by specifying an addition argument.

Related links:

Regular expressions in Mathematica
Tips for getting started with regular expressions
Languages that are easy to pick back up
Regular expressions in C++, Python, R, PowerShell

{ 0 comments }

Weekend miscellany

by John on January 2, 2010

Smashing Magazine highlights (design)

Top 10 algorithms of the 20th century

75 Online resources for geeks

Why your boss is incompetent (Peter Principle revisited)

Visualizing word frequency in the Bible (word clouds)

How to tell when you’re on a sinking ship

Carnival of Mathematics #61

Almost understanding software

Economics of open source software

{ 0 comments }

I have four Twitter accounts that send out one tip per day. One of these might help you with a New Year’s resolution. If you don’t use Twitter, you can follow these Twitter accounts by subscribing to their RSS feeds.

Windows keyboard shortcuts

If  you’d like to become more efficient in using Windows, and reduce your chances of repetitive stress injury, you may want to use your keyboard more and your mouse less. SansMouse is a Twitter account that sends out one keyboard shortcut per day.

Regular expressions

If you’ve intended to learn regular expressions but haven’t made the time, you might want to follow RegexTip for one tip per day about regular expressions. I focus on the features common to Perl, Python, C#, JavaScript, etc. I also have some tips coming up with language-specific tips.

Math

I have two mathematical Twitter accounts. These might be useful if you want to review math courses you took a long time ago or if you want a preview of math you might need in the future. Both are eclectic, mixing elementary and advanced topics.

ProbFact sends out one probability fact per day, mostly theorems but sometimes notes on applications.

I just started AnalysisFact a couple days ago. It will cover a wide range of topics from real and complex analysis. AnalysisFact will have a wider range of sophistication than ProbFact, mixing undergraduate and graduate level material.

Summary

Here are the four Twitter accounts and their RSS feeds:

New Year’s links

Here are a couple posts from Jon Swanson:

8 ways to end the year
Leave it in 2008 (Just mentally change the “8″ to a “9″ when you read it.)

And here is a good post from Jurgen Appelo:

Checklist for goals and resolutions.

Related posts

Using Windows without a mouse
Tips for learning regular expressions
Math and statistics articles

{ 2 comments }

19 why posts

by John on December 29, 2009

Here’s a list of 19 “why” posts I’ve written.

  1. Why programmers are not paid in proportion to their productivity
  2. Why programmers write unneeded code
  3. Why care about spherical trig?
  4. Why Shakespeare is hard to read
  5. Why are bad guys so interesting in novels?
  6. Why proof by pattern of examples doesn’t work
  7. Why Ruby is a good language for DSLs
  8. Why SQL failed
  9. Why is TeX so popular in Germany?
  10. Why microarray study conclusions are so often wrong
  11. Why 90% solutions beat 100% solutions
  12. Why there will always be programmers
  13. Why so few electronic medical records
  14. Why heights are normally distributed
  15. Why heights are not normally distributed
  16. Why computer scientists count from zero
  17. Why functional programming hasn’t taken off
  18. Why Unicode is subtle
  19. Why Mr. Scott is Scottish

{ 0 comments }

Weekend miscellany

by John on December 25, 2009

How start-ups turn into bureaucracies

A programmer’s fantasy office

Top 50 health informatics blogs

Best end user license agreement (EULA)

Best design and architecture books of 2009

{ 0 comments }

Merry Christmas

by John on December 25, 2009

{ 0 comments }

Currency in British literature

by John on December 22, 2009

A few days ago my family and I went to see a stage performance of Charles Dickens’ A Christmas Carol. For years I’ve glossed over references to money when reading British literature but I’ve intended to figure out how it all worked before decimalization. Watching A Christmas Carol prompted me to finally do it.

Many thanks to my British friend Samuel Jack for helping me sort things out. Any errors in this post are mine and not Sam’s. If you find an error or omission below, please leave a comment.

The most basic denominations were pound, shilling, and penny. The pound and shilling had the nicknames quid and bob respectively.  (The plural of “penny” is “pence.” The terms “quid” and “bob” are both singular and plural.) A pound equaled 20 shillings and a shilling equaled 12 pence. Pound, shilling, and pence had the abbreviations “L”, “s”, and “d” which came from the Roman librae, solidi, and denarii.

A florin was two shillings and a crown was five shillings. A guinea was 21 shillings. (The reason a guinea was slightly more valuable than a pound had to do with precious metal exchange rates.)

A few more denominations were self-evident. For example,  the half crown and sixpence were worth what you’d think.

{ 11 comments }

Audio book narrators

by John on December 20, 2009

Last year I wrote a post about my favorite audio book narrators: John McDonough and Rob Inglis. Here are three more who came to mind lately.

Related posts:

Favorite audio book authors
Best voices in podcasting

{ 4 comments }

Weekend miscellany

by John on December 18, 2009

Creativity

Removing barriers to creating amazing things

Tech

The best and worst tech of the decade
Visualizing browser market share over time

Math

The rise and rise of Python in computational science
Why exponential growth is big (cartoon)
Math teachers at play #21
Probability of identifying someone given their age, zip code, and gender

PowerShell

PowerShell 2.0 Best Practices

Science

Liquid on Titan

{ 1 comment }