Posts

Showing posts from June, 2014

Summer Reading--Esperanza Rising

Image
Fifth or sixth grade teachers looking for a good book for students in their classes to read over the summer should pick up a copy of Esperanza Rising (Scholastic, 2002) by Pam Munoz Ryan.   The book follows the adventures of the main character, a twelve year old Mexican girl who must flee to the United States after her wealthy ranchero father is murdered by vaqueros while out mending fences on his property.   It is a tragedy with far-ranging consequences.   It is also a powerful story that is perfect for students in intermediate grades because the author focuses on character development and poetic language.   Ryan creates a realistic world and does not shy away from the dangers and difficulties faced by migrant workers in the central valley of California. Esperanza’s father is a wise and important presence in her life who first teaches her to love the land.   He tells her the earth breathes and is alive, like a person.   On a grassy hill, they lay down on their stomachs to feel the

Using the Logitech Presenter R700 with a Mac

Recently, I was shopping for a presenter (a remote control for PowerPoint, Keynote, etc.) and liked the Logitech Presenter R700 (a newer European-only version of the R800) best, due to its design and its integrated display with a countdown. Alas, Macs are not officially supported for this device. Thankfully, they can be made to work together, as explained in this blog post. I also mention how my configuration file can be adapted to an R800. Installation If you press keys on the R700, wireless signals are sent to the R700’s USB stick, which appears to OS X as a USB keyoard. The key presses that OS X receives work for PowerPoint, but not for other apps. Thankfully, a tool called KeyRemap4MacBook lets you remap the keys per app and only for the R700 – without affecting other devices (including the actual keyboard). Based on Andrew Ferrier’s work , I wrote a configuration file that makes the R700 work with Keynote, DVD Player and VLC. Installation: Install KeyRemap4MacBook Copy the file

The American Scholar

Image
A magazine I’ve fallen in love with recently is The American Scholar , currently edited by Robert Wilson.   The title comes from an essay/speech given by Ralph Waldo Emerson , and the magazine aspires to the Emersonian ideals of “independent thinking, self-knowledge, and a commitment to the affairs of the world as well as to books, history, and science.”   Published quarterly since 1932, (Summer, 2014 is on newsstands now), The American Scholar is the literary magazine of the Phi Beta Kappa Society . What drew me in was the article in the Spring number written by James McWilliams entitled, “Loving Animals to Death.”   He takes us through the hypocrisies and hysterics in the Food Movement, “a loosely organized but powerful coalition of progressive interests” that aims “to localize, downsize, and decentralize the North American food system in order to usher consumers ‘beyond the barcode’ and into a world of wholesome whole food.”   Specifically, what does “free range,” “organic,” or

Installing web apps natively

Web apps have been around for a while, but the ability to install them as if they were native apps is relatively new. This blog post takes a look at what’s currently possible. Delivering and publishing installable web apps Web apps are called installable if they can be installed natively. Such apps are currently delivered in either one of two formats: Hosted: the app is delivered as a collection of assets (HTML, CSS, JavaScript, etc.), hosted individually on a web server. Two associated files provide important meta-data: App manifest: specifies information such as: the app’s name; links to icons; the path of the HTML file that is the entry into the app; etc. Cache manifest: enumerates the assets of an app, enabling engines to download all of them and run the app offline. Packaged: the app is delivered as an archive that contains all of its assets. The archive still contains an app manifest, but doesn’t need a cache manifest. In order to publish a web app, to put it online, two opti

SimpleHTTPServer: a quick way to serve a directory

Python’s SimpleHTTPServer is the classic quick solution for serving the files in a directory via HTTP (often, you’ll access them locally, via localhost ). This is useful, because there are some things that don’t work with file: URLs in web browsers. Using SimpleHTTPServer SimpleHTTPServer is invoked like this (the parameter <port> is optional): python -m SimpleHTTPServer <port> (On OS X, Python is pre-installed and this command works out of the box.) Let’s look at an example of using SimpleHTTPServer: During the following Unix shell interaction, I first list the files in the current directory and then start SimpleHTTPServer to serve it. $ ls . foo.html $ python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... Afterwards, I can access the following URLs: http://localhost:8000/ lists the files in the current directory (namely, just foo.html ). If there were a file index.html , it would be displayed, instead. http://localhost:8000/foo.html disp

Curbing Online Abuse

“ Curbing Online Abuse Isn’t Impossible. Here’s Where We Start ” by Laura Hudson describes how online abuse was curbed in the battle-arena game League of Legends , published by Riot Games . The following insight is interesting: “Riot found that persistently negative players were only responsible for roughly 13 percent of the game’s bad behavior. The other 87 percent was coming from players whose presence, most of the time, seemed to be generally inoffensive or even positive. […] Banning the worst trolls wouldn’t be enough to clean up League of Legends , Riot’s player behavior team realized. Nothing less than community-wide reforms could succeed. It’s great that Riot’s measures often succeeded in educating offenders and changing their behavior.

Firefox Electrolysis (one process per tab) is back

Electrolysis (e10s) [1] is a project to add a one-process-per-tab architecture (similar to Google Chrome’s) to Firefox. It was put on hold [2] in early 2012 and is now being resumed. Quoting a post on the mozilla.dev.platform Google Group: e10s is a priority for Mozilla’s engineering management and they are dedicating more help to make it happen. We’ve picked up some Firefox Metro engineers looking for new homes, new engineering manager, a Google Summer of Code student, and a gfx contractor. So expect to see more progress and more review requests. You can check out recent improvements in Firefox Nightly: You can test e10s in its own window, like Private Browsing, using the Nightly channel’s "File > New e10s Window" menu item. References: Electrolysis - MozillaWiki Firefox Electrolysis project put on hold

Multiple return values in ECMAScript 6

If you combine the features “property value shorthand” and “destructuring”, ECMAScript 6 gives you an elegant way to handle multiple return values. This blog post explains why that is useful and how it works. Destructuring Destructuring is an ECMAScript 6 feature which lets you use patterns to extract values from an object: let obj = { first: 'Jane', last: 'Doe' }; let { first: f, last: l } = obj; // f = 'Jane', l = 'Doe' Destructuring also works for arrays: let [x, y] = ['a', 'b']; // x='a', y='b' [a, b] = [b, a]; // swap values let [all, year, month, day] = /^(\d\d\d\d)-(\d\d)-(\d\d)$/ .exec('2999-12-31'); That is, object literals and array literals enable us to construct compound values and destructuring enables us to take them apart. It can be used in the following locations: // Variable declarations: let [x] = ['a']; // Assignments:

Summer Reading--Daily Rituals

Image
While at Chaucer’s Books in Santa Barbara recently, I picked up a delightful little book called Daily Rituals:   How Artists Work (Knopf, 2014) by Mason Currey.   I have to admit, I’m a sucker for anything about writers’ lives.   I’ve thrilled to the pictures of their libraries , the Jill Krementz photos of their desks, and here in Currey’s book, the details of their writing practices.   Although the author himself calls his work a “superficial book,” the creative process is so intriguing that one cannot separate the life from the creative act.   How we live is how we create, as we are creating our art and life each day when we get up out of bed.   It’s all art and it’s all good.   So Currey’s work is well worth the trip through the pages. What comes through immediately is how thorough the book is researched.   Currey takes great pains to include voluminous notes and bibliography so the reader can delve more deeply if necessary, but what he has done so successfully here is pull tog