New toy?


I read about this language on Medium, and I’ll let you go read that instead of writing about it here. Basically, it’s trying to be Java cleaned up, with all the libraries and support and the JVM intact. I have no clue how well that’s working.

In addition to the features listed in that article, semicolons are optional in Kotlin–and it’s kind of funny-sad how keen the web site is to point this feature out.

Data Structures: a rant

(If you’re curious, the textbook from this class–and the source of the explanatory links I’m using in this post–is available online free here:

– – –

I just got out of another Data Structures class. I zoned out halfway through, which is somewhat unusual for me. Happens more often in Data Structures, because the class starts at 8AM. (Fortunately, I think I found a less winding route to cut down on my time walking to class–hopefully the shortcut will make me less prone to lateness. I am not a morning person. I tend to dream about waking up and going to class. I’ve even slept through the 10AM labs, which is ridiculous and frustrating–but also kind of understandable, because they’re on the day after the 8AM class, and my brain is trying to get rid of its sleep debt.)

But that’s not really why I started tuning out the professor’s lecture today. It was the result of another impractical implementation on the projector, at which point a thought struck me:

If these data structures are so useful, why aren’t they part of the language already?

Python (which is what we’re using, 3.5 at that) is not a dinosaur, and most of the math for these data structures was done like fifty years ago. I’d understand if the point was to get C to be more efficient, but most people don’t even code in C any more. It’s not the right tool for very many of the jobs we have to do.

In fact, this class seems closer to a language design course than something practical to software development. I know that’s the point of the high-flown “computer science” department, but… come on. Even interviewers are getting the idea that this kind of question doesn’t matter that much in the real world. It seems more to me like something to be learned on the fly, when needed. Which in practice would probably just mean memorizing Cracking the Coding Interview because you need a job.

Why does this theory class have to be so… theoretical?

I wish the teacher would spend some time telling us when to use these structures, rather than just what they are and how they’re implemented. Otherwise I think this course may do more harm than good.

Why in the world would you ever use a singly-linked list? Most languages–and especially the ones most commonly in use–have array or list structures of their own, which are 1) optimized for you, 2) don’t require extra code, 3) have been tested far more thoroughly than your code ever will be and are thus more stable and predictable, and 4) don’t confuse the hell out of other people who come in and read your program!

Why in the world would you bother implementing a doubly-linked list either, unless you’re coding a programming language of your own?! None of this makes sense! We have a dedicated class for language design! We have a dedicated class for C programming! Why isn’t it in there instead?!

Ahem. *deep breath*

Hash tables are kind of cool, and so are binary heaps (although they’re less practical). My affection for their clever hackitude is rather stifled by the suspicion that, again, they’d probably be built-in structures if they were that useful. Like Python dicts–those are hash tables behind the scenes. Use those. Everyone knows what they are and you don’t have to code them yourself.

If you’re working with large amounts of data, hash tables and binary heaps could be useful. But the professor doesn’t talk about when, just how to use them. If you’re not working with big data, chances are you just need a dict or list, and can spare yourself and others the experience of trying to interpret your weird code later.

But the professor doesn’t talk about that kind of thing. I wonder if he’s getting homework assignments that use this stuff unnecessarily. He hasn’t been taking points off mine because my work still does what the spec asks for, as clearly/briefly/user-friendly-ly as possible. I haven’t been looking for ways one might use weird data structures in the assignments, so I don’t know if they’re designed to invite us to use them or what.

He also covered recursion, which I think is very useful–again, if you know when to use it, which depends both on the problem you’re solving and the language you’re using. I will casually use recursion to make my code cleaner-looking even if it isn’t always the most efficient option (in Python). But that’s for readability. Mostly I use it when I’m getting user input, and I stick the prompt in its own method and loop if I get bad input. That lets me put all the lengthy, messy error-checking off somewhere and the main program will get back a good value.

I think this practice is supposed to be kind of evil according to functional programming, because user input functions aren’t pure functions? Or maybe, because I’ve sectioned them off and make sure they return good values, they’re exactly what you’re supposed to do in functional programming. Don’t know yet. It works, anyway.

I still use “else:” almost exclusively for “Can’t Happen” errors. It saves me headaches when I screw up the recursion. That’s a minor change with using recursion, but it’s an issue only while writing; I’ll put in extra effort when I’m writing the program to make sure it’s easier to read later.

What I will not do is write code whose purpose is to make me look or feel clever for writing it a certain way. That’s insane. Sacrificing readability, even efficiency because you think it’s cooler to use some homebrew data structure code rather than a freaking built-in Python list? That’s absolutely insane.

When interviewers select for people who know how to do this, I wonder if they realize they may be selecting for a subset which includes the actual worst candidates: the smug “Of course I know everything, if you lesser mortals don’t, that’s your problem, Google it, and also I have very strong opinions about i++ vs. ++i and will totally correct you if you’re wrong.” Fools and incompetents may eventually learn. This person doesn’t think they have to.

(Of course, sometimes a person like that is useful to look impressive in customer meetings, but in my admittedly limited experience, they’re just as likely to insult your customers as to impress them. Ever seen a bunch of startups pitch? Some of those folks need an attitude adjustment. Of course, they’re going to fail; it’s hard to have enough empathy with customers to produce a good product if you have such scorn and disdain for their intelligence. Then they’ll claim they went under because they “failed to pivot.”)

Oh, one more thing. Big-O notation is pretty useful. Even if your main use for it is understanding what other people are talking about, and/or making yourself look impressive. It’s so you can find out which of two algorithms is more efficient, which will probably be something you’ll need to do eventually. It looks way more complicated than it is.

I could very well be wrong about this, and I’d be pleased to find out if I were. I’d love to find something that’d make me a better programmer. I’d be terribly pleased to find out I wasn’t learning something nearly useless. But I don’t think that’s the case.

The CS math course I have (enigmatically titled “Discrete Structures”… I have yet to find out why, unless the reason is “because it sounds fancy”) seems a little more practical at least. Logical thinking comes pretty naturally to me, but I know it doesn’t to everyone, so it makes sense to cover it. I know there’s also set theory, graph theory, and combinatorics later on in the course, and I’ve heard those are good things to know for programming. I guess I’ll find out.

Oddly enough, it’s my English course that’s the most practical. The professor decided to forego the traditional giant clunky writing textbook and told us to order this list of like eight different short story collections, which we read and then write and talk about. That takes up about half our class periods. The other half (each day is dedicated to one or the other) is the professor talking about writing: elements of stories in general that are important (like what the stakes are–is war at risk, for instance?), writing style (like sentence structure, word choice, voice, POV), what it means to have universal appeal, what it means to capture an audience and how to get their attention–and especially the skills of critical thinking and backing up your claims.

This format is a little odd for a class called “College Writing and Research”–but it isn’t bad. I think it’s more effective than the normal route. No writer I know learned writing out of a big clunky textbook, or by doing essays on symbolism in Dickens or whether school uniforms are a good idea.

Since CS folks often point and laugh at the liberal arts, saying their study is useless bull and all those English majors should be studying something useful and practical (like computer science of course), well… I have an uncomfortable piece of news.

Not that I’m saying majoring in English is more likely to get you a job (although it’s better off than, say, Gender Studies). But knowing how to write effectively, which my English class will teach you, is far more practical than knowing how to invert a binary tree.

Sorry, prof.

Please read the comments.

There’s a new site I’m excited about

Hashnode – An open, friendly and conversational community for software developers

Remember when Atwood and Spolsky were developing StackOverflow, and their informal pitch was, “We’re like Experts Exchange, but without the evil”?

Hashnode is like StackOverflow, but without the evil.

Don’t get me wrong–SO is still a powerful resource, especially if you’re after something fairly simple and the question has already been asked. But the community is so huge that the moderators–who are supposed to be a result of Atwood’s valiant attempt at designing a system for the community to govern itself–have become Julius Caesar… and the system kind of needs a Brutus. If you know what I mean.

Basically, what I’m saying is: SO is a great resource, but not a great community any more.

Anyway, Hashnode looks to be more casual. It’s still a smallish community, or at least it feels small, and it looks like there isn’t so much policing.

I think SO’s problems are mostly just a result of its bigness, and also the fact that employers want to see a StackOverflow account on a dev’s resume, with as many points as possible. A tool meant for collaboration has become the subject of competition.

The solution to the bigness is the breakup of SO’s monopoly. I think there are several other sites cropping up to take its place, or at least take the load off; if you look in the comments on that article (which is where I found Hashnode), there appear to be a few different options that hopefully aren’t so dictatorial.

I suggest you join one, if you don’t belong to a forum or something already. Dream In Code is okay, if I remember right, but there was something about it that made me not stick around. Don’t remember what it was. Probably my own inexperience and inability to contribute; it was a while ago.

I don’t think Hashnode has that problem. They’re making a point of trying to welcome beginners. Anyway, you might want to check it out.

Happy hacking!


The last of today’s post trio; the three have a common thread.

There are loads of Internet people who will tell you how to do stuff, or give you cheesy motivation posts that are all the same except for their peppering of spurious advice that rotates in and out depending on the latest fads (“Get up early! Drink 8 glasses of water daily! Do a juice cleanse!”). This isn’t that.

If you’re trying to learn to code (that is, you’ve decided you still want to, not because other people have pressured you into learning), this post is for you to bookmark and return to when you’re feeling apathetic.

Because if you’re feeling apathetic, we lose something important. Your work is important.

What you’re doing is developing the kind of abilities that let you tinker with the world around you. Your ideas, if you choose to pursue them, can change how other people live. You can extend what humans are capable of.

You’re a maker. You’re powerful. You fix things. You solve problems. You’re capable. You’re creative. You’re clever. You’re sitting on a lot of potential. Whether you can feel it right now or not, you have all this pent-up energy waiting to be released into something.

Your code is art. With your mind alone you can make things that are not only beautiful and elegant, but serve a purpose.

Half the companies in America want to hire people like you because of the things you can do. No matter how you seem on the outside, your mind is a powerful tool. You’re among the relative few who understand a chunk of what’s going on with computers. Your skill set is prized and not common enough to fill the massive, gaping need for the things you can create.

And you’re getting better and better.

You can’t be apathetic. You can’t put yourself down. If coding is what you want to do, you can’t keep putting it off.

We need you too much.

We need the people who developed and maintained Kiva Loans so that struggling business owners and entrepreneurs in countries around the world could move out of poverty.

We need this guy and OptiKey, his open source software project that uses optical tracking to let people with motor and speech limitations use computers.

We need the people who are running OpenMRS, a medical record system designed for use in developing countries and now used basically everywhere.

We need the many, many open courseware projects that provide education to people around the world who might not otherwise have access to that knowledge.

We need the people who are building a bridge into a world that is way better than the one we live in now.

We need you, and those learning around you, to hold up the bridge with us. It’s a very important bridge and lots of people need to walk across.

Every time you build something, or answer someone’s question, or successfully learn something new, you are creating something incredibly valuable that didn’t exist before. And especially when you give away something other people will use, or even that other people are paying you for making (assuming they’re not terrible people)–that means you have changed a piece of the world.

Never forget how powerful you are.

I believe in you.

On impostor syndrome

I’m feeling pretty good about my skills lately. Maybe I’m realizing I didn’t have quite so much “catching up” to do as I thought. The theory stuff I’m learning in my classes is useful, but not as complicated as it looks.

(Well, most of it. Some of it is. Though I’m starting to pick up on the idea that if I don’t understand a recursive algorithm, it probably wasn’t efficient anyway–and if I don’t understand it [I’m usually good at this sort of thing] then it better be a darn good optimization hack for me to use such an unreadable piece of code. My standards may change as I’m learning Clojure, though.)

I dislike the whole “impostor syndrome” craze. If you read tech articles on Medium and Quora and so on, everyone and their dog has impostor syndrome. Saying you have impostor syndrome is like this big, socially-acceptable, self-contradictory humble-brag: “I’m actually a genius but I don’t think I am.”

It makes about as much sense as the girls who listen to “You Don’t Know You’re Beautiful” on repeat:

“You don’t know you’re beautiful, oh oh, / That’s what makes you beautiful”

and then say, “Omigosh, 1D just totally gets me.

First off, the point is that you don’t know, so if you acknowledge the song as something you relate to then you’re canceling out your own point. Second, this song is about how the singer finds it super attractive that you have no self-esteem. Catchy.

When you’re a beginner, of course you’re looking around and thinking, “Wow, everyone else knows so much more than me.” Because they do, duh, you’re a beginner. And you’re going to be a beginner for at least a few months. If you start calling your thoughts “impostor syndrome” at this point, you’re deluding yourself. On the other hand, you need to trust your ability to learn. Just don’t underestimate that it’s going to take some work and you’re not there already.

Impostor syndrome is when you’ve still got this mindset, but you’ve also got concrete evidence that your mindset is flawed, which you then brush off by thinking that everyone else is some kind of idiot you’ve fooled into believing you have way more technical knowledge than you do.

Listen, you have respect for the other techies around you, right? Anyone you talk to on forums, StackOverflow, GitHub, your school/bootcamp/job. (If you’re roughing it alone, try to connect with someone. It helps.) If any of them are actually worthy of that respect, they can smell technical BS from a mile off. That’s a skill we all develop. If they were going to suddenly find out you’re not as skilled as they thought you were, it’d have happened a long time ago.

It’s hard to feel like you’re making progress when you can’t measure your own skill. I get it. Nobody in tech knows how good they are at what they do; we can estimate, or take the judgment of those around us. And the problem with the latter is that most everyone else is as insecure as you are, and some of them will lowball you to feel better about their own skills, while others will try to flatter you so you’ll like them.

Listen. There’s a solution to this. Not a perfect one, but one all the same.

You have to build stuff. You have to solve problems. You have to read code. You have to write code.

Empirical evidence of your own skill grounds you. It puts a lower boundary on where you are. It gives other people something tangible to assess you on. Working on something real will tell you very quickly whether you’re out of your depth or just underestimating yourself.

Here’s how you tell the difference: If you’re super confused and have to look everything up before you can do any real work, you’re just underestimating yourself. If you’re actually out of your depth, you don’t even know where to start. Misleading, I know.

The problem with the advice “just build stuff!” is that it’s really freaking hard to start. You don’t know what to make. The things you want to make are complicated. You don’t have the syntax memorized. You don’t know how to split things up sensibly into different methods or files. That’s a big problem with programmers who are just past the point of doing lots of tutorials. You don’t know where to start, and it seems like you should go back to the tutorials and learn more, because that’s usually how it works. But in this case, it’s doubly misleading. The bigness of open-source and the complexity of many of its projects are also terribly confusing.

In practice, impostor syndrome is a lack of information about your own ability. So do the scientific thing and experiment. Run some tests. And remember that, with more practice, you can change the results.

Related sidenote

Listen, I’ve been thinking about writing some more how-tos. Programming how-tos, not the Linux ones from before.

And I wonder if I might also accept some… I guess students? Mentees? Just informally. If you try to do one of my programming tutorials and you post your code on GitHub, and then drop a line here, I could look at it and help you get unstuck or suggest improvements or that kind of thing.

I can’t promise a specific response time or anything that formal. And I know some of you don’t really qualify to be my students, because you’re legitimately better programmers than I am. But otherwise, I might help you learn something new, and/or feel a little more confident about your skills.

Is that something you might be interested in?


Should You Learn To Code?

This happened recently:

Then this happened too:

It’s not new. Exactly the same debate happened in 2012:


Here’s pretty much the conversation that’s going on.

“Not everyone needs to learn to code. It’s a fairly niche technical skill set, used in one kind of career. Insisting that everyone learn to code is like saying everyone needs to know plumbing.” (For some reason, both articles used this analogy; maybe the second one was just ripping off Jeff Atwood’s?)

“But computers are everywhere, they break often, they’re not well understood, and the world runs on them. Even if you don’t want to be a software developer, it might be smart to have a passing knowledge of code.”

“It’s just not necessary; people have other things that require their time and energy. Besides, there are all these newbies coming out of coding bootcamps, thinking they know everything and are entitled to a job. Then they’re either horribly let down, or they go out and write bad code the rest of us have to deal with.”

“Only some bootcamps are like that, and only some students. Often bootcamp students make good open-source contributors, too. Besides, many of these students intend to go into other fields anyway–they just want to kind of know what they’re doing around software.”

“The software field is way too romanticized. People want to be a software developer because they want to look smart and get a high-paying job. In reality you’re often overworked and the job is very stressful. Lots of students enter this field with an overly optimistic idea of what it’s like.”

“True, but we also have a massive lack of coders in America. There are lots of great jobs out there, and a big reason for the overwork is that we don’t have more people in those jobs.”

Yep, that’s about it: people who are already in the field, arguing whether newbies should be encouraged to join the club.

Personally, I think these people need to calm the #%#$ down, if you’ll excuse my cartoon language.

Here’s the question that determines whether you want to code.

It’s not “Are you dedicated?”

It’s not “Do you actually like computers?”

It’s not “You’re not just in this for money or prestige, right?”

It’s this:

Do you want to?

That’s it. That’s literally the only question you should be asking. This pretentious judgment of newcomers based on their “dedication” or “talent” or any other bull as judged by an outsider who has no clue who you even are? That shouldn’t matter to you. At all. If you want to code, code. If you want to learn, learn.

If you don’t, you don’t have to, and you shouldn’t. The people who are trying to pressure you into learning anyway–saying it’s “the new literacy” or whatever–aren’t you, any more than the people who are all like “stay out of our clubhouse.” The idea that either camp can or should tell you what to do is pretentious nonsense.

But if you still want in? Welcome to the clubhouse.

I don’t care if you have kids. I don’t care if you’re not a dev by trade. I don’t care if you start off thinking you know everything–you’ll learn soon enough, unless you’re generally a jerk with no empathy, in which case your interaction with computers doesn’t really matter as to whether I’ll like you.

None of that freaking matters.

If you’re not dedicated, you won’t put in the time to learn.

If you’re bad, someone will tell you and (hopefully) give you hints about how to get better.

If you don’t like computers, there are easier fields for you to get into for money and prestige.

The technology field has enough natural barriers to entry without people building more. In fact, the natural barriers hold too many people back who would otherwise be great coders; that’s why there are so many bootcamps, tutorials, intro-to-programming websites, and even blogs (ahem) to help newbies in this field.

Technology doesn’t need to be only in the hands of this “elite few” that “Please Don’t Learn To Code” article writers seem to be trying to protect. (Ironically? These people are going to be the same people who’ll complain that their manager has no clue about anything they do. At least if the managers knew some basics, the devs would have a language to use to talk to them. If the boss thinks their job is so simple, maybe s/he should look at the bug they’ve been fixing for the past four hours. It’d be more like onboarding a newbie coder, which is something they probably have experience doing. Or should, anyway.)

I do have this to say on the topic.

You know how in schools, we have music classes? Even though most people are not likely to become professional musicians, they’re given a class where they… probably learn to sing better, and take some lessons in music appreciation.


Because music is an art form, and studying it is its own reward.

Writing good code is making art. It’s not “like” making art. It is making art. You can write beautiful code, and it’s a joy to do so.

So if you agree with taking music lessons in seventh grade in order to better appreciate an art form, you should also agree with learning to code enough to recognize a beautiful piece of software–even if you yourself don’t do so, you shouldn’t condemn others for trying.

Not everyone who takes music ends up a very good singer, and definitely not everyone goes on to sing professionally. They only do if they love it and are good at it.

Isn’t that how it should be?


I’m not going to tell you that you should or shouldn’t learn to code. That’s for you to decide–based not on the opinion of some pompous person on the Internet who’s acting like a grumpy black hat and thinks they should decide if you belong in Technology-Claw or Liberal-Arts-Puff–but on one simple factor.

Whether you want to.

That’s enough.

Greetings from University Town #214


Stuff I’ve done in the past two weeks.

  1. Moved. For the first time in my life; my parents have occupied the same house for longer than I’ve been alive, so I’d never moved before. That was my first time driving that long on the interstate, and I had a cat, a guitar, a ukulele, a younger brother, and a bunch of assorted stuff in the car with me. And people were being idiots on the road, changing their speed way more than was necessary, whipping around and doing stupid stuff. It was not a pleasant drive.
  2. Jacked up my foot. Sorry, feet. I wasn’t aware you could pull muscles in your feet??? But I think I did??? And I got a huge blister between my toes, and wow, yeah, no.
  3. Hauled loads of books, three fishtanks (two of them are small though), a heavy oak desk, a couch, a mattress, an armchair, most of my clothes, a working kitchen, and a whole bunch of other stuff into my apartment. My second-floor apartment. In a building with no elevator. I’m still missing a load of books.
  4. Signed a bunch of paperwork. Mom paid my tuition. I need to get off my butt and find the info I need to sign up for a parking pass for school.
  5. Discovered that I don’t have a dishwasher as I thought I did, but I do have a garbage disposal, which I thought I wouldn’t. This is a highly favorable tradeoff because of how much I cook.
  6. Cooked way more than usual because I do not own a microwave. This is turning out to be good for me, I think. I’m living mostly off of curry rice and stir fried whatever. I haven’t gotten tired of it yet. I did make sugar cookies and shared with my neighbors, though. Also a pease pie, although that’s a weird British thing done according to a recipe I made up inspired by a Terry Pratchett book, so I kept it to myself. It turned out saltier than I would have liked, but tasty all the same.
  7. Mostly re-set up my fishtanks. I still have a bucket of aquarium plants next to me.
  8. Worked on the YPN app. Did I mention that’s open source now??? You can contribute to it! Or just tell me how awful my code is! I know there’s crap in there I will very much hate in a year. Or a few months. Whatever.
  9. Read Lean In. I own both a GitHub account and bras, so it’s been heavily suggested to me for several years that I should read it. Despite the criticisms (and expecting them to be right), I read the book. It rather surprised me. I have a post under construction about it, but feminism is not one of my favorite topics to write about, and I find it hard to write about it in any sort of way I’m satisfied with.
  10. Discovered the cartoon Teen Titans Go! I watch easily more kids’ cartoons than any other kind of television. (British TV is up there.) It’s really funny and kind of brain dead, and that is all I ask of such things.
  11. The apartment smelled weird when I got here (I think they all do?), so I went all stereotypical middle class white girl on it with Bath and Body Works wall plugins and an assortment of scented candles. (I do like candles though.)
  12. Settled my cat in. He took the move pretty well; the biggest thing for him was the people who walk past our door, but he’s mostly gotten over that now. He still gives me the evil eye when it looks like I’m going to leave.
  13. Discovered the best Hy-Vee ever. It’s like a Whole Foods and a Schnuck’s in one building, but it’s a Hy-Vee. I bought some interesting food there to experiment. They had the Indian sauces I’d come for, but they also had legit, decent-quality ramen with no MSG, and some chicken apple sausages, and imitation crab meat (which means it’s mostly pollock, but it’s still tasty). The only things I left without that I wanted were lemongrass paste, which they were sold out of, and snack cakes, because they only sold one kind I didn’t like.
  14. Caught some kind of stupid virus that’s making me dizzy and faint and fuzzy-headed. My parents have caught it too, I think the stress weakened our immune systems. I can’t get work done in this state and it’s driving me mad.
  15. Despite that, watched a steady increase in the stability of my mental state. There was a lot of stress and anxiety floating around before the move, and we were all kind of feeding off each other. Let’s say–my tendency toward depression has a huge genetic component, and I’m glad Mom was there because even though she was pretty stressed out, she’s kind of always stressed out in one way or another and handles herself better than the rest of us. She knows when I’m having an anxiety attack, she knows what to say to make my dad stop being crazy and trying to move huge furniture by himself without even clearing a path first, she knows what will make my little brother feel better about Bekah moving away. Then she feels guilty for the fact that she can’t help us move stuff because of medical reasons, we all tell her that is stupid, she laughs and feels guilty anyway that she’s “not doing anything.”

Most of that was two weeks ago. We all survived.

The YPN app I’ve been working on is chugging along. Here, I’ll make a few screenshots to show you.

Screen Shot 2016-08-13 at 7.14.34 PM
Menu page
Screen Shot 2016-08-13 at 7.14.44 PM
Member discounts page
Screen Shot 2016-08-13 at 7.14.47 PM
Newsletter articles page
Screen Shot 2016-08-13 at 7.14.41 PM
Event calendar page
Screen Shot 2016-08-13 at 7.14.51 PM
About Us page

It looks kinda funny because it’s meant for a phone screen. It resizes just fine, I just forgot to resize the window for the screenshots.

Anyway, I’m the one who coded all this. Some other folks said they wanted to help over the summer, but they’ve forgotten, flaked out, or had Life intervene. (I know the feeling.)

Currently, my battle is with Kivy’s RecycleView: supposed to be a way to make scrolling lists of items using the MVC pattern. Obviously I need this for the discounts and newsletter pages. The problem is that RecycleView is a new and not well documented feature, and doesn’t actually even import properly yet, I assume unless you’re using the bleeding-edge dev version of Kivy. But that’s not for using–it’s too unstable for production use. So maybe I’ll have to use the deprecated (yes, deprecated even before the new one is out) ListView and ScrollView features. I know I’ve gotten those to work once before; I have old code to work from.

I really should merge back the mockups branch, now that I’m working on this. Note to self. I guess I still need to mock up the Search page, but I don’t even know if Kivy has features for that yet?

Also, I want to make it more obvious what page you’re on while you’re using the app. I think it’ll be a header in place of the search bar, in the normal page headers. That’ll be some goofy inheritance stuff to work with, though; I have the header as its own custom widget.

If you don’t know Kivy, the past three paragraphs may be incomprehensible. Sorry about that.

Anyway, the YPN people have no clue what I’ve been doing. I need to send them screenshots or something so they’re not afraid I’ve abandoned the project, too. Someone’s got to follow through on this thing.

I need a nap.