How to Assign IPv6 Addresses to LXD Containers on a VPS

Good news for the future of the Internet: IPv6 connectivity is an increasingly common feature offered by VPS providers these days. Unfortunately, many of them also cheap out. Instead of providing a true IPv6 prefix like 2607:f8b0:4004:811::1/64, they’ll provision you some arbitrary range, like the set of 10 addresses between 2607:f8b0:4004:811::1/128 and 2607:f8b0:4004:811::10/128.

I can’t fathom why the providers do this. There are literally trillions upon trillions of IPv6 addresses; if you can afford to hand out IPv4 addresses at no extra charge, you could surely afford to give everyone a /48 prefix, too. Alas, such is the cloud business.

I use my VPSes to run containers using Ubuntu’s LXD stack, and my current provider, UltraVPS.eu, gives me 10 IPv6 addresses to work with. The other day, I was trying to figure out how to assign each address to a container in this scenario—only to find that no such guide existed.

  • This guy accomplished this with NAT66. (Ew.) Unfortunately, this is your only option if your host only provides a single /128 address.
  • This guy avoided NAT, but he did use an old program (npd6) that’s no longer relevant for modern kernels. He was also writing for LXC, not LXD.

So here, I’m going to present my solution, which avoids NAT66, doesn’t rely on manual firewall rules, and is tailored for the Ubuntu sysadmin stack (LXD, systemd, netplan).

Set up LXD networking

When setting up LXD, say “yes” to IPv6 addressing, but “no” to IPv6 NAT. Then add the addresses you want to assign to your containers as extra routes on the LXD bridge, like so:

$ lxc network set lxdbr0 ipv6.routes '2607:f8b0:4004:811::2/128, 2607:f8b0:4004:811::3/128'

The host’s network config should look something like this:

$ lxc network show lxdbr0
config:
  ipv4.address: 10.0.2.1/24
  ipv4.nat: "true"
  ipv6.address: fc02::1/120
  ipv6.dhcp.stateful: "true"
  ipv6.routes: 2607:f8b0:4004:811::2/128, 2607:f8b0:4004:811::3/128
...
$ ip -6 route
2607:f8b0:4004:811::2 dev lxdbr0 proto static metric 1024 pref medium
2607:f8b0:4004:811::3 dev lxdbr0 proto static metric 1024 pref medium

Set up NDP proxies

The kernel needs to know to advertise the containers’ addresses using the IPv6 neighbor discovery protocol (NDP). You do this using the ip neighbour add proxy (yes, British spelling) command for each address:

$ ip -6 neighbour add proxy 2607:f8b0:4004:811::2 dev net0
$ ip -6 neighbour add proxy 2607:f8b0:4004:811::3 dev net0
$ ip -6 neighbour list proxy
2607:f8b0:4004:811::2 dev net0  proxy
2607:f8b0:4004:811::3 dev net0  proxy

This list needs to be recreated each boot, so I have a systemd service to run these commands:

# /etc/systemd/system/proxy-ndp.service

[Unit]
Description=Announce all IPv6 addresses allocated to this server

[Service]
Type=oneshot
ExecStart=/sbin/ip -6 neighbour add proxy 2607:f8b0:4004:811::2 dev net0
ExecStart=/sbin/ip -6 neighbour add proxy 2607:f8b0:4004:811::3 dev net0

[Install]
WantedBy=network.target

Enable IPv6 packet forwarding and proxy relaying

The kernel disables these features by default, so you also need to modify these sysctl properties:

# /etc/sysctl.d/91-forward-ipv6.conf 

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.proxy_ndp=1

Set up container networking

Finally, you can assign each container the IPv6 address you desire. This configuration is done from within the container, just as if it were a virtual machine or a real computer. Each container already receives a private IPv6 address from LXD (like fc02::6e); you just need to assign its public address as an additional static address. Here’s how that’s done by hand using ip,

# ip -6 address add 2607:f8b0:4004:811::2 dev eth0

and here’s how it’s done in Ubuntu’s netplan:

# /etc/netplan/50-cloud-init.yaml

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        eth0:
            dhcp4: true
            dhcp6: true
            addresses:
            - 2607:f8b0:4004:811::2/128

It’s not necessary to specify a gateway (as in IPv4) thanks to the magic of IPv6 router advertisements.

Conclusion

And that’s it! Your containers should have IPv6 networking with Internet-reachable addresses now. Under the default libc configuration, traffic will be preferentially routed over IPv6.

# ip -6 route
2607:f8b0:4004:811::2 dev eth0 proto kernel metric 256 pref medium
fc02::/120 dev eth0 proto ra metric 100 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::c0c4:4aff:fedf:89a6 dev eth0 proto ra metric 100 mtu 1500 pref medium
# ping google.com
PING google.com(ams17s01-in-x0e.1e100.net (2a00:1450:400e:80b::200e)) 56 data bytes
64 bytes from ams17s01-in-x0e.1e100.net (2a00:1450:400e:80b::200e): icmp_seq=1 ttl=57 time=5.16 ms
64 bytes from ams17s01-in-x0e.1e100.net (2a00:1450:400e:80b::200e): icmp_seq=2 ttl=57 time=5.33 ms
64 bytes from ams17s01-in-x0e.1e100.net (2a00:1450:400e:80b::200e): icmp_seq=3 ttl=57 time=5.49 ms
64 bytes from ams17s01-in-x0e.1e100.net (2a00:1450:400e:80b::200e): icmp_seq=4 ttl=57 time=5.30 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 5.169/5.326/5.499/0.128 ms

I didn’t touch upon the IPv4 stack in this short tutorial, but you will most likely want to stick with LXD’s default configuration: DHCP and NAT on a /24.

$ lxc list
+------------------+---------+-------------------+------------------------------+------------+-----------+
|       NAME       |  STATE  |       IPV4        |            IPV6              |    TYPE    | SNAPSHOTS |
+------------------+---------+-------------------+------------------------------+------------+-----------+
| container1       | RUNNING | 10.0.2.227 (eth0) | fc02::6e (eth0)              | PERSISTENT | 0         |
|                  |         |                   | 2607:f8b0:4004:811::2 (eth0) |            |           |
+------------------+---------+-------------------+------------------------------+------------+-----------+
| container2       | RUNNING | 10.0.2.13 (eth0)  | fc02::5 (eth0)               | PERSISTENT | 0         |
|                  |         |                   | 2607:f8b0:4004:811::3 (eth0) |            |           |
+------------------+---------+-------------------+------------------------------+------------+-----------+

Enjoy having end-to-end connectivity on your containers, the way the Internet was meant to be experienced.

Walking with Southeast Bakersfield on MLK Jr. Day

Last week, I swung by the Wilson Library to attend Bakersfield’s 2019 Martin Luther King Jr. Day march. To me, it was a march that lacked bite, because the adjectives I would use to describe that event—docile, tame, by-the-book, ordered—are not words I would normally associate with a march for civil rights. Yet how else would I describe a civil rights march that had an itinerary? It had been sent out in the Bakersfield Californian in advance: set off at 6 o’ clock, march to the tune of “We Shall Overcome,” and then attend a service at the neighborhood church. As it turned out, we and our police and media escorts followed this kindergarten-field-trip schedule to the letter.

The march began just past 6. The crowd—about people 30 to 40 in size, dressed in coats and down jackets, appropriate for the chilly January night—was small, according to two of the marchers, both of whom had been regular attendants for years. One of them told me that the march was abbreviated, too, because it used to extend “all around town”; now, considering the age of the participants—mostly middle-aged, some elderly, several with Vietnam veteran’s caps—the march had been truncated to a half-mile walk to the community church. We hope more young people like you will join us in the future, both of them said.

Nonetheless, the parade moved surprisingly briskly. About a third of the marchers formed a line in front, standing side-by-side with their arms locked, singing “We Shall Overcome.” The rest formed a vaguely organized mass of people, some of them talking among themselves, some of them joining in the singing, some of them holding up their smartphones to recording the proceedings.

As we walked, the cameramen darted nimbly in and out of the crowd, capturing the scene from all sorts of angles—one of them equipped with a large, brilliant rectangular torch as bright as any construction site work light—while the police barricaded the intersecting roads with their squad cars and shut off the lone traffic signal along the marchers’ route. The attention our crowd received was proportionate to its small size, for there was little foot traffic in this ramshackle corner of Southeast Bakersfield—populated as it was with dilapidated strip malls, humble taco trucks, and working-class ranch homes—but some neighbors did observe the goings-on, out of curiosity, from the chain link fences that lined their modest front yards.

But where was the shock value, the spontaneity? I kept waiting for someone to take the initiative, to heckle the cops or to shout a defiant headliner into the cameras. Public demonstrations are supposed to be calls to action, not just background roll on the evening news. After all, for every feelgood speech that MLK made, there was also a sit-in, bus boycott, freedom ride, or some other provocation that deliberately pissed a lot of people off.

Okay, I suppose an MLK march has to be inclusive of all ages, not just rebellious 20-somethings like myself. Besides, who am I to assume what Bakersfield’s Black community wants and needs? Bakersfield is a conservative town, and the issues faced by the coastal metropolises—affirmative action and blatant racism, among other issues raised by attendees at their MLK marches—seem many worlds away on these sleepy streets.

There was an informal meet and greet before the march began at 6, through which I was treated to an anthropological cross-section of the marchers. I saw friends meeting old friends and exchanging greetings, news, and small talk under the harsh streetlights of the Wilson Library parking lot. I also saw church buses, vans, and carpools bringing more groups of people to the march. As one might expect, most of the marchers were Black, but people of all races were in attendance—some Whites, some Latinos, and a few Asians—which would have pleased one spirited marcher, who made an impromptu speech expressing hope for a multiracial march in the spirit of MLK Jr. himself.

Surrounding us were the policemen who would close the streets and the television crews who would send images of the march to the rest of the city. Already, the cameramen were mingling in the crowd, shooting footage and interviewing some of us. The policemen stood idly by their squad cars, watching, preparing to halt traffic on Wilson Road on a moment’s notice. Later on, when we got the church, I saw some of them shaking hands with the marchers.

Sitting in one of the pews of the Church of Christ, watching Black leaders from Arvin and Fresno deliver speeches that struck a delicate balance between religious sermon and political lecture—Moses’ delivery of the Israelites out of Egypt as a metaphor for the civil rights struggle was the highlight of the night, as was a firm reminder that social equality had not brought about economic equality—I realized I had learned more about Black culture than I had in all my years of growing up in Bakersfield. The media, to their credit, were watching diligently, too. They had set up a camera inside of the chapel, and one of their anchors also live-streamed a very moving performance by the church’s choir.

Maybe I’m the one who has the wrong idea about MLK Jr. Day. The event is as much a focal point for the Black community as it is a rallying cry for social justice. Sure, we didn’t create headlines, but how important is a few minutes of a fame in our present-day outrage culture, anyway? I like to think that between the marchers, the church, the police, and the media, we all learned a little bit more about each other that evening. Isn’t that what Mr. King would have wanted?

So You Want to Fix Your City

A contemporary review of The Power Broker, Robert Caro’s biographical masterpiece.


Big City, USA, in 2019—where the traffic doesn’t move at rush hour, the roads are full of potholes, the mass transit is useless, and the schools and parks are overcrowded and falling apart—and despite all of that, the rent is still too damn high.

Some say the modern American city increasingly resembles one of those generic science-fiction dystopias, neatly divided into the privileged and the underclass, beholden to the whims of Amazon and Alphabet and other such faceless corporations. Well, screw that. It’s about time we fixed our cities so they started to work for us again. All we have to do is agree on our diagnosis and its proper cure—easy peasy, right?

I’ve heard a lot of ideas on how to give our cities a good government kick, ideas from property tax reform to zoning reform to congestion pricing to privatization. Most of them are just plain stupid, but a handful sound like they might work. You probably have a few ideas yourself (don’t worry, they’re some of the good ones—I promise.) That’s great, because we need more interested citizens like you. But before you rush off to moonlight as a civic activist, I’d like you to meet this interesting figure, a reformer who worked in New York City throughout much of the twentieth century.

His name is Robert Moses, and he will teach you some valuable lessons about how cities work.

Continue reading “So You Want to Fix Your City”

Debunking the Urbanist Fairy Tale

Put succinctly, urbanism is the belief that we can fix everything wrong with our cities by building them upward instead of outward, shunning suburbs, homesteads, and cars for row homes, bike lanes, and public transit.

The case goes something like this: Climate change? Density reduces the land footprint of cities and the amount of resources consumed by their residents. Traffic congestion? Density encourages public transportation usage, reducing the numbers of cars on crowded city streets. Housing affordability? Density increases the number of homes available to renters and buyers, bringing down the price of housing for all.

With most of our cities facing kind of urban crisis–subways and water pipes failing, rents rising without a ceiling in sight, traffic congestion ensnaring recovering economies–urbanism has evolved into a national movement. Its political advocacy is actualized by YIMBY (“Yes In My Backyard”) parties that are thriving in every large American city, loosely organized around a single issue: build, baby, build more housing. Like their cyberspace counterpart, the Pirate Party, the “YIMBY Party” are brazen, cocksure, and social media-savvy.

I know this because I used to call myself an urbanist. It was the natural label for someone like me, who cycles for transportation, rides public transit, and has never owned a car; I simply wanted to build better cities where these things were both viable and encouraged. So I jumped on the urbanist bandwagon. I subscribed to the Twitter feeds, read articles from Streetsblog and Curbed, and proselytized the fruits of market urbanism on my Daily Texan column. And for awhile, all was well–until I made some observations that were difficult to reconcile with urbanism’s precepts. I began to reexamine my beliefs–and cities, it turns out, are pretty complicated.

For one thing, urbanism’s prescriptions for cities don’t actually work.

Urbanism says that the way to fix cities is to build them up, and that the way to build cities up is to abolish land-use restrictions. This would pave the way for property owners to construct more housing units and thereby more dense, vibrant, and livable neighborhoods. At least, so goes the theory. But it’s an open secret among those who pay attention to cities that that is not what really happens when private infill development is let loose by urban planners and politicians.

The “urban villages” that developers build may have the signature high-rise condos, bike lanes, narrow streets, and roundabouts, but they bear little resemblance to the walkable, diverse, pre-automobile neighborhoods that urbanists so often celebrate. They are not walkable, but isolated and disconnected; nor vibrant and diverse, but sterile and exclusive. Far from Jane Jacobs’ intricate sidewalk ballet, the environment created by these new-age communities more closely resembles one of Le Corbusier’s dehumanizing machines for living.

Once again, I know this from firsthand experience. Austin is littered with many such failed New Urbanist experiments in community master-planning. Two of the most prominent are the Mueller and Domain neighborhoods, both designed to be incorporate all of the things urbanists strive for in a neighborhood–density, mixed-use, and transit-oriented design. Their tiny lots contain multi-story row homes and stores, woven together by narrow streets, wide promenades, and bike boulevards.

But closer inspection reveals some troubling details. Mueller, for example, is surrounded by a moat of empty space and parkland that segregates it from the rest of impoverished East Austin. And until recently, the neighborhood also lacked any basic bus service, although that did not stop Mueller residents and developers from lobbying for a streetcar line to downtown. The Domain, meanwhile, is filled with high-end chain stores (including one of Austin’s only Apple Stores, and a Whole Foods) and stories upon stories of covered parking garages. It has a stop for one of Austin’s rapid bus lines, but the bus lets off at a large parking lot, half a mile away from the shops.

The Domain, Austin’s much-hyped “second downtown.” (Credit: Austin Towers)

Nor has the neighborhoods’ design produced the social kumbaya that their high-minded architects envisioned. In Mueller, a neighborhood so liberal that it produced a nationally mocked Beto O’Rourke ad, residents of color routinely grapple with racial profiling. In the Domain, it’s no secret that the stores are largely stores for the affluent, and my UT friends tell me how “overwhelmingly white” the place feels compared to old Austin.

Mueller has attractive New Urbanist row homes and streetscape–but for whom? (Credit: Community Impact)

Worse still, elsewhere in Austin, as is the case in many of the world’s most affluent cities, new communities have been carved entirely out of old ones, leaving their once-vibrant streets safer and “cleaner” but also desolate and lifeless, not to mention the real human cost in terms of destroyed social networks and lost access to services and opportunities. Gentrification, contrary to urbanist rhetoric about “place-making” and “livable cities,” is both very real and morally reprehensible.

Why is it that every attempt to realize the urbanist formula seemingly ends in a gated community for the rich? Has urbanism simply not been given a fair shake–and if we kept critiquing its implementation, and iterating on it, the rents would eventually come down?

It isn’t so. The truth is that urbanism is allied with powerful forces that dominate municipal governments, forces that are not interested in just or equitable outcomes for cities. Urbanists like to portray themselves as a scrappy, millennial-led rebellion against backwards twentieth century urban planning paradigms. But far from fighting against the system, they’re part of it, complicit in its machinations.

Gone are the days when city governments simply apportioned services and infrastructure, if that ever was the case. Today, cities market themselves to global pools of capital and educated labor, competing for lucrative investments from the creative classes and the high-technology sectors. Urbanists may say that reinvestment in the urban core is a merely reflection of Americans’ desire to “return to the city,” but the reality is that urban redevelopment is the result of a conscious remaking of a city’s economy–a remaking that usually comes at the expense of its most marginalized residents.

In Austin, for example, the University of Texas has been the driving force behind the city’s meteoric transformation into the Silicon Valley of Texas, acquiring land to donate to high-tech firms to establish local headquarters–necessitating, of course, the removal of less fortunate residents who stood in the way. Similarly, Austin’s smart-growth policies–a prototypical form of urbanism that encouraged compact land development within the inner city–were forged by a compromise between Austin’s business and environmental elites, who sought to replace environmentally damaging suburban sprawl with “sustainable” urban development–which in turn entailed the displacement of powerless residents from East Austin.

The urban development projects that urbanists champion–no matter how dense, no matter how “inclusive,” no matter how transit-oriented–solely reflect the desires of the developers and politicians who implement them. And because they are intended for “desirable” residents–the creative classes, the wealthy–only “desirable” residents are welcome in them. This is why such glaring injustices as gentrification, and poor doors, and over-policing are all but inevitable, and why harebrained projects like Mueller and the Domain perpetuate inequality instead of disrupting it.

Urbanism is a huckster that reduces the problem of fixing cities to architectural fetishism, and cities aren’t defined by setbacks or parking minimums or any other boogeyman invented by urbanists to attack housing and transportation policies. Cities are defined by power–who has it, who doesn’t have it, and what the people ordained with it do with it. Only by acknowledging this difficult truth can we hope to make cities work for everyone, not just for the affluent few.

Don’t Major in Computer Science

I’m reflecting on the end of my four-year college education in computer science, a major by which by all accounts–from the pundits, pop culture, and the Department of Labor–was supposed to be the highest and most fulfilling field of study.

They said computer science was for the geniuses, the whiz kids, the visionaries. Its virtual apparatuses–algorithms, Big Data, artificial intelligence, among countless other buzzwords and fads–were destined to transform the world, so declared computer science boosters in op-ed after op-ed and PR blitz after PR blitz.

Suddenly, it seemed every social problem from traffic congestion to climate change to healthcare could be eradicated through a little bit of software wizardry. We lionized industry captains such as Steve Jobs, Jeff Bezos, Bill Gates, and Elon Musk as not only especially skilled entrepreneurs, but the very saviors of humanity in our time.

These cavalier assessments of the significance of computer science are at least partially responsible for the massive numbers of college students entering the field. Some of us really do believe that making computers “do cool things” is good in and of itself, that Making the World a Better Place at some nameless tech conglomerate isn’t just some trite marketing slogan.

Others are in it for the money. It hasn’t escaped anyone’s notice that software engineering is one of the most lucrative careers available to young graduates; stories abound about college juniors getting the right internships and the right connections and landing high-paying Bay Area jobs, right out of school. First-generation college students and immigrants are–quite understandably–turning to computer science as a surefire ticket to financial stability.

If you’re a bright high school senior not quite sure about your interests and passions–as I was, during those spring months when I was sending in my college applications–computer science would seem to present a very convenient solution. It’s the field every smart, mathematically-inclined young adult should study. It guarantees economic security. You’re told the code you write changes the world, so you’ll have no moral scruples about being a well-off computer programmer. You can laugh with your friends at those poor liberal arts majors who chose to study things that are seemingly useless and inane.

But it doesn’t take long to see through the ruse. Studying computer science felt so vapid and uninspiring compared to studying other subjects–government, history, geography–that didn’t have anything to do with math or computers. These other courses were thoroughly captivating, dealing with hard truths and the problems that vex human society and explaining why the world is the way it is. Building linked lists and neural networks, by contrast, felt mundane and elementary–like a boyish engineer playing with his toys.

The problem with computer science education is not just that it is dull. Computer science is so intimately tied to its application within the industry that the university’s function as an impartial teacher is subverted to industry considerations. Consider the computer science department at UT, which is permeated with those interests that reap considerable economic value from its work.

Nearly every piece of the department’s sparkling new building is adorned with corporate sponsorship–classrooms and eateries named after tech companies here, metal displays etched with the names of corporate and individual donors there. The building itself is named the Bill and Melinda Gates Computer Science Complex–named, of course, after the Bill and Melinda Gates Foundation, which showered UT with many millions of dollars to fund the building’s construction.

That aura filters down to the students. Almost everyone cuts class for the biannual job fair, a corporate mecca considered so central to the undergraduate experience that professors freely encourage their students to skip their classes if they conflict. Or, alternatively, students can hang out in the Gates Complex lobby before class, where headhunters often set up booths to take resumes and dispense company propaganda.

Far from experiencing a thought-provoking and well-rounded education, computer science students are subjected to a rat race–to secure seats in the most productive classes, then join the most productive clubs, then find the most productive internships, and finally find the most productive jobs.

I still remember freshman orientation, sitting in the Gates Dell Complex’s main auditorium (no doubt named after some company I’ve forgotten) with a hundred or so of my future peers. Up front, a cohort of enthusiastic student ambassadors–sporting T-shirts emblazoned with Microsoft and Google logos–were listing all of the things computer science undergrads should do: join clubs and research groups; find summer internships; make a bucket list out of the regularly scheduled corporate talks.

I was supposed to like the sound of all of this. Certainly, my colleagues seemed to, as they made mad dashes for the signups and the giveaways. I didn’t fully realize it at the time, but something was nagging me incessantly: was this really the culmination of the higher education experience? Was the purpose of college to sell yourself to corporate employers, to prepare yourself for some future job title?

For quite a few college students, the answer is yes–higher education is but a single step on the path to a dream job conceived of in high school. They have a different worldview, I suppose, and I can’t blame them for trying to get a leg up on their careers.

What everybody should mind, however, is that this kind of education–the career fairs, and the talks, and the donations–is a system designed to cast people into ideal employees. And by their very nature, systems control, constraining one’s views and one’s thinking in order to engineer a narrowly defined set of outcomes. The result is that young adults are getting their minds closed off at the precise time they should be exposed to new ways of thinking and encouraged to challenge the entrenched systems that control us all.

I’m telling you not to major in computer science because I wasn’t willing to play ball. Perhaps I should have studied to become a doctor or a lawyer?

Transit Advocacy Is Not Urbanism

It’s not too often I attempt to write a justification for my existence, but here goes.

Few people in Austin are willing to talk about public transportation right now, which seems odd given the major developments in Connections 2025 (now branded “Cap Remap”) and Project Connect. This is a gap I’ve tried to fill with my new transit blog, the Austin Metro Journal.

Capital Metro’s board meetings draw a small cohort of regular critics, but they focus on individual service planning and customer service issues (“I don’t like the way y’all cut service to my neighborhood post office”) and thereby miss the bigger picture. I’d put Austin’s light rail boosters in the same camp. These folks have the best intentions, but they’re narrowly focused on building a specific transit technology.

On the flip side, you have Austin’s “urbanists” and policy wonks, comprised mostly of millennials and techies, who see public transit as a stepping-stone to a New Urbanist utopia complete with Vision Zero, universal cycle tracks, and—let’s be honest—Manhattan-like densities. Urbanists certainly value public transit, but it’s not their main focus. They care about transit insofar as it paves the way for their starry-eyed visions.

And then you have me, the guy who’s interested in critiquing Capital Metro and advocating for better service for Austin transit riders. Continue reading “Transit Advocacy Is Not Urbanism”

Gone: Clearing the Path for California’s Last Freeway

Westpark is a neighborhood like any other in Central Bakersfield. It’s filled with single-story ranch homes from the 50’s and 60’s; its streets are wide, clean, and lined with orderly parked cars; its lawns are neatly divided by fully matured palm trees.

But Westpark is a neighborhood under siege.

Over the past several years, city bulldozers sliced a wide, sterile arc directly through the heart of the neighborhood; they razed at least 300 homes and 120 businesses. And now, where the humble homesteads of hundreds of families and retirees once stood, there is nothing–just woodchips and orphaned cross-streets as far as the eye can see.

The city was clearing the way for a titanic construction project. It’s building a six-lane freeway, called the Centennial Corridor, that will someday wind its way through Westpark in a trench. But until the excavators get the go-ahead to carve out the highway’s sunken alignment, the land will sit barren, in a bizarre state of limbo.

On one foggy January morning, I took a childhood friend of mine to Westpark to document the neighborhood as it stands in 2018. Our plan was to meet up with a mutual friend of ours and take photos while getting some exercise. I told them we were exploring an “abandoned neighborhood,” but none of us was really prepared for the scene we came upon. Continue reading “Gone: Clearing the Path for California’s Last Freeway”

My VGA Passthrough Notes

Introduction: What is VGA passthrough?

Answer: Attaching a graphics card to a Windows virtual machine, on a Linux host, for near-native graphical performance. This is evolving technology.

This post reflects my experience running my VGA passthrough setup for several years. It is not intended as a complete step-by-step guide, but rather a collection of notes to supplement the existing literature (notably, Alex Williamson’s VFIO blog) given my specific configuration and objectives. In particular, I am interested in achieving a smooth gaming experience, maintaining access to the attached graphics card from the Linux host, and staying as close to a stock Fedora configuration as possible. Hopefully, my notes will be useful to someone.

Continue reading “My VGA Passthrough Notes”

New Year, New Network: Connections 2025 Looks Fresh, but Feels Oh-So-Familiar

After months of analysis paralysis, Connections 2025, Capital Metro’s shiny new transit system, is almost here. I witnessed the board of directors approve the first set of service changes back in November. The new local bus network is slated to roll out in June 2018.

In the spirit of other transit network redesigns, Connections 2025 will transform Austin’s bus network from a collection of downtown-oriented radials to an intuitive, connected grid with vastly expanded frequent service. Capital Metro will become much more useful for non-commute trips; journeys not involving downtown will be much more convenient to take, while weekend service will be largely on par with weekday service.

At least, that’s the pitch. And if you’re a transit rider or public transit advocate, that all sounds like pretty good stuff. Austin clearly needs a new bus network; Capital Metro’s decades-old system is inconvenient and frustrating to use.

But as excited as I am for the new network, it has some flaws that will probably leave it just short of achieving its full potential. I have two main quibbles with Connections 2025, and I think the root cause (as I wrote, awkwardly, last year) is Capital Metro’s consistent failure to engage with its riders and its constituents. Continue reading “New Year, New Network: Connections 2025 Looks Fresh, but Feels Oh-So-Familiar”

Weighing Desert: Justice for Kings, Justice for New Yorkers

One man is on trial for murder under the threat of the death penalty, and a jury must decide his fate; he lives. This is the basic outline of Aeschylus’s The Eumenides and Reginald Rose’s Twelve Angry Men, except one courtroom is in ancient Athens, while the other is in 1960s New York City. In The Eumenides, protagonist and Mycenaean prince Orestes is on trial for the killing of his mother, Clytemnestra, who herself murdered her husband Orestes’ father Agamemnon. The Greek gods Apollo and the Furies cannot agree on whether Orestes’ murder was just, so Athena conjures up a court of ten jurors she intends to become the model for justice in Athens. The jury is tied, but Athena has already cast her own vote in favor of Orestes, so he goes free. In Twelve Angry Men, a working-class boy is accused of murdering his own father. The prosecution’s case is strong; a mountain of evidence suggests the accused did the deed. But one juror believes there is room for reasonable doubt, and as he untangles the facts of the case and dismantles the prejudices of the others, he gradually convinces the entire jury to return the verdict “not guilty.” Continue reading “Weighing Desert: Justice for Kings, Justice for New Yorkers”