Just finished version 0.1 of what my be my most arbitrary open source project yet: a static blogging engine called Agiluf, written in Haskell. It's meant to be bare-bones but supports:
- html templating
- multiple authors
It's built on top of the awesome Pandoc library. You just write your blog entries in RST, add a little metadata to the top, and let Agiluf do the rest. Templating uses Hastache, a Haskell implementation of Mustache templates, although I will likely switch this over to Blaze soon becuase it seems better-maintained. Why the weird name? There were a couple of historical figures who bore this sobriquet. However, I took the name from Italo Calvino's wonderful novel The Nonexistent Knight. It's something of a nod to the challenges of learning Haskell. If I ever have some spare time, I'd like to convert this site over to it.
I'm doing some good, old-fashined paper prototyping for an app I'm developing. As you can see, I'm doing mobile-first design. The app has an big smartphone component and it's almost more important for that part to be right than the regular non-mobile version, so I'm starting there. I'm also looking forward to making my first foray into responsive design. This should be a fun project.
Swing isn't usually the kind of jazz I listen to, but a friend aked me to put together a playlist on spotify. I thought I'd throw in a few comments on what's in there. Like I said, I'm not a huge expert in this genre, so take this stuff as a layman's intro. This playlist covers the big band era, which effectively spaned the 20s, 30s and 40s. By the end of WWII, big bands were starting to die out. I'll try to cover some fo the more transitional folks (e.g. Stan Kenton) and the Big Band revival figures in the next post.
Scaffold is a little open-source Django app I built to provide a, "[r]eusable application for a generic section/subsection hierarchy in Django. It aims to solve a common problem: you're building a site that needs sections and subsections and you not only need to be able to manage that hierarchy, but also hang other content off of it." Today, I've decided to bump it up to version 1.0. You can grab it from github or install it with pip/easy_install.
Scaffold is now in use in a couple of production sites, has a full test suite, and an API that is more-or-less stable; taken together all of this seemed to warrant giving it a 1.0 release. I owe special thanks to my colleague, Chuck Harmston for updating Scaffold to maintain Django 3.1 compatibility while I was off exploring the beaches of the Phillipines.
Here are a couple of slides from a presentation I'm preparing to give to developers at work. It's on the topic of functional programming and right now I'm struggling through how to wrap it up. It took me a couple of years to finally get my head around functional programming, so even though I'm fortunate enough to be speaking to a bunch of folks who are smarter than me, it's still a rather mindbending topic to grasp in a one hour presentation. Getting into the declarative mindset is tough, particularly when your mental mapping of human/computer interaction is warped by the lens of imperative programming. (And whoops, putting that collage together made me realize my examples of a fold are not consistent about direction.)
Just in time for my trip to Peru, I finally got the last batch of photos from my trip to the Southwest off my camera and up on Flickr.
I'll try to post pictures from Peru as I go, but I've only got a netbook with me. So unless the photos are coming out of the camera near-perfect, I might have to wait until I get back.
I made a pretty good soba noodle soup the other day. It was simple, light, and easy to make. The first step is to make a Japanese seafood stock, a pretty traditional recipe:
Then strain the stock and try to squeeze as much liquid out of the vegetables as possible. Once that's done, put the stock back in the pot and bring it to a simmer. Now you're ready to finish the stock with a few other ingredients:
You add a little dashi to taste (the tan-colored granules on the left). It's a kind of fish stock and you can make your own, but most Japanese just use the granules; that's what I did. Then add a few tablespoons of a 50/50 mixture of shoyu (soy sauce) and mirin (rice wine), which is the dark colored liquid in the center. Finally add some sliced carrots and spring onions. Keep those over a very low heat, and boil the soba noodles (bottom) in another pot of water. When they're all done, just combine the ingredients and enjoy.
An interesting, disheartening blog post by Anne Midgette in the WP. The key graf:
Many of us who love music share a vague idea that audiences should be open to new things, and that they should be convinced to give them a try. But is this true? I’ve observed before that classical music, particularly opera companies and orchestras, are unusual in that they repeatedly try to force things on its audience that its audience doesn’t necessarily want. Someone who comes to the movie theater to see “Avatar” is not necessarily going to be thrilled if I show him “Pan’s Labyrinth” instead, even if I’m convinced that he would really love it if only he would watch it. And yet this is what’s going on in classical music, all the time: audiences are being asked to pay lots of money in order to be taken out of their comfort zone.
I think it’s worth unpacking this statement. I’m troubled for instance by the way in which she talks about the audience for classical music as though it’s a monolithic entity; it’s not. In fact, one of the biggest challenges classical music faces is that there is a substantial rift running right down the middle of it’s listeners. Go to the symphony on any given night and it’s easy enough to see: on the one hand you have the older, wealthier segment of the audience. These are the folks who occupy the box seats, the folks who can afford to shell out for season tickets, the folks who show up on the donors list in the program. And by and large, they want to hear the operas and symphonies and concertos they’ve always heard: the classical warhorses. For them, Ravel and Debussy are as adventurous as they like to get. Because these audiences financial influence is high, one often finds their impact on programming is frequently disproportionate to their numbers.
The other audience for classical music is just as likely to show up at a matinee concert: they’re younger, more open to new music, but don’t wield the purse strings of the organization. And keeping them coming—in fact, attracting more like them—is the only hope classical music has if it wants to survive, at least in the US. The older audience might be supplying the bread and butter now, but they are dying off and no one is replacing them. This issue is somewhat orthogonal to the old vs. new music debate, but the fact is, new music can spectacularly engage younger, new-to-the-scene audiences; I’ve seen it happen. For these audiences, new music doesn’t have to be an occasional event, leavened with heavy doses of Beethoven and Brahms to make it go down. It can be a vital part of how they define classical music.
It’s also worth looking at this statement: “audiences are being asked to pay lots of money in order to be taken out of their comfort zone” because wittingly or not, it gets at a huge problem in the classical industry. Symphony and especially opera tickets are insanely expensive. If I want to get even halfway-decent seats at a WNO performance, I can expect to pay $100 - $250 per ticket. Big organizations spending lots of money on top-flight talent are going to tend to be risk-averse, but this is happening precisely at a time when the industry needs to take some risks to survive. That’s a likely reason why smaller venues, chamber and solo concerts tend to be more welcoming of new music. But orchestras can do it too. Right here in Baltimore, Marin Alsop and the BSO are a good example.
Update: Alex Ross has more on the state of current classcal audiences, with breakdowns by generation. Good read, albeit depressing.