18 ms·
As I retire, my goal now is to release 40+ years of source code
- keepamovin 3y agoThis is wonderful. Thank you. Very moving that you choose to share this!!! Thanks for making a positive impact on the world.
- deleted 3y ago[deleted]
- sakesun 3y agoRespect. I'll follow when my time come.
- tqwhite 3y agoAt 70, I do not think anyone has anything to learn from my 40+ years of code. I envy Mr Mindfactory's confidence.
- paulryanrogers 3y agoThanks for your humility. Still, please consider sharing what you can -- even if only with customers of your software. We all have so much to learn. (I do regret giving too much of my time to free projects, yet have found a satisfying balance by including source with purchases of software I sell.)
- ofey404 3y agoThank you! You show me a living history of computer programming.
- m3kw9 3y agoI like how he puts his email as a captcha https://dunfield.themindfactory.com/contact.htm https://dunfield.themindfactory.com/contact.htm And slyly tells you the “password” to get past his spam filter
- eliben 3y agoThis code is enjoyable to look at - it's clean, well-documented, and clearly a work of love. I like all the small utilities that help the author accomplish a bunch of goals. I wonder if the code manages be so clean because it's only aimed at a single compiler and a single platform. Multi-platform C code tends to be messy with preprocessor goo.
- snvzz 3y agoNot using a standard license but rather a bespoke one is a major legal roadblock. The presence of use restrictions does also disqualify it from being Open Source (OSI trademark) or Free Software (GNU/FSF). If a standard license was adopted instead, such as MIT (permissive and I believe well-aligned with the intent of the author), then any concern would go away.
- dingdong33 3y agoWhy didn’t he use more memory safe rust?
- LastTrain 3y agoThis is great - add them to github!
- megous 3y agoOr maybe don't feed the machine...
- outside1234 3y agoIf it is not on Github it is never going to feed anything
- quickthrower2 3y agoA http server is all you need
- TedDoesntTalk 3y ago… which dies with the author, or a couple years later when his domain expires.
- quickthrower2 3y agoYou believe that Github is some kind of heritage organisation? Incentives are aligned now, kind of, except they train an AI that they sell to other people on your code. I use Github but do it with open eyes.
- sesm 3y agoGitHub has Arctic Code Vault program.
- quickthrower2 3y agoJust looked it up. That is impressive. Probably could do with some Antarctic geo redundancy ;-).
- xeckr 3y agoGood idea. I should keep better track of all the stuff I've written...
- jart 3y agoI'm taking a look through DOSUTIL.ZIP and I love all these simple elegant C programs. A lot of these programs somehow only manage to have 1-2 standard c #include lines. How often do you see that? I also love how, out of 20,000 lines of C code, there only exists 24 #if statements. This is how C programming was meant to be. Reading codebases like this is one of the things I drew inspiration from when I started working on Cosmopolitan Libc.
- kelsey9876543 3y agoJustine, you are one of less than 5 programmers that make me feel envy. Hope to have a coffee or a whiskey with you some day if we ever cross paths. Enjoy your day, you are an inspiration and goals. Both mental goals and presentation goals, which is essentially unheard of.
- duskwuff 3y ago> A lot of these programs somehow only manage to have 1-2 standard c #include lines Older C compilers will let you get away with a lot of sins which a modern C compiler will (correctly) call you out for.
- jart 3y agoWe can still get away with those sins today if you change C's implicit type from int to long. I modified chibicc to do just that it was a 1 LOC patch. Suddenly I didn't need prototypes anymore and everything just worked without #include lines.
- duskwuff 3y ago> Suddenly I didn't need prototypes anymore Under some very old C standards, maybe. But C99 requires that you at least declare a function before calling it.
- fuzztester 3y agoPascal had a forward declaration from way back, even before Object Pascal: https://en.m.wikipedia.org/wiki/Forward_declaration https://en.m.wikipedia.org/wiki/Forward_declaration https://en.m.wikipedia.org/wiki/Pascal_(programming_language) https://en.m.wikipedia.org/wiki/Pascal_(programming_language... https://en.m.wikipedia.org/wiki/Object_Pascal https://en.m.wikipedia.org/wiki/Object_Pascal https://www.thedelphigeek.com/2017/03/forward-record-declaration.html?m=1 https://www.thedelphigeek.com/2017/03/forward-record-declara...
- pbhjpbhj 3y agoelvis70 are you Dave Dunfield (the source author)? [It might be more a ShowHN if you are?] I'm interested if all of the code is self-written? If you wrote any of it under contract and so had special terms to allow you to eventually release it? Which piece of code there that you are most proud of and/or gonna most useful?
- elvis70 3y agoI'm not Dave, but here's a thread on Vogons in which he announced his project, you could possibly contact him from there: https://www.vogons.org/viewtopic.php?f=7&t=97034 https://www.vogons.org/viewtopic.php?f=7&t=97034
- jandrewrogers 3y agoI love this. It has crossed my mind more than once to do something similar at some point in the future. This is a bit like receiving an inheritance from your grandparents. There will be true gems and novelties mixed in with a lot of knick knacks and rubbish. But the totality of that tells a story of real people living rich and interesting lives that only a handful of highlights would not do justice to.
- albertzeyer 3y agoWhy only when you are retired? Why not just right now?
- micromacrofoot 3y agodepending on how organized you are... this can take a lot of time
- chatmasta 3y agoI can definitely relate to this feeling of "when $this is all over, I'll open source a bunch of it, but it's too much work to factor it out now," where $this is more often a company or project than a career. Sadly, it almost never happens. It just goes to show the importance of open sourcing what you can, as you can (in other words, "now or never"). But it's a lot more work to do that than people imagine, even when they say "well just release it in the least polished form possible." You've still gotta deal with adding a new boundary to your codebase, which not only requires additional effort but also increases complexity of the wider project and makes it impossible to refactor without first refactoring a cascade of miniprojects you've created within it.
- josephg 3y agoI often think of source code like moulding clay. While you’re actively working in a codebase, the clay is moist and malleable. Making changes is easy, because the context of what it does, and how it’s organised is fresh in your mind. But if you move on to another project and let time pass, the clay dries out and becomes brittle. When you open the project up again, it takes time to “wet the clay” - and remember all that context that you’ve forgotten. It’s easy to add bugs, or reimplement methods that already exist somewhere else under a different name. But over time, you work water into the clay and it becomes malleable again. I agree with your comment. Refactoring software to split out libraries that you can opensource is a lot of work. More work than people realise. But if you think refactoring is a lot of work when the clay is wet, it’ll be many times harder if you let the clay dry first. Refactoring as you work is always the best way, because it’s often the only way to get it done.
- VirusNewbie 3y agoPut it on github! You might actually get people to fork it and continue working on it.
- myself248 3y agoThat implies that it needs people to continue working on it. Is there no such thing as "done" anymore?
- screamingninja 3y ago> That implies that it needs people to continue working on it. It does not. > Is there no such thing as "done" anymore? Is there no such thing as "building upon it" anymore?
- deleted 3y ago[deleted]
- nihiven 3y agoThis is really cool. It seems very 'pure' in comparison to what my code history will look like. In 2040, a lot of my code will show how I used a bunch of libraries and frameworks that nobody uses 'these days'. This doesn't seem good or bad, just a reflection of the times.
- swatcoder 3y agoAnd unless you put in the effort to archive those dependencies yourself, nobody may be able to truly read or build your code anyway. Today’s trendy development practices are shockingly ephemeral and fragile. Very little of today’s projects would survive one decade left fallow, let alone four.
- soulofmischief 3y agoChecking dependencies into VCS should be more common as with yarn PnP and such.
- dotancohen 3y ago> Very little of today’s projects would survive one decade left fallow, let alone four. I hate to break it to you. 2040 is less than half as distant as you think it is.
- soulofmischief 3y agoI want off this ride.
- dotancohen 3y agoIt will be over sooner than you think it will be.
- BobaFloutist 3y agoI think that's somewhat the curse of technology. It's so hard to make anything from scratch. How do you get metallurgy working without already having metals? How do you get electricity running without an outlet, or at least powerful, easily sourced magnets? Thinking about the "dependency tree" for any modern convenience is truly staggering. I can't even start to think about how you can make a factory without first having a factory.
- outside1234 3y agoPlease put it on Github - nobody will ever find this otherwise
- 38 3y agoIt's on the front page, so your comment seems pretty tone deaf.
- outside1234 3y agoFor today -- and tomorrow everyone forgets about it.
- 38 3y agoit being on GitHub does not keep it in peoples memory. so this argument is not sound. if it was on GitHub, and it made it to the HN front page, "tomorrow everyone forgets about it" would still apply.
- strangattractor 3y agoHate to say it but I remember when this stuff first came out. Thank you for releasing the code. Brings back memories.
- thecyborganizer 3y agoFrom STYLE.TXT: - True=7 - Having lots of very low-level code and hardware experience, I developed a bit of tendancy to "minimize what can go wrong at low levels" - C treats 0==FALSE and !0==TRUE - most people use 0/1 ... but thats only 1 bit "difference". I sometimes use 7=TRUE as thats 3 bits with no more chars to type (and of course foolish as such a 1 bit hardware error would "trash" pretty much any system - but I do tend to be a creature of habit :) I have never heard of this convention before! Was "random bitflips messing with your conditionals" a common problem back in the day?
- kqr 3y agoEven if it was, are you really going to think of every conditional as a tri-state boolean? Or will you assume that one of the branches is safe to execute during failure? Or will you count the number of bits in each conditional and assume more ones than zeroes is a true, with no error correction? Will you log that a bit has flipped or otherwise alert the operator? Will you consider that as evidence that an int has changed value too? Will you store ints with three bits per bits also? Error detecting codes have their place, but it takes more than just saying that true is 7.
- benj111 3y agoSlightly off topic, but why did 1 become the truthy value and not -1? Logical nots would then work. And youre still an inc/Dec away from the opposite.
- never_inline 3y agoThat depends on a) Two's complement representation and b) Wraparound on arithmetic, which is still UB in low-level languages.
- benj111 3y agoOk. I used -1 as a short hand for 0b11111111(11111111(1111111111111111(11111111111111111111111111111111)))) Not doesn't rely on wrap around arithmetic. Wrap around arithmetic is only undefined for signed values. What platform doesn't wrap around signed integers? Just because c has some undefined behaviour, doesn't make it some natural law of the universe.
- myth_drannon 3y agoI like to download images of old programming CD's from archive.org, like Programmers Heaven[1] for example. All small and interesing programs/tutorials to look at. [1] https://archive.org/details/Programmers_Heaven_InfoMagic_March_1997 https://archive.org/details/Programmers_Heaven_InfoMagic_Mar...
- TMWNN 3y agoVernor Vinge's A Deepness in the Sky depicts a human society thousands of years in the future, in which pretty much all software has already been written; it's just a matter of finding it. So programmer-archaeologists search archives and run code on emulators in emulators in emulators as far back as needed. <https://garethrees.org/2013/06/12/archaeology/ https://garethrees.org/2013/06/12/archaeology/> You've made a contribution to the hoard that someone will benefit from, whether tomorrow or in 5,000 years.
- egometry 3y agoThe part about the modern (read: far future) calendar being commonly thought to be based on mankind's first moon landing but ACTUALLY being based on the Unix Epoch is a favorite amoungst engineers I know that love Vinge
- ceva 3y agowhy not somewhere on git? :(?
- jhallenworld 3y agoI think his most impactful utility is ImageDisk: used to archive floppy disks from many different types of computers using IBM PCs. Much of the old software found on bitsavers.org (and archive.org) was recovered using this utility.
- razster 3y agoAnother link from DDS is Dave's Old Computers http://dunfield.classiccmp.org/ http://dunfield.classiccmp.org/ , a nice treasure of old pc reviews and images, (Left, right, front and back). This is amazing as I've been working on making 3D assets for a project of mine.
- JaDogg 3y agoVery nice. Hope you enjoy your retirement. ---- One last bugfix before retirement (this is a joke): I wanted to look at micro-cad it generates a 404. URL: https://dunfield.themindfactory.com/dnld/sc/MICROCAD.ZIP https://dunfield.themindfactory.com/dnld/sc/MICROCAD.ZIP Expected: I can download the .zip file.
- alisoncopeland0 3y agoI wish I remembered how...my car accident made me dumb ...
- alisoncopeland0 3y agoI wish I remembered code my car accident made me dumb...lol
- bilekas 3y agoThis is brilliant.. It's so interesting too because over the years I've built up a few "Bibles" that I always need on hand when working in a particular language or even just automation, I've learnt some very good organising processes (from HN to be honest), I never thought to 'release' them as they feel quite personal and specific for my mental process. Looking through some of these though, I think I'm inspired. Super cool idea, I would donate to the retirement project financially to say thanks if possible.
- absoluteunit1 3y agoI’m curious, what do you mean by “Bibles” exactly ? And what are the organizing processes you learned; I’m always eager to learn productivity tips/software from others
- dotancohen 3y agoI have quite a few of these bibles too. I'd love to swap some files if you're interested, I'm sure there is much to learn from yours. My Gmail username is the same as my HN username if you are interested.
- absoluteunit1 3y agoAh but when you say “bibles”, what do you mean exactly? Is it just common/useful code you fold related to a particular language/framework? Could you elaborate on this
- dotancohen 3y agoUsually there's a getting started section, mostly links to important nuances in the fine documenting and short code examples. Then there will be a section for each problem that I've encountered - often things that I've solved by reading Stack Overflow answers. But then there are the footguns and pitfalls - this is where the real value of these files lie.
- absoluteunit1 3y ago
- varjag 3y agoI regret not archiving my early code for good so much. First non trivial program (a snake game). First utility in assembly. First device driver (for a Centronics printer). That perpetual calendar in Pascal for a uni assignment, written with enormous hangover within an hour and still my only program written entirely bug-free to the date. All seemed trivial and not worthy of preservation then but in the end I have no code surviving from before late 1990s. Take good care of your code kids!
- gpcz 3y agoI have a lot of my old code, but I never want to look at it because it's super-cringe.
- magicalhippo 3y agoI lost the first 5-6 years of code thanks to an IBM Deathstar[1] when I was 20. Got really depressed by it at the time, as it included most of the projects I worked on at the time. After that I got super paranoid about having backups. I do enjoy going back and looking at the code I still have though. Being self-taught it's mostly not terribly great, but I do have fond memories of finally cracking a certain nut or figuring out some neat trick. [1]: https://en.wikipedia.org/wiki/Deskstar https://en.wikipedia.org/wiki/Deskstar
- snvzz 3y agoThat tough lesson about backups. Many a person has had to learn it the hard way.
- grepfru_it 3y agoLeft all backups at a remote storage facility. Remote storage facility called me one day and said all of your hardware and media has been lost, except for this one [insert oldest most worthless computer of the bunch]. Cue me raging, cursing out this storage facility, threatening to never communicate with them ever again. Finally accepted the fault lied within me. Up until yesterday, I only had redundant storage but no true backups. So I purchased an LTO-5 and now I have two backup sets onsite and a third offsite at my colocation facility. In this story the remote storage facility was my mom's house shortly before the GFC. The hardware were varying PS/2 computers from 286 to 486s with hard drives of zip files of my QBASIC, TurboPascal, Delphi, and VisualBasic code. The only hardware saved was our first computer, an 8088. All because she didn't want the clutter in the house anymore. No contact, no chance to retrieve said wares.. just poof gone. Gone were the Z80 ASM files of my rendition of PunchOut for the Ti-83+. Can't reference my old writings that I saved in various TXT files on the gazillion 3.5" floppy disks I kept in an old laundry basket. 5.25" floppies of DOS installs, random games, and an ancient version of SCO Unix. Gone. Everyone learns the hard way.
- ai-epiphany 3y agothanks for the tokens
- bilekas 3y agoQuick question because I can't actually find any info on it, but what license are these released with ?
- fallat 3y ago[flagged]
- nick238 3y agoThough because that license says "for any reasonable purpose" it's something that's vague when it comes to "is this FOSS" as it's vaguely Crockford-like ("this software shall be used for Good, not for Evil"). The [OSI requires](https://opensource.org/osd/ https://opensource.org/osd/): > 6. No Discrimination Against Fields of Endeavor > The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research. [GNU/FSF](https://www.gnu.org/philosophy/free-sw.html https://www.gnu.org/philosophy/free-sw.html) have as "Freedom 0": > The freedom to run the program as you wish, for any purpose
- bilekas 3y agoSo honestly I didn't read the "COPY.TXT" .. I wouldn't expect a license to sit there, and I didn't consider that a license personally, I was expecting a defined license.
- jcmoscon 3y agoYou have the same name as the billionaire guy. Are you him? :)
- accrual 3y agoI downloaded RINGSW.ZIP to check it out. > This file is NOT included in the demo version of this product. > For more information, please contact Dunfield Development Systems I admire the effort, but if you're not going to make the source freely available, what's the point? What is somebody going to do 100 years from now when they get your .zip off archive.org and you're long gone?
- legends2k 3y ago> what's the point? What is somebody going to do 100 years from now when they get your .zip off archive.org and you're long gone? The author seems quite aware of this. He calls it out specifically: it's for learning and curiosity purposes.
- cxr 3y agoThe seem to be three points of confusion here: Confusion on your part regarding what the other commenter's complaint is. The complaint is that the source code archive they downloaded did not contain the source code. It contained an old copy of a shareware notice instructing the reader to write to Dunfield for access to the source. Confusion on Dunfield's part: specifically, the belief that he had included the correct version of RINGSW.C when republishing this stuff to celebrate his retirement. Finally, confusion on the part of the other commenter here, involving an assumption that Dunfield's oversight was a deliberate decision.
- accrual 3y agoThanks for clearing things up. I was indeed too hasty with my initial comment and didn't consider it wasn't a deliberate decision. Thanks again.
- accrual 3y agoSurely, but the author also says: > my goal now is to release 40+ years of source code And there was no code in the .zip. Shrug.
- asdefghyk 3y agoTHere are reasons not to host on GitHub . There are workarounds to hosting on GitHub Google words why not put software on git hub Finds https://sanctum.geek.nz/why-not-github.html https://sanctum.geek.nz/why-not-github.html OR https://www.wired.com/2015/06/problem-putting-worlds-code-github/ https://www.wired.com/2015/06/problem-putting-worlds-code-gi...
- speedylight 3y agoThis is sort of unrelated OP, but did you ever write a follow up to this post? https://dunfield.themindfactory.com/2019.htm https://dunfield.themindfactory.com/2019.htm I’m very curious how well you’ve improved since then. -
- potwinkle 3y agoVery cool to see such a long history, were the different projects you worked on related to what was going on at your job at the time?
- onesphere 3y agoWarranty?
- yndoendo 3y agoAny one catch the out of memory comment? # we require more vespene gas; unix consensus; kNtErrorOutofmemory;
- golem14 3y agoWorth reading the Author's recollections of his almost dying in 2019: https://dunfield.themindfactory.com/2019.htm https://dunfield.themindfactory.com/2019.htm
- m3kw9 3y agoGrim af but that looks like a happy ending
- haolez 3y agoThat was intense. It made me think about my father in law, who had a heart attack in 2015 that compromised 90% of his heart. His exams are so ugly that one of his physicians refused to threat him, probably worrying that he might die any minute during the appointment. He is still alive today, he has a normal life and he even manages to go for a run in the beach every saturday. His exams haven't improved, he is always out of breath, but he just refuses to die. It's like what the physician said in the link above: "You look a lot better than what's in the paper".
- hnthrowaway0315 3y agoStrangely reminds me of "The Shadow out of the time" by the reverent HPL.
- winrid 3y ago> "Hug his children. Sleep in his own bed. Eat his meals. and Work a little with his hands." in her words "They shot everything she said down" Anyone know why doctors do this? They did the same thing with my father when he wasn't getting better (leukemia with pneumonia) and they couldn't get him off the breathing tube. They were very adamant he'd be disabled for life.
- kingds 3y agodoctors are all completely insane and should never be trusted. the process of getting into and through medical school has a selection bias towards type-a sociopaths. and whoever makes it through that wringer and gets board certified has to be constantly on guard for malpractice lawsuits. half sarcastic but mostly i do believe this lol
- kmoser 3y agoNot ready to retire, but I did something like that a few years ago with the previous generation of code I wrote: https://www.kmoser.com/sourcecode/ https://www.kmoser.com/sourcecode/
- aquarin 3y agoSome links unfortunately are broken.
- anArbitraryOne 3y agoGreat LLM training data
- quonn 3y agoWe need a new GPL that includes a clause that prohibits training any sort of AI or statistical model on it, unless the output of that model is inheriting the license. Otherwise AI will be the end of anything open - which we can already see in stackoverflow now.
- Zambyte 3y agoInstead of impeding progress with copyright even more than alwe already do, maybe we should repeal copyright altogether.
- quonn 3y agoIt‘s my time as developer and I choose to license my output however I want. Thank you very much.
- Zambyte 3y agoAs a developer I don't think I should have the right to tell other people how to use their computers (even if they're using code that I wrote). Nor do I think that you should... thank you very much :-)
- whartung 3y agoSo, is this an issue of credit, a recognition thing? Or more an issue of just sharing with the “right” people? I share what I do freely. If someone integrates that trivia and shares it with someone else, so much the better. I offer a fractional shoulder to stand on. Getting hovered up into an AI that then goes on to help someone else isn’t much different than having something random posted on the internet that solves someone else’s stumbling block. But that’s just me.