
An app can be a home-cooked meal - mkeeter
https://www.robinsloan.com/notes/home-cooked-app/
======
teddyh
_Now, some of you may not ever write computer programs, but perhaps you cook.
And if you cook, unless you 're really great, you probably use recipes. And,
if you use recipes, you've probably had the experience of getting a copy of a
recipe from a friend who's sharing it. And you've probably also had the
experience — unless you're a total neophyte — of changing a recipe. You know,
it says certain things, but you don't have to do exactly that. You can leave
out some ingredients. Add some mushrooms, 'cause you like mushrooms. Put in
less salt because your doctor said you should cut down on salt — whatever. You
can even make bigger changes according to your skill. And if you've made
changes in a recipe, and you cook it for your friends, and they like it, one
of your friends might say, “Hey, could I have the recipe?” And then, what do
you do? You could write down your modified version of the recipe and make a
copy for your friend. These are the natural things to do with functionally
useful recipes of any kind._

 _Now a recipe is a lot like a computer program. A computer program 's a lot
like a recipe: a series of steps to be carried out to get some result that you
want. So it's just as natural to do those same things with computer programs —
hand a copy to your friend. Make changes in it because the job it was written
to do isn't exactly what you want. It did a great job for somebody else, but
your job is a different job. And after you've changed it, that's likely to be
useful for other people. Maybe they have a job to do that's like the job you
do. So they ask, “Hey, can I have a copy?” Of course, if you're a nice person,
you're going to give a copy. That's the way to be a decent person._

— Richard Stallman, 2001 ([https://www.gnu.org/philosophy/rms-
nyu-2001-transcript.html](https://www.gnu.org/philosophy/rms-
nyu-2001-transcript.html))

~~~
Joe-Z
Sounds nice, except programming is difficult and akin to magic for most
people. Achieving what‘s proposed here, namely wanting to get a job done, but
your requirements for it are different from how your friend uses it, is
usually achieved by having a program that takes a lot of configuration
parameters and then does the job according to them. IMO that‘s the more
fitting analogy.

~~~
TeMPOraL
> _except programming is difficult and akin to magic for most people._

So is cooking to quite many of them, myself included. I find programming
easier than cooking - because although it takes much longer to achieve
anything, it also doesn't cost anything on the margin, you can pause the
process at any time, and you don't risk hurting or killing yourself.

> _is usually achieved by having a program that takes a lot of configuration
> parameters and then does the job according to them_

The ultimate form of "configuration parameters" is the code itself. Phrased
alternatively, configuration is just code in a non-turing-complete language.
Code is data is code.

There is a gap in tooling, there are currently no good Hypercard-like tools
that would allow to make "personal software" and share it as recipes. That's
perhaps because computing is still in its inflation phase and there's too much
platform diversity; hopefully that will change in some way in the future. But
lack of necessary tooling doesn't mean the vision is wrong, especially a
vision that was true in the past.

~~~
UncleMeat
> There is a gap in tooling

Understatement of the century.

 _Professional software engineers_ often struggle to get their development
environment up and running quickly. My wife is a historian and does a lot of
work with R. The process of getting the development environment working and
keeping it working was a _nightmare_. "What the fuck does that error message
mean? When I Google it nothing comes up. What do you mean I have the wrong
version of python? What the fuck is a PATH variable?"

With cooking there are entire stores dedicated to selling you things that you
can use. Almost every home comes with a working "cooking environment". Even
just making it so you _could_ recompile some software if you wanted to is way
way way way beyond the expected capabilities for a typical person, especially
since a tremendous amount of OSS code is not portable and built for linux
while most people have windows boxes.

~~~
cxr
Philip Guo wrote a great post several years ago under the title "Helping my
students overcome command-line bullshittery"[1] that seemed to get somewhat
mixed but mostly positive reception. Much of the negative reception seemed to
be chained to sophomoric arguments originating from folks stuck in the second
panel of the glowing brain meme who wrongly thought of Guo being stuck in the
first.

The real truth behind the mess we're in[2] is that there _is_ a ubiquitous,
universal runtime that almost every computer comes equipped with, and the
problem lies with the folks responsible for those ecosystems who either don't
see these things as problems, or somehow believe that what the future somehow
holds is native support for R/Python/what-have-you in the browser.

Tooling is a massive problem, though, and one that the browser vendors
themselves don't seem to care to get right. (Although there is the Iodide
project, in part supported by Mozilla.) And it really doesn't help that the
browser realm has come to be conflated with the NodeJS community because they
share a common language.

I've written a fairly thoughtful post[3] before, tying these two topics
together:

> _After finding out where to download the SDK and then doing exactly that,
> you might then spend anywhere from a few seconds or minutes to what might
> turn out to be a few days wrestling with it before it 's set up for your
> use._ [...]

> _the question is whether it 's possible to contrive a system (a term I'll
> use to loosely refer to something involving a language, an environment, and
> a set of practices) built around the core value that zero-cost setup is
> important_

1\. [http://pgbovine.net/command-line-
bullshittery.htm](http://pgbovine.net/command-line-bullshittery.htm)

2\.
[https://www.youtube.com/watch?v=lKXe3HUG2l4](https://www.youtube.com/watch?v=lKXe3HUG2l4)

3\. [https://www.colbyrussell.com/2019/03/06/how-to-displace-
java...](https://www.colbyrussell.com/2019/03/06/how-to-displace-
javascript.html)

------
laurieg
Recently I wanted to make a few simple apps that would make api requests and
control a few things around my house set up with raspberry pis.

A friend recommended me the drag and drop app builder Thunkable[1] and I was
blown away by just how easy it was to make something. In a couple of hours I
had all the apps I needed. No complicated build process, just download the apk
from the site. Some people might turn their noses up at it because it uses
scratch for writing the code but I feel this is what people's first experience
of coding should be like. Write a simple recipe, get a simple program that
they can use straightaway. These that must be an app or a web app to have any
relevance to people.

[1] [https://thunkable.com/](https://thunkable.com/)

~~~
Yenrabbit
Thanks for the recommendation! This is very much what I've been looking for.
Easy GUI, super simple to use, but can go deep and get it to do most things
I'd want. After several false starts looking at the different app options,
this is so refreshing :)

------
bentcorner
I've done something very similar for my wife: She likes reading otome visual
novel games on Android and the game design/monetization strategy means that
it's difficult to "go back" to a story line.

I noticed her repeatedly screenshotting her phone and asked what she was doing
- she said she likes to re-read the stories and so she swipes through her
gallery to satisfy this need.

So I built a simple wrapper around adb, built a plain C# WPF front end for the
wrapper and passed through clicks and automated screenshot calls for her. So
she plugs in her phone, fires up the app, and she can read her VNs on her PC
and have screenshots saved on the PC for her.

I built a variety of other processing apps to solve other needs for managing
these files.

There were some free-to-download apps that solved a lot of these problems but
none in quite the right way, and a lot of them looked fairly sketchy.

I don't really have any intention of distributing the software I wrote because
it's so specific to her needs, and at best I might throw it up somewhere so I
have the source backed up, as every once in awhile she asks for something new
to add to this program.

~~~
philangist
Wow this is awesome. Who said programmers aren't romantic?

~~~
TeMPOraL
Reminds me of the QueryStorm story; apparently the project started because the
author wanted to help his girlfriend with her work (which involved lots of
data and Excel files).

[http://blog.querystorm.com/index.php/2018/04/04/whynow/](http://blog.querystorm.com/index.php/2018/04/04/whynow/)

------
gklitt
"Home-cooked" software is such a lovely analogy. I've used the same comparison
to explain my unease about ad-hoc spreadsheets being replaced by domain-
specific software [1]. Often the new software is "better" just like restaurant
food is "better" than a home-cooked meal, but it's also great when people can
build small-scale, super flexible software that works perfectly for just their
own needs.

1:
[https://twitter.com/geoffreylitt/status/1177607448682582016](https://twitter.com/geoffreylitt/status/1177607448682582016)

~~~
myself248
I loved TFA's callout to HyperCard, like your own argument about spreadsheets
being "flexible generic tools".

I feel like IFTTT is approaching the same level of utility, though it exists
in a space where it's incredibly vulnerable to change against its users'
interests.

A few more tools like spreadsheets and HyperCard, and a whole lot of people
with home-kitchen level of software competence, could free us from a lot of
expensive restaurant dining. And we'd be more self-sufficient, to boot.

What's it take to get HyperCard back? Or something like it? Not just
functionality, but ubiquity -- being a tool that every kid is one click away
from, nothing to install, no permission to ask, just start learning...

~~~
vertex-four
The problem is that the tasks we ask of our software are harder - we now
expect them to talk to other computers, not all of which really want to be
talked to by random people writing one-off bits of software.

~~~
TeMPOraL
> _not all of which really want to be talked to by random people writing one-
> off bits of software._

That's a bigger problem than it sounds.

There are two main reasons software doesn't want to talk to each other. One,
preventing vandalism and general abuse. Two, rent seeking. The software is
wrapped around something you need, and it'll only allow access on its own
terms, and after an appropriate fee.

I dream of an Internet where this isn't the case. In particular, I dream of an
Internet where I don't have to choose between either writing scrappers, or
entering separate _relationships_ with companies for every little bit of
information I want to fetch via an API. Those relationships are a problem and
a liability, even if they don't incur any actual monetary costs.

Beyond just being annoying noise that you have to keep track of, relationships
make software non-shareable; they force you to centralize. If I make my "home-
cooked" app that needs to know the weather, currency rates and be able to
derive geographic coordinates from addresses, that's three separate APIs,
three separate relationships. I'm not going to ask any of my users (whether
five or five million) to get their own API keys, get their own relationships
with the API providers. I'm forced to put a server in front of the app,
introducing a single point of failure, shackling the app - and more
importantly, I'm forced to force the users to enter a relationship with _me_.
Their copy of the app is now dependent on my server not going down, and me
managing my relationships with API providers.

Cooking recipes people share never force you to use a particular ingredients
supplier. They don't even care where you get the ingredients - whether you
grow them, buy them, or receive them as gifts. I wish software was more like
this.

------
gorgoiler
I absolutely love this comparison. Making computers do what you want using a
core set of skills, personal taste, some equipment, and a set of reference
works is absolutely analogous to cooking at home for the family.

I feel a bit like this touches on operating systems as well. After a decade
with macOS — away from Debian, ion3, evince, Firefox, and to some extent the
command line — I get that same feeling of overexposure one might feel after
eating out for every meal. Restaurant food is polished and diverse but it’s
overly tasty and the options for customization are coarse (no pun intended.)
You can choose a dish but not how it’s made.

The analogy with home cooking makes me want to go back to a computing
environment where I get to put the ingredients together that work best for me
even if it isn’t something that’s perfect enough to sell to other people.
Hackable window managers aren’t the be all and end all but they are a good
example of what I’m talking about. Time to buy that $100 Thinkpad, I guess.

------
jrochkind1
I remember the fantasy that more and more people would be able to develop
simple basic apps for their own very personal customized needs. It was a
vision of a more accessible and democratic compute infrastructure, where we'd
all be 'makers' creating the compute environment we lived in. Things like
hypercard were part of this vision.

Those days are gone. The article doesn't explicitly mention the fact we all
know: Very few people have the capacity to create a 'home-cooked meal' like
the OP, for their own use.

In fact much fewer than could create a little hypercard app. It's a world
where there are pretty large barriers to most people being software 'makers',
and instead we are just consumers who can choose from what is offered to us by
various companies trying to figure out how to monetize our needs and desires.

Part of it is the increased complexity of app development. Part of it is the
walled gardens of our suppliers.

> I distributed the app to my family using TestFlight, and in TestFlight it
> shall remain forever: a cozy, eternal beta.

Indeed. Because the very infrastruture ignores the needs of one-off "home
cooked meal" apps, it assumes they don't exist, you have to pretend it is some
kind of "beta" of a mass market commodified product instead (and be glad our
suppliers still let you do that for 'free'). Our computers (increasingly the
phone/device is people's primary computer) are no longer ours to do with as we
will.

It is sad. If those who created the computing revolution 30 years ago
(including prior versions of us) could see where it wound up.... the level of
technological sophisitication of our pocket audio-video-geolocated-self-
surveilling-communicating devices is astounding; the lack of 'empowerment' or
control we have over them is utterly depressing.

~~~
dickjocke
This is so pessimistic! What is the basis for thinking there are _large_
barriers to most people becoming software makers?

I was in high school 12 years ago, when iphones just hit the market at like
800 bucks each and there was no firebase or react native or Medium articles or
youtube tutorials covering 1st step code generation commands to deployment for
every tech stack. The language of the day was Java. There was no npm and not a
trillion python libraries that you can do anything imaginable with.

Is there any specific reason a 16 year old today couldn't make the app this
guy did?

As a software engineer I _like_ the idea that I do a black magic that nobody
could ever understand, but I genuinely don't think it's true.

~~~
TeMPOraL
> _What is the basis for thinking there are large barriers to most people
> becoming software makers?_

You have an idea for an app. How do you build it? Your options generally are:

1) Do it the hard way: get Xcode/Android Studio, spend years learning to a)
program, b) deal with the bloated and overly complicated frameworks, c) deal
with the bloated and overly complicated build and deployment infrastructure.
Also pay the platform owner for the ability to make it work / distribute it to
someone.

2) Do it the easy way: pay some service so that you can make the app in a
simplified/low-code way. Now your app is tied to someone else's service.

3) Do it the expensive way: pay someone else a lot of money to do 1) or 2) for
you.

What's missing is the option 4): build it in some free, low-code tool,
distribute it for free to whoever you want, _without entering a relationship_
with any company whatsoever. That would be "the HyperCard for mobile".

On top of that, these days you're likely to want to have capabilities that are
available only either through option 1), or through an API, requiring entering
_another_ relationship with some other third party.

Closest thing to 4) I've seen on Android is Tasker, with its ability to dump
an .apk containing whatever UIs and if-this-then-that rulesets you created.
But it's not exactly ergonomic, it's Android-only, and doesn't solve the
distribution problem.

~~~
dickjocke
I don't see why it would take years to learn to write an app in Swift or
Kotlin (or React Native or Flutter), even starting from zero. I'm not trying
to be cute here.

There are probably 50 high quality end to end tutorial for building a video
streaming app. I guess using Firebase is tying you in to a service, but so
what? If it's for 4 friends it doesn't have to be infinitely scalable. Just by
writing an iOS app you're tied to Apple, right? And surely an app isnt a
failure just because it has dependencies?

~~~
TeMPOraL
If I were a non-programmer, I'd not have time to learn the basics of Swift or
Kotlin even if it took only a month, if all I wanted was to build a small app
for friends. With Apple I already have to deal with by virtue of owning an
iPhone, but I would be reluctant to enter a relationship with another party
just for the sake of my small app. On top of that, careful observation of the
space tells you that an app is likely to outlive its service dependencies.

Dependencies you don't own are a liability. The less you have of them, the
better.

------
JoeSmithson
Imagine a world where the ability to make a personal app like this is actually
as easy as making a home-cooked meal; a skill passed from parent to child in
the natural course of growing up.

~~~
saagarjha
Cooking is orders of magnitude harder for me than making an app, so I’d think
we’re already there…

~~~
gwd
I've cooked _lots_ of tasty, nutritious food in half an hour, and I rarely
spend more than an hour cooking. I can only dream of a world where I could
write an app in an hour that would be as enjoyable to use as the food I can
cook in an hour is enjoyable to eat!

~~~
notduncansmith
I think game jams probably get closest to this proportion of work:enjoyment in
software.

------
sevencolors
I really identify with his home cook metaphor. I love cooking for folks and
often get compliments that I could be a chef. Mostly because I’ve been cooking
since I was a child. Ironically I’ve become a “software engineer” in a similar
manner, 10 years of just trying things out and making things for friends and
family. I do agree we’re getting to a space in software development that’s
making it a bit easier to play and experiment with ideas. I think it would
amazing if folks could get a BlueApron like expenience and make an app that
would be useful

~~~
dontdoitpls
Making 1 app is fine. Web or Android, no problem. Both? Double your dev time.

React native you say? Double your dev time to learn a weird language.

Want to service 100% of people? Spend 1000$+ on apple products and beg Apple
to let you publish.

~~~
sevencolors
I still think all these details could be solved for with a friendly IDE for
beginners. In most cases folks just want to build a thing for themselves or a
small group. Right now the tooling is still unfriendly to most but it feels
like it’s moving towards something better

Here’s an example, I built a simple app to keep a schedule for watering my
various plants that all have different needs. Originally it was just a google
sheet but I saw an opportunity to play with ReactNative and expand my
knowledge

A lot of everyday people, have spreadsheets like this that could be
friendlier. They’re not trying to ship it to thousands just themselves and
maybe a friend. Like sharing a meal and then the recipe :)

------
_bxg1
Something about the personality of a programmer draws us towards that ever-
fleeting siren of The Infinite. Infinite scalability, infinite reusability,
infinite growth. It's this lust for the Bigness that our code _could
theoretically reach_ that causes most of us to pass right by the myriad of
opportunities for small, more meaningful, more human software.

~~~
bitwize
Maybe, if you read a lot of Paul Graham essays and are seduced by the siren
call of startups and VCbux. But I'm more captivated by the infinite
_possibilities_ of the thing sitting right in front of me. And I bristle at
machines thousands of times more powerful than my old Commodore actively
preventing me from exploring those possibilities without identity management,
app signing, hooking up an even bigger computer to my small computer, et weary
cetera.

But what do I know, I'm just a lizard person. My small computer is really a
phone, an inherently social tool. Its manufacturer didn't intend for me to
easily hack it, therefore I've really no right to.

------
peteforde
Robin is a fascinating and wonderful human.

He's the author of "Mr. Penumbra's 24-hour Bookstore" and "Sourdough", a
champion of small-press publishing and married to a woman who is an olive
expert.

[https://fat.gold/](https://fat.gold/)

------
ramoz
I like thinking about coding with these type of metaphors. Coding, imo, is
more like a puzzle. I get cooking but it's a bit too abstract for something as
deterministic as most coding is. I do see it applying to the experimental
side.

Relating to puzzle...

    
    
      - Design: you "know" what you want your outcomes to look like
      - Software: you "know" the type of pieces you're dealing with (there can be variants)
      - Compile: pieces can only fit to exact tab/blank structure(per piece variant)
      - Iterate: your entire design is systematic. In complex puzzles, your early decisions can greatly alter future state. How you progress and build in later states is important to.
        - Can be good, eg like puzzle-solving strategies that are very specific in the beginning, but enable rapid/seamless building in the future.
        - Can be bad, eg it may seem like you're mostly complete in the later states, however, there are holes and holes left ignored are a liability for the acceptable state. You might find that you've incorrectly placed pieces that seemed viable in the past, but leave you in conflicted situations in the future.

~~~
savolai
Coding is often seen as technical/deterministic as the makers are often
technical, and so the mediun is typically used in a fashion that affords
scaling and regularity.

There is nothing inherently deterministic about coding as a medium of
expression; the fact that the basis is binary doesn't decrease the power of
expression we can wield vis-a-vis analog media.

Of course there are constraints of the tooling; but whether you are inherently
building something that it makes sense to compare to a puzzle is entirely up
to you as a creator.

~~~
ramoz
I respect this.

> There is nothing inherently deterministic about coding as a medium of
> expression

I don't disagree with this and realize I failed to recognize this
perspective... even myself, generally, I internalize & embrace expression
through coding.

I metaphorize coding as a puzzle mostly when debugging or designing complex
software.

------
danfang
This resonated with my own personal experience building a messaging app for my
closest friends and family. It's been a steady 8-12 daily active users for the
past few months.

I'll probably write a blog post in the future about what it does and why we
use it. I'm also considering open sourcing the entire project!

[https://get.thread-app.com/](https://get.thread-app.com/)

~~~
petejodo
I've been wanting an app like that for awhile now. I started messing around
prototyping something like that around planning events with others. I'm
excited to see what more of this!!

------
z3t4
I've been wondering lately if there is any business opportunity in personal
IT... More and more technology is entering our homes... We hire people to do
plumbing and electrical installations, maybe we should also hire people to do
the software...

~~~
jon-wood
Its nowhere near the level of everyone hiring plumbers and electricians, but
if you’re really interested hunt down some home automation companies (or start
your own). If you can find the right clients you can easily make five digits a
job setting up Home Assistant to run someone’s new house.

------
dangoor
I exchanged a couple of tweets with Robin about this. I think this app is
really cool, and I didn't want to get nerdsniped, but it seems to me that this
could be built using webapis today. So you could have a cross-platform
compatible version that doesn't require code signing, etc. That would be
really nice.

Got me thinking how cool it would be if there was then an easy way for anyone
to instantiate a copy for their own family. They own the data, they just pay
for what little they use of S3 and lambda.

------
habosa
That's a great metaphor, I make apps just for myself or a few friends
sometimes and this is exactly how I feel about it.

For instance I made an app called "YourSquare" that's just like FourSquare but
100% private and local to my phone. No real point to it, I could make Google
Maps do what it does, but it's a home cooked meal.

------
eandre
I really appreciate the approach of building something simple (in user
experience but also in implementation). These days it's so easy to get sucked
in and end up spending months setting up Kubernetes clusters and the "that
won't scale"-type thinking.

------
DaveSapien
"Home-cooked" software is such a perfect analogy to indie game development.

It resonates with me much more that other terms like "full stack", "Dev ops",
and so on. It nicely removes the guilt of not writing the perfect codebase, as
we often have to sacrifice that in order to ship a game.

For me indie games might not be the michelin star earners some of the time,
but they warm the stomach. With imperfect charm they offer the delightful
experiences just like home cooked patisserie. (edit formatting)

------
spiderjerusalem
Putting the 'personal' back in computing, this is great!

------
Zanneth
My brother and I built an app together that is only used by the two of us.
It’s a simple way to keep a shared ledger between the two of us because we
split a lot of expenses as roommates. We’ve been using it almost every day for
about 10 months now.

In a way it’s different from the author’s app because our app is over-
engineered in some pointless but extremely fun ways. It’s also similar in that
it will:

\- Never break unexpectedly due to an unwanted app update

\- Never spy on us and steal our personal information

\- Look and behave exactly the way we want it to, and no other way

I highly recommend building an app in this way. For me it reminded me what I
love about programming, and allows me to work on a project unhindered by
meetings, project managers, or deadlines. Just like cooking something for
yourself, it can be as perfect or as imperfect as you want it to be, as well
as an exercise in self-expression.

------
ivan_ah
Anyone interested in creating a "home cooked meal" for Android using scratch-
like drag and drop components? Check out
[https://appinventor.mit.edu/](https://appinventor.mit.edu/) It builds an .apk
for you and all. It's primarily intended for teaching kids how to code, but
seems like it's a good fit for simple apps like the one described by the OP.

------
Apocryphon
Now, this is wholesome.

------
akavi
Maybe dumb question: How does he specify whom the message is sent to? Or is it
broadcast?

~~~
_bxg1
I assume it's hardcoded to broadcast to all users

------
jayd16
I do miss the haphazard personal website of yore. That said, it's probably
quite a bit less secure to run this stuff yourself.

~~~
netsharc
Maybe he's using static hosting, like Hugo
([https://gohugo.io/](https://gohugo.io/))?

------
ricg
A while back I came to realize that not every app I produce (I'm an Indie
Mac/iOS dev) has to be polished and App Store-ready. I can write an app for an
audience of one - me. Getting an app ready for an App Store easily adds 50% of
development time.

A home-cooked app can have hard coded values (oh yeah!), doesn't have to be
pretty (although it's more fun), doesn't have to support all platforms (no, I
won't add Apple Watch support!), it just has to work for me.

My latest project: a little iOS app that I can use at a bookstore to scan the
book's barcode and then checks if that book is available at my local public
library.

When I showed that to my SO she was amazed and said: "And you just made
THAT?". Well, yes. My secret superpower is that I can make these little
computers that we all keep in our pockets these days make anything I want them
to.

A few other projects that I made for myself over the years:

\- App that generates PDF invoices from my App Store financial reports (I
simply paste in the plain text from the website)

\- A break timer app (old one was 32bit-only, I didn't bother to download a
new one)

\- Text snippet app: it scans an email for the senders name and pre-populates
possible answers. I turned this into a tiny CRM that keeps track of feature
requests and whom I sent an update. This is actually in the App Store, but was
a huge commercial failure, but I use this myself e v e r y day.

\- Quick click: it's like a command line for my Mac. I type something I see on
the screen (e.g. the title of a button), the app highlights possible matches,
I press Return and the app sends a simulated mouse click. I can also use this
as a window manager to resize the active app, because, why not?

For personal use:

\- Portfolio simulator app that calculates every possible IRR for a given
number of years (once I was done I discovered portfoliocharts.com, well...)

\- Portfolio tracker app to track my retirement savings: this is like a tiny
spreadsheet app only that it's fed by 3 csv files (orders.csv,
transactions.csv, asses prices.csv). "editing" is done in VIM. The app
generates various reports that I use to check if I'm on track with my savings.

\- Simple stock checker app (fetches the prices of a, yes, hard-coded list of
ticker symbols).

\- App to categorize my spendings. Input is a csv file (I like plain text). I
wanted to learn now Naive Bayes filtering works and have to say, seeing the
app do its thing is as close to magic as I ever got.

\- Time lapse screen recorder: creates a screenshot every x seconds. I used
this once to record a video of how I'm developing an app.

\- Custom implementation of Unshaky (with more stats and settings) to fix the
double-space keypress issue of my new MacBook Air

\- Alarm clock app that uses the accelerometer to wake me when I'm not in a
deep sleep phase.

And a few more that I don't use anymore...

------
kgraves
So an internal tool?

------
userbinator
_roughly half of that time was spent wrestling with different kinds of code-
signing and identity provisioning and I don’t even know what._

It's worth noting that in the early era of personal computing, companies did
not view users as idiots to be herded and restricted by their technology, and
computer magazines contained source code listings.

~~~
orf
It’s not necessary about considering users idiots. As with anything, once a
critical mass of users was reached people started creating malicious software,
and code signing is a way to help prevent that.

Of course you can run your own self-signed APK on your own phone, nobody is
preventing you. But use the Apple App Store as a delivery medium? Come on.
Code signing is a bare, completely responsible minimum.

~~~
dvfjsdhgfv
> Of course you can run your own self-signed APK on your own phone, nobody is
> preventing you.

Unless you have an iPhone - it's becoming a bit more difficult then.

~~~
orf
Took me about 5 minutes after installing Xcode on my Mac. What’s so difficult?

~~~
peteforde
5 minutes!? It should only have taken you 1.5 minutes.

At the very most.

