Wikipedia:Reference desk/Archives/Computing/2007 September 24

From Wikipedia, the free encyclopedia

Computing desk
< September 23 << Aug | September | Oct >> September 25 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


Contents

[edit] September 24

[edit] ECC registered memory

My AMD64 motherboard bios has multiple settings for ECC so I know that it is supported and has in fact booted on PC2100 ECC. But I can not seem to get it to boot on PC3200 ECC. Any suggestions as to a working configuration setting for stubborn PC3200 ECC? Clem 01:24, 24 September 2007 (UTC)

[edit] PostgreSQL constraint

I have a PostgreSQL database with columns called value and valuelist in a table called pfm_value, and columns called Category and Rarity in a table called cards. I'd like to create two foreign-key constraints where Category and Rarity reference value, but I'd like to take it a step further and require that Category be a value for which valuelist = "categories", and Rarity one for which valuelist = "rarities". Also, PostgreSQL currently demands that for the constraints, I must put a unique on value, but I don't want to do this. (The primary key of pfm_value is value, valuelist.) How do I accomplish these things, other than by creating one column that is "categories" in all rows and another that is "rarities" in all rows? Could I somehow specify the constant "categories" or "rarities" in place of a second column of cards in the foreign key? NeonMerlin 01:47, 24 September 2007 (UTC)


OK, let me check this is what you want:

pfm_value
Combined key value NOT unique
Combined key valuelist
cards
Combined key Category Must be in pfm_value.value
Combined key Rarity Must be in pfm_value.value

OK, the Category to value relation and Rarity to value relation are both many-to-many, which should be done with a link table. In this case, the link table will be the list of acceptable values for the "value" attribute.

list_of_values
Key value unique

The link table makes the other requirements into FK constraints, like this:

CREATE TABLE list_of_values (
  value INTEGER PRIMARY KEY
);
CREATE TABLE pfm_value (
  value INTEGER REFERENCES list_of_values (value),
  valuelist TEXT,
  PRIMARY KEY (value, valuelist)
);
CREATE TABLE cards (
  Category integer REFERENCES list_of_values (value),
  Rarity integer REFERENCES list_of_values (value),
  PRIMARY KEY (Category, Rarity)
);

--h2g2bob (talk) 11:08, 24 September 2007 (UTC)

No, that won't do it at all. First, the cards table's primary key is, and needs to remain, (Name, Set). (Category, Rarity) won't be unique. Second, the categories and rarities on the cards table need to remain the values (which are words such as "Creature" or "Uncommon") so that the table will be human-readable in isolation. And the categories and rarities are many-to-one (since each card has only one rarity and one category). NeonMerlin 20:56, 24 September 2007 (UTC)
The only real PK requirement in my suggestion was that of list_of_values, so the cards PK can be changed to whatever. I think the issue here is that the value column in pfm_value can have the same value multiple times, so it isn't a one-to-many. The only way around this that I can see is to make a table of only the values and link both the other tables to that. --h2g2bob (talk) 01:20, 25 September 2007 (UTC)

[edit] iPod Classic not accepting podcasts

I recently purchased an 80GB iPod Classic. I tried to download the podcast Chuck Ferrell Drums. When syncing, iTunes tells me the first episode (which is .MOV as opposed to .M4V of all the other videos) is incompatible with my iPod. Despite it being advertised as playing .MOV, I clicked "Convert selection for iPod", and it was converted to a .M4V in the "Movies" section. It now can properly sync to the iPod. The problem is, I would like this to be grouped with the other podcast epsodes, not with the movies. Any help would be great. Thank you in advance. QWERTY | Dvorak 02:25, 24 September 2007 (UTC)

[edit] PHP scripts...Maximum length?

I have an automatically generated PHP script which is really just a long list of calls to a single function with different parameters. When the file is under ~22,000 lines of code, it works fine - add a handful of extra lines and I get NOTHING in my browser window. No HTML output, no error message, nothing. Is there some kind of arbitary limit on the maximum size of a PHP script? SteveBaker 03:04, 24 September 2007 (UTC)

Maybe you're exceeding the memory limit in php.ini? --antilivedT | C | G 03:26, 24 September 2007 (UTC)
That's the solution I'm looking for! Many thanks. SteveBaker 15:59, 24 September 2007 (UTC)
Maybe this is not the best way to call a single function with different parameters. Have you considered making a loop to determine the calling parameters? Nimur 04:19, 24 September 2007 (UTC)
My money's on that. Is there any way to just directly execute the functions as they're built rather than storing them and running the script later? Or maybe you can try just splitting the script in half if it's just a long list of function calls. The slickest way of course is to do what Nimur suggested.. instead of generating a big php file, generate a half-simplified version. I mean like if the program doing the autogenerating has as its inner loop just a simple call-this-thing-100-times then have it generate a php script that loops 100 times instead of pasting the function call 100 times. PHP will not have memory problems with long loops- I've run 10,000 iteration loops that each had an HTTP request (!) and had plenty of memory to spare --frotht 06:36, 24 September 2007 (UTC)
If the large size is because you're storing data in it, then use SQL rather than storing it as lots of variables. --h2g2bob (talk) 10:22, 24 September 2007 (UTC)
Fascinating answers gentlemen - but not what I asked. I'm fully aware of other ways to do things - I wanted to know how long a PHP script could be. SteveBaker 15:59, 24 September 2007 (UTC)
This is a photo gallery generator program - that generates super-fancy galleries that can include still images (some in arcane file formats that web browsers don't support), movies (which have to be converted to FLV's) and 3D models (which are rendered into short 'fly-around' movies...wehich are converted to FLV's). There is a C++ program that generates a PHP script, auto-resizes images for thumbnails, grabs snapshots from movies and renders movies from 3D models. That in turn generates HTML+Javascript with ~1 line per image file. Normally, it works just fine - but the other day I wanted to post every single photograph I've ever taken (10's of thousands of them) and it broke the script. I'm not about to rewrite an already super-complicated thing - so I'll make it split the gallery into sub-pages. I just need to know what the limit is so I can split it appropriately. Switching to SQL is way too big a change for an already complicated system - especially since it'll probably never have to handle even 1/10th this amount of data again and I'm only going over this magical limit by about 5%. Doing the actual processing inside the PHP script is not a good idea because it involves lots of complex image processing and 3D rendering and it's running on a web server with very little horsepower. I'm sure there ARE other, better ways - but this thing works 99.99% of the time and that's "good enough - mostly". SteveBaker 16:07, 24 September 2007 (UTC)
Well if the image processing is being done by a C++ program, and it generates image0.png to image9999.png then in the PHP you do
print "<img src=\"";
for($i=0; $i<10000; $i++) print "image" . $i;
print ".png\">";
instead of:
print "<img src=\"image0.png\">";
print "<img src=\"image1.png\">";
print "<img src=\"image2.png\">";
print "<img src=\"image3.png\">";
//ad infinitum
That's what I meant, not to do any complex processing in the PHP --frotht 23:59, 24 September 2007 (UTC)
Yeah - but that would assume that I was a complete idiot rather than someone who earns a small fortune writing kick-ass cross-platform video games and who has been a senior programmer for 30+ years! The images are not conveniently named 'imageXXXX', they are things like "baby_with_puppy_Xmas_2005.jpeg" - and I have really strong reasons for not wanting to rename them (eg they are referred to elsewhere in existing web pages by their original names) the function in question also takes as parameters, the resolution of the image, the resolution of the thumbnail, what gamma settings it was photographed with - and with which camera - what it links to (maybe a movie, maybe something else), a text description of the image "A Baby with a Labrador Puppy photographed by Steve on 24th December 2005 at Grandma's house"...so it's not so simple. SteveBaker 19:39, 25 September 2007 (UTC)
Never underestimate the internet's willingness to condescend in even the most improbable situations- the guy who created ghostscript was only 12 when he discovered his genius programming ability..

Within weeks, he had attained a striking proficiency in programming. He was only twelve years old. ... McKenzie worried that someone might accuse him of running some sort of summer camp, with this short-pants little kid, barely tall enough to stick his head over the TX-0's console, staring at the code that an Officially Sanctioned User, perhaps some self-important graduate student, would be hammering into the Flexowriter, and saying in his squeaky, preadolescent voice something like "Your problem is that this credit is wrong over here...you need this other instruction over there," and the self-important grad student would go crazy--who is this little worm?-- and start screaming at him to go out and play somewhere. Invariably, though, Peter Deutsch's comments would turn out to be correct.

Hackers: Heroes of the Computer Revolution

Anyway how about..
$namelist = fopen("filenames", "r");
print "<img src=\"";
for($i=0; $i<10000; $i++) print fgets($namelist);
print ".png\">";
fclose($namelist);
5 lines, and adding additional data about the images wouldn't be much more. Proper DB support is only a few lines off if you already have a database server installed. How can you resist the creeping featurism? Make it lean and fast! --frotht 18:06, 27 September 2007 (UTC)
Additionally you can loop together many thousands of lines without problem if you do it in multiple files and just include() them. --24.147.86.187 15:30, 24 September 2007 (UTC)
Yep - that's what I was thinking of doing...but if it's the memory limit thing then that's presumably not going to help. SteveBaker 15:59, 24 September 2007 (UTC)
I think some (most?) servers have limits on execution time of php scripts before it terminates them. Perhaps you're running into that? 69.95.50.15 —Preceding signed but undated comment was added at 15:48, 24 September 2007 (UTC)
No - it's definitely size. SteveBaker 15:59, 24 September 2007 (UTC)
This is a long shot, but you could add flush() in the generated php every so often. Could be exceeding some memory limit on the buffered version, or some such thing. --h2g2bob (talk) 17:51, 24 September 2007 (UTC)
I still don't understand why you are possibly running into a problem like this for such a program. I don't want to outright just say, "man, it sounds like you have gone about this in entirely the wrong way," but it really does look like that, if you are generating 22,000 lines of PHP code for an image gallery. I have made image gallery scripts with less than a tenth of that amount of code. There has got to be a better way to do what you are trying to do. I don't understand, for example, why you are having the C++ generate PHP script — that seems like a very bad way to approach it; either the C++ should generate the HTML+Javascript itself, or it should be outputting the data in such a way that a nice, compact PHP script could iterate over it in order to generate the HTML+Javascript (e.g. have the C++ output to a temporary text file, and have the PHP file read it into an array, and then just loop through the array elements and throw them up on a page). It sounds like you are writing some majorly redundant, bad-practice code.
In any case, if you really want to find out what's going on, switch on all of your error reporting in PHP to a maximum (you can do this programatically, I believe), and it should tell you something. --24.147.86.187 14:54, 25 September 2007 (UTC)
  • My PHP installation comes with a default memory limit of 8MB, which is probably what you're running into. You want to set it to something large, either on the command line:
php -d memory_limit=80M yourscript.php
or in your php.ini:
memory_limit = 80M
or .htaccess:
php_value memory_limit "80M"
Your web server error log was probably complaining like:
Allowed memory size of 8388608 bytes exhausted (tried to allocate 14942208 bytes)
--Sean 16:12, 25 September 2007 (UTC)
Thanks! I figured it out last night. 8M was indeed the default, pushing it to 10M solved the immediate problem. I agree that had I known that this program (that was designed for galleries of 100 or so photos) would be called upon to do tens of thousands of photos - and had I known there was a weird limit on the maximum size of a PHP program - then maybe I'd have written it differently. Rewriting the program for a one-time-use is not worth the effort. So right now, the easy thing is to bump the limit on the server - which has 2Gb of RAM and is rarely serving more than one or two simultaneous users. The PHP code is needed because the gallery allows you to have different 'skins' and uses cookies to let users pick the skin they want so I do need to generate HTML on the fly. When there are just a few hundred photos (as nature intended) it's quicker to just add one line of PHP code per photo than to add all of the code for parsing it all in from a data file...in effect, I got the data parsing code 'for free' by using the PHP interpreter - which saved me a fair bit of effort. It would be rash to criticise the way the program was written without understanding all of the constraints...so I'll forgive you that! SteveBaker 19:39, 25 September 2007 (UTC)
  • I didn't criticize; that was someone else. I completely agree that brute force is often the best way to do one-offs. --Sean 20:14, 25 September 2007 (UTC)

[edit] IE versus Firefox

I can view Google maps using firefox but not with IE. Any reason why? Clem 08:52, 24 September 2007 (UTC)

We need more information: what exactly goes wrong in IE? Is there an error message? Can you get to the maps site at all? Have you disabled images and/or script in IE? Which version of IE (and Windows) are you running? AndrewWTaylor 12:27, 24 September 2007 (UTC)

[edit] Windows Vista - system crash when playing a game in compatibility mode

Hi all! I was initially disappointed when upgrading from XP to Vista that I could apparently no longer play the game World Snooker Championship 2005 (I checked on various internet forums, messageboards etc. which mostly agreed it was incompatible). However, I installed it anyway, and was playing around with the Program Compatibility settings ... I selected some settings which seemed appropriate (sorry I can't be more specific at the moment - I'm at work, but later today I can check the exact settings I selected if it is relevant), ran the game and found it worked. Well, after a fashion - after about 10 minutes, the system crashed without warning with a blue screen of death, and rebooted to the Vista desktop as normal. I noticed that a memory dump had been taken (pretty large, so it's probably the entire contents of the memory). Unfortunately, as the screen was only up for a short time, I couldn't see the exact error message or any of the other parameters: maybe these will be saved somewhere in a log file or something? I'm not an expert in these things... :) Anyway, I tried playing the game a few more times, and it crashed in the same way on 4 out of 5 occasions, after between 5 mins and 2 hours of playing time. The timing of the crashes has been random, with no obvious cause. So ... am I likely to do any damage to my nice, brand-new computer by continuing to play this game in compatibility mode; what might be the cause of the crashes; and other than not playing the game, might there be any ways around the problem? Thanks for any assistance, and I'll try to provide more info about the problem if it helps. Hassocks5489 12:21, 24 September 2007 (UTC)

[edit] Vista and wireless + WPA problems?

Does anyone have experience with wireless connection problems with Vista?

Situation: fairly new Toshiba laptop with Vista Home Premium. Wireless internet router.

The laptop is very very slow in establishing connection with the wireless network. Sometimes it takes a couple of minutes until it connects.

At the same time, my older Toshiba laptop with XP SP2 doesn't have the slightest problem connecting (and never had any problems at all, actually).

The problem disappears as soon as I disable WPA encryption.

I already tried installing the newest drivers of the Intel wireless NIC, disabling IPv6... No difference.

212.153.56.10 12:43, 24 September 2007 (UTC)

[edit] Help with perl

Is anyone willing to help me with a perl script through email and/or IRC? it's way too long to post here, but basically I'm using POE's IRC component to create a bot to run a game. I started by writing a generic bot that connects and does nothing, but by the time I've finished adding in my subroutines, the new bot won't connect at all and I can't seem to track down the elusive typo, error, or whatnot. Kuronue | Talk 15:22, 24 September 2007 (UTC)

You do have "-w" in the shebang line, right? This enables additional error-checking that may help you locate your problem.
Atlant 17:07, 24 September 2007 (UTC)
I've got use warnings and use strict. I'm on windows using ActivePerl, I forgot to mention that. Kuronue | Talk 19:17, 24 September 2007 (UTC)
If the code is too long to post here, perhaps you could put it on a pastebin site (I've seen pastey.net recommended) and post a link here? —Ilmari Karonen (talk) 19:26, 24 September 2007 (UTC)
Good idea. alright. http://pastey.net/74302-2qiq is the bot I'm trying to get to work, and http://pastey.net/74303-2m1q is the working code. I also seem to have a stray close-brace - it bitches trying to compile without it, but I've checked and re-checked and can't seem to find the openbrace it goes to, which is probably at least half the problem right there. Kuronue | Talk 19:55, 24 September 2007 (UTC)
ETA: the log file for genbot has four-five lines: connected to server, joined channel, and it gets versioned by two serverbots on connect. Then I kill it with secret trigger for line 5. The log file for wolfbot merely says "log opened at X time: Bot start!" - never even attempting to connect. Kuronue | Talk 19:57, 24 September 2007 (UTC)
The line if ($found == 1 && $msg == "!kill*") { appears to contain the unmatched brace. It's good to have an editor with brace-matching (for example, in vi place the cursor on a brace and press % and it'll jump to the matching brace). You can start by pressing % on the unnecessary extra brace at the bottom of the script to see where it's matching, and then go to the brace you thought should match that one and see what it matches, and repeat until you've found the problem. --tcsetattr (talk / contribs) 20:19, 24 September 2007 (UTC)
AH! There's that brace! Thanks. I took a break to work on a paper after being up late last night looking for it. Now I can take a break from that damn paper to test... yup, now it works. Awesome. I thought the brace had to do with it. I've been coding in notepad, I really need to get a better program >.> Kuronue | Talk 21:02, 24 September 2007 (UTC)

A second problem, if I may: I can't get it to set modes, at all. I've changed the mode setting line to what I think is correct: $kernel->post( $IRC_ALIAS => 'mode' => $werewolf => '+o' => $NICK); doesn't do anything because the nick is already opped for testing, but neither does $kernel->post( $IRC_ALIAS => mode => $werewolf => '+t' => "It is day. !vote someone off the island!");. Also, it hangs for eternity - while it's doing a $kernel->delay, it doesn't receive any triggers, not even the kill trigger. Should it? Is there a better way to have it not proceed until it gets input? the idea was it could delay as long as the game is on pause, and keep the game on pause until it gets enough player input to unpause it... Kuronue | Talk 21:31, 24 September 2007 (UTC)

in fact, kernel->post isn't working at all: it's not posting a names so it thinks there are 0 players, topic changes don't work, messaging the channel, messaging nickserv to login to the registered nick... none of it. http://pastey.net/74307-1r2l is the newest revision. Kuronue | Talk 22:28, 24 September 2007 (UTC)
Turns out my POE was hopelessly out of date. I'm getting some help now. Thanks. Kuronue | Talk 03:15, 25 September 2007 (UTC)
  • Also note that you want "eq" rather than "==" for string comparisons. You should be seeing warnings about it:
$ perl -lw
  $msg = "!kill*";
  print "the message is bang-kill-star" if $msg == "!kill*";
  print "but it is also dog"            if $msg == "dog";
  ^D    
the message is bang-kill-star
but it is also dog
Argument "!kill*" isn't numeric in numeric eq (==) at - line 2.
Argument "!kill*" isn't numeric in numeric eq (==) at - line 2.
Argument "dog" isn't numeric in numeric eq (==) at - line 3.
--Sean 16:31, 25 September 2007 (UTC)

[edit] Mac Preferred Wireless Network

I use Mac OS 10.4 and have had trouble with my wireless network. I connect to the internet wirelessly (via Airport) and on to my wireless router. The router does require a password, but that has been added to my keychain and so I'm never prompted to put it in. The problem is, my router is not set as a preferred network, and so my computer always tries to log onto the neighbor's network first. Then I always have to manually select my network from the list. Is there a way to add my network as the preferred network so I automatically connect to it? Thanks, GreatManTheory 16:50, 24 September 2007 (UTC)

I think this has worked for me in the past...Select the network, turn on/off wireless networking and it should automatically try to reconnect to the last network. Alternatively go into System Preferences > Network > Airport and then 'by default join' and select the name you need. You need to be in the airport part but it doesn't matter whether you are using an airport base-station (mine is a belkin router). ny156uk 17:53, 24 September 2007 (UTC)
The list of "preferred networks" can be found System Preferences > Network > Airport:Configure > change "by default join: automatic" to "by default join: preferred networks" and the list will appear. You can add your network and remove his from the list. --24.147.86.187 01:08, 25 September 2007 (UTC)

Thank you both for the help, it is working fine now. GreatManTheory 11:11, 25 September 2007 (UTC)

[edit] Proving primes with seven gates

I just ran across this item in HAKMEM.. I'm very interested- how do you prove a 4 bit number is prime with 7 gates? I mean, is there some actual algorithmic method rather than just writing out the minterms (there'd only be a few primes from dec0 to dec15) and minimizing logic as best you can? --frotht 17:06, 24 September 2007 (UTC)

Well, given that there are six minterms (2, 3, 5, 7, 11, and 13) to be "or"ed together and that requires seven gates in total, that seems to be the intended "way" to do it. An algorithmic attack (e.g., the Sieve of Eratosthenes) would require far, far more gates, even considering just the control logic. It would also be far slower than this "flash" (fully-parallel) approach.
Atlant 17:12, 24 September 2007 (UTC)
I don't think it's as obvious as you make it sound.. each minterm is a conjunction of 4 bits, so if you were to just do the sum-of-products as you said, that'd be 6 + 18, 24 gates if you only used two input gates. Thanks for the wikilink though --frotht 22:10, 24 September 2007 (UTC)
It depends. If you have PLA-like minterms, you have the choice of inverting or non-inverting inputs to the AND gates, so each minterm can do an exact match on the prime that it is programmed for.
Atlant 00:38, 25 September 2007 (UTC)
Oh you're talking about CHEATING aren't you :) You mean just taking a 16x4 mux and factory-programming the inputs to vdd/ground based on whether they're prime, and using ABCD as the control lines? I went and actually did a karnaugh map and I got a solution with 6 gates total, but obviously there are some ORs and XORs thrown in the mix. I can't imagine how a 16x4 mux could only take 7 AND gates though.. seems to me like you'd need some kind of disjunction, like:
![control line A] AND ![control line B] AND [input 0]
OR
![control line A] AND [control line B] AND [input 1]
OR
[control line A] AND ![control line B] AND [input 2]
OR
[control line A] AND [control line B] AND [input 3]
for a 4x2 mux. Maybe I just don't understand how they work inside, but there has to be some kind of disjunction, at least electrically, right? Even if you're only talking about something similar to this --frotht 01:06, 25 September 2007 (UTC)
Never mind, I realized that you can define a function by what it's not with AND gates and came up with these:
P OR Q = (P' AND Q')'
P XOR Q = (P' AND Q')' AND (P AND Q)'
So obviously these can be substituted into my solution for an all-AND solution, albiet a massive one:
A'C(B'+D) + D(B XOR C)
(((A' AND C) AND (B AND D')')' AND (D AND ((B' AND C')' AND (B AND C)'))')'
(((A'C)(BD')')'(D(B'C')'(BC)')')'
Darn it, 8 gates. What am I missing? I don't think they're talking about a cheap hardwiring method.. how can I simplify this logic further? --frotht 01:31, 25 September 2007 (UTC)
Re-reading your responses above, I don't think you see the main challenge of the problem which is to not use any OR gates at all. You said "given that there are six minterms (2, 3, 5, 7, 11, and 13) to be ored together and that requires seven gates in total, that seems to be the intended way to do it" and I still can't think of any direct-match type thing like a mux that could be defined with all AND operations and not be spectacularly gigantic and expensive --frotht 01:35, 25 September 2007 (UTC)
I can't say it's a particularly algorithmic method, though it is certainly systematic: I made the assumption that 4 of the 7 gates analyzed the inputs, leaving the other 3 to analyze the results of those 4 (since we must have one output); this means that no gate has any fan-out. With the further restriction that the four first-layer gates are distinct and analyze distinct inputs (though I allowed such things as a&&!a), this leaves "just" {{2m\choose2}\choose f}2\prod_{i=1}^{n-f}4{f-i+1\choose2}=47174400 possibilities (where f: = (n + 1) / 2 for an odd number n gates and m inputs). Enumerating all of these and testing for equivalence to the prime function took (a lot of time programming and) 10 seconds and gave 10 solutions (5 equivalent configurations of unifier gates on top of each of 2 sets of initial gates): one family looks like (PR(Q'S)')'((QS)'(Q'R)')' and the other looks like ((PR(Q'S)')'(QS')')(Q'R')'. I don't know that there aren't other solutions, because of the assumptions that I made; I do know that 5 gates used as 3 initial and 2 analyzing is not enough, but it's even possible that other kinds of solutions exist for n\in\{5,6\}. --Tardis 23:35, 26 September 2007 (UTC)
Aw but that's cheating :( --frotht 17:39, 27 September 2007 (UTC)

[edit] Cache

Where could I find the cache folder on my computer or how could I locate the cache folder? —Preceding unsigned comment added by 68.120.230.206 (talk) 22:51, 24 September 2007 (UTC)

Scroll up a bit (WP:RD/C#Can_not_find_Internet_Folder).. mine's C:\Users\Brian\AppData\Local\Microsoft\Windows\Temporary Internet Files but if you're not using Vista or your username's not Brian (likely) then yours will be different. It doesn't seem that firefox uses that folder too. --frotht 00:33, 25 September 2007 (UTC)

[edit] Chat scripts

This is definitely a noobish question, but I've got to start somewhere. Is there a standard type of implementation, or else a general design paradigm for website based (non IRC) chat systems? I've seen a few, and was wondering how exactly this is achieved. I'm used to java applets being able the interface with IRC, but these new things confound me... --81.151.250.111 23:36, 24 September 2007 (UTC)

Not really. AJAX is simply the best you can do without flash or java and of course there's no standardized chat API over ajax. Web sites are inherently stateless (contrary to what microsoft seems to think) and chat is difficult to implement. --frotht 00:25, 25 September 2007 (UTC)
You can make it auto refresh every xx seconds but that's a very crude method of doing it. Now thinking about it, how did those chatrooms back in the old days worked? --antilivedT | C | G 09:22, 25 September 2007 (UTC)
Java probably. Also probably a frontend to IRC to save development costs. --frotht 18:08, 25 September 2007 (UTC)
But I didn't even know about having to install browser plugins until the 21st century, and that was a few years before that... --antilivedT | C | G 11:10, 26 September 2007 (UTC)
They worked on HTTP Server Push where the client and server left the HTTP request open and the server would send more data. With the "multipart/x-mixed-replace" content type the whole page would change (and this can be used in XMLHttpRequests which will trigger a load event each time the server sends more data).
But from what I remember of old chat style scripts they mostly just an IFRAME that never finished loading, piping a data from the server line by line. Plus another iframe with an input box, these all worked terribly well and I forget why we decided to convert to and from XML 50 times to accomplish the same thing. Caffm8 22:55, 26 September 2007 (UTC)
What about two way live audio/video streams (other than VOIP), often combined with a chat script? Is there a standard method for achiveing this? --81.151.250.111 22:10, 27 September 2007 (UTC)
That would definitely use Flash, since there's no way accessing your hardware through HTML. However even with Flash it's a bit sketchy/messy. --antilivedT | C | G 10:19, 29 September 2007 (UTC)

[edit] Mid/early 1990s computer game

When I was quite young I used to play a computer game that I can't for the life of me find information on today. It was a text-based interface from a first person point of view but used simple CGA graphics to display scenes. You could go North and West and South and all of that standard thing. The basic plot was that you were tramping around a cave and looking for treasure. It was not too difficult; I was pretty young and I could beat it. The toughest part, if I remember correctly, was a long section where you would get stuck in a labyrith or catacombs or something like that — basically a maze sequence. I am reasonably sure it was not Colossal Cave Adventure, as there are many unfamiliar elements in reading that description and I'm pretty sure the game I played was far smaller and simpler. It was played in DOS. I want to say it had something to do with pirates — you could run into a pirate at random or something like that? Anyway any help would be appreciated. I'm pretty sure I'd recognize it if I saw some screen shots. --24.147.86.187 23:58, 24 September 2007 (UTC)

A bit older than the 90's (although the CGA graphics are older than that too), but maybe something from Scott Adams (not the Dilbert guy)? There is a list of his games here, including links to reviews and playable versions. --LarryMac | Talk 00:04, 25 September 2007 (UTC)
Hmmm... none of those look quite right. Note that none of those which come up for any search of "treasure" or "cave" or "pirate" on MobyGames is correct at all. --24.147.86.187 00:10, 25 September 2007 (UTC)
I seem to recall it having some sort of name like "Pirate's Cave" or something like that, but nothing I find in Google with searches like that seem right. --24.147.86.187 00:20, 25 September 2007 (UTC)

There were a fair number of text-based fantasy role-playing games: Dungeon was one that followed immediately after Adventure and was eventually commercialized as Zork. Infocom eventually produced a long line of games based on the same basic game engine.

Atlant 12:11, 25 September 2007 (UTC)

I'm aware of that, but it is practically certain to me that it is not an Infocom game. It was relatively simple in complexity and difficulty, something that cannot really be said for Infocom games in my experience. --24.147.86.187 14:48, 25 September 2007 (UTC)
Not to beat a dead horse, but one of the Adams' games, Pirate Adventure was also apparently known as "Pirate's Cove" and somewhere along the line when I was researching last night I saw mention of something like "can you escape the maze of pits?" On the other hand, none of the screen images I saw showed any graphics at all, although I clearly (over the haze of 20-ish years) recall Scott Adams' games having those blocky four-color type displays. Sierra On-Line had that type of display also, but I don't see any of their games with a pirate-y theme. You might want to ask at rec.games.interactive-fiction, or search more on that ifiction.org site. --LarryMac | Talk 15:50, 25 September 2007 (UTC)
You needn't rely on screenshots: all of the Scott Adams games are now available free of charge, and there's an emulator (ScottFree) that lets you play them on modern machines. See [1]. -- BenRG 11:27, 27 September 2007 (UTC)