Forgot your password?
typodupeerror
Links

Tiny Apps 318

Posted by michael
from the pkz204g.exe-my-personal-favorite dept.
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."
This discussion has been archived. No new comments can be posted.

Tiny Apps

Comments Filter:
  • Fascinating (Score:2, Interesting)

    by friday2k (205692)
    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 [scene.org]. 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 ...
    • Not to mention 64k should be enough for anybody.. But hey, in a world where the automobiles [popealien.com] 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.
    • 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 [qnx.com] has to be the coolest and most fun of of anything ive ever seen fit on a floppy.

  • I remember somebody posting a message about a couple of tiny programs that would print an Estes style fin alignment sheet and a centering ring template for single and cluster engines. These were not big or pretty, but they did the job. Does anybody know where these programs may be hiding? I've looked at Tiny Apps [tinyapps.org] with no luck.
    Thanks for any assistance.
    • 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?
  • Reliability (Score:2, Interesting)

    by CrunchyMunchy (23178)
    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.
    • 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.

      • by Soko (17987)
        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
        • 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.
      • 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
    • I don't think it is nearly impossible to produce enormous but reliable software. I just think it takes longer then the short programming cycles marketing places on programmers. So what gets pushed out the door is always the best product the programmers can do.
      What is inexcusable is releasing buggy software and not fixing the bugs on a timely basis. And then make you pay to buy the next version to fix the bugs.
  • with the talk of old [wired.com] games [slashdot.org] being revised with new, big-gun, uber-3D engines [blah blah blah], makes you long for the days when a good game could fit on a disk... or two. I think a section for games would be quite interesting.

    I am trying to think of an off the top of my head way to find single disk games using a favorite search engine, but am not thinking of any really good queries. This is under the assumption that I don't find aggregation sites such as tiny apps [tinyapps.org].

  • I have one, it's a nice newsreader for *nix and --

    Oh, I thought there was another 'n' in there. My bad.
  • heh (Score:2, Funny)

    by Nate Fox (1271)
    Anyone find the irony in having an app called NotGNU Emacs [geocities.com] on a 'Tiny App' page [tinyapps.org]? 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 [google.com].
  • Can I nomiate notepad!?

    -Bill
  • "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
    • by Trepidity (597) <delirium-slashdot AT hackish DOT org> on Tuesday October 23, 2001 @11:24PM (#2470354)
      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?
      • 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?

        On a Linux box, you've got choice. You don't need Gnome. You don't even really need X. Obviously some programs will require all sorts of widgets etc etc, to run, but aren't there other alternatives that will do the same thing? Linux is great in that it's customizable. Try seperating win2k from the GUI. You can't even boot to a command prompt anymore (unless you use the install CD to enter rescue mode.)

        It's a sad, sad thing when you need 128mb+ ram and 2gb+ hard drive space to install the newest Microsoft OS, just to read e-mail and surf the web.
      • 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.

  • some of the greatest apps are not complex and weigh under 1.44 mb...
    check out this addicting puzzle game [popcap.com], youll be hooked, guaranteed :)

  • Call me old fashioned but I still consider a "tiny" app to be something that can fit into 64K.

    It was only last year that Opera got too large to fit on a floppy and that's a program that has never felt tiny.

    Perhaps the word you're searching for is "reasonable".

  • Tiny AI (Score:1, Offtopic)

    by Mentifex (187202)

    Although the free open-source tiny AI app at http://mind.sourceforge.net [sourceforge.net] is only about 50K in MSIE JavaScript, you may have a tiny AI on your PC or Web site only for a few months or scant years, because from a tiny acorn grows a might oak (robur in Latin), a robust AI capable of taking over the noosphere if not the World. For corroboration of this claim, see Technological Singularity [caltech.edu] by Vernor Vinge.

    Therefore do not think of tiny apps as being only puny little programs such as screensavers or Windows XP. A seed AI could start out life as a tiny little application flitting across the 'Net and snowballing into a behemoth AI, a Wintermute as in Neuromancer by William Gibson.

    On SourceForge, whole languages are being devised to go from tiny app AI into Big Time AI. For instance, the liaison page at http://mind.sourceforge.net/flare.html [sourceforge.net] leads to the XML-esque Flare language project, where you may start out writing tiny apps but where you will one day come face to face with Singularity AI.

    • by Anonymous Coward
      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!
  • They shouldn't be using TinyHTTPD on TinyServer. Then they could handle more than a Tiny amount of hits.
  • by Black Acid (219707) on Tuesday October 23, 2001 @11:24PM (#2470358)
    Andrew Main wrote several standard utilities in assembly and packaged them as smallutils [linux4u.jinr.ru]. The description [unc.edu] 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
    • by dbarclay10 (70443) on Wednesday October 24, 2001 @12:14AM (#2470529)
      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.
    • Another poster already mentioned Busybox [lineo.com] (site seems to be broken now, but I'm including the link anyway). Together with Tinylogin [lineo.com], 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.

    • LinuxAssembly - go here [linuxassembly.org] - 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.
  • GEOS (Score:2, Interesting)

    by wampus (1932)
    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?
    • I dimly recall that Aol used to be Quatumlink.
    • Re:GEOS (Score:3, Insightful)

      by Russ Steffen (263)

      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.

      • by torpor (458)
        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...
    • GEOS got licensed (sold?) to New Deal [newdealinc.com], who are promoting it as a software suite, New Deal Office, for old computers. Their primary customers seem to be schools.

      You can download [newdealinc.com] 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).
  • We have Tiny Apps ... OpenBeOS ... and the iPod. Are you thinking what I'm thinking? Heh heh ...

    ~LoudMusic

    -- and I was doing so good with my karma too --
  • This [offbyone.com] web browser is pretty nifty... I'm even using it to make this post.
    • 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! ;)
  • by Black Acid (219707) on Tuesday October 23, 2001 @11:33PM (#2470393)
    The folks who develop FreeBSD released PicoBSD [freebsd.org], 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 [freshmeat.net] and Alfalinux [freshmeat.net] (Slackware on 2 floppies). BBIAgent Router [freshmeat.net] is simply amazing: it's a single-floppy Linux-based router and firewall.

    • 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.
    • 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/ [google.com]

      BBIAgent is broadband only, if you want a floppy router with dialup support for us "non-broadband" users, check out http://www.freesco.org [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

  • Tiny apps in the computer
    Make me happy, make me feel fine,
    Tiny apps make my CPU run cooler
    With a feeling that I'm gonna Love you 'til the end of time.

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

    Or, click here. [consume.org]

    Jordan

  • Any time you talk about tiny applications, you have to mention the 1.44MB QNX demo disk. It is several years old now, but can still be found here [qnx.com].
    Incidentally, this is an older version of the OS than the free version at get.qnx.com [qnx.com]
  • If you want standard unix commands goto busybox.lineo.com

    There are about 130 general functions all compilable into a single binary unpto a few hundred kB.

  • 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 [int80h.org]. There is also a Linux Assembly Programming Resource Site [sitereview.org]. 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.

    • 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.
  • to help contribute to the tiny app community


    #!/usr/bin/perl
    print "Hello, World!\n";


    Nice to know i've made a difference in the Free Software / OSS
  • 1.44 MB? (Score:3, Interesting)

    by Daniel Franklin (60786) on Wednesday October 24, 2001 @12:03AM (#2470498) Homepage
    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

  • I'm very proud of the fact that my first shipping commercial software product, Last Resort [working.com] from Working Software [working.com], 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...

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

    I'll start the ball rolling with my Buskpledge [buskpay.com] 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 [boswa.com]. It's a little wierd, using a custom semi-literate programming tool, and a half-assed gzip clone for internal compression.
  • I'm using a window manager with a (stand-alone) 27 kilobyte binary - 9wm [g7.org].
    Does anyone have a smaller one?

    Danny.

  • Tiny ? Risc ! (Score:4, Insightful)

    by mirko (198274) on Wednesday October 24, 2001 @12:27AM (#2470568) Journal
    You might need to take a look to RiscOS [riscos.com] 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.
  • 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.
  • In response... (Score:5, Informative)

    by milesw (91604) on Wednesday October 24, 2001 @12:54AM (#2470624) Homepage
    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 [qnx.com] and the OffByOne Web Browser [offbyone.com]. 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 [myeve.org], 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 [editthispage.com] (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 [consume.org] mentioned in one of the posts.

    Much aloha,

    Miles Wolbe
    miles@tinyapps.org [mailto]
    http://www.TinyApps.org/ [tinyapps.org]
    • Ok, so how many hits did slashdot get today with
      "User-Agent: Mozilla/3.0 (compatible; OffByOne; Win****) Webster Pro V3.2"?
  • Atari (Score:4, Interesting)

    by goingware (85213) on Wednesday October 24, 2001 @12:58AM (#2470633) Homepage
    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.

    • 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
      • 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
      • 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.
        • Re:Atari (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 [alienbill.com]
        • by Fjord (99230)
          Believe it [roarvgm.com]. 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).
  • 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.

  • by bstadil (7110) on Wednesday October 24, 2001 @01:45AM (#2470731) Homepage
    Refreshing to see you all bragging about "Who has the smallest"
  • RISKS on Bloatware (Score:3, Interesting)

    by goingware (85213) on Wednesday October 24, 2001 @01:51AM (#2470741) Homepage
    Everyone should read The Forum on Risks to the Public in Computers and Related Systems [ncl.ac.uk] 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 [ncl.ac.uk]
    2. Response [ncl.ac.uk]
    3. Response [ncl.ac.uk]
    4. Response [ncl.ac.uk]
    5. Response [ncl.ac.uk]
    and also:

    1. Bloat Dissections II [ncl.ac.uk]
    2. Response [ncl.ac.uk]
    3. Response [ncl.ac.uk]
    4. Response [ncl.ac.uk]
    5. Response [ncl.ac.uk]
    6. Response [ncl.ac.uk]
    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.

    • 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.
  • Steve Gibson (Score:3, Informative)

    by Quila (201335) on Wednesday October 24, 2001 @04:58AM (#2471133)
    His stuff is always small (www.grc.com). Trouble in Paradise is a complete Iomega drive diagnosis package self-running at 52KB under Windows.
  • 1.44 MB small? (Score:2, Interesting)

    by gdr (107158)
    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. :-)

  • 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....
  • by pubjames (468013) on Wednesday October 24, 2001 @07:54AM (#2471398)
    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.
    • 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.

  • by DjDanny (171472)
    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 [pouet.net]

    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.
    • 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!!!
  • by msheppard (150231) on Wednesday October 24, 2001 @08:57AM (#2471614) Homepage Journal
    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@
  • *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

Live within your income, even if you have to borrow to do so. -- Josh Billings

Working...