Planet Tyler

January 30, 2017

Chris Tyler

The Presto Card System and the TTC

The Metrolinx stored-value payment system, Presto, has been used by a number of transit systems for many years, including Brampton, Burlington, Durham, GO Transit, Hamilton (HSR), Mississauga (MiWay), Oakville, Ottawa (OC Transpo), and York Region (YRT/Viva). Although there have been some significant glitches, the Presto system works well overall on those systems. I used Presto for years on Viva in Vaughan and really liked it.

Presto is about to rolled out to Toronto's TTC system, and unfortunately, the rollout is not going well, and will not go well on the current course.

How Presto Works

The Presto card has two main attributes:

  • It is a stored-value system. That means that the actual value is stored on the card itself, unlike an Interac direct debit card or a credit card, where the value is managed by a remote computer system. The advantage to a stored-value card is that the transaction can be processed locally, without the delay of contacting a remote computer, and a reliable data connection is not required (useful when boarding a bus in a tunnel or underpass, or when a communications network is down). [For the geeks in the crowd, the Presto card uses a Mifare DESFire technology compatible with the ISO/IEC 14443 Type A standard, 13.56 MHz (the same frequency band used by NFC devices in cellphones and Interac/credit cards, but different from the RFID system used for most door access cards and dongles), with 4 kilobytes of data memory (if you want to compare this to your USB flash drive, that's 0.000004 GB, or about one typewritten page of text). Paper Presto cards for visitors will probably be similar to the paper passes used on other systems, which are similar to the plastic cards but have less memory, typically 64 bytes].
  • It is a radio-frequency ID/near-field communication contactless system. This means that the card contains a tiny speck-sized computer, a small amount of flash memory, a radio circuit, and an antenna which goes around the perimeter of the card. When the card is held up to a reader, a radio signal from the reader provides enough energy to boot the card's computer, which then communicates with the reader to exchange information and, when necessary, to store revised information (such as a new balance) in the card's flash memory. Yes, it is amazing that all that can take place in the fraction of a second that you hold the card on the reader.

These attributes define the way the system works.

Loading Value Online

One of Presto's challenges comes when you want to load value on the card online -- through a web browser or your phone. Once you've gone to Presto's web site and performed the transaction, the Presto system has to get the additional value onto your card. Since the card readers throughout the system do not get in touch with a central server during a card tap, the only way to ensure that your card gets updated with the
added value is by sending an update to every vehicle or station in the entire system that there's a load-value transaction pending for your card. That means that thousands of readers from Ottawa to Hamilton have to store a list of every pending online-load transaction, and when you tap your card on any of the readers, they have to very quickly search through their stored list to see if they should add value to your card. After one of the readers loads the value onto your card, a message is sent back to the central servers, and the transaction is eventually removed from the queue on the all of the card readers. This is the reason that Metrolinx tells Presto users to allow 24 hours after an online load transaction before the value will be loaded onto their card
-- and in my personal experience, in rare cases it's several days longer.

The issue with this is that it doesn't scale very well. The volume of data that needs to be sent from the central servers to the card readers to manage online loading increases with the product of the number of reader locations and the number of people performing online card loads.

With a very small number of active TTC Presto users, the system isn't currently seeing anywhere near the load that it will need to carry a year from now. Many current TTC riders with Presto cards also use other payment methods such as tokens, because Presto cards aren't accepted at all locations yet -- including convenient unattended second entrances in many of the TTC stations. In addition, many Presto users have learned to avoid online load transactions, and load their cards in person at service counters or self-load machines.

You can see the impending challenge: when Metropasses subscriptions move from physical cards to Presto, there will be over 50,000 additional online updates per month. Hopefully, these transactions will be spread over a period of time and not dumped into the system all on one day, but in any case, these thousands of additional updates will strain a system that appears to have trouble with existing volumes.

Variations in the Use of the Presto System

There is significant variation in how transit systems use Presto cards. For example:

  • GO Transit expects riders to tap on at the start of their trip and tap off at the end, and charge by the distance travelled (failing to tap off results in a penalty charge, plus fare to the end of the line).
  • YRT/Viva provides 2 continuous hours of travel after you tap on to their system. Additional taps do not result in a deduction from your card (unless you press a button for a second-zone add-on for travel between the North and South parts of York region). This system provides certainty in the minds of the users, but it does leave room for some problems -- for example, if you tap on to a hour-long Viva trip from Markham to York University 90 minutes after you first tapped for the trip; your trip will finish after the 2h has expired, but tapping on to the Viva trip will not deduct a fare because you still have 30 minutes active on the previous fare; I wonder how fare enforcement works in this case? This system does have the benefit of allowing you to stop and buy milk on the way home from work, or duck out for lunch and get back to the office on a single fare.
  • Some systems permit you to load passes on your Presto card, while others (such as GO) just stop charging you additional fares when you have hit a maximum pass-equivalent amount within a month or week.

Problems with the TTC's Implementation of the Presto System

The TTC's specific implementation of the Presto system has several significant pain points:

  1. TTC Presto fares continue to use the TTC one-continuous-trip transfer system, which permits you to transfer as many times as necessary for one continuous trip regardless of duration. This means that it's not permissible to stop to shop or have lunch during a trip. The challenge with integrating this approach with the Presto is that the system's software has to determine whether a tap on a second vehicle is a continuation of a trip (no additional fare charged) or a new trip (fare charged). This is complex to calculate when the original tap was on the other side of the city and the system is running perfectly, but it's impossible when weather delays, vehicle breakdowns, traffic problems, special events, or detours delay a portion of the trip. When using paper transfers, the rider could explain to the driver or collector why their transfer is older than expected, but this level of discretion does not exist in the Presto system. Solution: the TTC should switch to a time-based transfer system, allowing unlimited travel for 90 or 120 minutes per trip regardless of the number of vehicles used.
  2. The TTC's Presto readers do not display any information about the transaction taking place during a tap -- just whether it is Accepted or Declined. The rider is left in the dark about whether a vehicle transfer is charged as a second transaction or accepted as a transfer on the original fare. In addition, the user has no idea when value-load transactions take place, nor the current balance on their card. A rider who is assuming that transfer transactions are being processed correctly or that online loads are being stored on the card in a timely fashion can be easily stranded after their one grace transaction (a single negative-balance transaction is permitted, with a penalty charge). In
    contrast, other systems (such as YRT/Viva) clearly display the transaction amount and card balance on every tap (although their poorly-lit screens are a lot harder to read than the TTC's bright colour screens). It has been argued that the ability to check one's balance and transaction history online mitigates the need for at-time-of-tap transaction and balance information, but this puts the onus on the rider to frequently login and check that the system is performing as expected. Solution: the TTC should display transaction, value-load, and balance information at every tap. At a minimum, there should be some indication of a low-balance state (less than 2 TTC fares remaining on card).
  3. The TTC's self-load machines are routinely out of order, especially
    (according to a fare collector, to my surprise) around the end of each month. They look like they are fully online, but they fail to recognize an inserted Presto card and thus commence any transaction. Solution: this should be addressed by the contract with the Presto technology providers, and vendor performance penalties should be in place and enforced.
  4. The Toronto-York Spadina Subway Extension (TYSSE) project will require a new fare structure. Right now, over 2000 buses enter the York University campus every day, including Brampton Zum, YRT/Viva, GO, and TTC. When these buses are moved off-campus later this year, York University and Seneca@York students and staff will need to take a short subway ride to the new connection points north of campus. Paying a complete TTC fare on top of the Zum/YRT/Viva/GO fare for this privilege will in most cases double riders' transit costs. Solution: the system needs to provide a rebate of the TTC fare when tapping on to these other services, or better yet, Metrolinx should negotiate a multi-system fare that includes time-based travel on all interconnected systems.

by Chris Tyler ( at January 30, 2017 06:39 PM

December 30, 2016

Scott Tyler

Language Learning Plan for 2017

In 2017, I plan to learn 5 words of spoken Chinese/day.  That means I should know 1800 new words by the end of the year, more than doubling my vocabulary.

Also, I want to learn the Greek and Cyrillic alphabets (I learned the Hebrew alphabet this month) so that I will be able to read languages written in the Roman, Korean, Hebrew, Greek and Cyrillic alphabets.  Plus about 800 Chinese characters.  Later, I want to add Arabic, Hindi and Japanese scripts.

by Scott Tyler ( at December 30, 2016 02:56 AM

March 16, 2016

Scott Tyler

A Father's Treasury (Best Quotes from my Son)

  • At grace, Moses prays: "Thank you God for this delicious spaghetti... but no thank you for the tomatoes!"
  • As I go into our bedroom, I say to myself, "I'm so tired!  I just want to sleep."  Moses runs and jumps on the bed. "You've come to the right place!" he says.
  • In the mall, walking with him, I stopped to buy myself a coffee, but I didn't buy a drink for him.  After awhile, Moses says, "ONE person has a drink..."
  • At night, he was scared of monsters.  I  told him there weren't any.  "They are just in stories, right?" he said. "But Daddy... what if WE are in a story?"
  • "Do you want to play something?" he asks, "We can play toys, which is good for me."
  • Dropping him off at Sunday School he took one look at all the kids and toys, then turned around and said to me, "Ok Daddy: see you, bye bye" while pushing me out the door!
  • He was playing with some kids when he was two years old, and I reminded him: "No biting!"  "Ok, Daddy," he said, "No eat kids!"
  • cute mispronunciations: "yestooday" (yesterday) "It's just an excellent" (accident)

by Scott Tyler ( at March 16, 2016 05:13 AM

January 04, 2016

Scott Tyler

Books I Have Read

This entry is just for myself, to keep track of what I've read, and have still to read. These are not ALL the books I've read, obviously, just the books I would consider "classics" by my own snobbish definition. I'm not trying to boast here (well, maybe just a little) :-) It's still very thin in some fields- especially international literature.

A college instructor once told me that my generation was "not very well read". I took that as a personal challenge, and began to read some serious classics, starting with the Illiad and Paradise Lost. (If you really want to look pretentious, try carting around the Illiad for a couple of months). A few years later, I started to compile this list:

Books I Have Read

(All foreign language works in translation, except Middle English.

Unabridged, except where noted.)

# Read more than once.

I. Ancient and Classical Literature

Ancient LiteratureanonymousGilgamesh the King
Ancient Greek Literature and DramaAeschylusAgamemnon#
The Libation Bearers
The Eumenides
Prometheus Bound
Seven Against Thebes
Trojan Women
Herodotus of HalicarnasusThe Histories
Works and Days
HomerThe Illiad
The Odyssey
Lucian of SamosataThe True History
Oedipus Rex#
Oedipus at Colonus
ThucydidesHistory of the Peloponnesian War
XenophonThe Anabasis
Latin Literature and DramaAurelius, MarcusThe Meditations
CiceroOn the Gods
Ovid The Metamorphoses
PlautusThe Menaechmi
TerenceThe Girl From Andros
VirgilThe Aeneid

II. Medieval Literature
Old EnglishanonymousBeowulf
Middle EnglishanonymousSir Gawain and the Green Knight#
anonymousSir Orfeo
Early Modern EnglishChaucer, GeoffreyThe Canterbury Tales
Malory, ThomasLe Morte d'Arthur
anonymousThe Second Shepherd's Play
WelshanonymousThe Mabinogion
Frenchde Troyes, ChretienLancelot, or the Knight of the Cart
Ywain, or the Knight with the Lion
de France, MarieThe Lais
anonymousThe Song of Roland
Old NorseanonymousThe Greenland Saga
anonymousThe Saga of Eric the Red
III. Renaissance Literature
English Elizabethan and JacobeanBacon, Sir FrancisThe New Atlantis
Jonson, BenThe Alchemist
Kyd, ThomasThe Spanish Tragedy
Marlowe, ChristopherDr. Faustus
The Jew of Malta
Middleton, ThomasThe Revenger's Tragedy
Shakespeare, WilliamCOMPLETE PLAYS
Shakespeare and FletcherThe Two Noble Kinsmen
Webster, JohnThe Duchess of Malfi
The White Devil
Italian RenaissanceBoccaccio, GiovanniThe Decameron
Dante, AligherriThe Divine Comedy
MachiavelliThe Prince
French RenaissanceCorneille, PierreEl Cid
MoliereThe Misanthrope
Racine, Jean BaptistePhaedre
Spanish Renaissancede la Barca, Pedro CalderonLife is a Dream
anonymousLazarillo of Tormes
Renaissance Literature in LatinErasmusIn Praise of Folly
More, Sir ThomasUtopia
IV. British and Irish Literature

A. 17th and 18th C. British and Irish LiteratureBoswell, JamesThe Life of Samuel Johnson
Bunyan, JohnPilgrim's Progress
Cleland, JohnFanny Hill
Defoe, DanielMoll Flanders
Robinson Crusoe#
Fielding, HenryTom Jones
Goldsmith, OliverShe Stoops to Conquer
The Vicar of Wakefield
Johnson, SamuelThe History of Rasselas, Prince of Abyssinia
Milton, JohnParadise Lost#
Sheridan, RichardThe Rivals
The School for Scandal
Swift, JonathanGulliver's Travels
A Modest Proposal
Walpole, HoraceThe Castle of Otranto
B. 19th Century British and Irish LiteratureAusten, JaneCOMPLETE NOVELS
Mansfield Park
Northanger Abby
Pride and Prejudice
Sense and Sensibility
Bronte, AnneAgnes Grey
The Tenant of Wildfell Hall
Bronte, CharlotteJane Eyre#
The Professor
Bronte, EmilyWuthering Heights
Collins, WilkieThe Moonstone
The Woman in White
de Quincy, ThomasConfessions of an English Opium Eater
Barnaby Rudge
Bleak House
Christmas Books
David Copperfield
Great Expectations
Hard Times
Little Dorrit
Martin Chuzzlewit
The Mystery of Edwin Drood
Nicholas Nickleby
The Old Curiosity Shop
Oliver Twist
Our Mutual Friend
The Pickwick Papers
A Tale of Two Cities#
A House to Let (with other authors)
Doyle, Sir Arthur ConanSherlock Holmes (complete stories)#
The Lost World
Eliot, GeorgeSilas Marner#
Gaskell, EdithCranford
Grossmith, George and WeedonDiary of a Nobody
Haggard, H. RiderKing Solomon's Mines
Hardy, ThomasThe Return of the Native
Tess of the D'Urbervilles#
Hogg, JamesThe Private Memoirs and Confessions of a Justified Sinner
Hope, AnthonyThe Prisoner of Zenda
Jerome K. JeromeThree Men on a Boat
Kipling, RudyardThe Jungle Book
Maughan, W.S.The Moon and Sixpence
Peacock, Thomas LoveHeadlong Hall
Nightmare Abbey
Scott, Sir WalterIvanhoe
Rob Roy
Shelley, MaryFrankenstein#
Stevenson, R.L.Dr. Jekyll and Mr. Hyde#
Treasure Island
Stroker, BramDracula
Thackeray, William MakepeaceVanity Fair
Trollope, AnthonyBarchester Towers
The Warden
Wilde, OscarAn Ideal Husband
The Importance of Being Ernest
Lady Windermere's Fan
The Picture of Dorian Gray
C. 20th Century British and Irish LiteratureBeckett, SamuelWaiting for Godot
Beerbohm, MaxZulieka Dobson
Buchan, JohnGreenmantle
John McNab
The Thirty-Nine Steps
The Three Hostages
Prester John
Chesterton, G.K.The Club of Queer Trades
Father Brown stories
The Man Who Was Thursday
Conrad, JosephHeart of Darkness#
Lord Almayer's Folly
Lord Jim
The Secret Agent
The Secret Sharer
The Shadow Line
Ford Madox FordThe Good Soldier
Forster, E. M.Howard's End
A Passage to India
A Room With a View
Golding, WilliamThe Lord of the Flies
Graham GreeneThe Heart of the Matter
The Third Man
Hilton, JamesLost Horizon
Hughes, RichardA High Wind In Jamaica
Huxley, AldousBrave New World
Joyce, JamesDubliners
A Portrait of the Artist as a Young Man
Lawrence, D. H. Lady Chatterley's Lover
Orczy, Baroness EmmuskaThe Scarlet Pimpernel
Orwell, GeorgeAnimal Farm
Pinter, HaroldThe Dumbwaiter
Shaw, George BernardArms and the Man
Major Barbara
Mrs. Warren's Profession
Synge, J.M.The Playboy of the Western World
Tolkien, J.R.R.The Hobbit#
The Lord of the Rings#
Waugh, EvelynBrideshead Revisited
Wells, H. G.The Invisible Man
The Island of Dr. Moreau
The Time Machine
The War of the Worlds
Woolf, VirginiaTo the Lighthouse

V. American Literature and Drama

A. 18th Century American LiteratureFranklin, BenjaminThe Autobiography
B. 19th Century American LiteratureAlcott, Louisa MayLittle Women
Chopin, KateThe Awakening
Cooper, James FennimoreThe Deerslayer
Crane, StephenThe Red Badge of Courage
Hawthorne, NathanielThe Scarlet Letter#
Longfellow, Henry WadsworthEvangeline
Melville, HermanMoby Dick
Poe, Edgar AllenComplete Stories
Stowe, Harriet B.Uncle Tom's Cabin
Twain, MarkThe Adventures of Huckleberry Finn#
The Adventures of Tom Sawyer#
A Connecticut Yankee in King Arthur's Court
The Prince and the Pauper
Puddin'head Wilson
C. 20th Century American Literature and Drama
Anderson, SherwoodWinesburg, Ohio
Bellow, SaulThe Adventures of Augie March
Henderson the Rain King
Bradbury, RayFahrenheit 451
The Martian Chronicles
Burroughs, Edgar RiceTarzan of the Apes
Capote, TrumanBreakfast at Tiffany's
Cather, WillaMy Antonia
Chandler, RaymondThe Big Sleep
The Long Goodbye
Dickey, JamesDeliverance
Doctorow, E.L.Ragtime
Faulkner, WilliamAs I Lay Dying
Light in August
Fitzgerald, F. ScottThe Great Gatsby
Tender is the Night
This Side of Paradise
Hammett, DashielThe Maltese Falcon
The Thin Man
Heller, JosephCatch 22
Hemingway, ErnestA Farewell to Arms
For Whom the Bell Tolls
The Old Man and the Sea
The Sun Also Rises
To Have and Have Not
Henry, O.Short Stories
Irving, JohnThe Cider House Rules
A Prayer for Owen Meaney
The World According to Garp
James, HenryA Turn of the Screw, other stories
Washington Square
Kerouac, JackBig Sur
The Dharma Bums
On the Road
Kesey, KenOne Flew Over the Cuckoo's Nest
Lee, HarperTo Kill a Mockingbird
Lewis, SinclairMain Street
London, JackThe Call of the Wild, other stories
McCarthy, CormacBlood Meridian
McCullers, CarsonThe Ballad of the Sad Cafe
The Heart is a Lonely Hunter
Miller, ArthurAll My Sons
The Crucible
Death of a Salesman#
Miller, HenryTropic of Cancer
Pynchon, ThomasThe Crying of Lot 49
Roth, PhilipPortnoy's Complaint
Salinger, J.D.Catcher in the Rye#
Steinbeck, JohnCannery Row
East of Eden
The Grapes of Wrath
The Moon is Down
Of Mice and Men
The Pearl
Tortilla Flat
Updike, JohnRabbit, Run
Wharton, EdithThe Age of Innocence
Ethan Frome
The House of Mirth
Wilder, ThorntonOur Town
Williams, TennesseeThe Glass Menagerie
A Streetcar Named Desire
Wolfe, TomThe Bonfire of the Vanities

VI. Canadian Literature

Atwood, MargaretThe Edible Woman
The Handmaid's Tale
Davies, RobertsonThe Deptford Trilogy
Laurence, MargaretThe Diviners
The Stone Angel
Lowry, MalcolmUnder the Volcano
Martel, YannLife of Pi
Mowat, FarleyNever Cry Wolf
Munro, AliceSomething I've Been Meaning to Tell You
Richler, MordechaiThe Apprenticeship of Duddy Kravitz

VII. African-American Literature

A. Slave NarrativesDouglas, FredrickThe Education of Fredrick Douglas
Jacobs, HarrietIncidents in the Life of a Slave Girl
Truth, SojournerThe Narrative of Sojourner Truth
B. 19th Century African American LiteratureDuBois, W.E.B.The Souls of Black Folk
Johnson, James W.Autobiography of an Ex-Colored Man
Washington, Booker T.Up From Slavery (abridged)
C. 20th Century African American LiteratureAngelou, MayaI Know Why the Caged Bird Sings
Baldwin, JamesGo Tell it on the Mountain
Ellison, RalphInvisible Man
Hurston. Zora NealeTheir Eyes Were Watching God
Walker, AliceThe Color Purple
Wright, RichardNative Son

VIII. International Literature

A. French LiteratureBalzac, Honore deThe Girl with the Golden Eyes
Camus, AlbertThe Stranger
Dumas, Alexander (Pere)The Black Tulip
The Count of Monte Cristo#
The Man in the Iron Mask
The Three Musketeers
Flaubert, GustaveMadame Bovary
Hugo, VictorLes Miserables#
Notre Dame de Paris
Rostand, EdmondCyrano de Bergerac#
Verne, JulesAround the World in 80 Days
Five Weeks in a Balloon
From the Earth to the Moon
In Search of the Castaways
Journey to the Center of the Earth
20,000 Leagues Under the Sea
The Mysterious Island
B. German LiteratureGoethe, Johann VonFaust, Part 1
The Sorrows of Young Werther
C. Italian LiteratureEco, UmbertoFoucault's Pendulum
D. Russian LiteratureChekhov, AntonThe Cherry Orchard
The Three Sisters
Uncle Vanya
Dostoyevsky, FyodorThe Brothers Karamazov
Crime and Punishment
Pushkin, AlexanderBoris Godunov
Tolstoy, Leo
War and Peace
E. Other European Literature
Czech RepublicKafka, FranzThe Metamorphosis
Kundera, MilanThe Unbearable Lightness of Being
Modern GreeceKazantzakis, NikosZorba the Greek
NorwayIbsen, HendrickA Doll's House
The Master Builder
SwedenStrindberg, AugustThe Father
SwitzerlandWyss, JohannThe Swiss Family Robinson#
F. Australian and New Zealand LiteratureCarey, PeterThe True History of the Kelly Gang
Shute, NevilleA Town Like Alice
Zukas, MarcusThe Book Thief
G. Chinese LiteratureanonymousLiang Shanbo and Zhu Yingtai
Cao Xueqin and Gao E.A Dream of Red Mansions
ConfuciusThe Analects
Luo GuanzhongThree Kingdoms
Mao Ze DongOn Guerrilla Warfare
Sun TzuThe Art of War
Wu Cheng'enJourney to the West
H. Other World Literature
BrazilCoelho, PauloThe Pilgrimmage
ColombiaMarquez, Gabriel GarciaOne Hundred Years of Solitude
IndiaRushdie, SalmanMidnight's Children
Swarup, VikasQ&A (Slumdog Millionaire)
IranOmar KhayyamThe Rubaiyat of Omar Khayyam (Trans. Edward Fitzgerald)
JapanHaruki MurakamiKafka on the Shore
The Wind-up Bird Chronicle
MexicoDiaz, BernalThe Conquest of New Spain
NigeriaAchebe, ChinuaThings Fall Apart
TrinidadNaipaul, V.S.A Bend in the River

IX. Philosophy, Science, Politics and Military Theory

A. ClassicalAristotlePoetics
Aurelius, MarcusThe Meditations
CiceroOn the Gods
Plato The Death of Socrates
The Dialogues
The Republic
B. Medieval and RenaissanceBacon, Sir FrancisThe New Atlantis
ErasmusIn Praise of Folly
King John, OthersThe Magna Carta
MachiavelliThe Prince
More, Sir ThomasUtopia
Sun TzuThe Art of War
C.Enlightenment and 19th CenturyDescartes, ReneOn the Origins of Human Understanding
Emerson, Ralph WaldoEssays
Hume, DavidPrinciples of Human Understanding
Mill, John StuartOn Liberty, Other
Nietzsche, FriedrichThus Spake Zarathustra
Paine, ThomasCommon Sense
Rousseau, JacquesThe Social Contract
Thoreau, Henry DavidWalden, essays
Wollstonecraft, VirginiaVindication of the Rights of Women
D. 20th CenturyGuevera, Dr. Ernesto (Che)On Guerrilla Warfare
Diamond, LarryGuns, Germs and Steel
Hawkings, StevenA Brief History of Time
Huntington, Samuel P.The Clash of Civilizations
Mao Ze DongOn Guerrilla Warfare
Merleau-Ponty, MauricePhenomenology and Perception

X. Religious Works

A. Christianity
various authorsThe Bible, including Apocrypha
St. AugustineThe Confessions
Brother LawrenceThe Practice of the Presence
Thomas A KempisThe Imitation of Christ
AnonymousThe Didache
B. Other Religions
Quiche MayaPopul Vuh
CiceroOn the Gods
AnonymousThe Bhagavadgita

by Scott Tyler ( at January 04, 2016 06:47 AM

November 05, 2015

Scott Tyler

Welcome, William Tyler-Chu!

Today, November 4th, 2015, my newest nephew was born!  Welcome, William Tyler-Chu, to this bright, cold world!  Your cousin Moses says he already misses you.  ;-) I'm sure you and all your cousins will have a lot of fun together.

by Scott Tyler ( at November 05, 2015 03:56 AM

November 03, 2015

Scott Tyler

But someday

"Will Mommy die?" my child asks.

The question takes me by surprise.

"No," I say, "Mommy won't die."

"Will you die?"

"Why are you asking?"

"Because everyone gets old and dies."

"That's true. But not yet.  Probably, not for a long while."

"But someday."

"Yes, someday."

"Then I'll be sad."

He hugs me, then takes my hand.

We walk on awhile together.

by Scott Tyler ( at November 03, 2015 05:21 AM

Uncomfortable Irony: Women's Rights and Birth Rates

Researchers and workers in the field of development have known for several decades that the best and surest way to reduce birth rates is to improve the condition of women.  To give them more opportunities, more education, and more power over their own lives.  When women can choose, they choose to have fewer kids.  In an overpopulated world, that is a good thing.

The irony is that societies that respect women and treat them fairly are losing the demographic contest.  They are having fewer babies.  Too few.  The population of progressive, liberal countries is declining. Societies, or social groups, that don't recognize the equality of women-- in fact, treat women as little more than male property-- are booming.  The Middle East has the highest birth rates in the world. Iraq, for instance, has 4.5 births per woman, compared to the world average of 2.5 (2.1 is needed to maintain population).  Iraq's population is expected to triple in size by the end of the century, to over 100 million.  In Yemen, another country troubled by civil war, the birth rate is even higher.

The 'Arab Spring' is fueled by the stagnant economies and booming populations of the Middle East and North Africa.  Their youthful societies-- especially when so many youth are underemployed-- are part of the reason the region is so violent.  It is not a coincidence that Yemen and Iraq-- the two countries with the highest birth rates in the region-- are embroiled in civil war.  (Yes, the American invasion is also to blame in Iraq.)  Improving women's rights is vital: it would reduce the population surge, release some of the economic pressure, and lead to more stable and peaceful societies.  But the politics of the region is moving in the other direction, towards less liberal, more 'Islamic' attitudes towards women.  Women are losing what few rights they had.  This will only make the population crisis worse.

Meanwhile, birth rates in North America, Europe, Australia, Japan, China, and other countries where women have equality are declining.   In Latin America, too, it is dropping.  In Brazil, it is now only 1.9 births/woman, about the same as the U.S. rate.  Without immigration, Brazil, like the developed world, will begin to decline in population.   Why are birth rates falling in Brazil?  Urbanization and less poverty are factors, but the main reason is that young Brazilian women are better educated and more assertive than older generations of women. 

Perhaps this is why matriarchal societies of the past-- assuming they are not mythical-- lost out to patriarchal societies.  They simply did not have as many children.  If so, we are seeing history repeat itself in this century.

by Scott Tyler ( at November 03, 2015 12:25 AM

October 27, 2015

Scott Tyler

The European Refugee Crisis

Now, already, I have made some people angry.  "It isn't a 'European' crisis!" "It isn't a 'crisis'!" "They aren't 'refugees'!"

Well, whatever your terminology, I am referring to the influx of migrants into Europe (mostly). 

First, let's clear up a few misunderstandings with some pertinent facts: first, while many of the migrants are from Syria and Iraq, and therefore can generally be considered 'refugees', two of the major contributors are Kosovo and Albania, and many more are coming from Africa and even as far as Bangladesh.

So let's look at just the Syrian and Iraq refugees.  Under the UN convention on refugees, UN member states have a clear duty to give shelter and protection to refugees.  They do not have to give them permanent homes, though.  Or citizenship.  Which creates a dilemma, since no one expects the Syrian and Iraqi refugees to return to Syria or Iraq.  This is a different situation from the millions of refugees in Turkey, Lebanon and Jordan, who everyone expects to return, and where there is not the slightest attempt at integrating them or setting them on a 'path to citizenship'.

I think the solution is to have processing centers in Turkey, or the Greek islands, where most of the refugees come through.  All migrants who are not considered refugees should be refused entry into the EU, or if they have already arrived, sent back.  Europe probably cannot accept all refugees, but those that are accepted should be given a visa for the destination host country, and allowed to pass through intermediate countries on their way there.  All EU countries should be asked to accept a quota of refugees. 

For example, the Bashar family, from Syria, arrives in Patmos, Greece.  They are interviewed, deemed to be legitimate refugees, and given visas for Sweden.  They are given rail vouchers to pass by European railways north through intermediate countries, where they will show their Swedish visas and be granted passage.  They might also be given food vouchers, if they are poor. They cannot stay more than 2-3 days in any intermediate country.  Alternately, if they can afford it, or a charity pays for it, they can fly to Sweden.

The host country has the right to screen refugee applicants, of course, so each EU country can, if they wish, have their own interviewers at the processing centers.  Or they can ask EU interviewers to do the screening for them.

Non-European countries, such as Canada, the US, Australia, etc., should set up processing centers as well.

In return, refugees should be asked to sign a pledge that they will respect the laws and traditions of the host country.  This means that they will not ask for any special privileges as Muslims, they will not wear any face coverings, and they will not support extremism.  They will try to find employment to support themselves in their new country, and they will learn the language (Swedish, German, etc.).

Managing the refugee situation will be difficult, and no solution will be perfect.  I think that it can be handled more effectively and humanely, however. 

Both refugees and the people of the host country will have to make adjustments to live together.  The refugees, however, because they are a minority and newcomers, will have to make the biggest adjustments.  They should be prepared to accept that they will have to change to fit into their new homeland, rather than demand that their new homeland change to suit them. 

by Scott Tyler ( at October 27, 2015 03:01 AM

October 20, 2015

Scott Tyler

A Midday Excursion

The narrow road to the school I take every day, but that is where I always stopped.  At the school. Beyond the next bend I had never been.  So today, at lunch-- we have a long lunch-- I turned my bicycle that way, and went right instead of left.

Sometimes the road ahead is much like the road behind.  But sometimes there are surprises.  Turning that corner beyond the school I found myself, quite unexpectedly, in a small village!  Like many Chinese country villages it was a mix of ancient tile-roofed homes, built during the Qing dynasty, and just-finished or not-quite-finished styleless modern mansions by the nouveau riche.  There was an old man cutting another old man's hair, outside, in an armchair in front of his house.  There were chickens strutting beside the road.  Someone frying lunch in a big wok on an open fire.  Well, I'd seen all that before. 

Beyond the village, turning another corner, suddenly there was a weird, multi-leveled tower, and then just in front, a gate with painted columns and mantel above.  The paint was eroded, and indecipherable, yet looked somehow religious.  A church?  A temple?  Or just some old villa from a century ago, fallen into disuse?  I couldn't tell.  I was able to peek inside though, to see a perfectly trimmed lawn, and buildings in much better repair.  I will have to go back some other time to investigate.

Finding no restaurants, though, I turned around and headed back down the more familiar route.  I stopped in the shade of some tropical trees, birds singing overhead, for an iced coffee and a plate of baozi (steamed buns stuffed with meat).  The breeze swayed the branches above and rustled the leaves as I read my novel and ate my lunch, feeling just a little bit sleepy.   Ah, life!

by Scott Tyler ( at October 20, 2015 05:32 AM

October 16, 2015

Scott Tyler

New Migration Theories Based on DNA

With new advances in DNA tracing, anthropologists have made some surprising discoveries regarding past migrations.  These include traces of apparently Polynesian DNA in a group of aboriginal (pre-contact) people in Brazil.  How this particular group, which lived far to the east of the Andes, could have Polynesian ancestry is a mystery.  The anthropologists have not been able to advance any theory that they themselves are satisfied with.  Which leads me to wonder if maybe the science is flawed.  I don't mean that the sampling was done in an unscientific way, but rather that the same mutation which arose among Polynesians, and is considered a marker of Polynesian heritage, might have happened independently in South America.  In other words, it may be nothing more than coincidence.

Similar coincidences may explain other apparent genetic relationships which are hard to explain historically, between groups on different continents with no likely contact with each other.  As more DNA sampling occurs, such coincidences are likely to appear with ever greater frequency.

by Scott Tyler ( at October 16, 2015 08:22 AM

October 13, 2015

Scott Tyler

Back in China!

Yes. I have returned to my 'second home.'  Fortunately, we have found a truly gorgeous place to live, called Zhuhai.  The campus where I live and work is in a valley surrounded by forested hills.  Everyday I ride to work past bamboo thickets and swaying palm trees.  There are beaches not far away. It's lovely.

And there is a McDonald's and Subway on campus.  Pizza Hut and Starbucks are a little further away...

It's unfortunate that I'll miss the birth of my sister's first child, and Thanksgiving.  Well, there's always a trade-off, I guess.

Ironically, with all the sites that are blocked, I now have Firefox again, which means I can write in my blog! So I expect to do a lot more blogging in the days ahead.

by Scott Tyler ( at October 13, 2015 07:08 AM

September 19, 2015

Chris Tyler

Running LEAP: Portable 64-Bit ARM Computing

I really want a 64-bit ARM laptop, but no one is shipping them yet -- not even Vero Apparatus.

So, I've put together the next-best-thing: a portable, wireless system assembled from off-the-shelf components. The resulting system weights ~1.8 kg (4 lb), has a 5-6 hour battery life, and fits in my laptop bag. It has microSD for storage, an 8-core Cortex-A53 processor, wifi, ethernet, and bluetooth, an external HDMI output for presentations, and 1GB of RAM. The components are held between two sheets of acrylic by 3M Dual Lock fasteners so the configuration can be easily switched up.

This system runs a version of LEAP, our experimental enterprise Linux distribution for AArch64 systems loosely based on the CentOS 7 x86_64 sources, on a 96Boards HiKey. The HiKey isn't officially supported by LEAP (yet), but we expect to support it later this year. I look forward to swapping the HiKey for a 96boards Enterprise Edition board later this year.

If you're at Linaro Connect next week, I'd be glad to give you a peek sometime during the week or on Demo Friday, and I'll blog about how the system was assembled a few weeks down the road.

by Chris Tyler ( at September 19, 2015 04:12 AM

July 02, 2015

Chris Tyler

The OSTEP Applied Research Team

I haven't introduced my research team for quite a while, and it has changed and grown considerably. Here is the current Open Source Technology for Emerging Platforms team working with me at Seneca's Centre for Development of Open Technology. From left to right:

  • (me!)
  • Michael (Hong) Huang (front)
  • Edwin Lum (rear)
  • Glaser Lo
  • Artem Luzyanin (front)
  • Justin Flowers (rear)
  • Reinildo Souza da Silva
  • Andrew Oatley-Willis

Edwin and Justin work with me on the DevOps project, which is applying the techniques we've learned and developed to the software development
processes of a local applied research partner.

Michael, Glaser, Artem, Reinildo, and Andrew work with me on the LEAP Project. Recently (since this photo was taken), Reinildo returned to Brazil, and has been replaced by Christopher Markieta (who has previously worked with this project).

I'm dying to tell you the details of the LEAP project, so stay tuned for an announcement in the next week!

by Chris Tyler ( at July 02, 2015 08:51 PM

April 11, 2015

Chris Tyler

Connecting a 96boards HiKey to a Breadboard

I've wanted to experiment with interfacing the 96boards HiKey (8-core, 64-bit ARM development computer) to some devices, but the 2mm 40-pin header is difficult to bring out to a breadboard (except by individual wires). I designed a simple adapter board and had some produced by the awesome OSH Park prototype PCB fabbing service. The boards are back, and I've been assembling a few of them for testing.

The adapter has a 40-pin 2mm male connector that plugs into the 96boards "low-speed" (LS) female header. It brings those signals to a 40-pin 0.1"/2.54mm header that can be used with an insulation displacement connector (IDC) on a ribbon cable. The other end of the ribbon cable can then be connected to a standard solderless breadboard using an adapter (most of the 40-pin IDC-to-breadboard adapters used with the Raspberry Pi A+/B+/2 should work -- for example, the AdaFruit Pi Cobbler Plus (straight) or T Cobbler Plus (T-shaped), KEYES SMP0047 from (U-shaped - not checked), or a 40-pin IDC Ribbon Breakout from Creatron in Toronto (straight) -- obviously, the pinouts from the 96boards connector will be different, so ignore or rewrite the pin labels on the adapter board). Update: Watch out for breadboard adapters that connect pins together -- e.g., that are designed for use with a Pi and connect together Ground or Supply pins, which will have different functions on 96boards LS connector. (I found a T-style adapter from that has this issue).

These first-try "Alpha 1" boards are not ideal -- they're bigger than they need to be, the board occludes one of the 96boards mounting holes, and the routing is wonky (I let the autorouter do its thing, and ended up with a couple of unnecessary vias and some wild traces). Nonetheless, the board seems to do what it was intended to do. I'm going to work on a second-generation design, but it may be a little while before I get around to it.

If you're interested in using this design, it's licensed under CC-BY-SA and can be downloaded or ordered from the OSH Park sharing site.

You can use this with the 2mm (96boards LS) and 2.5mm (IDC) connectors on the same side of the board, or on opposite sides of the board.

If you place them on the same side of the board (see the populated PCB with no cable attached in the photo -- though the IDC socket should be rotated 180 degrees), the pin numbering on the IDC cable will match the 96boards pin numbering. However, the IDC connector will be really tight to the edge of the board -- you may want to slightly angle the IDC header when you solder it on.

If you place them on the opposite sides of the board (the adapter plugged into the HiKey in the photo), the even and odd numbered pins will be swapped (1<->2, 3<->4).

One final note -- these should work fine with other 96boards devices that comply with the Consumer Edition specification -- and hopefully, it won't be long before the DragonBoard 410c is available so we can test this theory!

(The board in the photo is in one of the very basic acrylic cases I built for the HiKeys).

by Chris Tyler ( at April 11, 2015 05:22 PM

February 15, 2015

Chris Tyler

Initial Current and Temperatures on the HiKey from 96Boards

I was fortunate to receive an early access HiKey board from the 96Boards project at Linaro Connect last week.

This board is powered by an 8-core, 64-bit Cortex-A53 ARMv8-A Kirin 620 SOC from HiSilicon with 1GB of LPDDR3 RAM, a Mali 450MP4 GPU, dual USB, eMMC and micro-SD storage, 802.11g/n, and high- and low-speed expansion connectors with I2C, SPI, DSI, GPIO, and USB interfaces.

So far, this has been an incredible board to work with, despite some teething pains with the pre-release/early access software and documentation (and a few minor quibbles with the design decisions behind the 96Boards Consumer Edition spec and this first board). It's not in the same performance class as the ARMv8 server systems that we have in the EHL at Seneca, but it's a very impressive board for doing ARMv8 porting and optimization work -- which is its intended purpose, along with providing a great board for hacker and maker communities.

I experimented with the board last week and took some readings at home today, and thought I'd share some of my findings on board current draw and temperatures, because it may be useful to those planning alternate power supplies and considering temperatures and airflows for cases:

  • Current consumption: The board draws ~120 mA at idle (Linux login prompt) with nothing connected, and about 150-155 mA with a basic USB fast ethernet adapter connected. With ethernet attached and 8 cores doing busy-work (compressing /dev/urandom to /dev/null), current consumption rises to just over 300 mA (297-320). All of these readings are at 12+/-0.25 vdc, so that's under 4W including the USB ethernet. Note that the GPU was basically idle during these tests.
  • Temperature: In a room with an ambient temperature of ~21C, with all 8 cores doing busy work (8 processes gzipping /dev/urandom to /dev/null, and top reporting 0.0% idle), the temperature on the SOC heatsink rose fairly quickly to ~48C, and eventually reached 52C, measured using an infrared temperature reader (accuracy of +/- <2C).

A couple of other random observations about the board:

  • The board mounting holes accommodate M2.5 screws. Basic hardware stores, including Home Depot (at least in Canada), do not carry M2.5 screws, so I've been thwarted in my efforts to mount this onto an acrylic plate so far (cases will evetually follow, I'm sure, but I always prefer to have boards on/in something and not sitting directly on my desk). I'm sticking some silicon feet on the bottom as an interim measure.
  • There is a "USERDATA" partition on the eMMC which is not used by the initial software image. Be sure to format and mount that partition to gain an additional 1.5 GB of space if you're running from eMMC.

I'm looking forward to the release of WiFi drivers and UEFI bootloader support soon, as promised by the 96Boards project.

More notes to follow...

by Chris Tyler ( at February 15, 2015 02:39 AM

January 23, 2015

Chris Tyler

How to Become a Good Artist

To my students: this also applies to programmers and sysadmins.

by Chris Tyler ( at January 23, 2015 07:44 PM

October 02, 2014

Chris Tyler

You'd be crazy to miss FSOSS 2014

The Free Software and Open Source Symposium (FSOSS) 2014 is around the corner, and it's shaping up to be the best in years. We have well over 30 talks spread over 2 days, covering just about every corner of open source from new and upcoming technologies through business models. We have a keynote from my colleague David Humphrey examining the implications of Heartbleed, as well as keynotes from Chris Aniszczyk (Twitter) and Bob Young (Lulu/Red Hat/TiCats). There are speakers from Canada, the US, Hungary, the UK, Cuba, and India, representing open source communities, academia, entrepreneurs, startups, and companies such as Mozilla, Cisco, AMD, Red Hat, and Rackspace.

Until October 10, registration for this event is just $40 (or, for students and faculty of any school, $20), which includes access to all of the keynotes, talks, and workshops, two lunches, a wine/beer/soft drink reception, a t-shirt, and swag.

Full details can be found at -- see you October 23/24!

by Chris Tyler ( at October 02, 2014 03:31 PM

September 04, 2014

Scott Tyler

Goodbye China

Eight years I've lived in Dalian.  That's longer than I've lived continuously in any one place.  A quarter of my life-- 11 years-- I've lived in China.  13 years if you include South Korea.

It's time for reflection, but what can I say?  China seems normal-- like home to me, now.  What has happened to me here is just life: meeting friends, working, getting married and having a child.   So many memories.  The best and worst times of my life.  But to anyone else they will seem mundane, ordinary.

So many memories:

Hiking on Big Black Mountain.  Lunch after church in Taiyuan, with 20 people, each ordering a different dish.  Wild nights in Itaewon and Five Colour City.  Our wedding in Xi Lin.  The birth of my son and watching him take his first steps.  Going to the 'hua hua ti" (slide) with him.   5,000 students.   A few-- especially kindergarteners Alice and Connie-- who touched my heart.  Travel by bus, train, ferry, airplane and car to more than 30 provinces of China.   Taking the Trans-Siberian across Russia.  The dark days of SARS and depression.  The thrill of buying our first home, and renovating it.  Scraping by on $500 a month, and later earning almost $5,000 in one month.  And back to poverty again.

As the old song goes: "What a long, strange trip it's been."

by Scott Tyler ( at September 04, 2014 08:08 AM

February 22, 2014

Scott Tyler

Congratulations Morgan and Fred!

Today, February 22, 2014, my sister, Morgan Tyler, and her fiancee, Fred Chu, are getting married!  So on behalf of my wife, Monica, and my son (their nephew) Moses, I want to wish them a wonderful wedding, a long and happy marriage, and many little Chu-Tylers.

Congratulations, you two!

by Scott Tyler ( at February 22, 2014 10:15 AM

February 10, 2014

Scott Tyler

2014: Year of African American Literature

This year, 2014, I plan to read 12  6 classics of African American Literature:

1. I Know Why the Caged Bird Sings by Maya Angelou (READ)

2. The Color Purple by Alice Walker (READ)

3. Their Eyes Were Watching God by Zora Neale Hurston (READ)

4. Native Son by Richard Wright (READ)

5. Invisible Man by Ralph Ellison (READ)

6. Go Tell it on the Mountain by James Baldwin (READ)

by Scott Tyler ( at February 10, 2014 08:17 AM

December 31, 2013

Scott Tyler

Origins of Cultures

I've been teaching Koreans for awhile now, and have observed a lot about their culture.   They live on a peninsula, surrounded by the ocean on three sides, so as you'd expect, their culture is in many ways a maritime culture.  You can see this in their diet, which is heavily reliant on seafood.  Yet anthropologists believe Koreans originally came from north-central Asia (somewhere north of Mongolia).  There are certain linguistic similarities to Mongolian and other Central Asian languages.  Although they left Central Asia thousands of years ago, there are still traces of their origins in modern Korean culture.  For example, in their diet.  Koreans love to barbeque meat, which is a trait of Central Asian people, and of plains people generally.  Also, in smaller villages, the sport of wrestling is popular, as it is among Mongolian and Turkic people of Central Asia.   Koreans' preference for sitting and lying on mats on the floor may also be a holdover from their nomadic past, when they lived in tents.   Drums are important in traditional Korean music, and they are worn on the chest (like in a marching band).   This also points toward their Central Asian background (many plains cultures use drums).

Some social groups adapt quickly when they migrate into a new environment.   The Cajuns of southern Louisiana, for instance, have developed a culture suited to their bayou environment in a relatively short period of time.   The Cajun/Acadian culture is very different from the culture of France, where their ancestors came from, or even Nova Scotia, where they first settled in North America.

Other groups are slower to adapt, and even after many centuries the original environment in which their culture was born is still evident.   Look at the British, for example.  Living on an island, one would expect to find a maritime culture.   While Scottish and English are famous sailors, seafood has never been a mainstay of the British diet.  Sure, fish and chips may be a famous dish in England-- but the English have to batter and deep fry fish before they consider it palatable.   Japanese and other maritime peoples eat fish raw, or cooked with little seasoning.  Beef, not fish, is the preferred source of protein in Britain, and has been since deer became scarce.  This is because the Celtic, Saxon, Norman and other peoples who migrated to Britain were not maritime people.  They were woodland people, with a woodland diet, from the mainland.

There are 6 geographic cultural groups, by my estimate.

1. Plains Cultures.  People who live on steppe or prairie.   These cultures are nomadic or semi-nomadic originally.  They are hunters, not agriculturalists, so meat is a big part of their diet.  Much of their culture references the most important animal to plains nomads: the horse.

2. Northern Woodland Culture.   The culture of much of Europe.   Agriculture and animal-rearing are important.

3. Tropical. The cultures of Southeast Asia, India, and Central Africa.

4. Arid/Semi-arid.  The cultures of Arabia, North Africa and the American Southwest (Hopi, Navajo, etc.)

5. Maritime.  There are two types of maritime culture: sailors and fisherman.

6. Arctic.  Inuit and other peoples of the Arctic.

by Scott Tyler ( at December 31, 2013 07:47 AM

November 24, 2013

Chris Tyler

New Pidora Package: quick2wire-python-api

I've packaged the quick2wire python3 library for the Raspberry Pi. This provides easy access to the i2c peripheral bus from Python3; I've packaged this up because I need it, and also to test and demo the package review process for Pidora.

Here's a little demo of the quick2wire library in action which I wrote some time back and have been using as a test for the package -- this reads a TCN75A (data sheet) thermal sensor chip:

# test_tcn75a :: Test of reading a TCN75A digital
#                temperature sensor using I2C
# Assumes:
# - TCN75A is powered at 3v3
# - I2C lines connected to Raspi GPIO
# - Pins 5/6/7 are grounded (address = 72)
# Uses:
# - quick2wire Python library
# CTyler 2012-10-03 - GPLv2+

# Using the quick2wire module for I2C access
import quick2wire.i2c as i2c

# Using the time module for sleeping
import time

# Address (unit number) of the TCN75A temperature
# sensor on the I2C bus
address = 72

# Register number within the TCN75A that contains
# the current temperature
temp_register = 0

# Register number within the TCN75A that contains
# the configuration register
conf_register = 1

with i2c.I2CMaster() as bus:

    # Configure the resolution (optional step)
    # The configuration register is used to set the temperature
    # resolution. The higher the resolution, the more
    # accurate the temperature reading, but the lower the
    # sampling rate. Possible values are 0, 32, 64, and 96.
    # Value 96 = 0.01625C steps (highest resolution)
    # Value  0 = 0.5C steps (lowest resolution) (default)
        i2c.writing_bytes(address, conf_register, 96))

    # Loop 100 times
    for i in range(1,100):

        # Select the address (unit on the bus) and desired
        # register, and read 2 bytes
        read_temp = bus.transaction(
            i2c.writing_bytes(address, temp_register),

        # The first byte contains the temperature in degrees
        # Celsius (actually, this is a signed number, so
        # values over 127 are negative, but I'm ignoring
        # that here). The second byte contains 256ths of a
        # degress, but the default resolution of the sensor
        # is 0.5 degrees, so it will always be 0 (.0) or 128 (0.5)
        # unless the resolution is changed.
        # This line converts the two bytes into a single
        # temperature and prints it.
        print("Temperature: %3.3f°C" % (read_temp[0][0]+read_temp[0][1]/256) )

        # Delay half a second before getting next reading

The package is up for review in Pidora (not Fedora, but only because it's not useful on other platforms -- at least at this time). The package review, including links to the specfile and SRPM, is ticket #495.

by Chris Tyler ( at November 24, 2013 02:51 AM

November 15, 2013

Scott Tyler

Lost Pears

Lost Pears

In the valley above the valley
at the end of it all
stands the wild pear tree
where the wild pears fall
unpicked, uneaten, by man or beast
to roll and rot among the rotted leaves.

The waste of it all!
(Though I know the pears are bitter)
I brood on their loss
as fall turns to winter:
the pears soon buried in forgetful snow
that melts in the spring
when the new pears grow.

by Scott Tyler ( at November 15, 2013 12:43 AM

November 05, 2013

Scott Tyler

A Sad Anniversary

This is the one-year anniversary of my student, Janny's,  suicide.  I realized this, when students were preparing for the annual school festival, called 'NAVI'.  It was at the festival, last year, that I saw and talked to Janny for the last time. 

Janny was in grade 10.  She was a wonderful person- smart, kind, with lots of friends.  What I remember most about her was her big, bright eyes.  So I'd like to quote part of a song by Art Garfunkel, here, in her memory:

'Bright eyes, burning like fire.

Bright eyes, how can you close and fail?

How can the light that shined so brightly

Suddenly burn so pale?

Bright eyes.'

-Art Garfunkel/Mike Batt

by Scott Tyler ( at November 05, 2013 05:22 AM

October 31, 2013

Scott Tyler

Reading Schedule until 2020

This year I've been reading 20th Century literature.  My guide has been the Modern Library list of the top 100 novels of the 20th Century.  By the end of this year,  I will have read half.  I'm a slow reader, though, so it would take me about 2 more years to complete the list.

By 2020, I would like to study, tentatively in this order:

2014  African American Literature 12 novels and Canadian Literature 12 novels

2015  20th Century Literature II  25 novels

2016  20th Century Literature III 25 novels

2017  Longer Poems and Books of Poetry (from Ovid to Ezra Pound.  I'm especially looking forward to

             reading Piers Plowman in Middle English)

2018  Russian Literature  (in translation) 12 novels

            French Literature (in translation) 12 novels

2019  17th and 18th Century Literature (1650-1799)  24 novels

2020  19th Century Literature (what I haven't already read)  24 novels


After that, I'll be done with classics.  For now.

by Scott Tyler ( at October 31, 2013 05:18 AM

August 29, 2013

Scott Tyler

all my wounds are self inflicted

All my wounds are self inflicted,

I've been dodging friendly fire,

I'm tired of life,

or am I just tired?

by Scott Tyler ( at August 29, 2013 08:50 AM

August 22, 2013

Scott Tyler

Airports I Have Known

I love to fly, but I've never been fond of airports: I'm either worried about catching a flight, or

 just waiting, bored.  But there are some really great airports, and some not-so-great.  I think my

 favourite, in terms of interior design, is Vancouver's.  Really classy.  The smallest 'international'

 airport I've been to is probably San Jose, Costa Rica, but the least busy is Taiyuan, China, which

only had 3 flights/day when I was there. 

Most visited airport within each region/country is highlighted.


                        CITY               DEPARTURES       ARRIVALS       STOPOVERS


                      Calgary                       2                             1                          0

                      Toronto                     13                          15                         0                  (my 'home airport')

                      Vancouver                  1                             1                          5

                      Winnipeg                    0                             0                          1

United States:

                      Atlanta                        0                             0                          2

                      Buffalo                          2                             1                          0

                      Chicago                        0                             0                          1               

                      Honolulu                     0                              1                          0

                      Los Angeles                 0                              0                          1

                      Miami                          0                              0                           1

                      Newark, N.J.             0                              1                           0

                      Orlando, FL                0                              1                           0

                      San Fransisco         2                              1                           2

                      Tampa Bay                 0                              1                          0

Central America:

                      San Jose, C.R.         1                               1                           0


                      Amsterdam                0                              0                           2

                      Athens                        2                              2                           0

                      Frankfurt                    1                              0                           0

                      Helsinki                       0                              1                           0          

                      London (Gatwick)     0                              1                           0

                      Prague                          0                             0                            1


                      Beijing                          6                              3                          12

                      Dalian                        7                             10                           1

                      Guangzhou                 0                              1                            0

                      Sanya                           1                              1                            0

                      Shanghai                     2                              2                            0

                      Shenyang                    0                             0                             1

                      Taiyuan                       1                              0                           0

                      Qingdao                        1                              0                           0

                      Xiamen                         0                             0                           1

Other Asia:

                      Hong Kong                   0                             0                            1

                      Incheon, S. Korea  5                             6                            0          

                      Kuala Lumpur           1                              1                            0 

                      Osaka                           0                              0                            1

                      Singapore                    1                              1                             0

                      Tokyo (Narita)          0                              0                            1


                      Cairo                            1                               1                            0

by Scott Tyler ( at August 22, 2013 01:53 AM

May 20, 2013

Scott Tyler

2013 Reading Plan

This year, 2013, is the 'Year of Modern Literature', for me.  I plan to read selected works by major authors of the 20th Century. 

I've totally changed my plan, though, so I will just list works, as I've read them:

January and February:  James Joyce:  Ulysses  (continuing)

                    Saul Bellow:                   Henderson the Rain King,

                                                              The Adventures of Augie March

                    Phillip Roth:                  Portnoy's Complaint

                    D.H. Lawrence:            Lady Chatterley's Lover

                    Ford Madox Ford:        The Good Soldier

March:     Joseph Conrad:             Nostromo

                   William Faulkner:      As I Lay Dying

April:       Salman Rushdie:          Midnight's Children

May:        Thomas Pynchon:        The Crying of Lot 49

                  Graham Greene:          The Heart of the Matter

June:       E.M. Forster:                  A Room With a View

                                                            Howard's End

July:       Max Beerbohm:             Zulieka Dobson

                 Sherwood Anderson:    Winesburg, Ohio

August:  Theodore Dreiser:         Sister Carrie

Sept.:      Cormac McCarthy:      Blood Meridian

                 Edith Wharton:             The Age of Innocence

Oct.:        Thornton Wilder:         Our Town

                 Sinclair Lewis:               Main Street

Nov.:      Evelyn Waugh:             Brideshead Revisited

                 E. M. Forster:                 A Passage to India

                V. S. Naipaul:                 A Bend in the River

Dec.:      Ernest Hemingway       To Have and Have Not

by Scott Tyler ( at May 20, 2013 05:54 AM

February 20, 2013

Chris Tyler

Looking for a Debugging Mentor

I'd love to figure out why my Toshiba Z830's screen-brightness controls work fine after suspend but don't work after hibernate with Fedora 17 (I have two-phase suspend/hibernate set up). I'm comfortable doing debugging but don't even know where to start on this one -- I don't know which subsystems to poke at.

Anyone willing to mentor me through this?

by Chris Tyler ( at February 20, 2013 06:12 PM

February 11, 2013

Chris Tyler

Acessing the armv6hl Koji Buildsystem

The Seneca CDOT OSTEP project has been operating a Koji buildsystem for the Fedora ARM Secondary Architecture project, for the armv5tel and armv7hl architectures. These architectures are going to shift to the Fedora Phoenix datacentre Real Soon Now(tm) now that true enterprise-grade ARM server hardware is available.The armv5tel architecture has hit EOL with Fedora 18, but will be supported with updates until a month after the release of Fedora 20; we (the Fedora ARM group) is working towards Primary Architecture status for armv7hl by the Fedora 20 release.

We (Seneca OSTEP) are now also operating a second Koji buildsystem, for the armv6hl architecture. This architecture is really of interest only for the Pidora project for the Raspberry Pi at this point in time. This buildsystem is accessible on the web at

However, to access the armv6hl buildsystem using the Koji command-line tools, using a Fedora client certificate, a bit of a dance is required. This post outlines the steps...

1. Set up your Fedora packager environment, if you haven't already done so.

2. Add this text to the end of your ~/.fedora-server-ca.cert file:


3. Place this text in /etc/koji/armv6-config:


;configuration for koji cli tool

;url of XMLRPC server
server =

;url of web interface
weburl =

;url of package download site
topurl =

;configuration for SSL athentication

;client certificate
cert = ~/.fedora.cert

;certificate of the CA that issued the client certificate
ca = ~/.fedora-upload-ca.cert

;certificate of the CA that issued the HTTP server certificate
serverca = ~/.fedora-server-ca.cert</code>

4. Execute this command: sudo ln -s /usr/bin/arm-koji /usr/local/bin/armv6-koji

5. Ping someone on the OSTEP team via irc:// to add your FAS2 username to the Koji instance.

6. Profit! -- You should now be able to issue commands to the armv6hl koji system by typing: armv6-koji command

In due course, we'll get this configured as a standard secondary-arch Koji instance, and you can skip the steps above -- but in the meantime, if you want to help with the armv6hl effort, those are the steps required.

by Chris Tyler ( at February 11, 2013 07:24 PM

January 18, 2013

Chris Tyler

Why the Pi is Great for Teaching and Hacking

Today at FUDCon I gave a lightning talk on interfacing devices to the Raspberry Pi, to try and explain why this device is so interesting to both educators and hackers.

Here's a recap of the demo for those who weren't there (or if I missed something); I was using a Pi running the Raspberry Pi Fedora Remix 17, and the point of the demo was to show how simple devices can be controlled (or sensed) directly from the command line (using just four commands: cd, ls, cat, and echo, plus sleep and the bash loop):

1. Output

The Raspberry Pi has a number of General-Purpose Input/Output (GPIO) pins available on a connector on the corner of the board. These can be used as inputs or as outputs, and can be on (binary “1”) or off (binary “0”). The pinout diagram is available on the web.

Connecting up an output can be as simple as taking an LED (from any electronics part store, or snipped out of a dead PC) and a small resistor (I used a 220 ohm one - red/red/brown) and connecting them to one of the GPIO pins and a ground pin. In the demo I used GPIO 11 and ground, with a tiny breadboard and some male-female jumper wires for convenience.

The software side is pretty simple: there's a directory, /sys/class/gpio, that provides access to the GPIO pins. By default, this directory contains just three entries:

# cd /sys/class/gpio
# ls -l
total 0
--w------- 1 root root 4096 Dec 31  1969 export
lrwxrwxrwx 1 root root    0 Dec 31  1969 gpiochip0 -> ../../devices/virtual/gpio/gpiochip0
--w------- 1 root root 4096 Dec 31  1969 unexport

Placing a GPIO number in the export file gives us control of that GPIO:

# echo 11 > export

And the kernel responds by creating a directory corresponding to that GPIO pin:

# ls -l
total 0
--w------- 1 root root 4096 Jan 14 18:39 export
lrwxrwxrwx 1 root root    0 Jan 14 18:40 gpio11 -> ../../devices/virtual/gpio/gpio11
lrwxrwxrwx 1 root root    0 Dec 31  1969 gpiochip0 -> ../../devices/virtual/gpio/gpiochip0
--w------- 1 root root 4096 Dec 31  1969 unexport

The gpio11 directory contains a number of pseudo-files for controlling the pin:

# cd gpio11
# ls -l
total 0
-rw-r--r-- 1 root root 4096 Jan 14 18:41 active_low
-rw-r--r-- 1 root root 4096 Jan 14 18:41 direction
-rw-r--r-- 1 root root 4096 Jan 14 18:41 edge
drwxr-xr-x 2 root root    0 Jan 14 18:41 power
lrwxrwxrwx 1 root root    0 Jan 14 18:39 subsystem -> ../../../../class/gpio
-rw-r--r-- 1 root root 4096 Jan 14 18:39 uevent
-rw-r--r-- 1 root root 4096 Jan 14 18:41 value

The files we care about are direction and value. The direction is initially set to input (“in”), which we can see if we cat the direction file:

# cat direction

We can change the pin to an output by writing “out” into that file:

# echo out > direction

The value file will tell us if that pin is off (“0”) or on (“1”):

# cat value

If you set this value to 1, the LED should turn on:

# echo 1 > value

If it doesn't, you probably have it plugged in backwards. Switch the wires (I'll wait).

Once the LED is on, you should be able to turn it off by setting the value to 0:

# echo 0 > value

From an educational perspective, this is really cool: it makes a concept (bit) tangible.

But turning the light on and off gets boring quickly. The next step is to write a command-line loop to make the LED blink:

# while true; do echo 1 > value; sleep 0.2; echo 0 > value; sleep 0.2; done

What if you want to control something a lot bigger than an LED? Just substitute something like a Powerswitch Tail II for your LED - your Pi connects to an LED inside the tail, and whenever that LED is turned on, the water pump/blender/fan/toaster plugged into the tail starts up.

2. Input

Connecting an input is not any more complicated. In the demo, I hooked up an old “Turbo Mode” switch (remember those?!) to GPIO 24. In one position, it connected GPIO 24 to 3.3 volts, and in the other position, it connected it to ground.

Using this switch as an input was even easier than controlling the LED:

# cd /sys/class/gpio
# echo 24 > export
# cat gpio24/value

... Now toggle the switch! ...

# cat gpio24/value

3. Input & Output

Putting both of these together is pretty straightforward. You can control the flashing of the LED using the switch with a line like this:

# while sleep 0.1; do if [ $(<gpio24/value) = "0" ]; then echo 1 > gpio11/value; sleep 0.2; echo 0 > gpio11/value; sleep 0.2; fi; done

For education, these experiments are simple, quick, and don't require a lot of background knowledge: the student needs only a handful of basic bash commands (cd, ls, cat, echo). Unlike an Arduino, the Pi doesn't need a separate system to host development. You also don't need to deal with files, interpreters, shebang lines, permissions, or compilers. But eventually (and usually pretty quickly), students will want to learn those concepts. In order to save their commands across boots, for example, they will soon want to store them in files: voila, scripts!

It's logical and easy to progress from controlling a single LED and reading a single switch to controlling six LEDs - enough for a two-way traffic light - and then you can add things like pedestrian crossing buttons. Or you can use two infrared LEDs and two infrared phototransistors (which act exactly like switches), mounted in a doorway, to count the number of people that have entered and exited from a room, turning on the lights whenever people are present. These types of projects are fun and engaging ways to teach logic, programming, and circuits.

After a while, students want to do something they can't easily do in bash, like drive a GPIO faster, or poll some complex combination of pins – and they're on to Python (or C, or Perl, or any of a multitude of other languages).

When students/hackers/makers want to connect something more complex than can be easily interfaced through GPIO, the Pi offers serial ports (you can put a message on an LCD display with two bash commands), I2C, and SPI interfaces. And although the ARM processor in the Pi is fairly slow, it is fast enough to do interesting things like speech synthesis and machine vision.

by Chris Tyler ( at January 18, 2013 08:03 PM

December 28, 2012

Scott Tyler

2012 Retrospective

(Thanks to my brother, Chris, for getting my blog up and running again!)

This year, for my wife and I, will be remembered as 'The Year of the Apartment'.  We bought a concrete shell of an apartment in the summer, and since then we have been finishing it: floors, walls, ceilings, then kitchen cabinets, sinks, stove; toilet, hot water heater, sink and shower; window seat, sofa, bunk beds, etc.

My wife has done most of the planning, talking to contractors, overseeing their work, ordering on the Internet, etc.  I've mostly been a spectator.  My job was to work 6 days/week, and several evenings, to pay for everything.

Thanks to Monica's Mom and Dad for loaning us about a quarter of the initial down payment, and another 30,000 RMB, or so, to help with renovations.  Also, thanks to Monica's uncle and cousin for helping carry bags of cement and bricks up to the apartment  on a couple of occasions. 

This decade, for our family, has so far been quite eventful:

2010: Monica and I get married.

2011: Moses is born.  Mom and Dad Tyler, and Andrew and Brenda visit us in China.

2012: We buy an apartment, and finish it.

2013: We visit Canada (first time for Monica and Moses)  Hopefully...  And, possibly, we buy a car (and I get a Chinese driver's license).

On a lesser note, I finished the complete novels of Charles Dickens, the Bronte Sisters, and Jane Austen, this year.

by Scott Tyler ( at December 28, 2012 02:23 AM

December 17, 2012

Chris Tyler

SBR600 - Winter 2013

The SBR600 Software Build & Release course provides a unique opportunity for Seneca CTY students to get involved with an open source community. However, for the Winter 2013 semester, we opened the course late, so not very many students are aware that it's available.

If you're interested in taking SBR600, or know anyone who is: SBR600 is available for the Winter 2013 semester through SIRIS.

by Chris Tyler ( at December 17, 2012 05:19 AM

November 29, 2012

Chris Tyler

The OSTEP Team

The Open Source Technology for Emerging Platforms (OSTEP) team at Seneca consists of four research assistants who work with me on projects related to enabling Linux and related open source technologies on emerging ARM systems - specifically working with the Fedora ARM Secondary Architecture initiative.

Since I haven't had an opportunity to introduce the team recently, I thought I would (very briefly) do so here.

Andrew Green (agreene) is our repo guru and is currently composing and testing the Raspberry Pi Fedora Remix 18. He is working part time with the OSTEP team while completing the CTY program at Seneca.

Dmitry Kozunov (DarthJava) works full-time with OSTEP. His main area of responsibility is the Fedora ARM buildsystem infrastructure, which means he wrestles heroically on a daily basis with unstable dev boards and multi-terabyte backups. He will be continuing his studies in the Seneca IFS program in January.

Jon Chiappetta (fossjon) is working full-time on a zippy armv6hl optimized build for the Raspberry Pi, and simultaneously experimenting with alternate approaches to koji queueing for secondary architectures. Jon is a graduate of our IFS program and our resident Python pro.

Jordan Cwang (frojoe) is a graduate of the Seneca CTY program and works part-time with the OSTEP team on infrastructure issues. He's is our bcfg2 whiz and is currently working on several infrastructure projects including improving security with measures such as two-factor authentication.

by Chris Tyler ( at November 29, 2012 04:34 AM

November 24, 2012

Chris Tyler

When is an SRPM not Architecture-neutral?

Source RPM packages -- SRPMs -- have an architecture of "src". In other words, a source RPM is a source RPM, with no architecture associated with it. There's an assumption that the package is architecture-neutral in source form, and only become architecture-specific when built into a binary RPM (unless it builds into a "noarch" RPM, which is the case with scripts, fonts, graphics, and data files).

An SRPM contains source code (typically a tarball, and sometimes patch files) and a spec file which serves as manifest and build-recipe, plus metadata generated from the spec file when the SRPM is built -- including dependencies (which, unlike binary RPMs, are actually the build dependencies).

However, the build dependencies may vary by platform. If package foo is built against bar and baz, and baz exists on some architectures but not others, then the spec file may be written to build without baz (and the accompanying features that baz enables) on some architectures. The corresponding BuildRequires lines will also be made conditional on the architecture -- and this make total sense. However, querying an SRPM on a given platform may give incorrect build dependency information for that platform if the SRPM was built on another platform -- and only rebuilding the SRPM on the target arch will correct the rpm metadata (and possibly render it incorrect for other platforms). Thus, I've come to realize, SRPMs are not truly architecture-neutral -- and I'm not sure if all our tools take this into consideration.

Edit: I know that not all of our tools take this into consideration.

Continue reading "When is an SRPM not Architecture-neutral?"

by Chris Tyler ( at November 24, 2012 03:13 AM

September 19, 2012

Scott Tyler

Raise the GST!

A few years ago, before the recession, the GST was cut by two percentage points.  According to some economists, this cost the federal government $12 billion in revenue.   Recently, the Green Party has suggested raising the GST back up to the previous level, restoring the $12 billion in revenue, with that money being sent to municipalities.   Nobody likes taxes, but this idea makes sense in many ways, and would solve the perennial problem of underfunding in municipalities.

Canada now has a population of about 35 million people, so $12 billion means $342/person.  If municipalities received transfer payments based solely on population, the City of Toronto (pop: 2.48 million) would receive $848 million.  That would eliminate Toronto's deficit of over $700 million, with funds to spare for long-neglected infrastructure repairs.  (You may have heard of the Gardiner Expressway dropping chunks of concrete on the cars travelling under it?)

The 2% increase in sales tax (call it the 'Municipal Sales Tax' or 'MST') would direct tax dollars to where they are most desperately needed.  Roads will be repaired.  Water treatment plants upgraded.   Community centers, homeless shelters, schools and libraries renovated and expanded.  Thousands of jobs would be created, almost immediately.  This could be the biggest public works project in Canadian history. 

Nobody likes taxes.  But nobody likes roads with giant potholes, or tap water that is unsafe to drink, either.  Everyone wants good community services, but that costs money.   A 2% increasing in the GST/HST is the most logical way to pay for it.

by Scott Tyler ( at September 19, 2012 03:28 AM

September 10, 2012

Chris Tyler

Interested in buying a Raspberry Pi?

I'm trying to gauge interest in being able to buy the Raspberry Pi at the Seneca Bookstores (no promises!). Please take a second and let me know what you think using this poll...

by Chris Tyler ( at September 10, 2012 09:17 PM

August 23, 2012

Scott Tyler

Economic Classes in Urban China

The Economist Intelligence Unit (EIU) recently published an article on China's largest cities.  In the article, they state that Chinese households with income over 30,000 yuan/year (less than $5,000) are 'middle class'.   I beg to differ.  I believe the authors greatly underestimate the cost of living in urban China.  Rent in most large cities is 1,500 yuan or more for a modest 2-bedroom apartment.  In Shanghai or Beijing, it's over 2,000 yuan.  Utilities are another 400 yuan or more/month.   So rent and utilities, plus food and daily expenses, will be at least 3,000 yuan/month, or 36,000 yuan/year.   Yet the EIU calls Chinese earning only 2,500/month 'middle class'.

The chart below shows, in my opinion, a more realistic view of the economic classes in urban China. 

A family which is 'poor' cannot afford their own apartment, and are sharing with others- relatives or co-workers, usually.  In some cities, this is probably half the population.

A 'working class' family rents an apartment, and has some savings, but has no car and is unlikely to ever save enough to buy an apartment (especially in Shanghai).  At least one third of the urban population is in this income group.

The 'lower middle class' or 'middle class' family will probably, eventually, buy an apartment.  They may have a car, although probably not.

The 'upper middle class' family has both a car and an apartment.  Actually, probably two or three apartments, as Chinese often buy them as investments.  This economic class is wealthy enough to travel internationally, and even send their child to study abroad. 

'Wealthy' Chinese range from those who would be considered middle class in North America to the truly rich.  Chinese millionaires like to flash their money, with over-sized apartments and a Lexus or Audi in the garage (just having a garage in China is a sign of great wealth).

Economic ClassHousehold income per month (in yuan)Household income per year (in yuan)Disposable income (annually, in yuan)Disposable income (annually, in $US)
Working Class3,000-5,00036,000-60,000<20,000<$3,150
Lower Middle Class5,000-7,00060,000-84,00020,000-44,000$3,150-$6,900
Middle Class7,000-10,00084,000-120,00044,000-80,000$6,900-$12,600
Upper Middle Class10,000-20,000120,000-240,00080,000-200,000$12,600-$31,500

by Scott Tyler ( at August 23, 2012 03:34 AM

June 26, 2012

Scott Tyler


This has got to be one of the silliest sports ever.  Speed walking.  Have you seen these guys?  They look like they're gay and constipated.   If I was at one of their 'races', when everyone else was handing out cups of water, or sports drinks, I'd be handing out Metamucil.

"Here, try this.  Clear you right up!"

I have just one question: where do they practice?  You couldn't walk like that around my old hometown, I'd tell you that much.  You'd get beat up.

"Welcome to Huntsville!"  Pow! Bam!

"Wait!  I'm not gay! I'm a speed walker!"

"Yeah... we know."  Bam! Pow!

"Ha!  The force won't save you now, 'Luke' "

"What?  Ow!  I said 'speed walker' not 'Skywalker' !"

by Scott Tyler ( at June 26, 2012 04:33 AM

June 20, 2012

Chris Tyler

Measuring the Raspberry Pi's Current Consumption

The Raspberry Pi has a micro-USB jack for power input. This can be used with any recent mobile phone adapter. If you use a two-part adapter, with a plug-in AC-DC converter and a USB A to micro-USB A cable, it's easy to measure the current drawn by the Pi.

To do this, you'll need a USB A male to USB A female extension cord and an ammeter or multimeter with a 1A or 10A range.

1. Remove the outer insulation in the middle of the USB extension cable. Peel back the shielding (silver braid and/or foil)  to one side.

2. Cut the 5V supply wire (usually coloured red).

3. Connect your ammeter or multimeter to the cut 5V line.

4. Insert this cable between your AC-DC converter and the USB cable going to your Raspberry Pi.

So, how much current does the Raspberry Pi draw?

It looks like the Pi can draw anywhere from 250 to 500 mA in normal operation, though I did see smaller values in the early stages of startup. When idle, my Pi draws 320-380 mA; with a basic Logitech keyboard and mouse attached and in use, and with the CPU and GPU fairly active, it comes close to 500 mA.

Update: Powering the Pi from a Laptop

The fact that the Pi's current consumption is reliably under 500 mA means that it is actually safe to power from the USB port of another system. This is convenient for developers on the go: for example, I'm in an air-conditioned library escaping the current Toronto heatwave, and have my Pi connected to the back of my laptop with a micro-USB cable for power and a crossover ethernet cable for data.

by Chris Tyler ( at June 20, 2012 05:00 PM

June 06, 2012

Scott Tyler

While the mother weeps

the father keeps

tears from his eyes


Oh my son! my son!

by Scott Tyler ( at June 06, 2012 05:10 AM

May 10, 2012

Chris Tyler

New Role: Industrial Research Chair - Open Source Technology for Emerging Platforms

On Tuesday, the Natural Sciences and Engineering Research Council (NSERC) announced a number of grant awards at the Polytechnics 2012 conference, including the new Industrial Research Chairs for Colleges (IRCC) grants. I am honoured to be selected as the chairholder for the NSERC Industrial Research Chair for Colleges in Open Source Technology for Emerging Platforms in the Centre for Development of Open Technology at Seneca College.

This five-year renewable applied research grant enables me to continue and expand upon the work that I have been doing, along with a talented team of research assistants, with Fedora ARM and related projects. My goal is to bring the wealth of open source software currently available for x86 PCs and servers to emerging ARM based general-purpose computers. Although ARM architecture chips are the most popular CPUs made (more ARM chips shipped last year than there are people on this planet), most of these went into dedicated devices, and ARM chips are just starting to appear in general purpose computers. In order to make the transition to general-purpose ARM systems viable, industry-standard software stacks are needed. Fedora is a perfect fit for this purpose, because it encompasses both a large collection of cutting-edge open source software and a vibrant community, and it feeds many downstream distributions and projects.

My work in this new role will start with an expansion of existing work, including operating the Fedora ARM Koji buildsystem and improving the Raspberry Pi Fedora Remix, but I will additionally be focusing on Fedora on ARM server-class systems. In future phases, this will encompass working with the Fedora ARM project to promote ARM to primary architecture status, extending existing open source system management (and possibly virtualization/cloud management) frameworks to manage high-density ARM clusters, doing field trials of ARM-based data centre solutions, and bringing Fedora to the next generation of ARM technology.

Although the majority of my activity will shift from teaching to applied research, I will continue to teach the SBR600 Software Build and Release course in order to bring the research experience back into the classroom. I'll also continue to participate in the initiative. As an Industrial Research Chair, I will also have a bit more of a public-facing role, representing CDOT and advocating the use of energy-efficient systems to local SMEs.

Many thanks to Red Hat for partnering with Seneca on this initiative, and I look forward to (continuing to!) work closely with Red Hat's incredible technical staff. I also thank the many companies and organization who wrote letters of support for the grant application, and look forward to collaboration and possible future partnerships with those organizations. And I particularly want to thank Seneca for its support of applied research, my colleagues at CDOT for their encouragement and for creating such an awesome environment to do applied research, and for the team that wrote the grant application under intense pressure and tight deadlines last November.

Watch this space for updates!

by Chris Tyler ( at May 10, 2012 03:06 PM

March 13, 2012

Scott Tyler

Reading Update

I just finished reading all of Jane Austen's novels.  She only wrote six, and they are relatively short, compared to, say, Charles Dickens' novels.  Still, I did it. 

Other authors I hope to read the complete works of include:

Charles Dickens (still 1 I haven't read)

Bronte sisters (read)

George Eliot

Thomas Hardy

D. H. Lawrence

Joseph Conrad

John Steinbeck

Ernest Hemingway

F. Scott Fitzgerald

William Faulkner

And the complete plays of:

William Shakespeare (finished!)

Christopher Marlowe

Ben Jonson

Euripides, Sophocles, Aeschylus


Ibsen, Strindberg

G.B. Shaw

by Scott Tyler ( at March 13, 2012 06:10 AM

March 09, 2012

Chris Tyler

Element 14's Wonderful Forums Considered Harmful

Element 14, the web presence of one of the Raspberry Pi distributors, Farnell,  operates a wonderful forum system. However, there is one significant problem with their system: under their terms of use, a person who is under 13 is prohibited from using the forum (and those between 13 and 18 from using it without their parent's explicit consent).

This understandable requirement, probably a result of US legislation (and perhaps legislation in other jurisdictions?), is at odds with the Raspberry Pi's stated focus on children (hence the "considered harmful" jab).

I'd encourage the Raspberry Pi community to use forum and wiki systems that don't exclude the device's target audience from participating! Perhaps Element 14 would consider a revision to their Terms of Use, or a dedicated forum with special rules that would enable children to participate. In the meantime, the Raspberry Pi Foundation's forums and the E-linux Wiki do not have age restrictions on participants.

by Chris Tyler ( at March 09, 2012 05:41 PM

March 08, 2012

Chris Tyler

Open Source Translation Database

Andrew Smith has released his Open Source Translation Database project, which contains thousands of open source translation files and can populate new translation files based on previous translations. In the released form this in incredibly useful -- and he has ambitious plans for new features and capabilities such as suggesting strings to be used in new projects based on the number of available translations.

Congratulations, Andrew, on this launch!

by Chris Tyler ( at March 08, 2012 05:36 PM

February 29, 2012

Chris Tyler

Raspberry Pi links

The Raspberry Pi hardware went on sale last night, and as with every other event related to the Pi, pandemonium ensued!

The educational, tech, and mainstream media is starting to take note. Here are some links to local coverage of the Pi and our work on the software for it:

Update 2012-03-03 - additional links:

Update 2012-03-10 - additional links:

To clarify Seneca's involvement, because it may not be clear from the press coverage:

Information about the Remix may be found on the Seneca CDOT wiki.

by Chris Tyler ( at February 29, 2012 10:38 PM

February 20, 2012

Chris Tyler

Raspberry Pi Fedora Remix 14 - Release Event this Wednesday!

The computer education, hardware hacking/maker, and open source worlds are all eagerly anticipating the release of the $35 Raspberry Pi computer before the end of the month. In preparation for the hardware release, tthe Raspberry Pi Fedora Remix 14 distribution is being released this Wednesday, February 22.

Full details of the event are on the CDOT wiki. Everyone's invited, and I hope to see you there!

Update: Fixed link above.

by Chris Tyler ( at February 20, 2012 04:04 PM

February 08, 2012

Scott Tyler

Some thoughts on character

My grandmother used to have a fridge magnet that said, "We get too soon old, and too late smart."   In the past decade I have gotten a lot older, and a little wiser.

I've learned something about people: the way they treat others, is the way they will eventually treat you.  If someone you know is lying to other people, don't think, "Oh, but we're friends.  He won't lie to me!"  Of course he will, and probably already is.  Or if a friend is always talking about others behind their backs, count on it that she is talking about you too.

Credibility, once lost, is almost impossible to restore.  Everyone tells a fib or two, now and then.  But there is a line.  A friend of mine posted a resume which is about 80% fictional.  The 20% which is true might as well be fictional too, because no-one who knows him will believe even that.

It's amazing how self-aware most people are not.  Especially those who have really bad characters.  But almost everyone is blind to their own character flaws, minor or major.  (I, of course, am the exception...)  ;-)

by Scott Tyler ( at February 08, 2012 09:00 AM

January 28, 2012

Chris Tyler

Seriously, CBC?

Going to the CBC this morning, I found this:

I have three problems with this:

  1. The CBC is our public broadcaster, funded in large part by tax money. It should support wide access.
  2. I'm not running IE, I'm running Firefox. The ad is lying to me. If they're able to detect I'm not running the latest version of IE, they should also detect that I'm not running IE at all. My browser is not old, either -- I'm running the latest release of Firefox, which contains several features not yet supported by IE.
  3. IE does not run on my platform (Linux). The ad is a waste of time for me and a waste of money for the advertiser. The pages to which the ad links are all specific to Windows, with no consideration for those running Mac OS/X, Linux, or any other platform.

The ad text seems to imply endorsement. Does the CBC actually endorse the position that the only acceptable end-user computing platform is Windows on an x86 computer? Is increasing the monopoly of a foreign corporation a suitable goal for a taxpayer-funded public broadcaster? I trust not.

by Chris Tyler ( at January 28, 2012 05:51 PM

January 15, 2012

Chris Tyler

Raspberry Pi Giveaway at FUDcon Blacksburg

If you received a Raspberry Pi certificate at FUDcon Blacksburg, please send me an e-mail (ctyler@fp.o) with your certificate number and I'll mail you a coupon code that you can redeem at

by Chris Tyler ( at January 15, 2012 03:26 PM

December 30, 2011

Scott Tyler

12 Dickens Books in 2011

The challenge for 2011: Charles Dickens.  So far, I've read 5 of his novels: Great Expectations, David Copperfield, A Tale of Two Cities, Oliver Twist and A Christmas Carol.  If I read 12 more of his novels (1/month) I will have read ALL of his novels.

So, in 2011 I will try to read:

The Pickwick Papers (Finished)

Martin Chuzzlewit  (Finished)

Nicholas Nickleby  (Finished)

Hard Times  (Finished)

Barnaby Rudge (Finished)

Christmas Books (The Chimes, The Cricket on the Hearth, etc.)  (Finished)

Little Dorrit

The Old Curiousity Shop

Bleak House (Finished, January 4, 2012)

Our Mutual Friend

The Mystery of Edwin Drood (Finished)

Dombey and Son



Well, as you can see, I didn't read all 12 of the books on my list, but I did get through 7 of them in 2011, and one more-- Bleak House-- by January, 2012.  Considering most of the novels were 700-900 pages long, I think I did fairly well!

by Scott Tyler ( at December 30, 2011 04:40 AM

November 15, 2011

Scott Tyler

the mundane monday blues

It's a fine day.  One of those days when everyone asks, "How are you?" and you answer, "Fine."

Really... fine.  No problems aside from the problem that it's Monday and Mondays suck.  Life goes on and round and you wonder what's the point and you want to quit everything but its 5 days to the weekend and 2 months to the next holiday and god help me I don't think I can make it that long.

I find myself wishing for a catastrophe.  Just so I'd have something to genuinely complain about.  Just so something would happen that didn't happen yesterday, and won't happen tomorrow.

I find myself wishing I was an alcoholic.  I'm not, and I would never drink at work, but I wish I was and I did.

I hate it when I complain and people offer solutions.  If I wanted advice I'd ask for it.  Complaining is not asking for advice.  I know the effing solutions already anyways.  Who doesn't?  Who ever really got advice that they hadn't already thought of? 

Being bored doesn't mean you have nothing to do.  Boredom and busy-ness are not mutually exclusive.  The most bored I've ever been is when I had a lot to do, but nothing fun to do.

It's just Monday.  It's just work-life.  The slow torturous death by a hundred thousand slivering seconds.  Ennui, nothing more.

by Scott Tyler ( at November 15, 2011 01:20 AM

November 10, 2011

Scott Tyler

The End of Banks?

A recent article in the New York Times described how entrepeneurs who wanted to start their own restaurants, but couldn't get a loan from a bank, turned to the Internet for investors.  The amount they borrowed in each case was tiny:  less than $20,000 in most cases.  But it's a trend with great growth potential.  What online shopping did to music and book stores, online financing may someday do to banks.

Everyone despises banks, and for good reason, especially after the recent financial crisis.  They charge borrowers high interest, and give depositors almost no interest-- just high service charges.  What if they could be circumvented?  What if you could get a mortgage, personal loan or small business loan from the public?  The borrower could pay lower interest, with more flexibility, while the lender could get a much higher return on their investment than if they just stuck the money in a savings account.   Of course, the risk would be higher, especially for the lender.  But the rewards would be greater, too.

The change is coming.  If banks are smart, they'll get ahead of the trend, and start their own direct loan websites.  If they don't... well, let's hope they don't.  I'd love to see the big banks go out of business.

by Scott Tyler ( at November 10, 2011 05:05 AM

October 19, 2011

Chris Tyler

Fedora ARM on the Raspberry Pi at Seneca CDOT

What happens when you combine a $25/$35 computer, a major Linux distro's secondary arch effort, and a college that's deep into open source?

You get Fedora-ARM running on the Raspberry Pi at Seneca CDOT!

Here's a tiny video peek...



There's a lot of optimization still to be done (including X11) but look forward to a Raspberry Pi Fedora image (spin/remix), Fedora 15 for ARM, and the Raspberry Pi device itself all being available next month.

(In or near Toronto? There are three talks related to Fedora ARM and/or the Raspberry Pi at FSOSS next week).

by Chris Tyler ( at October 19, 2011 08:53 PM

September 23, 2011

Scott Tyler

100 Essential Books of Western Literature

The 'Western Canon' (a highly controversial term) as listed by critics like Harold Bloom, runs to thousands  of books.  I don't think even Harold Bloom has had the time to read them all.  So here I will give a list of what I consider the 'essential' works. 

A few notes.  First, not everyone will agree with my list.  No two such lists are the same, and this short list must necessarily exclude many great works.  Second, following Mr. Bloom's example, I have excluded many religious or philosophical books, unless they are also important books of literature.  Third, I have chosen books largely for their cultural and literary influence.  These are books which have changed the way later authors wrote, or had an important impact on western culture.  Finally, I have not included any poems, unless they are book-length, with the exception of the 'Leaves of Grass' collection.

This list is roughly chronological.

1. The Iliad by Homer

2. The Odyssey by Homer

3. Oedipus the King by Sophocles

4. Medea by Euripides

5. The Socratic Dialogues by Plato

6. The Histories by Herodotus

7. The Peloponnesian War by Thucydides

8. Lives by Plutarch

9. The Aeneid by Virgil

10. The Metamorphoses by Ovid

11. The Book of the Thousand and One Nights

12. The Divine Comedy (esp. The Inferno) by Dante

13. The Decameron by Giovanni Boccaccio

14. Don Quixote by Miguel de Cervantes

15. The Canterbury Tales by Geoffrey Chaucer

16. Le Morte D'Arthur by Sir Thomas Malory

17. Utopia by Sir Thomas More

18. Dr. Faustus by Christopher Marlowe

By William Shakespeare:

19. Hamlet

20. Othello

21. MacBeth

22. Julius Caesar

23. Romeo and Juliet

24. A Midsummer Night's Dream

25. The Tempest

26. The Merchant of Venice

27. Twelfth Night

28. Henry V


29. The Pilgrim's Progress by John Bunyan

30. Paradise Lost by John Milton

31. Gulliver's Travels by Jonathan Swift

32. The Life of Johnson by James Boswell

33. Robinson Crusoe by Daniel Defoe

34. Tom Jones by Henry Fielding

35. Tartuffe by Moliere

36. Candide by Voltaire

37. In Praise of Folly by Erasmus

38. Faust by Johann Wolfgang von Goethe

39. Les Miserables by Victor Hugo

40. Notre-Dame de Paris by Victor Hugo

41. The Red and the Black by Stendhal

42. Madame Bovary by Gustave Flaubert

43. Pride and Prejudice by Jane Austen

44. Confessions of an English Opium Eater by Thomas de Quincey

45. Frankenstein by  Mary Shelley

46. David Copperfield by Charles Dickens

47. Oliver Twist by Charles Dickens

48. A Tale of Two Cities by Charles Dickens

49. Great Expectations by Charles Dickens

50. A Christmas Carol by Charles Dickens

51. Alice in Wonderland by Lewis Carol

52. Jane Eyre by Charlotte Bronte

53. Wuthering Heights by Emily Bronte

54. Vanity Fair by William Makepeace Thackeray

55. The Moonstone by Wilkie Collins

56. The Picture of Dorian Gray by Oscar Wilde

57. Middlemarch by George Eliot

58. Treasure Island by Robert Louis Stevenson

59. Dr. Jekyll and Mr. Hyde by Robert Louis Stevenson

60. Dracula by Bram Stoker

61. The Barsetshire Chronicles by Anthony Trollope

62. Crime and Punishment by Fyodor Dostoevsky

63. War and Peace by Leo Tolstoy

64. Anna Karenina by Leo Tolstoy

65. The Cherry Orchard by Anton Chekhov

66. Leaves of Grass by Walt Whitman

67. The Scarlet Letter by Nathaniel Hawthorne

68. Moby Dick by Herman Melville

69. The Portrait of a Lady by Henry James

70. Tess of the D'Urbervilles by Thomas Hardy

71. The Adventures of Huckleberry Finn by Mark Twain

72. Anne of Green Gables by Lucy Maud Montgomery

73. Uncle Tom's Cabin by Harriet Beecher Stowe

74. The Trial by Franz Kafka

75. Pygmalion by G. B. Shaw

76. Remembrance of Things Past by Marcel Proust

77. Ulysses by James Joyce

78. The Great Gatsby by F. Scott Fitzgerald

79. The Grapes of Wrath by John Steinbeck

80. The Sun Also Rises by Ernest Hemingway

81. The Old Man and the Sea by Ernest Hemingway

82. Lady Chatterley's Lover by D. H. Lawrence

83. The Call of the Wild by Jack London

84. Heart of Darkness by Joseph Conrad

85. The Sound and the Fury by William Faulkner

86. Lolita by Vladimir Nabokov

87. 1984 by George Orwell

88. Brave New World by Aldous Huxley

89. Invisible Man by Ralph Ellison

90. Lord of the Flies by William Golding

91. On the Road by Jack Kerouac

92. The Catcher in the Rye by J.D. Salinger

93. A Clockwork Orange by Anthony Burgess

94. To Kill a Mockingbird by Harper Lee

95. The Heart of the Matter by Graham Greene

96. One Hundred Years of Solitude by Gabriel Garcia Marquez

97. Things Fall Apart by Chinua Achebe

98. The Lord of the Rings by J.R.R. Tolkien

99. Death of a Salesman by Arthur Miller

100. A Streetcar Named Desire by Tennessee Williams

by Scott Tyler ( at September 23, 2011 02:00 AM

September 17, 2011

Scott Tyler

Why women have fewer car accidents than men

You've heard the statistics, that women have fewer accidents than men, and are therefore better drivers.  But what that statistic doesn't take into account is that men drive more than women.  74% more, according to one source.  (Think about it: whenever you see a couple in a car, who is usually behind the wheel?)  If we compare number of accidents relative to distance driven, suddenly the statistics look very different.  In fact, women have slightly MORE crashes than men do. 

'Overall, men were involved in 5.1 crashes per million miles driven compared to 5.7 crashes for women'


So, in fact, women are worse drivers than men (if we are going to generalize).  Now, if we can just convince insurance companies to stop discriminating- illegally- against male drivers, as they have for decades.

by Scott Tyler ( at September 17, 2011 02:33 AM

September 16, 2011

Scott Tyler

Lessons from Thucydides

Recently I read The Peloponnesian War by Thucydides.  It is one of the first histories, and it is an engrossing tale of a war that involved all the Greek states (and a few non-Greek states as well).

But what I found really interesting about Thucydides' account is the opposing philosophies of Athens and Sparta.  Both cities championed freedom, but of two different kinds.  Athens was an imperialist state that treated her 'allies' as junior partners at best, and often as little more than vassal states.  So Sparta championed the independence of the Greek city states.  Freedom, to the Spartans, meant freedom  of the state from external control, and especially Athenian imperialism.

Athens, unlike Sparta, was a democracy.  That meant that power was in the hands of the common people.   The lower and middle classes in other city states were inspired by Athenian democracy, and the approach of the Athenian fleet was often the cue for the masses to rebel and overthrow the local oligarchy/tyrant.

Today, Athens and Sparta are represented by the West and Russia/China respectively.  That is, western countries (especially the U.S.)  encourage freedom (human rights and democracy) within developing countries.  But Russia and China support the 'freedom' of developing countries from meddling foreign powers.  Intranational freedom vs. international freedom.   While the West is sometimes hypocritical in its support of human rights and democracy- demanding change in one country while ignoring problems in another- Russia and China oppose international intervention in cases of human rights abuse for their own reasons: they are afraid of being criticized for their own poor human rights record.

Greece today is a single nation state, and a democracy, with Athens as its capital.  So even though Sparta won the Peloponnesian War, in the end it was Athens that triumphed.  It is too early to say, yet, whether the modern Athens (U.S. and allies) or modern Sparta (Russia and China) will prevail in the 21st Century.

by Scott Tyler ( at September 16, 2011 04:58 AM

September 02, 2011

Scott Tyler

On Fatherhood and Selfishness

Since I became a father, just 6 months ago, I have noticed a strange transformation.  On the one hand, as I expected, I have become less selfish.  Or less self-centered.  It's not about me and what I want anymore: my wife and son come first.   Instead of saving for my next travel adventure, I'm saving for my son's education.  I go to the mall- not to sit in Starbucks, as I used to, but to buy diapers.  Most of my plans and dreams are now about my son's future, not my own.

On the other hand, I have become more selfish.  When my student or colleague is coughing, instead of sympathizing: "Oh, do you have a cold? I'm so sorry."  I shy away from him or her, thinking I don't want to get a virus that I'll take home to my son.  I don't give as often to homeless people, or loan money to friends, because I want to save that money for my own family.  

Have I become a worse person, or a better one?  I don't want to set a bad example for my son, so for his sake I'll try to be more generous and think of others outside my family.  But my family comes first.

by Scott Tyler ( at September 02, 2011 02:42 AM

August 26, 2011

Scott Tyler

coffee in the morning

Every morning 

she makes for me

a hot and steaming mug.

It tastes like coffee

and it smells like coffee

but it feels like love.

by Scott Tyler ( at August 26, 2011 07:16 AM

April 23, 2011

Chris Tyler

Gnome 3: Not Ready for Prime Time in Fedora 15

I've been intrigued by the Gnome 3 desktop and the design decisions that the Gnome project has decided to test. Hearing some members of the Gnome community explain the design decisions in person was very interesting, and helpful when transitioning to the Gnome shell. And I'm proud that the Fedora Project is continuing to lead by incorporating new technologies and designs First.

But I've been using Gnome 3 in the Fedora 15 alpha and beta releases for a while now, and I'm convinced that Gnome 3 is not ready for prime time yet, at least as implemented in Fedora 15 (and this is completely separate from the issue of whether the Gnome 3 design changes are good or bad, and whether the Gnome community is ignoring the needs and wants of the users and downstreams -- both subjects of much debate). As one example, multi-monitor setups are not working as expected, at least for me. In fact, it's a stretch to say that they're working at all:

  • On my laptop/netbook, logging in with an external monitor connected results in Gnome 3 running in degraded mode, with Gnome 2-style menus. Logging in without an external monitor connected, and connecting it after login, results in a usable configuration - at least all of the real estate is accessible.
  • I run with the external display above my laptop. Maximizing a window on the external display results in it filling the rightmost 1/3 of the screen. Unmaximized windows may be moved, but only to positions where the right edge of the window is within the right-most 1/3 of the screen. You can fill the screen by placing the window all the way to the right and dragging a corner to the left side, though. There are many other behaviours which are just weird.
  • The Activities button is on the laptop screen, but the touch-to-activate-Activities corner is on the external monitor.
  • Rearranging the position of the monitors using the Displays setting tool results in badly torn, messed up images. They resolve to something that looks almost usable a fraction of a second before the Does this look right? dialog gives up and reverts me to the original configuration, with my desktop backgrounds missing.

This is 2011, and multi-monitor configurations are not a novelty any more. In fact, they're the norm where I work, and I use external monitors with my laptops and netbooks all the time

Perhaps some of these issues are video driver problems, and Gnome 3 isn't to blame. But the problems with Gnome 3 are not limited to just multi-display configurations; for example: GDM's list of users does not scroll properly when the list is long (I went to file a bug on that one, but was disheartened searching through the 253 other open Fedora GDM bugs to see if it was already reported). If something goes wrong during the login process, a message appears telling you that something went wrong, but offering no way to find out what went wrong -- not even through a "Details..." button -- and the only action available to the user is to click a button marked "Ok" (I can't login? It's definitely not OK). The icons at the top of the screen respond to left- and right-click in the same way -- except for the iBus icon -- where's the consistency in that?

I don't want to be a gloomy Eeyeore (though I understand the temptation to become one) but I really don't think we're close to release-ready with Gnome 3 in F15.

by Chris Tyler ( at April 23, 2011 04:19 PM