By Symphony of Science’s John Boswell for PBS Digital Studios
By Symphony of Science’s John Boswell for PBS Digital Studios
I finally figured out how to mix songs together. I used Audacity, a free, open source audio editing program.
When I was younger, a friend (Tina) thought that Big Pun’s “Still Not a Player” and Brandy/Monica’s “The Boy Is Mine” would sound good remixed together. I think it sounds pretty good. (Update: Link broke.)

If you want to wait for an item to go on sale, but you don’t want to waste your life on RedFlagDeals.com, you can create a Google Alert to automate the act of finding deals applicable to Canadians. Benefit from Canadian crowdsourcing, but have only customized information delivered to your inbox.
Let’s say you want to wait for olive oil to go on sale. Just create a new Google Alert with a search query like:
site:redflagdeals.com "olive oil"
This is a Google search for the term “olive oil” only within the domain redflagdeals.com. Set the “Result type” to “Everything”, “How often” to “As-it-happens”, and “How many” to “All results”.
Whenever somebody creates a new forum post on RFD with the term “olive oil”, you will be notified of the post! Not all notifications will be about deals that you want, but it’s a better system than manually hunting for bargains.
RainbowVis-JS is JavaScript library I wrote for colour data visualization. Easily map numbers to a smooth-transitioning colour legend.
0 -> #ff0000
10 -> #ff4d00
20 -> #ff9900
30 -> #ffe500
40 -> #ccff00
50 -> #80ff00
60 -> #33ff00
70 -> #00e619
80 -> #009966
90 -> #004db3
100 -> #0000ff
-0.5 -> #ff0000
-0.4 -> #ff3333
-0.3 -> #ff6666
-0.2 -> #ff9999
-0.1 -> #ffcccc
0 -> #ffffff
0.1 -> #ccffcc
0.2 -> #99ff99
0.3 -> #66ff66
0.4 -> #33ff33
0.5 -> #00ff00
This is a heatmap-style colouring that represents the relative popularity of Linux distros. Red is hottest and black is coldest.
| Linux Distribution | Popularity (average hits per day) |
|---|---|
| Mint | 3065 |
| Ubuntu | 2170 |
| Fedora | 1693 |
| openSUSE | 1398 |
| Debian | 1365 |
| Arch | 1197 |
| CentOS | 980 |
| PCLinuxOS | 950 |
| Puppy | 876 |
| Mageia | 770 |
I drew this with HTML5 Canvas, but the below image is just a screen capture.

A working demo of these examples—with source code—are in the example.html file in the github repository.

Rebecca Liang
1924-2012
My grandma dressed in fashionable Western clothes and wore her hair in a beehive during the 1960s. She spent her income on chocolates and countless pairs of silk stockings, silk stockings being a luxury item at the time. My grandma thought that being a secretary was the ideal job for a woman, because she thought that secretaries were glamourous.

She thought that red was the prettiest colour, and she hated the colour black. The colour silver was not good enough to her; she deserved gold.

When we went to grandma’s place, there was always an open box of chocolates, which she encouraged us to eat. My grandma sometimes made us a sweet, peanut, dessert soup that tasted like liquid peanut butter. However, she wasn’t always a good cook. Her version of “spaghetti” was fried pasta noodles with ketchup. But she made it for us, because my sister and I liked spaghetti.
Whenever I was bored, I could pore over her National Geographic collection, which she subscribed to for many years. My grandma was smart. She could do lightning-fast mental arithmetic and made sure people didn’t shortchange her. She was literate in English and Chinese, and she learned French and Japanese.

In her later years, my grandma started to forget, and became more depressed and silent. She started having trouble counting. When someone told her that I was her granddaughter, she told them they were crazy. She started losing her appetite, so we gave her Ensure or Boost meal replacement, in chocolate flavour.
My grandmother was 87 when she passed away in her sleep on the morning of January 1st, New Year’s Day. My grandma was a diva, and she was fabulous.
Here are my top four monospace fonts displaying “In 100 years, Gates and Jobs will be forgotten, but Torvalds’ name will live on.”

I first noticed this font when looking at my friend’s printed Java code before a test. I had never seen such a nice-looking monospace font, since I usually work in Ubuntu Linux. I found out that she printed it out in Notepad++, and it was a Windows font named Consolas designed by Lucas de Groot. I prefer free fonts to proprietary (especially Windows) fonts, but Consolas looks the best.

This is the default Terminal font of Ubuntu 10.04. It is listed as ‘Monospace’, but ‘Monospace’ is an alias for DejaVu Sans Mono. DejaVu fonts are free. It’s not as nice as Consolas, and the zero is dotted instead of slashed, but it looks very nice on the console.

Inspired by Consolas, Raph Levien designed the free font Inconsolata and released it under the SIL Open Font License. It has a slashed zero, and the dots of the i’s and the periods are circles instead of squares, but the font looks a bit vertically stretched.

Anonymous Pro is another free font. The letters are aesthetically proportional and the zero is slashed, but it is a bit over-the-top with some overly serifed numbers and uppercase letters.
Dan Benjamin has a similar list in Top 10 Programming Fonts, if you want to see more favourably-reviewed monospaced fonts.
Time to match a?nan against an
I needed to write a Perl script to process numerous large log files, and Perl’s regex matching was not fast enough.
In a Unix/Linux environment, you can call the system() subroutine within Perl to execute shell commands like grep. In appropriate situations, it might be more efficient to call grep instead of using Perl to open files, read them line by line, and match each line against a regular expression. However, I needed backreferences to extract strings within a pattern, and grep only supports backreferences within the regular expression, not backreferences that can be used after.
I managed to reduce my script execution time for a given data set from 20 seconds to 11 seconds by combining grep and native Perl regular expression matching. I found the matching lines of the log files using grep, outputted the results to a temp file, and then used Perl regex matching to process the lines in the temp file.
For another part of my script, I tried using
system("echo '$string' | egrep '$pattern' > /dev/null") == 0
instead of
$string =~ m/$pattern/
within a loop, because I thought that (e)grep would always be faster, but system calls are expensive, so it ended up making my script unbearably slow.
In summary, if you need to speed up your Perl script and your Perl script processes text files, calling grep might improve performance. However, calling grep within a loop tends to be inefficient.