My idea file

If ideas were actually worth something–as people say when they say things like, “I’ve got a $10M idea”–I’d have been rich a long time ago.

Since they’re not, their worth is mostly in the sharing. So I’m dipping into my project ideas file and pulling out wads and wads of what is unfortunately not cash, because there’s no way I’m going to get to everything.

Most recently updated June 29.

A phone app that splits restaurant bills among a group of friends

People complain about this all the time. Let’s make our smartphone into a somewhat more objective judge, kill the argument, and maybe help our wait staff get better tips.

I kind of want to do this one. Most of the issues are in UI design. It doesn’t seem too difficult. Maybe this should be my next GitHub project.

edit: of course, this has been done, and it looks like exactly how I would have done it. I wonder if it’s on Android though.

Todo-list app

But not the normal kind. What we need is something a little more interactive. We need to make todo software with a messaging protocol in the back that lets other people request additions to your todo list. You would then be able to accept or reject them. Designing this software would take a lot of user research and understanding of psychology, in order to program the right features. For instance, should the person requesting a task be allowed to see when it’s scheduled to be done, or what priority it has? There are both benefits and awfulness in that suggestion. (Mostly awfulness, I think.)

I think it should also have priority, deadline, and/or likely completion time data attached to each list item, and if the user indicates that a certain time slice of their day is open, it should suggest the optimal task or tasks to fill that spot. The algorithm might well be kind of tricky, though; it’d have to work around not always having all three data points.

Also, it would probably be fun to add game elements to this app. Maybe it should award points for tasks completed, and award more points for higher-priority tasks. This probably would result in people losing productivity due to playing with the app and fiddling to get more points, though–like breaking up tasks into tiny pieces they can “accomplish,” or ranking everything as high priority. You could choose to only award points for tasks set by other people, but then they’d rank everything so as to give you the most points, thus making their task appealing to complete.

(Software development has seen time and time again that if you award points for stuff, even if they’re worthless, people will do crazy things to get them. No one has much of an explanation as to why.)

Oh, speaking of which. You’d probably have to come up with some way to make people not mark all their assignments to others as super important–some way to weight each person’s additions to others’ to-do lists so there’s a normal distribution of priority among what they send, and they’re not marking everything important. But that causes its own problems.

This is a really neat piece of software for design issues. I kind of like it. Also, Paul Graham has asked for someone to build this a couple times (although he didn’t go into this detail).

Air conditioned motorcycle helmets

I don’t ride motorcycles, but I’ve noticed people tend to not like wearing helmets on hot days. Why don’t people make full motorcycle helmets–the really protective, full face shield kind–with air conditioning? We have, like, those single-can fridges; can’t we put a rechargeable battery in a helmet and make it work? I know batteries are heavy, but… so are those helmets, anyway.

Low-commitment freelance comics

A web site that connects comic writers with comic artists, for the purposes of making one strip at a time. Comics don’t have to go on hiatus because one of the creators has fallen ill or quit.

ReceiptStash (I have dibs on this one)

An app that stores receipt data instead of forcing businesses to use so much wasteful paper. Bonus points if it’s attached to the user’s debit card # rather than a username, because this would mean it could be used as a tool to recognize card theft. It’d also be really easy to load the data for use in a budget tracking app, which might solve a lot of people’s problems in that area.

Penguin Phone

Make a cell phone that runs Linux. Not Android, but pure Linux, with a command line and a filesystem and no unnecessary pre-installed apps.

I think our phones could do more “laptop stuff” than they currently do. Sometimes you need to make little corrections to code–fix broken links and so on. Why not use your phone? It’s as powerful, hardware-wise, as a computer. Why isn’t it as powerful software-wise?

Happy Nickels

When people experience something that makes them happy, they like to post about it on social media. (Along with a lot of other, less happy things they post about.) What if there were a social media app that was intended first of all for phone use, where every time something made you happy, you pull out your phone and post about it on this dedicated social media app.

But to do so, you have to donate a nickel to charity, in order to share your happiness with someone else. No one cares about a single nickel. You can’t buy anything with it, really. It isn’t important. Until you get a million people posting and spending nickels three times a day. Ideally, this app would be monitored to make sure that people were only posting things they’re happy about, so it’s a pleasant social media app to peruse.

True Cloud Computing

A web site that stores an individual’s computer settings in a lightweight format. Like, a Dropbox for the files, a simple word processor, some games, some other apps. Like a phone that just runs in a browser and everything’s stored on the server. Kind of like Chrome OS, without the attachment to an individual machine. It needs a really good API for people to develop for it, too. You could make a Linux distro that makes the browser part more transparent–it would still be different from Chrome OS, because Chrome OS starts from the individual computer and works onto the Web (and it’s not accessible everywhere) and this would start on the Web and just happen to work with an individual machine–any individual machine.

Real-Time, Real-World (I really considered making this one but it’s set aside for now)

A game where you take care of a third-world/impoverished family, and you can buy upgrades to get them technology that makes their lives better. What you buy actually goes to buying that technology for third-world families. If like 300 gamers buy a steel food cabinet or a well or a hygienic latrine or medicine for their virtual family, a real family somewhere gets the same thing.

Sheet Music Is Annoying

An app for musicians that displays sheet music, chords, or tabs, and can be controlled by a pair of Bluetooth-enabled pedals which flip the pages without the musician using his or her hands. Actually there are lots of ways to do this.

RSS, Get Off My Desktop

RSS, but not broken any more. It should use browser extensions or web pages rather than desktop software. It should use Internet history by date and caching to determine what content a user has seen.

Whizgig

I hate how job sites are laid out. They’re mostly just designed and commissioned by MBAs, and they suck because their search doesn’t work and the format isn’t effective. I think I could do better if I put my mind to it.

I think they should be laid out so that when someone posts a job, it feels like filling out a social media profile, and when someone looks for a job, it feels like shopping at an online site. That sounds obvious when you say it, but if you look at job sites, they really aren’t laid out like that.

Even Dice relies on kind of awful tags and whatnot–for example, “senior level” means very different things to different employers and you don’t know what you’re getting. Even on Dice, it’s hard to filter out the jobs you’re qualified for. Nobody can decide on a standard set of job titles, either, so someone searching for “Junior Python programmer” might totally miss the listing for a “Python Charmer” or “Code Ninja” or whatever weird thing they’re calling their job.

Their search is terribly broken, too. I’m a programmer, not a registered nurse–so why have I seen postings for RNs while searching for a job? That has actually happened, I think more than once.
There’s a lot to fix here if I put the time into it.

Jazz Band Beeping (this idea is something I want to see happen, but I don’t know how to do it personally)

Fast food restaurants and hospitals have one very annoying thing in common: repetitive beeping sounds. These are annoying to customers, and stressful to patients, workers, and nurses. But why beeping sounds? There’s nothing special about them that any other noise couldn’t do.

So, if you want to change it, here’s an idea.

A restaurant or a hospital room might have several different machines. Maybe two or three, maybe eight. To distinguish them, you assign each a musical instrument that would fit into a jazz band–violin, harmonica, cello, drums. You give the bass to the one that’s always running. (There’s always one. Heart monitor or whatever.) You assign the local network (the room or the restaurant) a metronome machine that keeps the instruments in sync. All the other machines in the room get their own instruments to represent them, and the nurses get instruction that hearing a harmonica is a Very Bad Thing, and hate harmonicas forever after that.

Aside from harmonica hatred, it would make those environments much more relaxing. Jazz is unstructured enough that as long as the rhythm is maintained, musical instruments popping in and out of the melody are A-OK.

The trick with this is that it would need generous funding, because you’d probably need to get a hold of medical equipment, which is expensive, and/or fast food equipment, which is expensive and often proprietary and secret. But I think it’s one of those good ideas that sounds really weird when you first hear about it.

This one probably exists as an open-source project somewhere

You know what would be really cool? A script or gedit/Sublime extension that changed your text so it fit within eighty columns. Same for code, it should be able to recognize file extensions and put in the appropriate thingy to continue the line of code. That sounds a little more difficult though.

(Ooooh, maybe I’ll write this one in Clojure later.)

I poked around and learned something new

Story of our lives 🙂

I’ve been fiddling around trying to figure out git, which so far isn’t as complicated as I thought it was going to be–but I haven’t really done anything difficult with it yet. However, I did fix the crummy job I did of putting my tinypapers code on GitHub. My previous versioning system was done with directories rather than git, and while it worked okay for what I was doing, I really should know how to use git.

Anyway, I haven’t changed the name of the GitHub repo (although I did delete it and reconstruct it), so any links on the blog should still work. For your convenience, though, it’s here if you want to poke around and see what I was doing or if you’re learning Kivy and want some example code. I still haven’t specified licensing because I’m not sure what to do with it and don’t feel like reading up on what license I’d put on it. If someone here wants to use what I wrote as part of something else, tell me in the comments. I don’t think it’s worth much to other people as it is right now, though.

Valuable to me, though. Looks like it’s still teaching me things 🙂

Oh, by the way–I had been trying to use the GUI application for GitHub before. It’s actually a pain, don’t bother with it. Using the command line is a lot simpler and cleaner.

I want to write up my activity plan for the Linux thing but my uterus is throwing its monthly temper tantrum and I’m not feeling the greatest. Tomorrow should be better. Here, have some nightcore.

I think I’m going to rewatch Death Note and knit.

Find me on GitHub!

Hey, look, it’s my 50th post! That’s great, because I’ve got something extra special for you tonight 😀

Since tinypapers is something that’s already been done by Evernote, I figure we should at least make the best use of the code I wrote that we can, and the best way I know to do that is to let you see it. So… find me on GitHub!

I haven’t decided on licensing and am not going to get to that tonight, but go ahead and poke around.

Click Robotocat here to go right to tinypapers’s repository. I did my versioning outside GitHub as I wasn’t sure if you could use GH for versioning without publishing the code, so my different versions are just in different folders because that’s how I kept them before. I know GitHub usually does it differently but I don’t have time tonight.

Robotocat

I didn’t make that image, by the way. It’s from GitHub’s Octodex, which is adorable and you should look at it.

Have fun!

Sick Day

Blaaargh. I won’t go into the grisly details, but I’ve got a virus (a biological one) and I’m feeling crappy. Brain’s running Vista, that kind of thing. I’m not working. So, let’s write a post and see if I can still put thoughts together coherently.

Some of you might have noticed that Y Combinator’s winter application is open. I didn’t, until two days ago. I read somewhere that it opened in October. It opens in late August and ends in mid October. Surprise!

But it’s a good thing I didn’t apply earlier. Why? Because tinypapers has been done before, elegantly, and I only found that out recently too.

I had heard of Evernote, but had taken a look at their site blurb and decided they were targeted towards bigger, businessy stuff like PDFs and reports, not tinypapers’ everyday stuff. But as I listed them as a competitor while I filled out the YC app, I thought, “Wow, it’s a huge oversight in my research that I haven’t installed that app on my phone and tried it out.”

So I did. It’s beautiful. It’s designed a bit differently from tinypapers, but I think it might be a better design. I’m not going to reinvent their wheel when there are lots of other wheels out there that need it.

I had mixed feelings about this discovery at first. I saved my YC app and put it away for the night, deciding to deal with my conflicting emotions the next day. But when I came back to the situation, I realized I wasn’t really upset; I just kind of thought I should be. I probably would have been if I’d been working on tinypapers recently, but it’s been long enough that I’m more detached from the project and can evaluate it more objectively.

But most startups change their idea. I knew this and kind of had the idea in the back of my mind that that might happen. I’m still glad of the time I spent on tinypapers, because it taught me a lot about programming.

I applied to YC with my job site idea. I also suggested in the application that I could make the todo list software Paul Graham requested in this essay, because I think it sounds like a fun thing to work on. I didn’t make it the main idea I applied with, for a few reasons. I don’t feel that I understand the problem PG wants solved well enough, as he put it in a list of ambitious ideas and todo list software does not sound that ambitious to me. I’m sure I could learn, but then I might fall into the trap of just listening to PG tell me what to build, and I’d rather listen to a lot of customers than one guy whose use cases are quite a bit different than average. Also, it’d look a bit like I was just picking that idea to get PG’s approval.

I still don’t want to work alone, and I still haven’t found a cofounder. I don’t think I will in Davenport, although I’m keeping my eyes open. It’s awfully hard around here to find people willing to start startups. It’s not an option that occurs to people around here, and it really sounds like a long shot. Well, it is, but that doesn’t mean it’s not worth it. I expect I’ll have better luck in Kansas City.

Anyway, I applied. I haven’t made the 1-minute video they requested yet, but I can edit the application for another six days, and I’m going to make the video after I regain the ability to pronounce the letter n.

I’m still buried in schoolwork, which is probably why I got this inconvenient bug (stress). But work is settling down. A hurdle of sorts got jumped and my supervisor/mentor/coworker/whatever he is isn’t being quite so competitive and antagonistic as he was before. If I’d been working much faster or hadn’t gone on my Kansas City trip, some stuff might have blown up on me. It’s complicated.

I’m almost sort of relieved someone has done tinypapers. I had some funny doubts about the idea. For one thing, everyone I pitched it to enthusiastically told me it was a great idea. That’s actually not so great; it means you’re not innovating hard enough. For another, it seemed easy to copy. For another, I read somewhat recently that Kivy as a framework was actually pretty slow performance-wise even though it’s a great tool in terms of programmer time/effort, and there is a point at which that tradeoff stops being a good deal.

The job site is something I personally want. It’s the startup I’d ask someone else to build. I’ve thought a lot about it, and I want to fix it, because it’s royally messed up as it is now.

I’m gonna nap now. I’m exhausted.

Travelling

Welp. I guess this won’t be much of a dev weekend like I was thinking it’d be. My folks and I are running across a couple different states to get a puppy, and the plans changed at kind of the last minute and we’re spending the entire weekend out of town.

It’s beautiful here in Wisconsin. The country around here looks like the kind of wallpaper that comes pre-loaded on computers: misty green forests, sunsets over rivers dotted with tiny islands, big limestone cliffs with little caves in them. There are giant rolling hills, outcroppings of land covered in trees, and big swaths of farmland and pasture with corn and cows. From a picture you’d think it was Sweden or Germany or something.

Fortunately, it isn’t Sweden, so we aren’t freezing to death. But there are a ton of bugs. During the latter part of the drive up to where we’re staying for the night, there was an ongoing discussion: is it raining, or is that pattering noise just all the bugs that are hitting the car? It was the bugs. “A lot of fish flies” just doesn’t cut the descriptive mustard. On top of that, my dad had forgotten to put windshield washer fluid in the wipers. Attempting to wipe the windshield… wasn’t pretty. I was glad I wasn’t driving just then.

I still feel disappointed about missing my tinypapers deadline, though. Because that’s almost certainly going to happen. I don’t have much of an opportunity right now to do the dev work that would push it over the boundary into giving it a quantum of utility. Ultimately I shouldn’t have left it so long. I’m not sure it was entirely my choice, though.

This new job is frustrating on a few different levels. I’m not going to go into much detail except that lots of things are obsolete, nothing is well documented, and they didn’t actually need a programmer because the entire job seems to be data entry. For various reasons, it’s an emotionally exhausting job.

I don’t mean it’s exhausting because it’s hard. I mean because it’s easy. I can hack and hack and hack for hours on end; working eight hours straight on a program and only stopping to eat at my desk is fine, even if things don’t want to behave. But I have a hard time sitting around and doing simple, brainless, repetitive stuff. It’s like being back in high school, except the people here are way nicer. I keep expecting them to be nasty or gossipy towards me, but they’re awesome. If I have a question or even just look confused, they’ll drop what they’re doing to help. I brought in three dozen donuts earlier today, enough for the whole workplace, and I think every one of them dropped into the office end of the building or stopped me in the break room to say thank you.

So, it’s definitely not the worst job I could have, by any means. And it only lasts a few months. But it’s killing my brain! It drains my energy and then I go home and consider: tinypapers? And then: ugh, no, sleep. Or: nope, nope, need to clean my room or something. But while I’m at work, I have two desires: 1) Whitey’s ice cream, and 2) to be working on tinypapers.

(3, to have the program I’m working with actually function, doesn’t come into play; I know it’s not going to happen without either my fussing and fiddling and being frustrated for thirty minutes before finally fixing it, or failing that, my supervisor coming in and clicking on things until it somehow ends up working. I don’t know how he knows what to do because there isn’t much for documentation on the program and it’s pretty useless–and I’m a wizard at making weird programs do what I want, so it’s not that I have low standards for this sort of thing. But, well… given enough eyes, all bugs are shallow.)

Yet when I get home, the desire to work on tinypapers vanishes. (For whatever reason, so does the craving for Whitey’s. No, I have no idea.) And then I just want to do some dumb Internet things and then go to bed. It’s not an effect of home, because I was perfectly productive on tinypapers before.

I was aware this job would take up time. I was also aware it would take up energy; however, I didn’t think it was going to take up this much energy. I think it’s getting better on that front, so maybe I’m adjusting and my dev speed will go back to being about proportional to the the time I’m spending on tinypapers.

I have no idea how school is going to work on top of this. It’s gonna be crazy.

I don’t want to set tinypapers aside in order to “adjust” to school and work. I want to see progress. Unfortunately, I haven’t yet transcended human limitations like energy level, stress level, and the effects of motivation.

I’m inclined to be harsh on myself regarding this sort of thing. I don’t like to make excuses as to why I’m not making progress, because I’ve been thinking of tinypapers as a startup, and startups won’t take excuses later so I shouldn’t start now. However, if you quit your day job and leave college to work on your startup, those are two big time- and energy-sinks out of your life. And humans have physical and biological/psychological limits on their time and energy (respectively). So where do you draw the line? Where is an excuse for not producing (to a self-set standard) valid, and where is it BS?

I would work on tinypapers even if it had no chance of becoming what I think of as a “real” startup: defined as one where you work on it (and its related chores) full-time, and where it probably has funding. I would work on it even if the only option were for me to distribute it freely as open-source. It’s working on solving a problem I personally face and want solved. But I wonder if I’d pressure myself to work on it as much if I only thought of it as a project and not a startup. Would it lag? Would it become stagnant?

Hmm. I don’t think so. I’ve spent about a quarter of my life so far with a novel constantly under construction, and they didn’t lag much unless I was totally out of ideas or was into something else (like when I switched to programming). But they weren’t always fast. I didn’t always prioritize them. And I was quite certain no one was writing the same stories I was (at least not in the same way), so it wasn’t like I was developing quickly in order to be the first to market or anything.

I don’t think it can be applied to programming projects you want to make into startups. I’m going to just have to keep reminding myself not to be so hard on me, and keep prioritizing my time hacking away when I can. I guess that’s all I can do.

I think I’ve got JSON down, at least partway

I understand it better now and I have my file structure mapped out. (I’m glad my gut told me to write down the plans. I had two or three outlines in my head, and only one still looked good when I could see it on paper. You don’t always have to do planning like this, but trust your brain if it says something’s off.)

I haven’t programmed things in yet, but I’m not lost any more either. It shouldn’t be too much work to hack this thing together. Getting it to actually work may be another story. (Or not. Hard to say.)

After storage, I need to get the camera working (if I can using just my laptop), and if the planets align and I miraculously have time before my artificial little time-to-start-releasing date (the 24th), I’ll also try to put in a crude backup system. And if the planets align and I get the blessing of the Pope or whatever, I might even get to put the colors back. :3

I’m not sure how long it takes to release an app onto Google Play. My guess is: way shorter than it is on iPhone. I’m really glad I have an Android phone. (The Galaxy S3 is still a really good phone. It has served me well for like a year and a half. It’s like my MacBook: slightly older, but still attractive, well-designed, and useful.)

Speaking of my MacBook, I got it a hard case: this one. It’s kind of like the one on my phone, but not as flexible. I like it so far! It’s not too bulky, it’s a pretty color, it’s nice to the touch, and it covers the missing foot pads on the bottom. The silicone keypad cover is not much of an adjustment, typing-wise, but will keep the keys shielded from spills and cat hair. Lots of win for $12 (probably a little more in shipping if you don’t have Prime). Note: if you get the red, one of the reviews says the Apple logo glows pink. If you don’t like pink, avoid that color. I wholeheartedly recommend the royal blue, though.

I have to go to work tomorrow. I’m debating what to do before going to bed. See, I kinda want to make progress on tinypapers and program that method in… but if I do, it’ll probably keep me awake thinking about it when I go to bed. I could curl up and mindlessly reread Ender’s Game or Eragon*, but then I’d be thinking about the fact that I’m not making progress on tinypapers. I could actually go to bed now at a reasonable time, but I tried that on Saturday and it messed my sleep schedule up. So… it looks like I’ll be thinking about tinypapers no matter what.

Screw it. I’m going back to hacking.

 

*It’s totally Star Wars with dragons. Some people think this counts against it.

It gets increasingly dull after the first book, though… I never made it all the way through the third but have read the first like seven times.

This is lovely and I want to share it

I ran across this JSON tutorial that I think is going to be really helpful. (Yes, I’m still messing with JSON.)

http://pythontips.com/2013/08/08/storing-and-loading-data-with-json/

It looks like the site has a bunch of other useful tutorials and stuff. Definitely worth a bookmark if you’re learning Python. I don’t see a Gittip button, so hopefully I can pay the writer in a little well-deserved publicity.

Happy hacking!