Slashdot Mirror


Tiny Apps

box2321 writes: "There's a time and a place for large and feature-filled software. And there's a place for tiny apps - in fact, there's tinyapps.org. This is a mighty-fine resource for free and shared Win/DOS programs that weigh in under 1.44 MB. I learned of TinyApps from a pleasant source."

80 of 318 comments (clear)

  1. Fascinating by friday2k · · Score: 2, Interesting

    It is really fascinating what you call small. I remember the VC20/C64 and those things required true small applications. Applications that had more features than most of the "tiny" ones there.
    You guys might also want to check out the 4KB and 64KB demonstration pieces from parties around the world at Scene. This will show you what can be done in applications as small as 4KB (rendered demos with sound and stuff like that). Enjoy!

    I nevertheless appreciate a movement towards essential, small applications ...

    1. Re:Fascinating by PopeAlien · · Score: 2

      Not to mention 64k should be enough for anybody.. But hey, in a world where the automobiles keep getting bigger and bigger, why not the software.. I guess there's still some people out there that don't have 'issues' to work through.

    2. Re:Fascinating by terpia · · Score: 2

      yeah yeah, back in the good ole days...
      1k chess and all that...
      Slick stuff I'll admit, but if you look at the tinyapps.org site listed in the story, you will see that this stuff is for DOS and Windows. Small is obviously a subjective and/or relative term. A 1.4 meg program is small on todays new systems with 60-100 Gig hdds. Its not small if you have a trs-80. some people actually install the whole ms office suite just to have a word processor, so i say if it fits on a floppy and is useful without being feature stripped, its a good small program. and i must say that QNX has to be the coolest and most fun of of anything ive ever seen fit on a floppy.

      --
      .sig wanted: Must be concise, funny, and display my cleverness.
    3. Re:Fascinating by connorbd · · Score: 2

      This is a rather interesting point; IMHO it should be fairly easy to create a full-featured office suite in Perl and Tk that will fit on a floppy and run on practically any Unix; while it could be pointed out that the support files (for things like Perl and ispell) are huge, the thing is that they're already there.

      /Brian

    4. Re:Fascinating by spudnic · · Score: 2

      Watching that makes me feel a combination of disgusted and jealous. Disgusted in myself because while I consider myself to be a fairly decent programer, there is no way I couldn't pull something like that off.

      What kind of freaks make this stuff? Amazing.

      I remember the first time I saw second reality from Future Crew many many years ago. I still like it the best. I wish I could make it run on my 2000 box here at work.

      --
      load "linux",8,1
  2. Reliability by CrunchyMunchy · · Score: 2, Interesting

    This is where software has to go. If there's one lesson we should have learned by now it's that it's nearly impossible to produce enormous but reliable software. Small programs are the only way to produce reliability, at least for now, and that'll be necessary as computers take over more and more tasks.

    --
    "Doctor who?" --The Doctor
  3. heh by Nate+Fox · · Score: 2, Funny

    Anyone find the irony in having an app called NotGNU Emacs on a 'Tiny App' page? I wonder if there's any GPL issues, as the source is not free (from what I can tell.)
    Tho it is mostly windows software, there's a link to google's directory on floppy disk based linux distro's.

  4. These guys have got the right idea. by guru_steve · · Score: 2, Interesting

    "How about BeOS, *nix, Amiga, QNX, etc?," I am asked. Those who are comfortable using these operating systems need no such guide as this; clean, well-made software is the rule rather than the exception.

    These guys have got it right on. Outside of the windows software world, priorities are on well made software, in stark contrast to the windows feature bloat that we're becoming accustomed to. I'm not saying all windows software is ill-designed and bloated - it just seems to be the status quo.

    It's nice to see that compact well made programs are still available outside of the "alternative" os's

    1. Re:These guys have got the right idea. by Trepidity · · Score: 4, Insightful

      Tell me that after installing a GUI desktop on your Linux box. Are you really claiming that X+GNOME or X+KDE and a plethora of widget sets in order to get a decent number of programs running is less-bloated and better-designed than Windows desktop?

    2. Re:These guys have got the right idea. by Trepidity · · Score: 2

      That's one thing I don't like about Office - it uses its own widget sets instead of the standard OS ones. Most apps (with a few exceptions) get it right and use the OS's widgets though, so it's generally more uniform.

    3. Re:These guys have got the right idea. by SCHecklerX · · Score: 2
      That's why those of us who like to actually be productive with our systems use things like windowmaker + ROX for an environment. Highly configurable, intuitive, light, and FAST.

    4. Re:These guys have got the right idea. by Sludge · · Score: 2

      Am I missing something, or does the Rox Filer actually not identify most of the files by their extension, and properly assign icons to them?

    5. Re:These guys have got the right idea. by rafa · · Score: 2
      Or

      very nice. You can combine it with DFM, and a couple of dockapps. I suggest asmix, ascd and grellm.

      *I couldnt' find the xwc homepage, but that's the foXcommander, which builds on XWC.

      --
      [Science] is one of the very few things that raises human life a little above farce and gives it the grace of tragedy.
  5. Re:Why only Windows... by mgkimsal2 · · Score: 2

    "clean, well-made software" doesn't necessarily imply 'small' or 'tiny', which is what that site is supposed to be about. Honestly, I don't find that many Linux apps that are terribly small, only because I end up getting a ton of source code which I need to compile. The resulting binaries are sometimes small/tiny, but those generally aren't distributed - you get ALL the source, even if you only need a fraction of the options.

  6. maybe, just maybe by Telastyn · · Score: 2, Funny

    They shouldn't be using TinyHTTPD on TinyServer. Then they could handle more than a Tiny amount of hits.

  7. Small Unix utilities written in assembly by Black+Acid · · Score: 4, Informative
    Andrew Main wrote several standard utilities in assembly and packaged them as smallutils. The description says this:
    Description: A few very small standard utilities. Assembler versions of some of them are included for i386/Linux (both a.out and ELF), Sparc/Solaris2 and Sparc/SunOS4. Portable C versions of all the utilities are are also included. You need these utilities, and there is no excuse for not having the hyper-efficient (and small!) binaries that result from use of assembler.

    Interesting concept. Linux's standard utilities are unnecessarily bloated, replacing them with smallutils allows a respectable distribution to fit on a 1.44MB floppy. According to the documentation, these utilities are included:

    • false
    • link
    • pwd
    • sln
    • sync
    • true
    • uname
    • unlink
    1. Re:Small Unix utilities written in assembly by dbarclay10 · · Score: 4, Insightful

      Interesting concept. Linux's standard utilities are unnecessarily bloated, replacing them with smallutils allows a respectable distribution to fit on a 1.44MB floppy. According to the documentation, these utilities are included:

      No offense or anything, but I bet you've never played with making single-diskette Linux images.

      Quite frankly, an app like busybox(which is written, for the most part, in C) does a *hell* of a lot more to conserve space by including a bunch of apps in one binary than by writing less than a dozen (extremely trivial) tools in ASM. Hell, almost all of those tools are basically wrappers for single kernel syscalls. The approach that fellow has taken may work for extraordinarily simple stuff like that, but as soon as you try to get into anything more complex(like, say, a #!/bin/sh implementation), you're pretty much out of luck.

      I suggest you take a look at busybox(search Freshmeat) if you're interested in single-floppy Linux installs.

      --

      Barclay family motto:
      Aut agere aut mori.
      (Either action or death.)
    2. Re:Small Unix utilities written in assembly by BlowCat · · Score: 3, Informative
      Another poster already mentioned Busybox (site seems to be broken now, but I'm including the link anyway). Together with Tinylogin , it provides everything you need for setting up an embedded OS, including init, shell and login.

      On the other side, those utilities only work on GNU/Linux and GNU/Hurd.

    3. Re:Small Unix utilities written in assembly by Bruce+Perens · · Score: 2
      The lineo site for Busybox seems to be broken. Erik Andersen is still maintaining busybox. If Lineo can't get the site back together we'll move it elsewhere.

      Bruce (original Busybox author but it's much bigger now)

    4. Re:Small Unix utilities written in assembly by mav[LAG] · · Score: 2

      LinuxAssembly - go here - also has an almost complete set of replacements for common GNU and bash utilities. There's some nice bonuses as well - the world's smallest Web server and some tiny graphics apps for the framebuffer.

      --
      --- Hot Shot City is particularly good.
  8. GEOS by wampus · · Score: 2, Interesting

    Anyone remember GEOS for the Commie64? Windowing system, word processor, paint program, etc. On two disks. If you flipped the first one, you got QuantumLink, an online service.

    Strangly enough, I found my GEOS disks about a year ago and dialed their customer service number and got AOL... coincidence or not?

    1. Re:GEOS by Russ+Steffen · · Score: 3, Insightful

      QuantumLINK is AOL. Back in the late 80's the people who ran QuantumLINK realized that running a service for a steadily decreasing number of C64 and C128 wasn't a good long term strategy. So they shutdown Qlink and reinvented themselves as AOL. The rest, as they say, is history.

    2. Re:GEOS by torpor · · Score: 2

      Not only that, but GEOS was the first client for AOL back in the day... before Win3.0 was available, it used to be that you'd boot into GEOS to do e-mail, read news, etc.

      GEOS was one of the first widely available multitasking OS's for the Intel platform, and it was used exclusively for getting onto AOL.

      When Win3.1 came out, they ported the client apps, and abandoned the GEOS platform. I think it was spun off - it survived in various forms for years. One of the first PDA's (Sharp?) used GEOS, if I recall correctly...

      --
      ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
  9. Somewhat naive by Ars-Fartsica · · Score: 2
    You simply cannot accomplish the tasks a modern system is given using small tools explicitly.

    What you can look for is explicit modularity that avoids ridiculous reinvention of common functionality - KDE and GNOME are approaching this with their object models.

    1. Re:Somewhat naive by connorbd · · Score: 2

      Apple tried to do it with OpenDoc and nobody paid attention (though I think that might have had something to do with a) the development model and b) Novell, who dropped the ball on OpenDoc/Win32 while Apple and IBM were shipping live code).

      I'm sorry, I simply don't buy what you're selling. The fact is that we're regularly seeing gigaflops on the desktop, and very few systems are running less than 32MB of RAM these days. Most modern systems can handle a small-tool-based system; it's just that bloatware is the order of the day and people seem to think they need that ability.

      Worth noting: somehow I doubt your average early PostScript interpreter would put much of a strain on a modern PC's processing capabilities.

      /Brian

  10. Tiny operating systems by Black+Acid · · Score: 4, Informative
    The folks who develop FreeBSD released PicoBSD, which according to their homepage can be used as follows:
    • diskless workstation
    • portable dial-up access solution
    • custom demo-disk
    • embedded controller (flash or EEPROM)
    • firewall
    • communication server
    • replacement for commercial router
    • diskless home-automation system

    PicoBSD's applications are really small. Fitting a whole OS onto a single floppy diskette is quite beneficial, and often means that the expensive hard disk can be eliminated. There are also several other small Unix clones, including Minix and Alfalinux (Slackware on 2 floppies). BBIAgent Router is simply amazing: it's a single-floppy Linux-based router and firewall.

    1. Re:Tiny operating systems by cymen · · Score: 2

      For those of you thinking this is worthless due to the use of a floppy consider using CDRs instead... I'm going to help a small school with a wide area network (between several buildings). 802.11b links using old computers and IPSec should be ideal. Of course they have to be new enough to support bootable CD-ROMs. I don't trust a floppy in this situation.

    2. Re:Tiny operating systems by BrookHarty · · Score: 2

      I put together a umsdos linux distro with x/icewin/ssh/ftpd/httpd on 4 floppys. Unrar it on a PC, and I have a instant server I can control remotely. I borrowed alot from other tiny linux distros, so if your interested, check out googles nice web directory.
      http://directory.google.com/Top/Computers/Software /Operating_Systems/Linux/Distributions/Tiny/Floppy _Sized/

      BBIAgent is broadband only, if you want a floppy router with dialup support for us "non-broadband" users, check out http://www.freesco.org. Picked up a 486 and 2 nics, boot floppy, instant nat dialup router.

      -
      Those who do not understand UNIX are condemned to reinvent it -- badly. - Henry Spencer

  11. Re:Why only Windows... by RogrWilco · · Score: 2, Insightful

    The more and more end-user applications are developed for the linux desktop, the more and more bloated the software will be. People don't have the time to tailor source to make small, powerful apps, and end users want complete functionality, glitz, and polish.
    How many people use all of the functions in an office package? Open Office is as much to blame as Microsoft Office for unnecessary tools, as are many other software packages. Why should I give up 200+ megs of disk space so I can type a couple of letters, an e-mail, and make a simple bar graph, and have it look like someone over the age of four did it?
    A small, clean word processor that has the capability to snap in additional functions, like dictionary, thesaurus, forms, and html editing, or several grades of the program, tailored to different classes of users would save a lot of disk space, and remove confusion. It would also go a long way to creating and enforcing standards among the different OS'es and programs which are available.

  12. slashdotted -- here's a mirror by jshare · · Score: 2, Informative

    http://www.consume.org/~jshare/mirrors/www.tinya pp s.org/index.html (no spaces in URL, obviously)

    Or, click here.

    Jordan

  13. How to write tiny applications by Black+Acid · · Score: 2, Interesting
    Presently most Unix applications are written in C for portability reasons. In reality, C programs have to modified when ported from one Unix to another, unless something like GNU autoconf is used. Assembly has the advantage over C of being extremely fast and tiny.

    A well-written tutorial about writing BSD assembly application is FreeBSD Assembly Language Programming. There is also a Linux Assembly Programming Resource Site. I suggest if you hate bloated software to contribute to solving the problem by writing small utilities in assembly. Of course, C remains the choice for large projects, but assembly has it's place.

    1. Re:How to write tiny applications by dvdeug · · Score: 2

      Meaning, of course, that just moving them from i386 to the Alpha, even for the same OS requires a complete rewrite. Debian's choice for small boot-floopy editor was made in part because one of the competitors was in Assembly and hence worthless, unless someone wanted to rewrite it 6 or 7 times.

      How important is fast for most utilities, in most places? Is 20-30% improvement for one processor (i.e. Pentium IV, not ix86, since each chip needs different optimizations) such a great trade off for easy of coding, maintainability and portability? Sure, key parts of a video player or a math library should have assembly versions, but most things aren't that speed dependent. If you really want size, try rewriting in Perl or maybe Shell, which can easily get below the minimal ELF binary in size.

    2. Re:How to write tiny applications by dvdeug · · Score: 2

      If you're looking at compressing disk space or memory usage, shell is almost always a win in a Unix system, as it's already on the disk and almost always in memory. Perl is a little more sketchy, but if it's already there, it saves disk space. Same thing for a library; if it's already on the disk and in memory, you save by using it, no matter what the "true" size is.

  14. Re:Irony by M.+Silver · · Score: 3, Informative

    Does anyone else see the irony (and perhaps the futility) in creating a site devoted to tiny apps that run on the most buggy and bloated OS known to man?

    Contrariwise. When your OS is big, all you got left is room for tiny apps.

    (I [heart] Boxer for DOS, myself. I'm pretty sure it's floppy-sized or less, at least in minimal version. If I could find my stupid interface cable, I'd put it on my HP200LX.)

    --

    Slashdot's token middle-aged housewife
  15. 1.44 MB? by Daniel+Franklin · · Score: 3, Interesting

    I'm sorry, 1.44 MB is not tiny :)

    I co-wrote a fine piece of fractal generating software, that came with its own windowing system, mouse driver and midi-like music synthesiser (it played a tune of your choice when it had finished rendering the fractal - this was in the days of 386s being power machines), it could do mandelbrot (+ several variations), julia, sierpinski and logistic fractals (plus a few chaotic dynamics plots done in phase space), save and load BMP files of the images and a whole heap of other cool stuff - and it was written in Borland Pascal which had a limit if 64 kB for the compiled program! Those were the days... taught me good programming discipline.

    Still remember the excitement of discovering the limits of machine precision by rendering magnified Mandelbrot sets on my 386 :)

    - Daniel

  16. Re:...and what about old games... by sg_oneill · · Score: 2

    Try looking up abandonware games. There are plenty of sites, although I suspect those groovy old games tend to have a simmilar sort of legality to Mame rom files... dubious, but noone really worries.

    --
    Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
  17. My First Commercial Product was 8kb in RAM by goingware · · Score: 2
    I'm very proud of the fact that my first shipping commercial software product, Last Resort from Working Software, weighed in at 8 KB of RAM usage while running.

    That was mostly for the code. There was a text buffer that went up to a couple hundred bytes.

    And since the program normally stayed running in the background all the time, I thought users might want to have their 8k back sometimes, at the expense of not getting the program's benefit, so there is a control panel option that not only pauses the program, but removes the program code from memory (handy during development, as I could update it this way without rebooting the machine).

    When LR was paused, only a little stub of a trap patch remained in memory, about a dozen bytes or so.

    Kids these days...

    --
    -- Could you use my software consulting serv
    1. Re:My First Commercial Product was 8kb in RAM by goingware · · Score: 2
      I've had several novelists tell me their books were saved by it.

      One of the editors of MacUser magazine told me that he caught his girlfriend having an online affair with it. I was mortified, but he was grateful. Can't imagine what his girlfriend thought of me.

      I have to cop to the fact that it was not my idea, that kudo goes to Dave Johnson.

      I'm afraid that sort of utility has gone down a path I never intended for it. Fearing that people would use it to steal passwords or other confidential material, I made it very obvious that it is running and installed.

      However, I have received spam for keystroke loggers that are meant for "remote installation", that save their logs in encrypted, hard-to-find files on the disk, and that can automatically transmit the logs over the internet.

      It was the Mac version that was 8k, BTW. I don't think the dos or windows versions are very big, but I don't actually know as they were written by others.

      --
      -- Could you use my software consulting serv
  18. Show and Tell thread. by Nindalf · · Score: 2

    I'm sure lots of people have their own tiny project to show off.

    I'll start the ball rolling with my Buskpledge Windows program, for collecting and managing donation pledges. It lets you make 2-click pledges from web-pages, view and edit the pledges individually or en masse, and can redirect you to direct donation pages such as Amazon Honor System or PayPal. Full install and uninstall in under 35k.

    Source is available at the project page. It's a little wierd, using a custom semi-literate programming tool, and a half-assed gzip clone for internal compression.

  19. a tiny window manager by danny · · Score: 2
    I'm using a window manager with a (stand-alone) 27 kilobyte binary - 9wm.
    Does anyone have a smaller one?

    Danny.

    --
    I have written over 900 book reviews
  20. Tiny ? Risc ! by mirko · · Score: 4, Insightful

    You might need to take a look to RiscOS which makes it quite easy for the hosted apps to be *tiny* (a complete DTP package supporting plugins weights several hundreds kB)...

    RiscOS is around as old as Windows3 but has always been well designed, quick, compact and responsive.

    But I understand such tinyness might seem mythical for PC users.

    --
    Trolling using another account since 2005.
  21. Re:Nifty by spudnic · · Score: 2

    I just added it to my tools cd that I carry around with me.

    How many times have you installed NT 4 and not been able to get to the service pack downloads because the browser doesn't send the right headers? Geez.

    Anyway, it's been added. I love stuff like this! ;)

    --
    load "linux",8,1
  22. software binge/purge by Etrigan_696 · · Score: 2, Funny

    Above someone posted about the C64/vic 20 and with that I agree. There were some truely AMAZING things a C64 game could do with the 170kb on a 5.25 floppy. back then it took some skill to create a computer program of any non-trivial size or function. You had to try and not make it run over the size that could fit on a single floppy side, so you didn't have to produce a nasty message that said "turn over the disk and press enter".
    Now - *sigh* now because truely mind-bogglingly big storage is so undeniably cheap and computers are so mind-bogglingly FAST programmers have gotten sloppy. Instead of tweaking their code for size and speed, they expect Intel/AMD and Western Digital to take care of those problems for them. There are some notable exceptions - like John Carmack - but he's doing things that just plain shouldn't be possible on a computer.
    Consider for example the massive, CPU choking monstrosity (that I am forced to use - at least once - because of my stupid thesis review board) known as "WORD" -it's the only word processor I've ever seen with a FRAMERATE! How in the HELL can I out-type an AMD 1.6GHz athlon CPU? How can I type faster than it can show the letters on the screen? Well, it's not AMDs fault, it's Word's fault. It's big, it's clunky, and it's wasteful.
    Sometimes I wish software still came on cartridges, like the old Atari 2600 games. Plug it in, hit power and BAMMO! there was Demon Attack! I guess linux-on-bios is close, but it's still an uber-geek only kind of thing.

  23. Again with this shit? by Anonymous Coward · · Score: 2, Informative

    This loser hasn't got an "AI" program to do anything remotely interesting, and he's been at it for years, insisting that his fuzzy-headed "theory of mind," respected by nobody and supported with nothing but his own rantings, is the key to humanlike machine intelligence.

    Move over Alex Chiu, you've got competition for goofiest internet crackpot, and right here on slashdot!

  24. Re:Somewhat naive - so am I by Soko · · Score: 3, Interesting

    OK, but why objects and not actual programs? IANAP (I Am Not A Programmer), but an idea I've recently subscribed to is using several small, fast programs that work together in concert be roughly the equivelent of a bigger app. It would work like so (apply NaCl liberally):

    A stand alone, plain, small generic text editor knows when there's a spellchecker, font manager etc. available, and would spin them up as separate processes and let them modify the data as needed. These too would be stand alone apps - you could use
    "[user@machine MyDir]spellchk Mydoc.txt -lang USEnglish"
    and it would open the doc and spell check it outside the Text Editor, if you wish. Inserting a spreadsheet into a document would cause the program to context switch to a generic spreadsheet, which would do the calculations and then spin up the layout/font manager, which would tag the spreadsheet data with appropriate formatting info and then pass it back to the Text editor/Word Processor program.

    Registering one of these mini apps with the application broker (not an object broker!) means that any other mini app can call on it to do a task - this would make things totally pluggable, and allow for infinite customisation options. You like the KDE interface best, but wish you could use the GNOME spreadsheet? Yank KDEs spreadsheet app and plug in GNOMEs. Need a funtion that you don't have? Go download it and plug it in. Have a function that you don't ever want to see again? Un-plug it and toss it. Want bloat? Use 100s of plugins. Want Speed? Use 10. Get the idea?

    Sounds a lot like the development today from KDE, GNOME et. al, but the difference is in the object libraries - those huge, incompatible obfuscated buckets of code snippets (on both Windows and *nix) that always seem to cause problems for each other. Why can't we single purpose them all, and tie them to a mini app? Instead of a library of widgets to edit text that any program can use, why not limit the use of text editing widgets to a single program - the registered text editor. Program then calls test editor program already running. IMHO, development teams would then be able to concentrate on a single function, not 20, and would likely be able to produce small, fast quality code by throwing everything out of thier libraries not pertaining to the function of thier mini app. And if a mini-app is un-installed, the library goes with it, period full stop.

    Perhaps then we would end up with code of reasonable size and quaility?

    P.S. - Please don't flame me for careless suggestions of shared memory amongst other transgressions, but I'm interested in why the object model is better than programs that communicate actions on data, not just data. Like I said, I don't really know the nitty gritty technicalities of what I'm talking about, but I'm interested. (I'm wearing my asbestos jammies, too. :-] )

    Soko

    --
    "Depression is merely anger without enthusiasm." - Anonymous
  25. Re:Tiny Programs by SCHecklerX · · Score: 2

    Ummm...

    Just use a compass. You draw a circle, then pick a point on the circle, and draw an arc. You then make the center of the next arc at each intersection of the circle and the first arc, and so on. You then draw lines through each arc intersection for the number of fins you want.

    Didn't you ever learn the elegance of simple geometry?

  26. In response... by milesw · · Score: 5, Informative

    to some excellent comments and feedback, I'd like to offer the following:

    1. Yes, 1.44mb can hardly be called "tiny". To be honest, the reason it was chosen is that I just *had* to include the QNX Demo Disk and the OffByOne Web Browser. But much of the site is dedicated to apps in the 2 to 200kb range, which I think can fairly be called "tiny". One example is EVE, a very cool vector graphics editor whose executable is a mere 39k. There are many more listed along these lines.

    2. Yes, Windows is very bloated, but by customizing the shell, removing IE, and performing a host of other surgeries, it can actually be quite a nice little OS. I just received an email reply from the author of Optimizing Windows (published by O'Reilly). His book explains (among many other things) how to get Windows 95 down to 17 mb.

    3. I realize that Slashdot is generally geared towards *nix users and want to thank you for being kind enough to list a site mainly covering DOS/Windows apps. As I mention on the home page, folks (from any OS) interested in contributing to the site or having a link posted are more than welcome to contact me.

    Also, many thanks to those responsible for the mirror mentioned in one of the posts.

    Much aloha,

    Miles Wolbe
    miles@tinyapps.org
    http://www.TinyApps.org/

  27. Atari by goingware · · Score: 4, Interesting
    I invited a couple friends who were old time Atari programmers to post here. I hope they do.

    But in case they don't, I'll tell you what the Atari programmers had to deal with. I'm hazy about the model, but I think it was the 2600.

    The unit had 128 BYTES of RAM, which included both the heap and the stack. It had a one byte framebuffer, and you effected the drawing of objects and animation by carefully timed changes of its value during the horizontal or vertical blanking intervals.

    One big help is that collision detection was implemented in hardware.

    You had a choice of a 2k or a 4k cartridge to store the executable code and graphics. You could do a lot more with 4k, and potentially make a game with greater appeal and thereby greater sales, but it came at the cost of the 4k cartridge yielding the programmer half the rolyalties per unit, because the ROM chips were more expensive.

    Dave told me of the long hours the programmers would put in trying to get the last few bytes out of a program, to make the transition from 4k to 2k. Suppose you had a program that absolutely required 2050 bytes - wouldn't that be heartbreaking? Sometimes the programmer would think he had a way to shrink the code enough, but it had the effect of screwing up the timing on the graphics.

    The royalties could be considerable on those little cartridges. I understand the 19-year-old who wrote Pac Man for Atari received $1 million in royalties.

    Again I say: Kids These Days.

    --
    -- Could you use my software consulting serv
    1. Re:Atari by ShaunC · · Score: 2

      This is actually very interesting. My neighbor had a 2600 and I remember wasting afternoons and evenings playing Joust, and a helicopter game called something like Chopper Lifter. If these games were written in less than 4K, and the (decent sized) cartridges only held that much... Just amazing.

      I don't dare to guess at how long 4K kept me entertained, I think I'd be sorely embarassed. But it sure says something about what can be accomplished without bloat.

      Shaun

      --
      Thanks to the War on Drugs, it's easier to buy meth than it is to buy cold medicine!
    2. Re:Atari by Paul+Komarek · · Score: 2

      Choplifter was an awesome game! I played it primarily on Apples if I recall correctly. I wonder if anyone remembers Lemonade Stand? I really liked Lemonade Stand. It required some business sense combined with gambling. And there was this little Star Wars game, where you could jump the landspeeder over barrels, and attack AT-ATs with one of those small fighters ships. It seems like there were four modes, but those are the only two I remember.

      Good heavens. Now I'm remembering learning about the DATA statement in basic, and trying to decide if it was really worth the effort. I think the most use I made of it was when playing music.

      Oh dear, that reminds me of when I was going to "write a video game" because I'd learned enough TI-BASIC. I decided that I first would scan through my basic manual (blue and white, about 8.5" by 11", softcover -- does anyone else remember this book?) to be sure I hadn't missed any useful commands. Sure enough, I hadn't learned about for-loops yet! "Ready to write a game" without using for-loops. Heh. Oh, and "My First Book of Microcomputers", with some kid named Chip who interviewed computers about what they were made of (yellow, paperback, anyone remember it?). I've still got that book, it's fun to browse.

      And I did not understand if-expressions that didn't have a binary operator; what did they mean by if (value) then whatever? Hoooeeee. I guess that trip down memory lane was probably only fun for me. Well, I'll thank myself for sharing...;-)

      I really miss my TI-99 4/A. We gave it to relatives around 1986 or so. It constantly had ROM problems, but for about $50 you could send it in and get a refurb unit. And the peripheral expansion box, with a disk drive and memory expansion card! It had the worst connector known to man, with a cable so thick you could tow vehicles with it. But the speech synthesizer rocked. It sounded great, especially that female voice used in the game Parsec.

      Then there was the 5 year dry spell until my family could afford a PC -- especially since I would be pretty much the only one to use it. I guess that five years without a computer is why I'm a math grad who really loves humanities. Maybe that's a good thing, after all.

      -Paul Komarek

    3. Re:Atari by Arandir · · Score: 2

      Running Joust on 128 BYTES ram? I think you and Michael are pulling our legs. By way of comparison, this post is 129 bytes long.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    4. Re:Atari by Christopher+Thomas · · Score: 3, Interesting

      Running Joust on 128 BYTES ram? I think you and Michael are pulling our legs. By way of comparison, this post is 129 bytes long.

      The RAM is only used to store game state that changes while you play. This would be the level number, the score, the position and velocity of your character, and the positions and velocities of enemy characters and of the eggs that spawn.

      This most certainly would fit in 128 bytes.

      The Atari has a very, very bizzare internal architecture. A good page describing it is at:

      http://www.alienbill.com/vgames/atari.tech.html

    5. Re:Atari by Tachys · · Score: 2

      I wonder if anyone remembers Lemonade Stand?



      I think I do remember Lemonade Stand :)

    6. Re:Atari by Fjord · · Score: 2

      Believe it. This isn't that odd to me. I had to write some routines for a wireless base station for one of the first PCS systems, which had only 128 bytes of RAM. You had to do everything in this, including your stack. Plus the chip did not have multiplication as a native operator, so if you wanted to multiply two words, it would be 8 bytes on the stack (4 for the pc and tos, and the two words. The routine I did didn't take any more than that). We had 128K, though, not 4K. This was also problematic when it came to ram because calling from one 64K area to the other took an extra 5 bytes (multiply was in both sections).

      --
      -no broken link
    7. Re:Atari by Christopher+Thomas · · Score: 2

      So the actual program (let's say Joust) is on a ROM cartridge or something?

      The program code and all sprite data is on the ROM cartridge, and stays there (the ROM cartridge just looks like normal memory as far as the system's concerned). RAM is used as scratch space only.

  28. tiny? not by a long shot by mj6798 · · Score: 2
    Look at the sizes of those distributions: those don't look like "tiny" applications to me. Compare that to what you get with Linux: /usr/bin/mail is 70k, mutt is 500k, trn is 223k, and links is 600k (with some dynamically linked libraries). A statically linked "Hello World" executable for X11 using the FLTK toolkit under Linux comes in at about 50k.

    BSD UNIX for PDP-11 managed to pack a lot of functionality into 64k of data space and 64k of instruction space (with overlays available on some machines, but often statically linked).

    I leave it as an exercise to the reader to figure out what makes many programs are so much bigger these days. There are reasons, some good, some bad.

  29. Who has the smallest by bstadil · · Score: 3, Funny

    Refreshing to see you all bragging about "Who has the smallest"

    --
    Help fight continental drift.
  30. RISKS on Bloatware by goingware · · Score: 3, Interesting
    Everyone should read The Forum on Risks to the Public in Computers and Related Systems for reasons I've posted here more times than I can count.

    But pertinent to tonights topic is a thread called "The Bloatware debate" that ran for some issues on Risks:

    A 100-company survey by Standish Group International found that 45% of a software application's features are never used, 19% rarely used, 16 % sometime used, 13% often used, and 7% always used; yet, in spite of the fact that most of an application is seldom used, software gets bigger all the time. For example, Windows went from 3M lines of code (Windows 3.1) to 14M lines (Windows 95) to 18M (Windows 98).
    1. The Bloatware Debate
    2. Response
    3. Response
    4. Response
    5. Response
    and also:

    1. Bloat Dissections II
    2. Response
    3. Response
    4. Response
    5. Response
    6. Response
    One culprit that I think is mentioned in there somewhere is the use of virtual functions in C++. Even if a virtual function never gets called because of the way it is possible to run a program, it must be included to satisfy the linker. Virtual functions are necessary to enable polymorphism, though, so I don't see a way around it. However, I suspect they are overused; many C++ programmers do not know when it is appropriate to make a member function non-virtual vs. virtual.

    --
    -- Could you use my software consulting serv
    1. Re:RISKS on Bloatware by gorilla · · Score: 2

      Be careful about those 'rarely used' and 'never used' functions. How many of them are error handlers? Disks rarely fill up, but you still have to deal with a full disk.

  31. Re:...and what about old games... by ehikory · · Score: 2, Informative

    Also, Home of the Underdogs has a wide variety of abandoned games.

  32. Re:QNX by Arandir · · Score: 2

    If you like that, get the full CD! It even has Doom on it.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  33. Re:4k java demos by spectecjr · · Score: 2, Insightful

    In the days of huge software programs it always amazes me to see what can be done in such small packages (each 4k jar file includes the source code too).

    I take it you're not counting the 14Mb runtime that you need to make that Jar file work?

    Simon

    --
    Coming soon - pyrogyra
  34. Re:Tiny AI by Uller-RM · · Score: 2

    Well, they don't evolve by themselves. However, they can be programmed to :-) Evolutionary computation has been SOTA in computer science for the last twenty years, and is slowly moving into mainstream.

    You might find it worthwhile to do some research on the primary three EP techniques at the moment:

    - genetic algorithms (create a function to translate a string of bits into a possible "answer" and grade it on a 0.0-1.0 scale, then splice the best-ranking strings together to make new ones, i.e. survival of the fittest)

    - particle swarms (create a bunch of particles in 3d space that can suggest to other particles around them to move in a certain direction, like ants with pheromones, and the particles converge on one or more points in space)

    - simulated annealing (I don't understand this well enough to give a good explanation :-( )

    GAs in particular have proven to be useful, since they can converge on a good (altho possibly nonoptimal) solution VERY quickly. In a recent experiment, an engineer implemented a GA in a prosthetic arm to act on nerve impulses. The traditional "clamper" arm takes about six months of training for a person to control it well. The GA chip adapted fully to the person in fifteen minutes.

  35. Steve Gibson by Quila · · Score: 3, Informative

    His stuff is always small (www.grc.com). Trouble in Paradise is a complete Iomega drive diagnosis package self-running at 52KB under Windows.

  36. 1.44 MB small? by gdr · · Score: 2, Interesting
    Just a bit of fun. On my system.

    $ find /usr/sbin /bin /sbin /usr/bin -size +1440k -type f | wc -l
    10
    $ find /usr/sbin /bin /sbin /usr/bin -size -1440k -type f | wc -l
    2667

    It's worth noting that both emacs and vim are in the 10 that would not fit on a floppy.

    I know I'm ignoring libraries. I said it was just for fun. :-)

  37. Something's gone wrong somewhere by AndroidCat · · Score: 2

    That's how OLE/COM/DCOM/COM+/.NET (whatever MS is calling it today) is supposed to work, and if the extensions are DLLs, they run in-process.

    And this was supposed to reduce the size of apps: you didn't have to include a graphics/GUI/spellchecker/etc in every program. Make them seperate modules, and all apps can use them as needed.

    That was the idea anyway. But I notice that with VC++, as soon as you actually use one of the libraries, it loads a huge amount of code into your app to talk to that library. Now some compilers are better at stripping unused code, but the MFC GUI stuff so intertwined, everything gets pulled in! (And the size of those MFC DLLs!)

    Borland does it a bit better -- the apps are large by default, but that's because the equivilent of MFC is included in each app for portability. You can group all the common functions needed by each app into a single library if you want to. (And use outside COM objects with no problems.)

    I only use text with Linux, so haven't noticed any bloat yet, but I'm sure as soon as I start using large extension APIs the bloat will start.

    Somehow we've got to stop the bloat caused by using extensions.

    Mmm... Turbo Pascal 2: editor, compiler, run-time in 36k.

    --
    One line blog. I hear that they're called Twitters now.
  38. Re:HHGG Infocom adventure by AndroidCat · · Score: 2

    I want to hook VoiceXML up to the Zork game engine so I can play Zork, HHGTTG, etc by telephone.

    Okay, it's a useless technical achivement, but think just of the zowie factor! :^)

    --
    One line blog. I hear that they're called Twitters now.
  39. 1.44 tiny? by night_flyer · · Score: 2

    when you consider Unreal Tournament is 600 megs, windows is 200 megs, winamp is 6 megs, internet explorer is 8 megs... yeah I would say >1.44 is tiny

    on a side note, tinyserver is the BOMB! I currently run it on my machine and not once has it had any problems....

    --


    Thanks to file sharing, I purchase more CDs
    Thanks to the RIAA, I buy them used...
  40. Small? F***ing huge more like... by pubjames · · Score: 3, Informative

    1.44Mb is f***ing huge compared to what it was like in the good old days.

    I used to write commercial apps for the BBC Microcomputer. You probably didn't have that in the US, but it was a neat bit of kit in its day (about 1984?) and very popular in the UK.

    As I remember it had 32Kbytes of memory, most of which was taken up as screen memory. I think you were left with about 8K to program in. And you had to get everything in there because there was no hard disc or other storage.

    I remember I wrote an educational program for schools which included an image drawing system that worked in a similar way to Macromedia Flash. Literally every bit of memory was used. In fact, there was 'spare' to store upto 32 images drawn in the format.

    Tell that to programmers today, they don't believe you.

    1. Re:Small? F***ing huge more like... by pubjames · · Score: 2

      You have a good memory. Yes, I think you are right.

      There was a four colour 'high resolution' mode as I remember, and yes, 20K seems about right. But the first few K of system memory was, I remember, full of system configuration info. However, you could use quite a bit of that if you knew what you were doing.

    2. Re:Small? F***ing huge more like... by gorilla · · Score: 2
      There was also a 32 byte section of memory which would be preserved across soft reboots. A very useful cache for storing certain paramaters, however because of it's small size, you'd have to be very careful of using it wisely.

      I once wrote a program which used 4 bit characters to encode a message in there, and could get up to 64 characters messages, as long as they only used the 31 characters I defined.

    3. Re:Small? F***ing huge more like... by gorilla · · Score: 2

      No they don't. 4 bits gives 16 possible codes. Allocate 15 of them to characters, and make the 16th a shift code. That gives you another 16 possible codes, where I allocated the other 16 characters. That meant that the most common characters (which I allocated in the first 15) were encoded in 4 bits, and the less common characters were in 8 bits. If the message only comprised of the 15 characters, I could have 64 characters. If it comprised of the 16 less common characters, it would be only 32. Most messages were nearer the 64 than the 32.

  41. Coolest and Smallest app by DjDanny · · Score: 2, Interesting

    This has got to be the smallest and coolest app ever. It's called Tube and it's 256 BYTES (yes, I said BYTES!). It can be found here:

    http://www.pouet.net/prod.php?which=3397

    It doesn't use any external libraries, DirectX or any cheating stuff like that. It also comes with full x86 sourcecode for you to enjoy.

    Have fun now.

  42. Found Memload here... by msheppard · · Score: 3, Funny

    Being a windows user, I have to watch my applications to make sure they don't eat up memory, i.e. memory leaks. So I downloaded a tinyapp called "MemLoad" which should help me do this... but here's the kicker: From the Readme file: Current issues >
    There is a small memory leak present in Memload

    M@

    --
    Krispy Cream is people
  43. GEOS now NewDeal Office by auntfloyd · · Score: 2

    GEOS got licensed (sold?) to New Deal, who are promoting it as a software suite, New Deal Office, for old computers. Their primary customers seem to be schools.

    You can download an evaluation version for free. They used to have (non-expiring) beta versions up for testing, but they no longer do. They also seem to have dumped Motif for something called "NewUI". I remember running NDO with OpenDOS, because the GEOS kernel could supposedly utilize OpenDOS's multitasking ability.

    Bear in mind, that GEOS (now "NewDOS") is no longer promoted as a seperate product, rather as a means to an end (the office suite/web browser).

  44. User-Agent: by XNormal · · Score: 2

    Ok, so how many hits did slashdot get today with
    "User-Agent: Mozilla/3.0 (compatible; OffByOne; Win****) Webster Pro V3.2"?

    --
    Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.
  45. Re:large and feature-filled by connorbd · · Score: 2

    As far as features per line of code, I find that to be a rather dubious statement. I'd say the same thing applies to Your Average Linux Distro as well, but the problem in this case is that the software (most egregiously SuSE and RedHat) becomes musclebound rather than bloated. Even Debian ships on 3 CDs now; there's something a bit wrong with that IMHO.

    For this I blame GNU -- for whatever reason, GNU's version of embrace-and-extend hasn't created bloatware *exactly*, but a lot of their software has far too much core functionality (*cough*emacs*cough*) for efficiency. (One of these days I'm going to sit down and create that Linux Lite distro I've thought of making -- Minix sed instead of GNU, One True Awk instead of gawk, you know...)

    /Brian

  46. Re:Somewhat naive - so am I by scrytch · · Score: 2

    You just reinvented out of process OLE servers -- instance tracking, registry and all. Strip away the main() function and you now have objects instead of programs.

    --
    I've finally had it: until slashdot gets article moderation, I am not coming back.
  47. PKZip! C'mon, it's right there in the strapline! by GTRacer · · Score: 2
    *NOBODY* has mentioned using PKZip yet? Maybe my Search isn't working. Anyway, truly one of the most useful tiny apps I've ever gotten so much use out of.

    I STLL use 2.04g today, when I get mainframe files from our vendors. They have all these specs and formats and whatnot, and invariably send them in several pieces. I've written batch files and VBA code to unzip, format for the data records, concat, and import, all in one or two steps. Most of these vendors included "installers" that were more trouble than they were worth and usually put crap where I didn't want it.

    A couple of jobs ago (1997), I used it with a comms program to do remote updates of hospital software. It was so much better than personally visiting over 150 workstations.

    RIP, PK.

    GTRacer
    - It's not the size of the package, it's the compression ratio

    --
    Defending IP by destroying access to it? That makes sense, RIAA/MPAA. Go to the corner until you can play nice!
  48. I am picking up my jaw... by cr0sh · · Score: 2

    Amazing!!! 256 Bytes!!! Humbling, to say the LEAST!!!

    People - download this and try it, and be amazed!!! It is .com file, for DOS - but it runs _fine_ under NT!!!

    My head is spinning!!!

    I can't use enough exclamation points!!!

    --
    Reason is the Path to God - Anon