[HN Gopher] Ask HN: Publish old projects even though the source ...
       ___________________________________________________________________
        
       Ask HN: Publish old projects even though the source code
       embarrasses you by now?
        
       I have some game projects that were released almost ~15 years ago (
       https://store.steampowered.com/publisher/asylumsquare/list/100010).
       Of course, from today's perspective, they have some issues (low 4:3
       resolution, for example).  I made the games available for free on
       Steam because I thought they might still find some players who
       enjoy them, even if they are of course a bit old-fashioned here and
       there.  I'm now thinking about releasing the source code as open
       source. I'd really like to do that, because I think it might be
       interesting for some people. And if people create new ports or
       mods/improvements, that would be pretty awesome.  However, from
       today's perspective, the source code is not very well structured -
       so it's a bit embarrassing. I'm torn on whether to publish it or
       not, because it might reflect badly on me as a developer. How would
       you handle that?
        
       Author : joemanaco
       Score  : 78 points
       Date   : 2022-11-20 12:42 UTC (10 hours ago)
        
       | pjmlp wrote:
       | No problem being embarassed, I have stuff published from my high
       | school days (used to carry a 1.44 floppy with MS-DOS 3.3 and TP
       | stuff on it, to get an idea when it was), and university as well.
       | 
       | Headhunters are happy I can check the "I have stuff on github"
       | bullet point, and that is about it.
        
       | psychphysic wrote:
       | Just open source it.
       | 
       | No one will judge you by 15 year old code if you have recently
       | produced good code. That's what people will look at.
       | 
       | Just look at the face palms at Nintendo HQ despite the amazing
       | game they made https://m.youtube.com/watch?v=t_rzYnXEQlE
        
       | unixhero wrote:
       | Yes
        
       | pryelluw wrote:
       | I'm embarrassed of the code I'll write tomorrow ...
       | 
       | Honestly, no one cares. Add a note at the top of the readme that
       | provides historical context if you must address the point.
       | Otherwise don't worry cause everything will be alright. People
       | are too self centered to care about your old shorty code.
        
       | Zigurd wrote:
       | Try writing books about coding. Now I have to tell people "No!
       | Don't do it that way!"
       | 
       | The right way to make Android apps has changed completely, and
       | the documentation and tutorials are good now.
        
       | silisili wrote:
       | Personally, I wouldn't care at all. If it works it isn't
       | embarrassing.
       | 
       | If you're worried about it reflecting poorly on you, make a new
       | github account (asylum-open-source or whatever) and publish under
       | that?
        
       | jfk13 wrote:
       | I'd say, go for it!
       | 
       | My most widely-used project (that I was solely responsible for)
       | is an absolute horror of tangled code. It was originally written
       | -- or rather, hacked together with spit and baling wire -- purely
       | for my own use, as a tool to accomplish specific tasks.
       | 
       | Turned out some other people thought it was interesting. I made
       | the code available -- and nearly 2 decades later, it's still
       | going strong, largely thanks to others who have stepped in to
       | handle the occasional maintenance tasks.
       | 
       | The code is still appalling; but it does its job, and people
       | still value it.
        
       | nano9 wrote:
       | Note that if you publish to GitHub publicly, it will feed into
       | Copilot without any way of opting out.
        
       | matchagaucho wrote:
       | Take pride in the results. Not the code.
       | 
       | Game development, in particular, is notorious for clever hacks
       | that POKE into registers that elegant code and high-level
       | languages otherwise would not touch.
        
       | prof-dr-ir wrote:
       | How about just adding a disclaimer at the top of the readme that
       | the code was written 15 years ago by a much less experienced
       | version of you?
       | 
       | You can add that the statute of limitations for this code has (in
       | your humble opinion) expired, so those wishing to judge you might
       | want to look instead at your more recent projects.
        
       | kayamon wrote:
       | If you can explain what's bad about it and how you've improved
       | since, you never have anything to worry about.
        
       | xzlzx wrote:
       | Each of us started out writing shit code. Don't sweat it. Your
       | ideas and code add to the lexicon, whether it's written perfectly
       | or not. Publish and don't look back.
        
       | andai wrote:
       | As long as you're learning, old code will make you cringe, though
       | it gets subtler over time.
       | 
       | Though, sometimes things turned out rough because I was too
       | impatient to learn the right way (especially for one-off
       | programs).
       | 
       | My favorite example is when I didn't know how loops worked in
       | PHP, so I wrote an ActionScript program that generated hundreds
       | of lines of PHP instead...
        
       | eeue56 wrote:
       | I tend to put anything other there that I consider interesting
       | for others to see, or something that I might want to share with
       | others. For example - ways to to abuse a type system, or how to
       | do something weird like embedding Elm within React. The truth is
       | that if you put out a lot of code, very few people will see any
       | of it, unless you intentionally and directly share with them. If
       | you're applying for a job, chose your favourite repos and send
       | them over. If you want to avoid any form of judgement, just put a
       | disclaimer in the readme. When it comes to games - there will
       | never be enough open source games out there. Being able to see
       | how something done, however hacky, will be great for hobby game
       | programmers.
        
       | tomashubelbauer wrote:
       | Yes, you should do it and others interested in old games and
       | tools that are closed source should try emailing their authors
       | and asking them to consider open source. I've successfully
       | convinced people to open source SEImgTool, an old utility for
       | extracting images from firmware files for old Sony Ericsson
       | feature phones, BFSunpack, a tool to extract game files for the
       | 2006 game Flatout 2 and I think I contributed to open sourcing
       | Dink Smallwood, because I remember asking the author and now it
       | is open source and there is a lively community around it. Still
       | have work ahead of me convincing Sony to open source the above
       | mentioned firmware, whoever owns the rights now to open source
       | Flatout 2 and I could stand Supreme Snowboarding (in the US known
       | as Boarder Zone) being open sourced as well! One can dream. But
       | also, one can act and ask and sometimes it works!
        
       | caxco93 wrote:
       | I think that the fact that you have managed to finish and ship
       | more than 1 game is amazing in itself.
        
       | microflash wrote:
       | After every six months, whatever I had written feels a mess. So
       | it is fine to publish things and improve over time. Or keep the
       | repository private and make it public when you feel like it.
       | 
       | Regarding feedback on your code, receive it as a criticism of
       | your code (and not yourself) and you should be fine.
        
       | thesnide wrote:
       | I cannot care less about "embarrassment" when I publish code.
       | 
       | Code is code. Everyone has its own style. Every project has its
       | own constraints.
       | 
       | I guess you didn't write bad code on purpose. You wrote it
       | because it was the best way at the time.
       | 
       | And, frankly, if someone mocks you because of code you wrote
       | somewhere, it's a good sign to ignore them. I don't mean code to
       | be included in some other projects, but code that you wrote for
       | your own eyes.
        
       | mauvehaus wrote:
       | Go for it! Hell, I threw up some current code on GitHub that's
       | arguably embarrassing (link in profile).
       | 
       | It's not like anybody posting crummy code in answers on
       | stackoverflow is worried about the quality reflecting on them. Or
       | the blog entries that are more or less "I've just learned
       | $technology; now I'm going to tell the world!"
       | 
       | If you've at least got a fully baked project, even if it isn't up
       | to your current standards, you're miles ahead of some of the code
       | people publish.
        
       | jmclnx wrote:
       | I have things out in github that is very embarrassing, so go for
       | it.
       | 
       | But I wonder if putting embarrassing things in github would hurt
       | future job searches ? I very much doubt that since the people
       | doing the hiring will not have any idea what they are looking at
       | :)
        
         | SlowAndCalm wrote:
         | I do it, as I like the idea that if one other person finds it
         | useful then it's worth it. I don't put my github on my resume,
         | but my username is my name so it's easy to find and definitely
         | has come up (sometimes indirectly) in interviews. For me, the
         | best interviews have had good discussions about the good, the
         | bad, and the why. From the perspective of trying maximise my
         | desirability to all employers, it has definitely "hurt".
        
         | jll29 wrote:
         | One can put a disclaimer in the README to mitigate this saying
         | "I wrote this when I was twelve", then future employers may
         | forgive that your game code isn't optimized for 64 bit multi-
         | core CPUs and your comments don't compare favourably to Fred
         | Brooks' comments (may he Rest In Peace).
        
         | tomashubelbauer wrote:
         | I have a lot of embarrassing stuff on Github and an interviewer
         | has never asked me about any of it. Sometimes they'll ask me to
         | show them my work that I can (is not proprietary from previous
         | employments) and I'll pick a few of the better looking repos to
         | browse thru and provide context. But nowadays I put half my
         | prototypes out there in the open by default so maybe the
         | interviewers just don't go through many of the repos if they do
         | check them out.
        
       | noufalibrahim wrote:
       | I vote for publishing it. A full product that several people used
       | is an achievement and that the code might embarrass you now shows
       | that you've grown.
       | 
       | I have my earliest programs on 5.25" disks at home which are
       | probably too damaged to read from but which I've never even been
       | able to try since i don't have access to a drive anymore. If i
       | could, I'd put my earliest BASIC programs on GitHub.
        
       | tombert wrote:
       | Any sufficiently large project will have disgusting code at some
       | point. Code that exists (and works) is 100x more beautiful than
       | elegant code that doesn't.
        
       | mrich wrote:
       | Recently I dug out the source code for a game a friend and myself
       | made in school in 1997. It was amazing to compile it, which it
       | did flawlessly in a DOS/Turbo Pascal emulation. Playing it with
       | my kids was an amazing experience. The code is definitely
       | something I would be embarassed about from a
       | readability/maintenance standpoint today. But on the other hand
       | it can play back video on a 80286 processor :) And I believe
       | everyone understands that you make progress over the years. So I
       | can recommend it, go for it!
       | 
       | My game is available at Github here:
       | 
       | https://github.com/mrichtarsky/K-BOOM
        
         | pjc50 wrote:
         | Nice! This prompted me to post my own code from the same era:
         | https://github.com/pjc50/ancient-3d-for-turboc
         | 
         | I guess I should add screenshots.
        
       | drdec wrote:
       | Go ahead and publish and put your feelings about the quality of
       | the code in the README. Bonus points if you have some thoughts
       | about how you would approach things differently now, if only you
       | had the time.
        
       | ysavir wrote:
       | Should you be embarrassed by the code you wrote 15 years ago, or
       | proud of the progress you made in those 15 years? It's all a
       | matter of perspective, and you get to shape the type of
       | experience you'll have.
        
       | justsomehnguy wrote:
       | > because it might reflect badly on me as a developer
       | 
       | You don't want to work with someone who would think badly of you
       | for some more than a decade old projects
        
       | simonw wrote:
       | Anyone who judges someone else based on the quality of code they
       | wrote 15 years ago is not somebody whose opinions you should
       | respect.
       | 
       | Honestly, judging anyone else by the quality of the code they
       | have shared is pretty poor form - unless they explicitly say
       | "this code is amazing and you should respect me because of its
       | quality".
        
       | jt2190 wrote:
       | Context is key here: I would strongly urge you to to create a web
       | page for the games, where you can provide details that a reader
       | won't get from the source code alone, for example:
       | 
       | * who was the audience/market for this? * what led to some of the
       | technical choices you made? Benefits? Tradeoffs? * what did you
       | learn? What might you do differently today? * What other
       | tradeoffs that affect the code? Time to market? Only an hour a
       | week of dev time?
       | 
       | This code has a story to tell, and only you can tell it.
       | 
       | Fellow HNers: Do you know of good examples of "code stories" that
       | you can share here?
        
       | jakelazaroff wrote:
       | I made an online "museum" of every website I've ever made that I
       | could find the source code to: https://jake.museum
        
         | rambambram wrote:
         | Nice memory lane! I like the color combos you use, especially
         | the first site. I've this in the corridor in my house, with
         | flyers and other visual designs I made back in the day. I
         | always look at it and realize I was less skillful then, but
         | still care about the same underlying concepts.
         | 
         | By the way, your RSS feed gives an error. Now I can't get
         | updates from your interesting blog posts.
        
           | jakelazaroff wrote:
           | Oops, looks like there was an invalid character in one of my
           | posts. Should be fixed now -- thanks for the kind words and
           | for subscribing! :)
        
       | m3047 wrote:
       | If it has "artistic" or other redeeming value, go for it. Write a
       | README or blog (or three) covering what's unique or important, or
       | how it fits into some historical narrative. Just be clear with
       | yourself on what you expect to get out of it, and how much work
       | you're willing to put into feeding your pet.
       | 
       | I published something once which was three lines of code. It was
       | useful; anyone could do it, but nobody did (a modem dialing
       | script, of all things). The (often multipage) requests for
       | releases to publish were an unexpected annoyance; I always tried
       | to respond politely that I didn't feel it manifested the
       | requisite originality to be a protected work, and that if they
       | printed the email out and sent it to me with a self-addressed
       | stamped envelope I'd sign it and send it back.
       | 
       | I publish https://github.com/m3047/trualias (checksummed on-the-
       | fly email aliases) even though I consider the code far from
       | perfect: it works, it defines a grammar (which I'm happy with),
       | and it has (pretty comprehensive) tests for that grammar. The
       | most important aspect in my opinion is the grammar and a working
       | proof of concept. (To my bemusement it also has the most stars of
       | any of my projects on GitHub, go figure.)
        
       | nicoburns wrote:
       | I have a 10 year old project on Github. I even have it on my
       | resume. The code is nothing like what I would write today, but I
       | think that's implied by it being 10 years old. And I'm personally
       | quite proud of what I produced, even though I would do it
       | differently now.
       | 
       | Project is a WSYIWYG editor
       | (https://github.com/nicoburns/ghostedit) if anyone is interested.
       | I wouldn't recommend anyone use it these days, but it could be
       | interesting as a relatively small codebase to learn from if
       | anyone is interested in how contenteditable in web browsers
       | works.
        
       | Donckele wrote:
       | I've had this thought for some time and only last week did I
       | visit my github page to see what I could do. An idea was to merge
       | all the "beginner" repos into a single repo.
       | 
       | Turns out that recent repos are not to shabby at all and all the
       | other older repos are sort of kinda cute and show that I've been
       | having about for some time.
       | 
       | And of course I have private repos for "pro" work.
       | 
       | My advice is to make public some recent serious work and all will
       | be good.
        
       | shadowfoxx wrote:
       | I firmly believe that a finished, running project - no matter how
       | embarrassing the code will not make the person who developed it
       | look bad. Human endeavors are difficult and nothing incredible
       | was made by one person. Additionally, when we make things in
       | groups it isn't one person who's perfect and everyone else is
       | being shaped by that one person. We all learn and grow and help
       | each other learn and grow.
       | 
       | I suggest posting things that make you uncomfortable due to their
       | 'quality' because the more you do it the more you'll start to
       | dissolve that part of your ego that is pre-embarrassed by the
       | imagined responses of people who have yet to review your work. I
       | say this as someone who is struggling to finish a comic written
       | by one of my friends for this very reason.
       | 
       | Do the thing - put it out there (if you have the inclination) -
       | learn - lather - rinse - repeat.
        
       | zzo38computer wrote:
       | If it is bad, then hopefully someone will improve it.
       | 
       | Even if it has "low 4:3 resolution" that is not necessarily a
       | problem; some people might prefer that.
        
       | h2odragon wrote:
       | Go ahead and publish it. Anyone who thinks less of you now, for
       | the stuff you didn't know a decade ago, is someone whose opinion
       | you're better off not caring about anyway.
        
       | jimmydean12 wrote:
       | I've learned a lot over the years by reviewing old code. It might
       | not be elegant but your methods might spark an idea for someone
       | else.
       | 
       | Sometimes elegant well structured code that is 50 revisions deep
       | doesn't tell the story anymore
        
       | bullen wrote:
       | I'm about to relaunch a 2D MMO title I made in 1999-2001 with new
       | graphics.
       | 
       | It's all in Java and uses MySQL.
       | 
       | Should be fine! :D
       | 
       | Don't know if I would publish the source though, unless it's
       | successful and people want to mod it.
        
         | jlundberg wrote:
         | This sounds exciting! Where will this become available to play
         | when you put it online? :)
         | 
         | Also, have a look at Canvas Legacy if you want some
         | inspiration.
        
         | lucb1e wrote:
         | Why not publish the source, though?
        
       | HankB99 wrote:
       | I'd be delighted with any attention my code on Github got, good,
       | bad or otherwise.
       | 
       | The only thing that would embarrass me is the number of things I
       | start and never finish.
       | 
       | As far as suggestions for improvement, I'd be happy for any. But
       | I understand the reluctance of the OP. This is a little like my
       | impression of code reviews. That's like standing in front of your
       | coworkers, naked, and asking them to point out any "opportunities
       | for improvement" with your body. I wonder if there is a strategy
       | for code reviews that avoids this.
       | 
       | (HankB on Github (for anyone curious.)
        
       | generalizations wrote:
       | I think you should publish it, with the perspective that in 10
       | years from now, you'll be equally embarassed about the code you
       | write today. You're constantly growing - and your code tracks
       | your progress. You should be proud of that.
        
       | ocdtrekkie wrote:
       | Always share code if you are able. It may be useful or
       | interesting to someone in ways you may not expect.
       | 
       | Also, I don't know if this helps: But I consider myself a bad
       | programmer, and assume everyone writes better code than me. It's
       | probably not _universally_ true, but I also don 't feel ashamed
       | of any given work I do: I tell people liberally I'm bad at coding
       | but it works (if it works). It also puts my mindset in a great
       | place to try to learn from everyone else I interact with.
       | 
       | One project I shared not too long ago I announced by describing
       | it as a "crime" against the platform, and almost certainly "a
       | really bad idea".
       | 
       | Just ship your code.
        
       | steelegbr wrote:
       | I took the plunge and published some of my old projects over at
       | https://github.com/steelegbr?tab=repositories
       | 
       | Yeah, I'm not proud of the way I wrote the code 17 years ago
       | (historic-alldaydj-1) but it's fascinating looking so far back
       | and comparing it what I'd deliver today. If someone finds use for
       | it, fair play to them.
       | 
       | On that note, I probably ought to dig out the RoTs (tapes) from
       | my days as a radio DJ on a long defunct station...
        
       | WalterBright wrote:
       | Publish away. I published all my old source code (that still
       | exists and I legally can), some of it 45 years old. It doesn't
       | matter how embarrassing it is, just say "I've learned a few
       | things along the way" but frankly nobody is going to complain
       | about it.
       | 
       | If someone is rude enough to complain, they are not worth your
       | while.
        
       | anxiously wrote:
       | My suggestion is to go for it.
       | 
       | With that being said, do take the time to examine the git commit
       | messages and code itself.
       | 
       | I have certainly caught myself from publishing projects that
       | contained words or jokes that would not go over well in 2022 :)
        
       | aaronbrethorst wrote:
       | I just published the source code for the first app I ever built,
       | all the way back in 2003:
       | https://github.com/aaronbrethorst/irooster
       | 
       | It "turns your Mac into a $2,000 alarm clock."
       | 
       | I originally made it because I had endless amounts of trouble
       | waking up for my morning classes in college, and found that the
       | only alarm that could get me up was a subwoofer right underneath
       | my bed. So I hooked a 2.1 speaker system up to my Mac, wrote a
       | little app to start playing an iTunes playlist at a particular
       | time, and ended up productizing it.
       | 
       | It was never a huge commercial success; I think the best I ever
       | did with it was about $2,000 in sales one month after Apple
       | featured it in a newsletter (different times!), but it taught me
       | several important lessons about building a commercial software
       | product that still guide me today.
       | 
       | Enjoy checking out my super janky code!
        
         | andai wrote:
         | That's a great idea with the subwoofer. I slept straight
         | through my digital alarm the other day. What wakes you up now?
        
           | aaronbrethorst wrote:
           | My Apple Watch has been a great alarm clock for the past few
           | years. Its gentle taps on my wrist never fail to wake me up.
        
         | _fat_santa wrote:
         | Back when I was in college me and a few classmates put together
         | a site where you could share files with others using a link.
         | Looking back at it, there are so many issues with the code,
         | from just about every perspective. Up until recently i still
         | kept it as an item on my resume, described something like "my
         | first web app project, preserved with all it's bad code and
         | questionable practices".
         | 
         | https://github.com/sgolovine/transmit
        
         | mauvehaus wrote:
         | I realize that this may not be in the spirit of the question
         | being asked, but could this not be done with the following?
         | 0 6 * * 1-5 open /path/to/bangin/tunes.mp3
         | 
         | I'm all about reinventing the wheel, but that's a lot of code
         | to replace cron :-D
        
           | lelandfe wrote:
           | > could this not be done with the following
           | 
           | Well, that depends. Does your shell oneliner have a GUI?
           | You're also not playing an iTunes playlist, so you'll
           | probably need to parse the ITL file
        
             | aaronbrethorst wrote:
             | Gotta wake the computer up from sleep too. And be able to
             | unmute and adjust the volume. And give non technical users
             | the ability to use it. And support Apple's old infrared
             | remote. And. And and.
        
       ___________________________________________________________________
       (page generated 2022-11-20 23:01 UTC)