October 2014

This is getting longish. If you want to play catchup, there are single-page compilations for October and November.

Tilde.club ate my day - 02 October 2014
[% META title = "October 2" %]

Tilde.club ate my day

Not directly. But I spent all my free time yesterday rereading old tilde-phoenyx chat lots and contemplating the resurrection of The Old Phoenyx. And then I installed a TinyMUSH (on my desktop machine) and debated about the potential for using it as a chat server.

Recapitulating phylogeny - 03 October 2014
[% META title = "October 3" %]

Recapitulating phylogeny

Today I kluged together a perl-based static blog^W web diary.

Ripple effects - 04 October 2014
[% META title="October 4" %]

Ripple effects

 _________ 
< TinyMOO >
 --------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

The shortcomings of wall led me to get around to installing a MOO on my own Unix box. I've messed with LambdaMOO a little, so now I'm trying out TinyMOO. I'm kind of curious if I can get the kids from the Minecraft server we run interested in it, which led me to realize it would probably be My Little Pony themed... which led me to google a little, and learn that there are at least three very active MLP-themed MU*'s out there already.

One of which is R-rated.

Huh. Kids these days.

Keeping it simple. - 05 October 2014
[% META title="Keeping it simple" %]

Keeping it simple.

So I wrote a nifty little Perl script that would take my text files and build the data file to feed it to ttree so I would have a nice archival setup categorized by month and year and so forth, build at Atom file, etc.

And then I deleted it. Because that was overthinking it for tilde.club - I mean, if I want all that I can just go ahead and install a static generator on Wordpress and scp *that* here.

Not that there's anything wrong with a nice structured blog. Just, if I'm going to reinvent a wheel I'm going to reinvent the web forum.

Sincerity - 06 October 2014
[% META title="Sincerity" %]

Sincerity

A number of people are talking about, agonizing over, and being ashamed by decisions about how "period" to make their pages here. Guess I'll weigh in.

Peanuts 10/29/1959

I'm being as basic as possible, not out of any perception of a standard of "purity," but simply because that best puts me in the nostalgic mindset. I've got a couple projects I'm going to pick up again, and I don't want to get off on the same rabbit-trails that left them bogged down last time.

So IMO use whatever tools you want, as long as your tilde.club page is sincere.

Lynx - 07 October 2014
[% META title="Lynx" %]

Lynx

So yesterday Maciej Cegłowski (@Pinboard) was mocking what we eventually started calling scrollerskate websites, and I replied with a Lynx screenshot to one of them and the comment "Looks fine to me."

Screenshot of Kano.me in Lynx

It's gotten more favorites and retweets than probably any other tweet I've made, even others that Maciej has retweeted. I'm not sure how I feel about that.

I used Lynx way, way past the time when I had a functioning graphical browser. In part because I'm stubborn and slightly hipsterish, but in large part because it's really fast. No hassling with waiting for overdone graphics to load - overdone graphics have always, always been a thing, even when they were tiny little animated gifs - or for Javascripts to break, or for an ivory-tower web designer's layout to fail because your font wraps where theirs didn't.

I got away from using it, I guess, when everything and its brother was in a frame, which meant searching through (generally unlabeled) links in an Easter-egg hunt for the content. I've been firing it up more and more often lately, because the problems that kept me on it for so long haven't really gotten any better. There's probably a nice aphorism to be made about how "content" (except not the meat, but the decoration) expands to fill or exceed available bandwidth.

Lynx is pretty self-explanatory. You type "lynx" and then the web address you want to go to. If you're like me, you hit the [O]ptions and turn on link numbering (it's under Keypad Mode, which sort of makes sense but isn't intuitive). Then you can just type link numbers to jump to them. It clutters up the screen a little, but it saves a whole bunch of arrowing around. You can, if I remember right, set Lynx up to accept mouse clicks, but as with nano I always found that to be a weird cognitive mismatch.

On mice

Speaking of clinging to the old ways, I do the same thing with mice. Mice are wonderful, wonderful things, except that I only have one right hand and it's busy on the keyboard. So I've always been funny about using keyboard shortcuts instead of the mouse.

Funny story: I once had to ship a computer to Guam. Shipping was crazy expensive (even though we were a cargo airline who shipped stuff to/from Guam... just none of it came from/to Wichita) so I wanted to be really sure I shipped everything the first time.

The computer came from our supplier, and I happened to be moving to a new office at the time. So I took the boxes straight to the still-empty room, unpacked them all there, set the computer out on the floor and installed Windows 3.1 (95 would have been out, but we were on 3.1 for compatibility). When I had the OS and whatnot set up, I packed up everything in the room and shipped it out. And then I got a phone call from Guam. Um, where was the mouse? Yep, I had installed everything with keyboard shortcuts, and never even noticed its absence. I taught a pilot how to use keyboard shortcuts, and I like to think I created an acolyte, but in practice I think he went out and paid the extortionate island price for a mouse as soon as possible.

The club - 08 October 2014
[% META title="The club" %]

The club

One of my Facebook followers* made the inevitable joke about being glad he missed the tilde.club open admission period because "I'd never join a club that would have me as a member." I haw-haw'd and we moved on.

I have two "social" Twitter accounts... one for the local Wichita scene, and one for the nerd scene - roleplaying, tech, et cetera. The first one's definitely my default (in fact, you'll see me reply to a lot of tilde tweets with it because I always forget to change the default when I'm replying from a list column in Tweetdeck). The second, well, I've been adding a lot of tildenizens to lately.

I'm picky about who I add, though, because I'm definitely a no-drama person. Following ~heather/@Heather_R's tildeclub list, I see about a million times more drama than I've ever known existed. Some of it's in-jokey but Poe's Law, y'know? So I've been looking carefully at everyone's bio and overall twitterstream before I follow them directly.

And some of those bios... man, these are people with their own Wikipedia entries and whose companies, usually of the "successful web startup" flavor, have their own Wikipedia entries.

BRB, gotta go raise some venture capital so I can fit in here.

(Okay, really I'll just try to stay sincere.)


* I know, I know. But I run a neighborhood full of elderly people, and I need to communicate with them.

Oh, that's why I'm partying like it's 1999 - 09 October 2014
[% META title="Why it's 1999" %]

Oh, that's why I'm partying like it's 1999

I had a small epiphany. I've mentioned before that in many ways tilde is nostalgic, and in other ways it isn't. And then I realized: I walked away from the corporate world on June 16, 2000, having taken an airline and a bank through Y2K and staving off TEOTWAWKI, had a baby (the following week). And I became a stay-at-home mom. A nerdy stay-at-home mom, to be sure, but still. I did contract programming here and there, and of course I was pretty sure I was finally going to complete the gamehawk software for The Phoenyx, but for all intents and purposes I wasn't in the rat race anymore.* But if you did the math there, you'll notice that that then-baby is going into high school this year. And after some pretty heavy involvement in his elementary school, and a combination of brick-and-mortar, home- and e-schooling through middle school, I'm now at loose ends while he goes off to regular full-time school.

Picking up where I left off

So now I'm "unemployed" (see that * again) and trying to decide: do I dust off the résumé and jump back in the corporate game? I like to think I've kept my hand in enough, and in any event my shtick has always been archaic or obscure languages anyway (which was great during Y2K frenzy - old COBOL code? No problem. RPG-III? Business Basic? Alpha Five? I've done a lot of crazy coding). Last contract job was rewriting a POS* into Delphi, which was enough like the Visual Basic I used circa 1993 that I could jump right in… and when the company sold partway through the project and the new owners wanted it redone in C#, well, I can shift a manual transmission without the clutch if I have to. Problem is, if I go that road I need to find a company that can handle someone who's had fifteen years to shed her corporate-BS filters. That's one skillset I haven't kept polished.

I could go the freelance route in a less desultory fashion. That involves being a bit of a salesperson, which some of my interim experiences would help with. I've learned to network, which is one thing that is not exactly as it was fifteen years ago. It also involves a hopefully-regular change of scenery, which I sort of like. It's maybe less stability than I'd like if I'm going to become the primary breadwinner, which would be nice someday. (My husband ~raven is a sysadmin, but maybe he'd like his fifteen-year sabbatical to his own crazy things.)

Or… I could bypass freelancing and just write my own killer app. I have a couple of them rattling around; the software that backed The Phoenyx is still almost-rewritten and even in fifteen years still nobody's filled that particular niche well. Or I could figure out the solution to the grocery problem in my Empire (no grocery store, an aging and/or low-income population) but it's hard to fix things with software when you have very limited hardware. Only around 40% of households have any networked computer or phone with data plan - we've kicked around some thoughts around mesh networking and Pi's, but haven't had any idea breakthroughs.

Even if I go with one of the first two options, I'll be doing the last two as some kind of open-source hobby thing, because sincerity.


* Not that I wasn't even busier, having become the Empress of Delano and building a hyperlocal news site with a following in excess of the population of the area it covered. But none of that was paying work, or very (often) technical.

* It was both kinds.

Poverty phones - 12 October 2014

There was an interesting intersection of a bit of yesterday's post and a series of tweets when I got up this morning.

Let me tell you about my empire.

I accidentally fell into this neighborhood: right after we got married ~raven got laid off and decided to take his education benefit (good as long as he had recall rights) and get a CS degree. Our lease was up at our far-suburban duplex and we decided we needed a cheaper place to live so he didn't have to work while he was taking classes. Right about that time a former co-worker of mine wanted to buy a new place but her old house was underwater and her bank told her she could only get the loan if she found a tenant. A year or so of payments would bring it positive. So we moved into a wacky built-in-1914 house in a neighborhood I didn't yet know the name of. And we liked it so much that a year or two later we bought a "starter" house there, where we accidentally have stayed for almost twenty years now even though it's almost-comically below our means (our mortgage is somewhere under 5% of our annual income). But this place gets into your heart, and it kind of hurts to see some of the problems here.

I linked to the Justice Map for its income levels, but let me do that again in case you missed it.

History

You can skip this, if you want, it just tells how we got where we are.

Delano is what they call a First Suburb, or a first-ring neighborhood. We're just across the Arkansas* River from downtown Wichita, and take our name from a little town that was founded within a few months of Wichita. It was kind of an interesting situation: both towns were on the Chisholm Trail, that brief but powerful phenomenon that shaped a lot of the cities around here. Delano is on the west side of the river, the side the cattle were coming from. Wichita was on the east, the side of civilization. The herds would come up, cross the river, and get loaded on trains. The cowboys would get their pay, but if they wanted to come to the Wichita side they had to check their guns and behave themselves. Delano was only nine blocks, but all around it on the riverbank were generally-unregulated brothels and bars and all the sort of thing you associate with Old Dodge City. (Dodge City's turn came a few years later, when the rails crossed the river and loaded the cattle further west.)

Almost immediately, the city fathers saw which way the wind was blowing - Wichita was growing fast (its nickname, before the real estate bubble burst in 1878, was "New Chicago") and so the town of Delano became West Wichita. By 1880 it was annexed and was Wichita's "Fifth Ward" or "West Side." The west-of-the-river stigma persisted for the next century-and-a-half; the newspapers over the years are full of stories about West Side residents complaining about the toll bridge over the Ark, then the quality of streetcar service, and so forth. West Wichita today still has nice neighborhoods, but never quite as nice as their east-side counterparts. Rivers are barriers; less so today, but the legacy is there.

At any rate, the Fifth Ward was a blue-collar neighborhood that boomed in two waves, one following each World War. Wichita is an aviation town, and things took off (um, no pun intended) like crazy then. That built-in-1914 house I mentioned had a storage area cobbled together under the basement stairs, and the boards used to make it came from Stearman Aircraft crates, according to the stencils on them. But like every other First Suburb in every other American city, the neighborhood fell out of favor as everyone fled to the suburbs. They ran a highway through it so white-collar workers could zoom through (and later, over) it commuting between their McMansions and their downtown jobs.

By the late 1980's, our downtown (Delano's, not Wichita's, though Wichita's had its own problems) looked like every other small-town downtown: a few low-rent storefronts and a whole lot of boarded up turn-of-the-century buildings. A few dedicated people - property owners, people interested in the history of the area - got together and convinced the City of Wichita to institute a revitalization plan, re-branding the neighborhood from the lame "River West" some consultant had tried to pin on it to "Delano." The City gave it a streetscape with wide sidewalks, angle parking, an iconic clock tower in a tiny roundabout, and today downtown Delano is at almost 100% occupancy with restaurants, boutique shopping, some anchor employers like INS, and so forth.

Success!

Where we are today

Mostly success. When most people hear "Delano" they think of our downtown - six blocks of streetscape. But Delano is almost two square miles, around 2400 houses, of pretty diverse residential area. My immediate neighbors' stories are repeated throughout the neighborhood..

The Art Of Neighboring

I read this book awhile back and at the time I could name all eight neighbors. I can't right now, which is something I need to fix. This is who they were.

  • One household is a retired couple who bought their house in the late 50's, raised a bunch of kids (in two bedrooms!) and still live there, though they hop in their RV and leave for a couple months every year these days.
  • Another household is a rental (went to auction after the couple who had lived there "since the war," also raising a passel of kids, passed on). It's currently occupied by a man and his elderly mother, plus a rotating assortment of twenty-something nieces and nephews and their couch-surfing friends. The unheated, unplumbed shed out back is occupied, and at one point they had a tent in the back yard. The extended family has lived in the neighborhood for generations. When they moved in the man had a car, but it died and he can't afford to replace it so there's always a thicket of bikes next to their porch. He's a day laborer, I think.
  • Another house has been empty for as long as I can remember. One of the other neighbors has the contact information for the owner, and occasionally calls to let them know squatters are living there, or a tree has fallen through the roof, or whatever. I have no idea what the story is there.
  • Another house was bought by a young couple who thought they could remodel it (to flip or to live in, I don't know). I never met them, and they only got a little way into remodeling before it got foreclosed on. It also sat empty for quite awhile before it went to a HUD auction, and was bought by a Vietnamese family who finished the remodeling and moved in.
  • Another household is a rental, a young Hispanic family. He's an apprentice electrician. They've lived in a few rental houses around Delano, preferring to stay long-term and garden when they can, but sometimes having to move when a landlord won't fix things or when neighbors become a problem.
  • Another house, one of the tiniest on the block went through several changes of ownership after its long-term owners moved to assisted living. Finally, it was bought by a local investor who put serious work into it and gave it to his daughter as a graduation present.
  • Another household is a young couple who bought it after the long-term owners went to assisted living. They put it on the market during the recession when construction stalled and there were no HVAC systems for him to install, but were too far underwater for it to sell. They managed to hang onto it, though.
  • Another household is another retired couple. They've got serious health issues, and home health services and occasionally an ambulance visit now and then. There's a wheelchair ramp, and they have a basement and a second floor that they almost never visit, but they refuse to go into assisted living. They keep very much to themselves, so I only know these things through the grapevine.

At least two houses on my street, fortunately at least a block away, have been meth labs. Others have been partitioned into apartments (one used to have "JUGGALOS OWN THIS HOUSE" spraypainted on the porch wall, which you could only see when the ice-cream truck wasn't parked in the grass). But most are just plain folks: older folks who've lived here for decades, young families starting out, new immigrants, hipsters, anybody who wants cheap housing in a fairly safe neighborhood. We're starting to see some gentrification as downtown Wichita revitalizes, but so far it's only nibbled at the riverfront edges.

The issues

The neighborhood used to have a grocery on every corner. The house we rented was across the street from a small Dillons (a chain now owned by Kroger) on the edge of the neighborhood, and little old ladies with granny carts would pass by our house (stopping to chat with our dog) on their way to and from. Dillons closed that store some years back, right after the last local grocery closed in 1995. The nearest grocery is now a half mile from one corner of the neighborhood… the opposite corner from the poorest section, so about two miles for them.

Until very recently, cutbacks in Transit meant we didn't have bus service between us and there either - and Transit had a rule (admittedly honored more in the breach) of no grocery carts, and no more than two bags. Presently we have two routes, but the City has linked keeping them with passage of a five-year sales tax (Kansas is one of seven states that has no exemption or rebate for sales tax on food, by the way), which is an ugly piece of blackmail for the people who can tell you exactly what those dollars will mean they can't buy on their next grocery trip. Even with the new routes, Wichita's transit is sorely lacking. Delano is slightly better off than modern suburbs in that we were initially built for a lot of foot traffic, but some of that has eroded. Wichita leaves sidewalk maintenance to property owners (albeit making it mandatory, at least when problems are reported). And we were built for no- or one-car households, so our residential streets are crowded with parked vehicles. And of course the foot traffic was assumed to be destined for a corner grocery or a transit route that no longer exists.

As I mentioned yesterday, most households don't have always-on Internet. Many older people don't have smartphones or computers, and many poor people might have computers but no reliable Internet connection. The recession has closed most public computer access; the nearest site within walking distance is the downtown Wichita library. Wichita has the lowest per-capita funding of libraries in Kansas, so needless to say they have neither the space for enough computers nor the budget to buy them if they did. Computer access is now critical for so many things we take for granted. If you qualify for public assistance, gotta register online (government cutbacks - websites are cheaper than clerks). Jobs, even blue-collar ones, are advertised and applied for online. Housing? Find it on craigslist. Registering your kids for school? Online, or a four-hour process in person. Need to track your kids' progress reports? Online.

Trying out the lifestyle

A couple years ago, I tried sourcing all my groceries within a mile of my house, and seeing where the lack was. It wasn't a completely scientific study - my pantry is well-stocked, we buy a side of beef for the freezer every few years, I have the free time to prepare meals from scratch, and I used my car instead of a bike or walking or transit. But it was still enlightening. Meat is either fresh and expensive, clearly aimed at the wealthier residents of Delano (we do have a stretch of beautiful huge old Victorians by the university) or at commuters stopping on the way home; or it's frozen and cheap and really iffy. We're fortunate enough to have just enough competition to avoid the $5 gallons of convenience-store milk and $2 shrink-wrapped bananas that some neighborhoods are limited to, but still it's clear that most people with the means are hopping in their car and driving further out to a conventional supermaket (whose sea of parking would never fit in Delano even if WalMart or Kroger deigned to look our way).

A few years ago, a newly-transplanted-to-Wichita friend mocked my choice to drive to her shop two blocks from her house. I was able to defend my decision by pointing out I was en route to the post office, but in honesty, I would have driven there anyway. Such is the Wichita mindset - we're in the middle of the prairie so we're very spread-out, and car use is so often mandatory that we stop noticing the times it's not. I started walking everywhere I could. This spring, when the bus added two routes through Delano, I signal-boosted as much as I could, even livetweeting and blogging our first trip to introduce non-riders to it. My mom thinks I've gone crazy. And this spring, I bought a thrift-store bike and started decking it out with cargo baskets and whatnot. Circumstances* conspired to keep me from using it seriously for most of the summer, but not before I rode it down to a further route, put it on the front of the bus, and threw it in the back of the van to bring the van home from the mechanic's. (Ironically, the van was in after an incident where I drove in a flood to get to a public meeting about a bike path proposal….)

My next experiment, as I've discussed on Twitter with @suchwinston (whose ~ escapes me at the moment), is I guess going to be dipping my toe in the technology gap. Turning off the tablet and the desktop and deleting the home wifi password from my phone. I'm conveniently already the owner of a "free/cheap shitty smartphone" (as he put it), in that I hate phones (the actual phone part) and so used an Asus Transformer as my mobile device of choice, and only reluctantly upgraded my seven-year-old Tracfone to a smartphone: a $50 ZTE Valet, with a fixed-focus camera, 3.5" 320x480 screen, and not-real-fast processor. ~raven reacts in horror every time he has to use it, because he's used to a work-provided 4G monster with unlimited data, but when it's all you know and it's only the device-of-last-resort, it's not bad. I'm kind of fired up about writing some Perl code right now, so it's probably not the week to do it (or maybe I'll unplug the network cable from the desktop and partition my coding from the experiment), but real soon now I'll see what it's like to live with just that tiny screen as my window into the wired world.

Some of this I do for empathy-developing reasons, but some of it is for problem-solving. It's hard to ask someone in this situation what will help them. (The answer is always "money," and while it's not wrong it's also not helpful since I'm not a Koch sibling.) I can't bring back jobs that no longer exist, or magically upgrade laborers and machinists into Teh Creative Class, but I can do what I can to make life less time-consuming and a little less expensive and maybe give some people just a little bit of an edge in breaking out of a bad situation.


* Pronounced Ar-KAN-zus, not AR-kin-saw. The pronunciation changes when it crosses the state boundary.

* A heart scare. Turned out to be something else (and trivial) entirely, but in the meantime I got to learn via pulmonary tests and a heart cath that hey, my heart and lungs are actually in better shape than my age and nerdy lifestyle would predict. They'd be even better if I hadn't unnecessarily missed out on three months of Y workouts and bike riding and walking, dangit.

Oasis - 13 October 2014

What's the opposite of a food desert*? An oasis. So that's the working title of the software/project to fix one of the problems in my neighborhood.

In a perfect world

I'll try not to sound too much like a 1950's "House of the Future!!!" thing.

Mom* opens up the menu planner on her phone. It knows what there is in the pantry, the fridge, and the freezer, and she tells it what the budget is for the week. She tells it the meal schedule - between her and Dad there are three part-time jobs, and you take hours when you can get them - and which meal each family member is going to be at, or will be needing leftovers from. It already knows the ages of the kids, and that one is allergic to eggs. It knows what stores are close to the house, and she tells it she can make a trip to the full-service store later in the week.

She plans the meals. The planner already knows the family's food history, so it can suggest favorite recipes that haven't been used in awhile, or ones that will use up a soon-to-expire product. It can give her a running total of the grocery bill, and when everything needs to be bought. It can run a nutrition analysis and suggest changes, either tweaks to existing recipes (replacing 73%-lean ground beef with a smaller amount of a lower-fat grind, to keep the protein the same and cut down the fat, slipping in filler vegetables where they won't be noticed) or new recipes. One new recipe includes some unfamiliar terminology, so she clicks through "braising" to a video, where she discovers that it's just something she didn't know the terminology for - and maybe learns a little about when and why to use it. Another recipe calls for a rice cooker, but she doesn't have one. It remembers that, and has a link to a page explaining alternatives. Another uses eggs, but has a suggestion for a substitution.

Meanwhile, one of the local stores is a new concept, or rather a very old one. It's in an old storefront, that was a neighborhood grocery almost a hundred years ago. Back then, customers arrived by streetcar, told the grocer at the counter what they needed, and his stockboy filled the order for them. Or they phoned it in and it went on the weekly delivery route. Today, that's pretty much how it works again. when Mom is done making her meal plan, she sends it to the store. Instead of handwritten bits of paper, the stocker has a tablet with a scanner gun, but the process is otherwise the same. Some customers set their orders for pickup - the store is convenient to suburban commuters leaving downtown, and curbside grocery loading is part of the service. Others, like Mom, are within the store's delivery range. And now and then someone drops in and uses the tablets at the counter to place an order on the spot.

Because the store is linked to its customers' meal planners and knows their history, it can do some predictive, just-in-time ordering. Shelf space is very limited after all, even though not having customers browsing them means the store can be much more efficient. When enough customers are putting an item on their lists that the store doesn't stock, it can consider carrying it. When its suppliers have special pricing - say, on seasonal produce, or promotions - it can push that information out to customers who can plan their meals accordingly. In fact, customers have some transparency into the suppliers' databases as well. The store doesn't usually stock low-demand items, but customers can see what's available for special-order, and can even put their names on an "I'd like to try this" list, where an item with a large minimum order waits for enough interest. Overall, prices are still a little higher than the big-box stores, but they're competitive - enough that customers pick it either because they need the delivery, or they just like the convenience.

Naturally, there's a social network involved too. A group of young couples formed a dinner club - they share recipes, and meet at a different couple's house every week. A local church has a Wednesday-night dinner, and publishes its menu through the software - sometimes Mom takes the kids over when the schedule allows, because everyone pays through the app so no one has to know what she does or doesn't enter in the "donation" field. The senior center partners older adults living alone with others in the same situation, or with nearby families who are willing to welcome a guest at the table now and then. A foodie group coordinates its "I'd like to try this" lists and makes special orders.

The concept fits a small town just as well as an old urban neighborhood, which is kind of a big deal around here. Rural Kansas towns are dying off when they lose their grocery stores.

The less-perfect reality

None of that is super-hard to code; cooking is just a small-scale, highly customized manufacturing process. Sure, the bill of materials is a thicket of exceptions - ground beef comes in leannesses ranging from 73% (or lower) to 98%, and sometimes you can substitute, say, crumbled pre-cooked hamburger patties, sometimes not, and if you have to you can pad the amount with filler, or replace it with TVP if you're vegan, or whatever. Standardizing recipes is pretty labor-intensive. It relies on having reasonably complete and accurate nutrition info on a huge array of commercial products. But it's not insurmountable. The question is, can it be done in the tiny brain of a low-end smartphone with limited data connectivity?

I started on the project awhile back. Downloaded the USDA food databases, started a nice little RESTful web backend, figuring the heavy lifting could all happen serverside and a lightweight Javascript client (for the web) or Android/IOS client (for the phones) would be easier to support. Problem is, my target audience - sure, I'm counting on appealing to the well-connecting tech generation for the bulk of my customers, but really this is about getting groceries to the marginalized folks in my neighborhood - my target audience can't really count on having a live data connection during all this. Probably.

Somewhat unintentionally, I have a pretty good test bed. I've had an ASUS Transformer (tablet with a detachable keyboard; more of a netbook than a tablet the way I use it) with wifi for some time, and because I work with pretty much every business and church in Delano I have enough private wifi passwords that I haven't needed a smartphone. Some while back the speaker finally died on my seven-year-old dumbphone. Paid $50 for a ZTE Valet, and $100 for a one-year Tracfone card. It's slow, it's tiny, it has a genuinely awful fixed-focus camera… in short, if someone has a smartphone it's not likely to be much less capable than mine. And in fact because when you're poor that's likely to be the only computing device you've got (or because a friend who owed you money "paid" you with an iPhone, or whatever) you probably put a little more money into yours than I did. So the working poor are generally covered.

That still doesn't reach the older demographic, who are unlikely to be able to deal with the 3.5" screen. There's not much room for simplifying things for complete newbies there, after all. This is a problem because in that perfect world I'd like Grandma to be able to scan her paper recipe and OCR it in. That isn't going to happen when the camera on my phone (which proved completely unable to use bar-code recognition on the meal planner apps I played with), and getting Grandma something like a Pi-based device she can plug into her TV starts to get less affordable when you have to add a scanner or camera.

Assuming we get everyone on board with functioning devices, then what? We've been noodling around with the idea of a food co-op already, so that's our new-concept local store. The grocery business is a cutthroat one, but we have a local grocery owner who's interested in either cooperating with us or maybe in launching his own store (which would be good; co-op stores are a great community-builder but we don't have anyone with experience doing it, and would have to take the time to "capacity-build" to get a co-op team, or put it on our own overloaded board.

I also haven't even touched on the financial aspect - a lot of people in poverty are "underbanked," which means our delivery driver is going to be picking up cash. Delano is not a high-crime neighborhood (in fact, our neighborhood association is struggling because attendance is pretty much linked with perception of crime, and doggone it our community police officer won't even let me stage a fake crime wave), but that's still asking for trouble. Taking WIC or SNAP is pretty straightforward, except that when you're collecting all that nutrition data there will be righteous types who insist on making it mandatory to report it to Big Brother.

And there is a certain Big-Brother-ish aspect to collecting everyone's information like that. That big-box store is going to be real interested in our data, and in using it to out-do our little local store. No doubt Amazon's already looking into doing a lot of this sort of thing - a friend of mine is a bookstore owner, so I already know it's not a good idea to be a small operator in a field Amazon wants to own. And there's the enormous tech-support nightmare of trying to get a whole neighborhood full of low-end, mismatched hardware working reliably enough for people, many of them technically semi-literate, to buy in to using the system - and it really takes a lot of buy-in to see some of the benefits start to kick in.

And the Big Brother issue comes up when thinking about funding. The software could maybe be done on a shoestring; like I said in a previous post, I'd like to go back to the workforce but it's not necessary for the household. If we have to build a co-op, well, that's a problem but it's a solved one - it just takes a lot of fundraising and share-selling legwork. But getting equipment and more importantly network access into people's hands, without getting into strings-attached grants or other funding… that's tougher. I still have a lot of thinking to do on that end of things.


* Actually about the time this got public acceptance, the term is already falling out of fashion: Delano, for instance, doesn't have a problem of no food being available. The problem is that most food is of the processed, salt-laden convenience-food variety. Which is a whole 'nother problem, because that's what sells, not (just) what's cheapest/highest-margin. When you work multiple jobs, or don't own much cookware, or don't have a full kitchen, or do but some major appliances don't work, or you don't know how to cook from scratch, or you're a single-person household and it's just not worth cooking for yourself, or any combination of these… sometimes cooking a normal meal is an unattainable luxury and so you're stuck with whatever easy-to-fix stuff you can afford. But for now, we'll just go with "food desert" and kind of try to address the other issues along the way.

* It's almost always Mom, even though Dad's probably around.

Technicalities - 14 October 2014
[% META title="Technicalities" %]

Technicalities

I got sidetracked in pontificating and haven't paid enough attention to the technicalities of my "blogging software" - a Perl script that runs stuff through Template::Toolkit (I don't know why; I've always preferred HTML::Template) and does some parsing to build the atom.xml file. And I've gotten all fancy-pants since the old days, and I know people with crazy high-order characters in their names and something along the lines is helpfully converting them instead of leaving them as proper ampersand-thingies.

So mostly this is a test post to see if I have convinced it to maybe process things a little less. C'mon, it's good organic HTML, it should be left raw as long as possible, right?

No tilde is an island - 16 October 2014

No tilde is an island

I think maybe I'm missing out on a little ~ stuff because I don't spend much time in the shell there, but rather do most stuff (including typing this) in the shell on my local machine.* But I've been following along on Twitter, and it's been interesting to see the ~.* network growing: tilde.club begat tilde.town, tilde.camp, tilde.farm, and a few other places that stray from the naming convention. When I get done poking at the scripts to produce this blog (or at least done-for-now), I'll have to look into getting phoenyx.net into that, because you guys, *Usenet*.

Won't happen before this weekend, though. It's neighborhood-cleanup weekend (and I'm the empress), and also somehow I got roped into providing chili for an event that got rescheduled to the same day. And that went from being "chili for 100" to "chili for 300." And also this is the year that everybody and his brother wants to volunteer for the cleanup - thirty people from the university in the neighborhood, another twenty from a high school whose usual neighborhood isn't having a cleanup. So the cleanup luncheon is also going from "chili for 50" to "chili for at least 100." You guys. I'm feeding 400 people this weekend. HOW DID THAT EVEN.

Chili for 100

Brown 10 pounds ground beef, drain. Add 5 #10 cans chili beans, 1 #10 can ketchup, 1 #10 can tomato juice. Simmer until heated through (or longer). Fills 2 ~18-quart roasters.

Sam's Club (I know, I know, but we don't have a Costco here yet) carries a 10-pound chub of ground beef, Bush's chili beans, Hunt's ketchup, and while it doesn't have canned tomato juice it *usually* carries a couple of yoked-together jugs that are more or less the right amount. And the juice is optional anyway, it stretches the chili but also thins it. I've made it without when using the chili for hot dogs or Frito chili pies. Depending on the price of beef, everything came to around $60. All the "fixins" of course bring the total up, but if you're doing a community event (like the cleanup) it's pretty easy to get everyone to bring a bottle of hot sauce, a few onions, a bag of pre-shredded cheese, etc. So it's a good way to feed a bunch of people. If you've got vegans among you, just mix up all the canned stuff separately and reserve some of it for the vegans… do up some TVP and mushrooms to mix in, or maybe let people bring their own meat-substitute if you're going the communal route.

* Since AT&T helpfully "upgraded" us from ADSL to… uh… ADSL that they call "UVerse" (whatever *that* distinction means), we haven't had a connection that can reliably stay connected for hours at a time. There's an upstream box that fails regularly (some days it can't see any IPv4 addresses at al). We've given them the IP address, called them out on it repeatedly on Twitter, and the answer is always, *always*, "Well, your modem is scheduled for a firmware upgrade in the next couple days, let us know if that doesn't fix it." We've gotten the tree cut down that was blocking Cox's ability to run a cable back to the house, so pretty soon we're going to take care of the problem ourselves. Trading it, no doubt, for a whole new set of problems.

Bring back the feed reader - 16 October 2014

Bring back the feed reader

You know what busts silos? Syndication. It's no accident that Google killed Reader and brought up the feedless Plus, or that Facebook recently dumped what few feeds they ever provided.

It is also no accident that I put up an atom feed as fast as I could here.

I have been trying to persuade my 14yo to start using the family Tiny Tiny RSS installation, but he hasn't seen the benefit yet. Clearly I'm going to have to set up some sample feeds and make it his Firefox home page to get him to catch on, but I think once he does he'll be sold. Paired with a service like Page2RSS that builds a changelog feed for sites that don't have them (or just for pages that you want to monitor), it would save him from so much "Oh! I didn't know [that game I was interested in] actually released!"

If I could convince my family members to use feed readers, I could quit having to post stuff on Facebook - and they would quit having to "like" everything to keep Facebook from relegating me to their "only show stuff from this person when there aren't any paid things to show" bin.

Of course, there's still the problem that a web-based feed reader itself can be a silo. We run our own TTR because we have our own server, and because we got spoiled by GReader's caching and whatnot. But there are plenty of in-browser or standalone options for non-technical types. I should really learn how to use one of them, because probably everyone should have that in their "things I set up when doing tech support for relatives" along with the virus scanners and whatnot.

Customer vs. Product - 19 October 2014

Customer vs. Product

There's been a little bit of talk about silos and microblogging and middling and such which is probably synchronicity but I choose to believe it's because tilde is making us think about these things. Or maybe I'll choose to believe my last post influenced everyone.

Anyway, I think I should clarify my thoughts a little. I'm not agin' centralization in some cases. I keep my bookmarks on Pinboard, for instance, because even though we (~raven and I) have our own server, it doesn't mean we want to maintain everything. We run our own Tiny Tiny RSS server, and of course a web server and mail server, but sometimes it's a pain and I certainly wouldn't expect most people to do it.*

No, the real problem isn't centralization. Specialization can be good. The real problem is the weird ad-supported model. You can't get angry at Google for shutting down Reader, because you were never Google's customer. You were the product being sold. I can get mad at Maciej, because I paid him money to use Pinboard. (I suspect getting mad at Maciej would mostly give him snark fodder for Twitter, but that's okay. I knew that danger when I signed up.)

I don't know how to get away from the Internet's ad-supported, free-to-play culture, at least in the social/blogging sphere. I can go off to my blog here or on phoenyx.net, but my family will never bother to check it much less start blogs of their own so I can quit checking Facebook. And with the regular "they're going to start charging for Facebook" panics, I can't see convincing a critical mass of people to move to a Facebook-equivalent that's subscription- rather than ad-supported.* Pinboard is nice, but it's clearly a service for nerds who are eccentric for even caring about this sort of thing.

Or maybe I'm just pessimistic, and I should start building a Facebook-equivalent for my family members, collect a monthly or annual fee pitched as a "let's all chip in for the server" at first, and just let it spread from there.

Hmm.


* Carl's a professional systems architect and I'm a software dev with enough sysadmin experience to know it's always a permissions problem in Unix. And to know that the best way to aggravate a sysadmin/architect is to say, "Never mind, I'll just chown it 0777."

* Maybe "ad- and data-supported" is better? I should coin a scary-sounding phrase for "you are the product" services.

Silo buster - 19 October 2014

Silo buster

The last post got me thinking: what would it take to get my relatives off Facebook? Aside from the really tough one ("a critical mass of OTHER relatives/friends"), that is.

First of all, the "wall" (or "News Feed," these days) would basically be a super-friendly feed reader. Ideally, one that's smart enough to recognize common comment systems and display them natively, and of course let the user comment natively.

That wouldn't necessarily mean running a server, either. I could write a desktop app (or a Firefox extension, or whatever) that does that. I only run TTR these days because theoretically I like to be able to read stuff from my desktop or from my tablet (which latter never happens in practice), and because the caching is nice. I'd have to play around with things to see if caching would be necessary to make things happen speedily.

Then there would have to be a simple way to post pictures and posts of their own. Almost like, gosh, some kind of blogging software. I could be wrong, but I think that's a solved problem.

Really, all that boils down to is making a client that skins existing stuff to look like a unified Facebook clone (or G+ clone, or whatever). There's not even a need for a paid service except for the blog hosting. So far, so good.

But what about "friending" people? There are two problems: one being how to find friends or at least people you want to follow. If there isn't a central service, searching becomes harder. Being able to see your friend's friends list is one way, plus there's the old-fashioned way: I email my blog URL to my mother. Maybe the client implements FOAF (Wikipedia) too.

The opposite problem is: what about people who want to trick you into following them? This gets a little more iffy. Facebook has problems with profile-cloning, but at least there's a central authority to appeal to (even if said authority treats you as a product and not a customer). There's no real authentication happening - Facebook culture says you see a name and a profile pic that you recognize and you friend them. Especially if they already say "X friends in common," which only means you have X friends of possibly-decreasing levels of gullibility. Ideally, you'd want to build in at least a culture of testing people to make sure they're who you think they are. (For example, sending an email asking, "Mom, did you change your blog host?")

Hmm. Really, on breaking it down, it doesn't seem like a particularly hard thing. Surely someone's written something like this already, and the problem is just in getting enough adoption to make it worthwhile to the average Joe?


* I didn't actually have any footnotes this time, so I'm just going to post this Wikipedia article that I came across while rabbit-trailing some thoughts while writing this. Yay AADD! Behold, the questionably-real sport of kudu dung-spitting.

Pumpkin spice - 21 October 2014

Pumpkin spice

Okay, I started brainstorming on the silo buster (and, obviously, gave it a silly code name). Like I have time for another project like that.

Barriers to entry - 23 October 2014

Barriers to entry

Somewhere along the line, my post to tilde.projects (<alpine.LRH.2.11.1410192150390.25581@tilde.club>, I think) got interpreted as "tilde.club could be a Facebook killer" rather than "tilde.club should build a Facebook killer." Which is okay - that's an interest premise too (though probably OT for .projects).

Tilde is a tough social network. It was fun when it was just wall, but then it moved to IRC. I've never been a fan of IRC. And almost nobody has syndication feeds (look at my OPML so far and see how many I'm using Page2RSS for; do a

ls /home/*/public_html/*xml
and see how few feeds there are). There are a lot of tildenizens on Twitter but that's Twitter, not here, and the community that's there is largely one that existed before tilde. (Logically enough, since that's mostly how we all heard about it. I heard about it through ~jesse, whom I followed because of Perl, and had already noticed earlier times when he retweeted ~ford because I like Paul's Amiga avatar.)

Anyway, unless you're already a part of that circle, you really have to work hard to make tilde a social network. That's good, on the one hand, because there's value in having to work for something. But the FB-killer I have in mind is all about lowering the barriers to entry. It's a whole different animal. Though I guess that makes tilde.club a good test: if it can make it here, it can make it anywhere.

Tile Club - 24 October 2014

Tile Club

~procload's typo of "procload's tile.club page" amuses me. I live in a 1919 Craftsman bungalow, which sadly has been gutted but even before that was too blue-collar to have had nice decorative tiles. But that hasn't stopped me from being interested in Arts & Crafts (and to a certain extent, Art Nouveau and Art Deco) tile work. I've even fiddled around with making some (we have kilns) but it's hard to make flat tiles with throwing clay, and I haven't gotten serious enough to justify getting fifty pounds of tile-appropriate clay.

Anyway, the actual "Tile Club" was part of the Aesthetic Movement. I'd totally join it.

Dumb pipes - 27 October 2014

Dumb pipes

Google exists to mediate the unmediated. That's what it does.
That's what the company's search tool does: It mediates our relationship with the Internet. That's why Google killed Google Reader, for example. Subscribing to an RSS feed and having an RSS reader deliver 100% of what the user signed up for in an orderly, linear and predictable and reliable fashion is a pointless business for Google.
It's also why I believe Google will kill Gmail as soon as it comes up with a mediated alternative everyone loves.

-- from Why Google wants to replace Gmail (Mike Elgan)

I really like my dumb pipe. Enough so that I'd like to make something that let me use my dumb pipe as a social network. The problem is, we need smarter dumb pipes - that is, software that's easy enough for Average Joe to install on a basic tilde.club-esque server (that Joe is the customer for, and that Joe owns the data on, the Two Commandments of the free Internet). There's a certain amount of stuff that GMail can do (mostly spamcatching) based on the large numbers of emails it gets to analyze, but for the most part nothing Inbox does can't be done by a reasonably smart client reading a dumb-pipe IMAP mail account.

But obviously, if I'm a really good developer* I can make a heck of a lot more money building a service and harvesting data than I can selling software. (Today my husband complained about a phone app that cost an outrageous TEN DOLLARS. And then commented on the strangeness of the app stores that we've reached a point that that's outrageous instead of a bargain.) So I have to be a really altruistic, possibly even crazy one* to decide to build things that let people do this themselves. But I think that's what tilde should do: not just enjoy the freedom of the old tools, but make modern equivalents that even non-tildenizens can use (and would want to).


* Spoiler: I am.

* Spoiler: I am.

Sitemapping - 28 October 2014

Sitemapping

Because I can, I hacked together a sitemapper. It's at /home/silver/bin/sitemapper.pl (because I'm imaginative with my naming like that), and its output is at ~silver/sitemap.html (and sitemap2, and any others I think of).

It excludes anybody in the tildebot killfile at /home/brendn/bin/botify/killfile, respects robots.txt's (checking each directory for them), and has an exclusion file at /home/silver/bin/allowdeny.txt of everything/everybody that's automatically generated (that I've noticed so far), including itself.

At the moment I'm manually running it, but I could put it in a cron if there was demand. It also wouldn't be hard to add a JSON dump if anyone would use that.

Architecture - 28 October 2014

Architecture

I've been thinking about how to build the dumb pipes/pumpkin spice thingy, and I'm leaning back toward a client/server architecture (or maybe plumbing is a better metaphor, but whatever). Here's my thinking, and tell me if I'm wrong.

First of all, second screens. I in theory use Tiny Tiny RSS because I want to be able to access it from my desktop or from my tablet or even from my sad little smartphone, though in practice I pretty much always hit it from the desktop. But Twitter I do hit from all my screens (totally not addicted, nope, nope). So I have to assume other people work like that, some even more than me.

Second of all, second screens that aren't second. A social network isn't (probably isn't) as important as groceries, but I still don't want to rule out people who only have sad little smartphones.

Third of all, and this might be an all-you-have-is-a-hammer, I have a whole lot more experience writing REST apps than direct-on-the-desktop stuff.

That complicates things a tiny bit more, but not without violating the you-are-the-customer, you-own-the-data principles. You pay your few dollars a month for a tilde-size server, you install Pumpkin Spice (a one-button install), you're in business. PS would have to be multi-user, so the technical member of the family could set one up and let everybody in the family use it (like we do with our TTR install).

One thing I think you'd need is an email address you owned, which tends to mean you have to own your own domain or you give up some portability. That also complicates things a tiny bit more, but domains have gotten pretty darn cheap, and again you could have a family domain.

Fortunately, I own enough domains and have a tilde-size server of my own that I can develop on it without goofing up tilde.club itself.

Poking at silos - 30 October 2014

I spent some time with some experimental scripts yesterday. Good news: everyone has an API (and CPAN has a library for every API, sometimes more than one). Bad news: no one's API is open. You gotta have an account to read the data. This is kind of okay, since you obviously have to have an account to post comments there, and pumpkin spice needs to be able to post comments. But not so okay if you want to use PS for discovering new people, which I think is important for a social network. So: bah.

I also poked at my blog-building script a little, since I realized it was updating index.html with the last time I'd changed the blog. I don't know why I didn't notice that on my sitemap, but I noticed it on ~JWärn's. Fixed now.

Putting just a snippet of the current blog entry means I don't show up on ~agray's most prolific report. This is probably good or I'd get self-conscious about all my jibba-jabba.

Anyway. It's the last nice day of this crazy extended summer, so I should probably get yard work done instead of digging up my Github account and starting a repo for my pumpkin spice noodlings. But probably I'll tell myself I *prefer* yard work in chilly temps and put that off.

Grocery app - 31 October 2014

I guess I should get categories here.

On the topic of groceries, I'm unsurprised to see there are apps out there poking at parts of the problem.

That kind of touches on a problem I have: perhaps it's a latent streak of libertarianism or something, but I don't want to be the guy who says, "Ooh, there's an untapped market, lemme write something to sell to the government."

Worse, if I'm targeting the working poor and not just folks on WIC/SNAP, a moneymaking app starts to smell like poverty industry.

This is all fine as long as I'm not trying to make a living.

Halloween name - 31 October 2014

I kinda hate October on Twitter, especially an October when I've followed a whole bunch of new people. I don't set a different name for Halloween, and seldom change my avatar (though when the ADSL went down this morning, I couldn't resist setting my Facebook avatar.

In my early years, I was "Tulsa CoCo" on CompuServe CB Chat. This answered two of the three most common questions, MORF? of course being the third. (I usually lied about that one because it cut down on drama.) On the BBS scene, I was "Silver," or sometimes "Mercedes Silver," though my CoCo was old enough that when the silver wore off I took nail polish to the case and had a shiny black computer. (I never tested the conventional knowledge that said you could touch up a Tandy with "Mercedes silver" auto paint.)

Needless to say, most places "silver" is a quickly-taken username. My first tilde was ~phoenyx but I rarely used that as my personal handle. When I joined Twitter, I picked @gamehawk because @silver was taken (I think it's changed hands since then). I just went to sign up on GitHub last night, and gamehawk is taken too, as is phoenyx, and of course silver. Lately I've been using KarenInWichita, but lately we've been contemplating the possibility of relocating to another city (and state) so I hate to commit like that.

I finally fell back on tyrosinase, which is my Minecraft ID. I didn't pick that; when ~raven needed to choose an ID for what was then a test account, the namespace was pretty crowded. (Tyrosinase is an enzyme. It controls melanin production. Don't ask me how/why he picked it.) I liked it because it shortened to "tyro," which as a latecomer to Minecraft (my longtime PC didn't have a graphics card that worked with it) I was. And now it works for me as a sort-of latecomer to git.

Yep, that's right. ~sippey had a tildefession about a midlife crisis, so here's mine: in alllll my years of development I never significantly used version control. I was kind of raised by wolves, IT-wise, often being the entire IT department. I was religious about backups, and that was generally good enough. Other places, like the bank, the version control system was behind a wall of code-review procedures - code magically appeared in a working directory, I worked on it, I told the code reviewer when I was done, the code fairies took the code away.

I've had git on my home system, and I've used it for larger projects like Wirebird, but I haven't touched that project in (mumblety) years and my vague grasp of how it worked has slipped away from me. So yeah: I gotta learn git. DON'T JUDGE.



tilde home
silver home



Click for the [ Random page ]
Want to join the ring? Click here for info.
join random join