Live data from Hacker News

Tiny Apps

tinyapps.org

81–90 of 114 posts

Re: Tiny Apps

#81
post #17

When 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 i…

It's fine as long as the runtimes themselves are tiny and low-overhead. Most C and C++ programs carry around a mandatory "runtime", usually denoted by the module name "crt0". It's basically just a translation layer between the OS's executable calling conventions and main()/return that weighs a few dozen bytes and only runs during startup and exit of the app to do things like set up argc/argv/envp and put the exit code where the OS expects it. The C and C++ standard libraries provide many of the services that a framework runtime would otherwise provide, but they're usually much smaller than a modern "framework" and provided as part of the OS. Modern Windows desktop apps are supposed to install their own copies of the DLLs (msvcrXX.dll/msvcpXX.dll and friends). You can link against the "known DLL" msvcrt.dll, but I don't think linking to it is officially supported for any non-ancient version of Visual C++, and IIRC it has a bunch of carefully preserved bugs for backward compatibility. Maybe there should be something like musl for Windows?

> 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.

As rebootthesystem suggests, this sounds a lot like a niche that would be well-served by a purpose-built Forth interpreter. Such interpreters have been used to e.g. facilitate interactive development or hot-patching on actual microcontrollers and other constrained systems. There's a surprising amount of symmetry with Lisp systems, but the traditions of Forth tend to value small code for both application and implementation. There's probably nothing preventing a tiny Lisp from filling the same role.

Re: Tiny Apps

#82

Earlier quoted context omitted.

In my previous life as a cubicle drone in the late 90s I have worked with Delphi under Windows and always dreamed about it being ported/cloned/whatever on Linux. After seeing a demonstration of Kylix many years ago I almost lost any hope (slow as molasses and buggy), then one day I saw this new project called Lazarus which promised high compatibility with Delphi code and to allow building of native apps. Admittedly i…

I've tried to use Lazarus five or six times now, as a one-time Delphi developer: the main issue is that the lazarus ide likes to crash on the slightest provocation (and the 64bit mac versions don't work very well either)

This is strange. The IDE once surely had stability problems, but I've never encountered them since years. I even installed Lazarus on small NanoPI and OrangePI boards and although definitely not fast it runs natively there and produces native code for them.

Re: Tiny Apps

#83
post #45
post #44

Earlier quoted context omitted.

Probably because the Sticky Notes on Windows 10 has a bit more functionality built in. If I remember correctly, it has integration with other systems (including Outlook), so you can make a note and create a calendar event with said note. Basically there's just a lot going on under the hood for many of these "simple" apps that isn't user facing. For better or for worse, that's why.

> so you can make a note and create a calendar event with said note hmm wasn't aware of that, and didn't see the option - if this so, then I shall redact my outrage. :)

One of the other things not yet mentioned here, is that Sticky Notes integrates all of Microsoft's new Inking and Typing features. On a touch/pen enabled system, you can write on the note, and if you have some of their cloud features enabled (I usually don't), it'll convert your handwriting into text, convert text items like addresses into clickable links, etc. If you put a flight number in there, it can turn it can add flight tracking, if you put a stock ticker in there, it can update you on that, etc.

See: https://www.howtogeek.com/285944/how-to-use-sticky-notes-on-...

Sticky Notes these days packs in a surprisingly large number of features. (None of which I use, but it explains the 22 MB footprint.)

Re: Tiny Apps

#84

I 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 [2]: https://fm…

One 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.

Re: Tiny Apps

#85
post #53
post #26

Earlier quoted context omitted.

I 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 th…

TDWTF had an article about MUMPS that stands out in my memory [1] When I see COBOL fixed width data at my workplace, I just think about that article and thank my lucky stars. [1] http://thedailywtf.com/articles/A_Case_of_the_MUMPS

Please tag this as NSFL.

Re: Tiny Apps

#86
Perfect 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

Re: Tiny Apps

#87
post #56

Progress 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.

Yeah, heaven is old software on new hardware!

Not 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".

Re: Tiny Apps

#88
post #19

The apps may be tiny, but the website itself is (also) a breath of fresh air from times past.

I 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.

Re: Tiny Apps

#89
I'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

These are all no-dependency, and all Keyboard layout switcher for Windows: 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_window3, https://github.com/tom-seddon/dispswitch

Snack-size Windows clock: 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...

Re: Tiny Apps

#90

I 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 [2]: https://fm…

One 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.

Fair point. Though tbh $500 really isn't that much in the context of how much work a desktop app is.
Post reply on HN