1. 106
  1.  

  2. 28

    I love this so much. Programming is supposed to be directly, personally empowering and fulfilling.

    1. 7

      This is an excellent positive spin on what tech can be. It’s why I got into it in the first place.

      1. 7

        See also, for example, the Joy of Computing from the Recurse Center.

      2. 23

        I made an app just for my wife last year. She uses it to solve a very specific need she had at work. It’s only going to have one user but she’s the one who matters most to me. The release date was her birthday :)

        1. 5

          That’s really beautiful!

        2. 15

          I love it, we all need a reminder that fully-fledged apps ≠ potential commercial apps. Stop shooting down that app idea you won’t make time for, just because it won’t sell!

          Also relevant: “Snaplight serves an extremely niche need: mine.”

          1. 10

            And for us that want to make applications not for commercial/financial success, but to help people: your thing will likely be helpful for others long before it reaches your idea of being ‘complete’. Don’t give up because you feel like it doesn’t do everything you think it should.

            I fall into this trap often, and need constant reminding.

            1. 5

              That’s also a great example of the principle! Like many devs, I have a secret plan to make some software for myself, sell it in the millions of copies and be the most successful, and when I seriously consider doing a project on the side with the purpose of it making me money, I’m stuck on “what problem should I solve”. But when I’m just writing a small CLI tool for me to automate importing that JSON output into this database over here, I’m just enjoying and frequently, when I show the tool to, say, teammates, they’d approve and I’d feel proud and be happy about it.

            2. 9

              The fact that this has to be explicitly states how sad our software userspace afairs are.

              We imagined a future where everyone can script their desktops, create personal programs and share them not only between colleagues but friends and famility too. What we got is a bunch of centralized, malware ridden applications and desktop environments that are exact opposite of our futuristic dream - no control, no sharing, no personality, just app stores with ad ridden, psichologically abusive “apps” that are produced by app farms. Seriously do you even remember trying to develop android app for the first time? The setup process is absurd - no way this is a user-programmable environment.

              That being said, I still believe it’s worth clinging to this ideology. I think we’re in this transition period but we need some push back to hold out until people wrap their heads around this.

              1. 7

                This is fantastic. I did similar thing for a wedding: app that installed on two and only two iPhones. They let attendees snap selfies (they were on selfie sticks), the app would watermark them with the wedding info, and wirelessly print to a photo printer.

                Lots of work for a one-night app. Would not recommend, especially since I had to be on IT duty all night.

                1. 4

                  Should be possible to repurpose this for other weddings? It is not going to be a Silicon Valley unicorn I guess but sounds like a great way to earn some extra money once or twice a week?

                2. 6

                  It’s been said before, but Excel macros (followed by SQL) is the most successful programming language/paradigm. Every enterprise project I worked on was basically scaled up, but less flexible, Excel sheets on a web page.

                  What does the future of that look like? Query terminals accessible to every employee? To every citizen of a nation? Scripts shared as easily as emails, forwarded to teammates who could use them? Dirt cheap web hosting for tons of micro apps?

                  1. 5

                    Thank you for posting this. I like the analogy with learning to cook vs becoming a chef. It puts things in perspective!

                    I’ve been working on and off on a baby naming website for many months now. Based on user testing with a few friends I can tell the idea isn’t there yet. However my wife and I enjoy using it and are homing in on names that we both like. It’s tough because I think there’s a viable business and app here but so far it’s just me and my wife who enjoy using it!

                    You’re welcome to try it out: https://babynamer01.ihsan.io

                    Our plan is to go over previous lists of names we’ve liked, put a few into the fridge, and vote on them repeatedly every few days and see what sticks. I’m glad the app is able to help us and I’m glad it’s a home cooked meal :)

                    1. 3

                      I went through the ‘choose a name’ exercise ~6 months ago. One thing that we did, which sounds silly, but was actually really useful, was to pit names against each other, 1:1, tournament style. Each winner went on to the next round to be compared to another winner from the round. More than once we were stuck debating which of two names we each thought were better, and it was amazing! This technique relies on there being an existing pool of names you’re considering though, but maybe it could be included in some way into your tool.

                      1. 1

                        Thank you for this advice, we will try it by hand for now and I’d love to also include it in the tool.

                      2. 2

                        Where do you pull those names from? Are they common names somewhere in the world? Because to me they sound mostly like something out of a fantasy book. And I really liked a lot of them and would definitely think them good baby names.

                        1. 3

                          Where do you pull those names from? Are they common names somewhere in the world?

                          I get these from public government datasets. One of the most remarkable things I’ve learned out of this app is how many strange and wonderful names people give their children all over the world.

                          Here are links to the datasets:

                          USA names

                          US SSA: https://www.ssa.gov/oact/babynames/names.zip

                          UK names

                          https://github.com/leeper/ukbabynames/blob/master/data-raw/ukbabynames.csv

                          https://www.ons.gov.uk/peoplepopulationandcommunity/birthsdeathsandmarriages/livebirths/datasets/babynamesenglandandwalesbabynamesstatisticsboys

                          CAN names
                          1. 1

                            And of course I saw “Chlorine” cross my screen too. Some names are better than others :)

                            How do you handle religious names? I haven’t seen any deliberately religious names yet…

                            1. 1

                              And of course I saw “Chlorine” cross my screen too. Some names are better than others :)

                              In the US 5 female children were named Chlorine in 1919 and 5 female children in 1924, but not in the UK or Canada. The Social Security Administration (SSA) only records names used 5 or more times per year. I’ve played around with excluding names not used NNN times per year, I should expose this as a configuration parameter.

                              This is why something I experiment with is leaving out names from the US, and only including UK and/or Canada.

                              How do you handle religious names? I haven’t seen any deliberately religious names yet…

                              I have also not noticed many religious names. I do not handle them explicitly…one of my main goals in this tool was to do as little manual (biased) intervention as possible. I

                              • read in all names ever used in lots of countries (around 110,000 names),
                              • do some pre-processing to for each name pre-calculate:
                                • a) a dense vector that represents the pronunciation and estimated syllable count of the name using a hand-built model, and
                                • b) a dense vector that represents the “cultural context” of the name using an open-source off-the-shelf model.
                              • as you vote on names a per-name score is estimated, then a model is generated and updated to learn a relationship between the scores and the names’ pronunciation and cultural context.

                              If you’d like to help me continue testing this app or learn more please message me. I hope to have some time soon to work on the tool.

                      3. 4

                        This is the kind of content that I love seeing here. It resonates so much with me and the mood I’ve been lately. Thanks a lot for sharing it.

                        It has been some years that I’ve been talking to my friends that as a developer I’ve been feeling like a “chef that doesn’t cook at home”, we’ve been using this analogy to explain the situation of developers who spend their day job coding stuff that they won’t use, while the stuff they use outside of their job doesn’t contain any piece of software that they made. As if they were chefs that at home only eat ready-made meals. I understand that people are not required to write their own software, that is not the argument I’m making. What I believe is that some people actually want to do that and are not doing it, and that causes some subconscious frustration. Or, that is my own personal case only and no one feels like that.

                        Seeing this post and others that were in a similar vein in the last months is pushing me forward to work on my own stuff regardless of business plans or anything similar. Just for the fun of it and for my own personal use. Thanks OP for inspiring me.

                        1. 3

                          Same. I’ve had this idea for an app to help me in my day to day work visualizing our private ipv4 network space. What is used, and whats available, and where gaps are between CIDRs. I keep trying to build it as a potential SaaS and lose motivation. This has inspired me to just start as an electron app for myself and go from there.

                        2. 3

                          This is so timely. I just got hold of a pinephone and I’ve been thinking all week about how to design things so that slapping together these kinds of apps is as easy as possible.

                          Having solid libraries for messaging, data sync, notifications and identity would certainly remove a lot of the technical overhead of building social interactions. Matrix is potentially a good fit here, but there aren’t yet usable native client libraries.

                          1. 2

                            it needn’t even be something large, see for instance this extremely simple tool I made myself. I don’t even know how many people are using it, but it comes in useful pretty often for me, and I got at least a couple of pings when it went offline due to a server glitch so I know others find it useful as well. it’s simply very empowering to think of a way a computer can make your life easier and then build something quick to do it.

                            1. 1

                              I’m reminded of a little JS widget I wrote like 10 years ago that just keeps score for tabletop gaming sessions. No fancy components, no persistence, but it auto-assigns colors and works on a phone browser. As far as I know, no one else has ever used it or looked at the code. I still use it a couple of times a month and am glad it always exists wherever I have a it open in a browser tab.

                              1. 1

                                I like this, but I’d hate the potential maintenance overhead if I did something like this myself.

                                1. 3

                                  Yeah, this idea was sitting in the back of my head all through reading this essay.

                                  It’s not just the way that so many developers think about their work that pushes people into a commercial mindset, but the structure of development tools. I write shell scripts & small command line programs for my own use all the time, but I cannot imagine writing a phone app that only a few people would use, because API churn & the unnecessary complexity of the whole ecosystem make owning any code a liability. (Likewise, I would not try to do a non-trivial web app for only a handful of people: if I need a GUI, it’s so much easier to use TK than to use a DOM that I wouldn’t even consider webtech.)

                                  Our whole software development ecosystem is built around the semi-professional: nothing’s quite stable or reliable enough that it’s really worth selling or paying for, but at the same time, everything is so complicated and optimized for large-scale deployment that it’s simply not accessible to anybody who isn’t aiming to eventually become a professional developer. The exceptions are hold-overs from earlier eras: the UNIX command line (whose users were a mix of developers and non-technical people provided shell accounts by an institution), specialty programming environments for technical professions that program incidentally (mathematica/maxima, R, spreadsheet formula languages), and the occasional teaching language (BASIC, scratch, LOGO).