10 ms·
Tiny Apps
- lsh 9y agoI was curious about how small (file size) and efficient (memory) I could write a program with a GUI and came across this old gem. Most of them have links to their source.
- christophilus 9y agoThis is refreshing to see. I was just at the doctor today, and they mentioned how a recent system update (they use a system called Epic) made their receipt printing go from an abysmal 30 seconds to a full minute. It seems that programs get bloated and slower with each passing day. I'd love to see a Renaissance of small, focused, efficient applications.
- Spivak 9y agoBloat wouldn't even account for a delay this long. This seems to be the realm of bad design or overly cautious developers. My guess is that 'printing the receipt' really means process the transaction hitting a bunch of different record stores and APIs along the way and that the system waits for all of that to complete before sending the print job.
- seibelj 9y agoFrom what I've heard, Epic is the best out of all the EMR (electronic medical record) software platforms!
- snarf21 9y agoQuite the back handed compliment! They are one of the better ones but the bar is extremely low.
- shliachtx 9y agoI wonder why this field hasn't been disrupted yet. It seems ripe for it. Established players. Arcane systems. Poor performance. From what I've heard from employees at Epic their software is something of a nightmare. Is it just something waiting to happen? Is there a company that is already doing this? It could probably be done one independent hospital at a time. Eventually you could get a small network, etc. I understand there is quite a bit of complexity involved, but isn't that what technology excels at? Edit: Did I forget to mention expensive? These systems are not cheap, and usually involve engineers spending weeks or months onsite setting it up. That means there should be a significant of margin to cut out for competition, and/or healthy revenue for a startup, at least further down the road.
- derblitzmann 9y ago(not an expert in this field obviously) I believe that it might have to do with HIPAA compliance and the red tape overhead that scares away potential disruption. But I imagine if someone were willing and able to disrupt it, they'd make money hand over fist.
- bluetwo 9y agoWeeks or months... Try 2 years.
- seibelj 9y agoI work in an industry you wouldn't think is similar (telecom). It's hard to establish trust, it's more complex than you think, it's more regulated than you think, more rules than you think, closing deals takes longer than you think (6 months is long? Try multi-year sales cycles!), big companies will ruthlessly undercut you to destroy you at their own expense... You can't just slap together a single page javascript app and close a deal. You need credibility, capital, time, solid engineers... and most strong engineers will avoid EMR software like the plague given the riches they can make in other areas in 1/10 the time. I wish everyone the best of luck, it needs to happen, but it will be hard.
- x0x0 9y agoI worked at Epic a long time ago. They're a bad employer -- churn that would make the worst valley sweatshop blush -- and even when I worked there had 10s of millions of lines of vb6 and the same in mumps/cache, the world's worst programming language. I'd imagine their systems have broken 100m lines of code by now. You're essentially using software to automate how hospitals and outpatient clinics work. Each one of those has established workflows/procedures; each of those workflows have started or evolved to be (at bare minimum) subtly different than everywhere else. Each and every procedure has to be build into the software or adapted to it. Installs are comparable to installing ERP systems into fortune 500 or fortune 100 companies, with at least comparable risks. Imagine how risk adverse you would be if inaccessible, incorrect, or incomplete health records could quite reasonably contribute to severe medical problems for humans. If you were ever in a hospital for something serious pre EMRs, you would be unsurprised to have a file that is several hundred sheets of paper. Every single scrap of paper in a hospital has to make it's way into Epic's EMR. Oh, and hospitals / clinics often buy these systems piecemeal, starting eg with labs. Your code has to talk to their code. Lots of these got started before web clients worked well, so they're deployed clients. You can't upgrade 10k seats simultaneously, so both the clients and the servers have to be compatible up and down protocol versions. Ponder just how much fun that would be. Or ponder just how convoluted the logic would be to ask if a person who does X in clinic A is allowed to see record B for patient C. In, for example, a hospital chain that may employ 25k+ people in the hospital and various outpatient clinics. And follow up with questioning the idea (and expense!) of retraining every nurse, doctor, aide, tech, etc in a hospital on a new system.
- torrent-of-ions 9y agoThe quality of programmers working for companies like this is terrible. I'm talking about programmers who claim to "know" C++ because they used it once during a computer science project and just managed to avoid getting segfaults too often after lots of trial and error. Writing a small, effective program has been a sign of competence forever because we know that you can't "fake" it. You really have to know what you're doing.
- dahoramanodoceu 9y agoThis is why i have the habit of never updating anything unless it's linux.
- jaclaz 9y agoHave a look at this one (Winexplorer by Edgar Hansen): https://web.archive.org/web/20160710205728/http://donkeysstable.com/ https://web.archive.org/web/20160710205728/http://donkeyssta... https://web.archive.org/web/20160619170739fw_/http://donkeysstable.com/winexplorer.htm https://web.archive.org/web/20160619170739fw_/http://donkeys... Via Wayback Machine,unfortunately, as often happens another dead piece of the internet. The actual Winexplorer tool has not been cached, I just uploaded a copy here: http://www90.zippyshare.com/v/OlyKhob6/file.html http://www90.zippyshare.com/v/OlyKhob6/file.html The compiled executable is 164 kb, and the .zip includes sources. It is a simple replacement for Explorer with a number of nice features.
- lsh 9y agoThankyou, I think I will.
- ethana 9y agoI've been using a replacement of network>Proxomitron proxy filter tool called Proxydomo available on github. God bless the guy that reverse engineered the original. [1] https://github.com/amate/Proxydomo https://github.com/amate/Proxydomo
- kdeenanauth 9y agoWow what a throwback..I've been using Fiddler for some quick proxying but it still doesn't compare to Proxomitron
- brianbreslin 9y agotangentially related: wasn't there a website of single page web apps a few years ago? I'd love to see tiny SaaS or software solutions listed somewhere.
- vbrendel 9y agohttps://www.producthunt.com/ https://www.producthunt.com/
- steanne 9y agonice! mailed them a couple more.
- mmsimanga 9y agoPerhaps you could add software links to your comment. I am always on the lookout for small applications that get the job done.
- steanne 9y agohttp://www.softwareok.com/?seite=Freeware/AlwaysMouseWheel http://www.softwareok.com/?seite=Freeware/AlwaysMouseWheel http://www.nirsoft.net/utils/nircmd.html http://www.nirsoft.net/utils/nircmd.html
- voltagex_ 9y agonircmd is great, although I wonder how much you could replace with PowerShell these days. Invaluable along with SysInternals [1] 1: https://technet.microsoft.com/en-gb/sysinternals https://technet.microsoft.com/en-gb/sysinternals
- steanne 9y agopowershell requires .net. that is no longer tiny.
- voltagex_ 9y agoDepends what boxes you're normally on, but it's a rare day I'm somewhere without .NET.
- shakna 9y ago.NET's memory management can be kinda crappy though, depending of course on the program. Evens out a bit when you start to get complex things. nircmd is low in memory footprint as well as binary size.
- iliketosleep 9y agoProgress is modern computing has only been exceeded in the increased in bloatware! Using these lean and mean apps on modern hardware is heavenly - the way I imagined, 10 years ago, of how things would be today.
- RachelF 9y agoYeah, heaven is old software on new hardware!
- JustSomeNobody 9y agoNot sure of your intent, but: Even the latest MacOS, Windows, Linux, etc are all running decades old chunks of code. And yet, they still run well. Old code is debugged code. It's (mostly) proven code. It's aged leather. It feels good and it just works. Everything doesn't have to be "modern".
- bananaboy 9y agoHey nice! I wrote a minimal Windows console-based hex editor [0] just recently for fun. Maybe I should submit it. [0] https://github.com/samizzo/hexed https://github.com/samizzo/hexed
- pingiun 9y agoThat's really cool! You should submit it
- Lerc 9y agoWhen I see the specs of things like the Raspberry Pi and Apps like this, it makes me wonder how great a system like that could be. Executable size may not be the best measure of these things though. Ram usage of some things can be quite huge. tinyapps.org seems to avoid this by disallowing things needing runtimes, which while not the cause of RAM bloat, often tends to be a common factor. I'd actually like to see an interface for micro controller style apps. Like An 8 bit AVR emulator that could do some kernel syscalls to the hosted environment. It would allow for a class of apps to be written that would have a fixed memory footprint. There's some Irony here in that this would also be a runtime. I once had a volume knob widget on my task bar that used 4 meg of ram. Somehow I feel it could have been done better.
- rebootthesystem 9y agoWriting tiny apps for small constrained systems isn't difficult at all. That's what we did thirty years ago. One neat trick is to use threaded interpretive languages (FORTH). https://en.wikipedia.org/wiki/Apollo_Guidance_Computer https://en.wikipedia.org/wiki/Apollo_Guidance_Computer https://en.wikipedia.org/wiki/IBM_System/4_Pi https://en.wikipedia.org/wiki/IBM_System/4_Pi https://www.nasa.gov/mission_pages/shuttle/flyout/flyfeature_shuttlecomputers.html https://www.nasa.gov/mission_pages/shuttle/flyout/flyfeature... The minute you start touching modern languages and OS's things become significantly more difficult to shrink into small platforms.
- voltagex_ 9y agoI've been thinking about this a lot, mainly due to being grumpy about the proliferation of Electron apps and the effect that's having on my available RAM. When I'm not being so grumpy, I'm glad it's easier to write apps than ever before. I think someone on here posited that it's a choice between something written in Electron or not written at all. I think that's fair enough - maybe we just need to make it easier to write tiny apps. Rust and Go look great, even with a very steep learning curve coming from C# and Python. And yes, I know as a C# developer sitting on top of hundreds of megabytes of runtime, I'm "part of the problem".
- lsh 9y ago
- ethagnawl 9y agoThis calls to mind: http://suckless.org/ http://suckless.org/ > Home of dwm, dmenu and other quality software with a focus on simplicity, clarity, and frugality.
- dkersten 9y agoI love dmenu, its tiny and to the point and just works.
- sundvor 9y agoThe apps may be tiny, but the website itself is (also) a breath of fresh air from times past.
- mi100hael 9y agoI ruefully sort of wish CSS was 100% client side so that all sites would be delivered as plain, unstyled HTML and it would be entirely up to the user how they prefer to see content. Obviously not at all practical, but would make it so much cleaner and easier to read when browsing 90% of sites out there.
- steanne 9y agothe old presto version of opera had an option to default to user css for the whole program instead of the various sites'. don't know if that's still available in the new version.
- est 9y agoMissing this http://www.bcheck.net/apps/hoe.htm http://www.bcheck.net/apps/hoe.htm customized hotkey launcher. Written in assembly I believe. You can modify it far beyond bosskey.
- j_s 9y agoPaging HN user miles! https://news.ycombinator.com/item?id=12985672 https://news.ycombinator.com/item?id=12985672 I'm afraid (or perhaps the word I'm looking for is "glad" ;-) that the Internet has passed tinyapps.org on by. After its fleeting 15 seconds of fame back in 2001 (thanks to a Slashdotting and tiny blurb in Wired), the site has mainly served as an irregular tech blog lo these many years.
- miles 9y agoHa! Thanks so much for the kind shout-out, j_s - what a memory you have! Glad to see my humble corner of the web is still of some small interest ;-)
- j_s 9y agoClearly there is still tremendous interest in the type of efficient software you curated so well back in the day. So many of the programs still work fine today even though their original websites are long gone -- a testament to minimal dependencies, your efforts to archive local copies, and Microsoft's commitment to backwards compatibility! Your blog is always a breath of fresh air any time I happen to stumble by one of your solutions in response to searching for help. Definitely one of my "trusted" sources - don't ever let that domain expire!
- unexistance 9y agointerested 10 years ago, still do to this day :D great job Miles
- jaclaz 9y agoLongtime supporter of tinyapps.org. Go, Miles, go!
- EGreg 9y agoHow did you know he mentioned you? Is there some sort of @mention bookmarklet/browser extension in HN?
- 9y ago
- j_s 9y agoAlthough it was "removed due to copyright violations"[1] in 2003, TinyWindowsGames.com was a work of art. If you don't mind downloading random binaries you can still grab them via the Internet Archive. I will see if I can create a new screenshot of the playable, tiny thumbnail near the system tray (probably microscopic at today's resolutions). https://web.archive.org/web/20030618002602/http://www.tinywindowsgames.com:80/ https://web.archive.org/web/20030618002602/http://www.tinywi... [1] Nintendo reported us to some software theft agency over "Tiny Donkey Kong" (I forget what the agency was called) and that got us threatened us with scary emails. We tried to protest that we just supplied emulators, and not ROM images, but it fell on deaf ears and we were too young and intimidatable to stand our ground. It's a shame, since it was a popular site in its day. https://groups.google.com/d/msg/alt.comp.freeware/yKQBaHgjGDI/klMAitootGUJ https://groups.google.com/d/msg/alt.comp.freeware/yKQBaHgjGD...
- wolfgke 9y agoWhich shows that copyright is a form of censorship.
- dahauns 9y agoWell, that's what it was invented for...
- j_s 9y agoApparently some of the games are in the system tray. http://imgur.com/a/CuA6e http://imgur.com/a/CuA6e
- girvo 9y agoI miss GameHippo. Back when I had dial-up and a Pentium 100mhz with 16mb of RAM, it was the best place to download tiny games that would actually run; and it's why I got into programming -- a README with one of the games said a single person wrote it in Pascal, and that gave me the inspiration to learn to program myself!
- movetheworld 9y agoBesides the file size restriction of 1.4 MB, I agree 100% with the requirements for good OS software. Portability and ad/junk-free is most important.
- kierenj 9y agoQuite a few links and sites offline - e.g. the top network tool, the top text tool.. :(
- coldcode 9y agoYou can write all sorts of tiny apps. We need to have 100 people just to tell the other 100 people what process to follow, how to write everything, what it should look like, etc. Plus another 100 people to run the process. Also another 100 people to manage those people. Bonus: the following version in this monster must be complete before the previous version is even live. No tiny for us...
- iso-8859-1 9y agoAn even tinier approach would be to compute the Nix closure size of packages. That way, you'd pay for your libc implementation too.
- e12e 9y agoHm, looks like there are some old links - pfe (programmers file editor) links to sites.net, not the official homepage: http://www.lancaster.ac.uk/~steveb/cpaap/pfe/default.htm http://www.lancaster.ac.uk/~steveb/cpaap/pfe/default.htm
- satysin 9y agoTiny, single exe (and an ini for config) Windows programs have a special place in my heart. Perfectly portable, instant and lightweight. I want to cry when I see simple software like Sticky Notes in Windows 10 using dozens of MB of memory and have a 30+MB install size with minimal functionality. I don't have a big issue with .NET and Java based apps but I seem to be using more and more Electron based software and while the software isn't bad it sucks that every program comes with its own bloated framework :(
- maxpert 9y agoNostalgia (disclaimer I have moved on to Linux)
- squarefoot 9y agoNinite also follows an interesting concept and saved me some good time in the past. Can be really useful if you need to install the same subset of apps on more machines. https://ninite.com/ https://ninite.com/
- swiley 9y agoI always love playing around with busybox, which is more or less the Linux equivalent to this. Small software is beautiful.
- mherrmann 9y agoI wish it were easy to write such small apps, particular cross-platform. I'm developing a cross-platform file manager [1]. It's way more bloated with dependencies than I would like. But I can't justify spending time on trimming its dep's when there is so much functionality that needs to be implemented. Having said that, I did choose PyQt over Electron for performance reasons [2]. [1]: https://fman.io https://fman.io [2]: https://fman.io/blog/picking-technologies-for-a-desktop-app-in-2016/ https://fman.io/blog/picking-technologies-for-a-desktop-app-...
- problems 9y agoOne thing that you seemingly missed in your review of toolkits is that PyQt cannot be used freely by a proprietary application such as yours. Qt itself is LGPL, PySide (the official python Qt binding) is also LGPL, but PyQt is GPL-only unless you pay them $500.
- mherrmann 9y agoFair point. Though tbh $500 really isn't that much in the context of how much work a desktop app is.
- nom 9y agoPerfect thread to mention AnyDesk, our remote desktop application. We practice minimalism as an art form, the size of the Windows executable is 1,8 MB. [0] Disclaimer: Currently working at AnyDesk. 0: https://anydesk.com/platforms https://anydesk.com/platforms
- to3m 9y agoI've written a few small no-dependency things like this for Windows. Some random notes on writing them: https://news.ycombinator.com/item?id=11011857 https://news.ycombinator.com/item?id=11011857 These are all no-dependency, and all <100KBytes: Keyboard layout switcher for Windows: https://github.com/tom-seddon/kbswitch https://github.com/tom-seddon/kbswitch Windows window manipulation tools, for use with AutoHotKey: https://github.com/tom-seddon/align_window2 https://github.com/tom-seddon/align_window2, https://github.com/tom-seddon/align_window3 https://github.com/tom-seddon/align_window3, https://github.com/tom-seddon/dispswitch https://github.com/tom-seddon/dispswitch Snack-size Windows clock: https://github.com/tom-seddon/NotifyClock https://github.com/tom-seddon/NotifyClock I think the large ones are only as large as they are because they statically link with the CRT. I used to do the full /NODEFAULTLIB /OPT:NOWIN98 thing, and leave out the CRT entirely, so the EXEs were tiny and had no dependencies - but this was a bit of a pain to work with. And dynamically linking with the CRT caused me a couple of deployment problems here and there, since I used to share my binaries folder between several PCs in the past. So eventually I settled on the purely no-dependency option: statically linking with the CRT, and ignoring the EXE size. The average app just isn't made meaningfully larger in the grand scheme of things by this, and by modern standards it barely even counts as measurable. Even if it's a tiny app, and now 10x larger, it might still be only 90KBytes...
- fizgig 9y agoI love the minimal and efficient app mindset. Back in the 90s I used this DOS text editor that fit on a single floppy sector (512B). I forget the name, but it was a part of my standard toolkit for many years. These days, I run "evilwm" for my home desktop. That's about as small and efficient as a DE/WM gets anymore, and I love it.