47:51Ranking major U.S. Open-Weights Models. (Where does Ripple 65B fit in?)
Nov 6, 2026 · YouTube
38:58Testing Particle-1: a post-trained DeepSeek V4.1 Flash specializing in coding and efficiency
Oct 28, 2026 · YouTube
29:55Kimi K3.1 Pro Looked Incredible. Then I Kept Testing.
Oct 26, 2026 · YouTube
22:47Mistral Large 4 Is Cheap. But Is It Good Enough to Compete?
Oct 6, 2026 · YouTube
16:45DeepSeek V4.1 Flash Is Shockingly Good for the Price
Sep 10, 2026 · YouTube
17:31Testing Gemini 3.8 Flash on Real Coding Challenges (vs. other models)
Sep 2, 2026 · YouTube
It is March 1998. You build websites. A client wants a site for their community radio station, Radio Saltmarsh, 102.3 FM, broadcasting from a caravan on the east coast.
Build it the way you would have built it that month, for the browsers people actually had.
Internet Explorer 4 and Netscape Navigator 4. It must render acceptably in both. Assume 800 × 600, thousands of colors, and a 33.6k modem, so keep the weight down.
Write the copy yourself. Give the presenters names and the programs titles. Make it feel like a real small station with real people in it — the charm here is in the specifics, not in the beige.
Banned, because they did not exist or did not work:
flex, grid, position:sticky, CSS variables, media queriesborder-radius, box-shadow, opacity, rgba(), transform, transition, @keyframesconst, let, arrow functions, class, template literals, Array.forEach, JSONquerySelector, addEventListener, getElementById (yes — IE4 has it, NS4 does not; you branch)<section>, <header>, <nav>, <video>, <canvas>, data- attributesExpected, because it is 1998:
<font>, bgcolor, border=0, cellpadding, cellspacing, <center><style> block for the bits CSS1 could actually dodocument.all for IE and document.layers for Netscape, branched properly<!-- --> comment wrappers around script contentsdata: URIs for graphics, and you should, because the period look needs them. Draw them yourself; no placeholder services.html block.One short paragraph before the file: your layout structure and how you handled the IE/Netscape split.
The single fenced html block.
The honest part. Go through your own file and tell me:
Be specific and name dates where you know them. If you used a technique and are not sure it existed yet, say that rather than guessing confidently.
Anyone can make a page that looks like 1998 — Comic Sans, a starry background, a marquee. That is a costume.
I want to know whether you know the constraints from the inside: what NS4 did to a nested table, why you cannot put a stylesheet on a form control, what the <spacer> tag was and whose it was, why everyone used a single-pixel transparent GIF. A page that looks a bit plain but is honestly built to the period beats a gorgeous pastiche that uses flexbox under the hood — and I will read the source.
Single 750px-centered table holding a masthead, a JavaScript news ticker (branched: document.layers for NS4 with an <ilayer>, document.all for IE4 with a clipped <div> containing an inner <div>), an under-construction panel, the schedule grid, a 2×2 presenters grid, a mailto: guestbook form, a static hit counter, and a webring strip. Layout uses nested tables, <font> tags, and presentation attributes (bgcolor, border, cellpadding, cellspacing) rather than CSS, because NS4's CSS1 implementation was unreliable enough that nobody trusted it for primary layout in March 1998. The <style> block is kept to four rules as a progressive enhancement. All graphics are 1×1 GIFs stretched via width/height — the classic spacer trick — and a few solid-color ones for the presenter placeholders.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Radio Saltmarsh - 102.3 FM - The Sound of the Marsh</title>
<meta name="description" content="Radio Saltmarsh, 102.3 FM, broadcasting from a caravan on the east coast. Music, chat, and tide times since 1994.">
<style type="text/css">
<!--
body { background-color:#003366; color:#FFFFCC; font-family:Verdana,Arial,sans-serif; }
a:link { color:#FFCC00; }
a:visited { color:#CC9900; }
a:active { color:#FF0000; }
-->
</style>
</head>
<body bgcolor="#003366" text="#FFFFCC" link="#FFCC00" vlink="#CC9900" alink="#FF0000" onload="startTicker()">
<center>
<table width="750" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<!-- ============ MASTHEAD ============ -->
<table width="100%" border="0" cellpadding="20" cellspacing="0" bgcolor="#000033">
<tr>
<td align="center">
<font face="Comic Sans MS" size="7" color="#FFCC00"><b>Radio Saltmarsh</b></font><br>
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" width="1" height="8" alt=""><br>
<font face="Verdana" size="4" color="#FFFFCC"><b>102.3 FM</b> · The Sound of the Marsh</font><br>
<font face="Verdana" size="2" color="#FFCC00">Broadcasting from a damp caravan on the east coast since 1994</font>
</td>
</tr>
</table>
<!-- ============ NEWS TICKER ============ -->
<script language="JavaScript1.2">
<!--
var tickerPos = 750;
function startTicker() {
if (document.layers && document.layers["ticker"]) {
document.layers["ticker"].left = tickerPos;
setTimeout("scrollTicker()", 30);
} else if (document.all && document.all["tickerinner"]) {
document.all["tickerinner"].style.left = tickerPos;
setTimeout("scrollTicker()", 30);
}
}
function scrollTicker() {
tickerPos -= 1;
if (tickerPos < -600) tickerPos = 750;
if (document.layers && document.layers["ticker"]) {
document.layers["ticker"].left = tickerPos;
} else if (document.all && document.all["tickerinner"]) {
document.all["tickerinner"].style.left = tickerPos;
}
setTimeout("scrollTicker()", 30);
}
// -->
</script>
<table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#FFCC00">
<tr>
<td>
<font face="Verdana" size="2" color="#000033"><b>NEWS:</b> </font>
<script language="JavaScript">
<!--
var newsText = " Doreen wins 'Best Morning Show' at the Community Radio Awards! \u00B7 Marcus installs a new four-track in the caravan studio \u00B7 Tug's dog Barkley has puppies - six of them, all named after songs \u00B7 Saltmarsh Sounds nominated for Best World Music Show \u00B7 The transmitter cuts out at high tide, we're working on it \u00B7 ";
if (document.layers) {
document.write('<ilayer name="ticker" left="750" width="600" height="16" clip="0,0,600,16"><font face="Verdana" size="2" color="#000033">' + newsText + '</font></ilayer>');
} else if (document.all) {
document.write('<div id="ticker" style="position:absolute; left:750px; width:600px; height:16px; clip:rect(0,600,16,0); overflow:hidden;"><div id="tickerinner" style="position:absolute; left:0;"><font face="Verdana" size="2" color="#000033">' + newsText + '</font></div></div>');
} else {
document.write('<font face="Verdana" size="2" color="#000033">' + newsText + '</font>');
}
// -->
</script>
</td>
</tr>
</table>
<!-- ============ UNDER CONSTRUCTION ============ -->
<table width="100%" border="0" cellpadding="15" cellspacing="0" bgcolor="#FFFFCC">
<tr>
<td align="center">
<table border="3" cellpadding="8" cellspacing="0" bordercolor="#000000" bgcolor="#FF0000">
<tr>
<td align="center">
<font face="Comic Sans MS" size="4" color="#FFFFCC"><b>!! THIS SITE IS UNDER CONSTRUCTION !!</b></font>
</td>
</tr>
</table>
<br>
<font face="Verdana" size="2" color="#000033">
Please excuse the mess. We're a tiny station and our webmaster (who is also the engineer, the tea-maker, and occasionally the night DJ) is doing his best. New pages coming soon: playlist archive, studio webcam (when we can afford a camera), and a proper listen-live button. Check back next week!
</font>
</td>
</tr>
</table>
<!-- ============ WELCOME ============ -->
<p><font face="Verdana" size="3" color="#FFFFCC">
Welcome to the online home of <b>Radio Saltmarsh</b>, broadcasting on <b>102.3 FM</b> from a damp caravan on the edge of the salt marsh. We've been on the air since 1994, playing music, chatting about the weather, and letting Tug tell you when the tide's coming in.
</font></p>
<p><font face="Verdana" size="3" color="#FFFFCC">
Tune in any time, day or night. If you can't pick us up on your radio, you're probably too far inland. Sorry about that.
</font></p>
<p><font face="Verdana" size="3" color="#FFFFCC">
<b>How to listen:</b> Turn your radio dial to 102.3 FM. If you hear static, try moving the aerial. If you still hear static, you're too far away. If you hear us, you're in range - wave at the caravan as you drive past.
</font></p>
<!-- ============ SCHEDULE ============ -->
<h2><font face="Comic Sans MS" color="#FFCC00">This Week's Schedule</font></h2>
<table width="100%" border="2" cellpadding="4" cellspacing="0" bordercolor="#FFCC00" bgcolor="#FFFFCC">
<tr bgcolor="#000033">
<th><font face="Verdana" size="2" color="#FFCC00">Time</font></th>
<th><font face="Verdana" size="2" color="#FFCC00">Mon</font></th>
<th><font face="Verdana" size="2" color="#FFCC00">Tue</font></th>
<th><font face="Verdana" size="2" color="#FFCC00">Wed</font></th>
<th><font face="Verdana" size="2" color="#FFCC00">Thu</font></th>
<th><font face="Verdana" size="2" color="#FFCC00">Fri</font></th>
<th><font face="Verdana" size="2" color="#FFCC00">Sat</font></th>
<th><font face="Verdana" size="2" color="#FFCC00">Sun</font></th>
</tr>
<tr>
<td><font face="Verdana" size="1" color="#000033"><b>6-9am</b></font></td>
<td><font face="Verdana" size="1" color="#000033">The Doreen Show</font></td>
<td><font face="Verdana" size="1" color="#000033">The Doreen Show</font></td>
<td><font face="Verdana" size="1" color="#000033">The Doreen Show</font></td>
<td><font face="Verdana" size="1" color="#000033">The Doreen Show</font></td>
<td><font face="Verdana" size="1" color="#000033">The Doreen Show</font></td>
<td><font face="Verdana" size="1" color="#000033">Weekend Breakfast</font></td>
<td><font face="Verdana" size="1" color="#000033">The Tide Chart</font></td>
</tr>
<tr>
<td><font face="Verdana" size="1" color="#000033"><b>9am-12pm</b></font></td>
<td><font face="Verdana" size="1" color="#000033">Daytime Drift</font></td>
<td><font face="Verdana" size="1" color="#000033">Daytime Drift</font></td>
<td><font face="Verdana" size="1" color="#000033">Daytime Drift</font></td>
<td><font face="Verdana" size="1" color="#000033">Daytime Drift</font></td>
<td><font face="Verdana" size="1" color="#000033">Daytime Drift</font></td>
<td><font face="Verdana" size="1" color="#000033">Saltmarsh Sounds</font></td>
<td><font face="Verdana" size="1" color="#000033">Gospel Brunch</font></td>
</tr>
<tr>
<td><font face="Verdana" size="1" color="#000033"><b>12-3pm</b></font></td>
<td><font face="Verdana" size="1" color="#000033">Lunchtime Favourites</font></td>
<td><font face="Verdana" size="1" color="#000033">Lunchtime Favourites</font></td>
<td><font face="Verdana" size="1" color="#000033">Lunchtime Favourites</font></td>
<td><font face="Verdana" size="1" color="#000033">Lunchtime Favourites</font></td>
<td><font face="Verdana" size="1" color="#000033">Lunchtime Favourites</font></td>
<td><font face="Verdana" size="1" color="#000033">The Request Show</font></td>
<td><font face="Verdana" size="1" color="#000033">Sunday Sessions</font></td>
</tr>
<tr>
<td><font face="Verdana" size="1" color="#000033"><b>3-6pm</b></font></td>
<td><font face="Verdana" size="1" color="#000033">The Afternoon Mix</font></td>
<td><font face="Verdana" size="1" color="#000033">The Afternoon Mix</font></td>
<td><font face="Verdana" size="1" color="#000033">The Afternoon Mix</font></td>
<td><font face="Verdana" size="1" color="#000033">The Afternoon Mix</font></td>
<td><font face="Verdana" size="1" color="#000033">The Afternoon Mix</font></td>
<td><font face="Verdana" size="1" color="#000033">Saturday Afternoon Rock</font></td>
<td><font face="Verdana" size="1" color="#000033">The Classical Hour</font></td>
</tr>
<tr>
<td><font face="Verdana" size="1" color="#000033"><b>6-9pm</b></font></td>
<td><font face="Verdana" size="1" color="#000033">The Evening Tide</font></td>
<td><font face="Verdana" size="1" color="#000033">The Evening Tide</font></td>
<td><font face="Verdana" size="1" color="#000033">The Evening Tide</font></td>
<td><font face="Verdana" size="1" color="#000033">The Evening Tide</font></td>
<td><font face="Verdana" size="1" color="#000033">The Evening Tide</font></td>
<td><font face="Verdana" size="1" color="#000033">The Saturday Night Rock Show</font></td>
<td><font face="Verdana" size="1" color="#000033">Folk Roots</font></td>
</tr>
<tr>
<td><font face="Verdana" size="1" color="#000033"><b>9pm-12am</b></font></td>
<td><font face="Verdana" size="1" color="#000033">Late Night Listening</font></td>
<td><font face="Verdana" size="1" color="#000033">Late Night Listening</font></td>
<td><font face="Verdana" size="1" color="#000033">Late Night Listening</font></td>
<td><font face="Verdana" size="1" color="#000033">Late Night Listening</font></td>
<td><font face="Verdana" size="1" color="#000033">Late Night Listening</font></td>
<td><font face="Verdana" size="1" color="#000033">Indie Night</font></td>
<td><font face="Verdana" size="1" color="#000033">Jazz After Dark</font></td>
</tr>
<tr>
<td><font face="Verdana" size="1" color="#000033"><b>12-3am</b></font></td>
<td><font face="Verdana" size="1" color="#000033">The Midnight Cassette</font></td>
<td><font face="Verdana" size="1" color="#000033">The Midnight Cassette</font></td>
<td><font face="Verdana" size="1" color="#000033">The Midnight Cassette</font></td>
<td><font face="Verdana" size="1" color="#000033">The Midnight Cassette</font></td>
<td><font face="Verdana" size="1" color="#000033">The Midnight Cassette</font></td>
<td><font face="Verdana" size="1" color="#000033">The Midnight Cassette</font></td>
<td><font face="Verdana" size="1" color="#000033">The Midnight Cassette</font></td>
</tr>
</table>
<p><font face="Verdana" size="2" color="#FFFFCC"><i>Schedule subject to change when the transmitter gets wet, which is often.</i></font></p>
<!-- ============ PRESENTERS ============ -->
<h2><font face="Comic Sans MS" color="#FFCC00">Meet the Presenters</font></h2>
<table width="100%" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="50%" align="center" valign="top">
<table border="0" cellpadding="5" cellspacing="0">
<tr>
<td align="center">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAA//wAAAAAAAALAAAAAABAQARIAAAAw==" width="80" height="100" alt="Doreen Finch"><br>
<font face="Verdana" size="2" color="#FFCC00"><b>Doreen Finch</b></font><br>
<font face="Verdana" size="1" color="#FFFFCC"><i>The Doreen Show</i><br>Weekday Mornings, 6-9am</font>
</td>
</tr>
<tr>
<td>
<font face="Verdana" size="2" color="#FFFFCC">Doreen has been waking up the marsh for 12 years. She plays country, oldies, and whatever her husband brings in from the shed. She also does the weather, though she mostly just looks out of the caravan window.</font>
</td>
</tr>
</table>
</td>
<td width="50%" align="center" valign="top">
<table border="0" cellpadding="5" cellspacing="0">
<tr>
<td align="center">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAA//AAAAA////AAAAAALAAAAAABAQARIAAAAw==" width="80" height="100" alt="Marcus Chen"><br>
<font face="Verdana" size="2" color="#FFCC00"><b>Marcus Chen</b></font><br>
<font face="Verdana" size="1" color="#FFFFCC"><i>The Midnight Cassette</i><br>Every Night, 12-3am</font>
</td>
</tr>
<tr>
<td>
<font face="Verdana" size="2" color="#FFFFCC">Marcus lives in the caravan next door. He plays indie, post-punk, and anything recorded on a four-track. He has been heard to play the same Pavement album three times in a row. He insists this is a feature, not a bug.</font>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="50%" align="center" valign="top">
<table border="0" cellpadding="5" cellspacing="0">
<tr>
<td align="center">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAP8AAAAA////AAAAAALAAAAAABAQARIAAAAw==" width="80" height="100" alt="Priya Sharma"><br>
<font face="Verdana" size="2" color="#FFCC00"><b>Priya Sharma</b></font><br>
<font face="Verdana" size="1" color="#FFFFCC"><i>Saltmarsh Sounds</i><br>Saturday Mornings, 9am-12pm</font>
</td>
</tr>
<tr>
<td>
<font face="Verdana" size="2" color="#FFFFCC">Priya brings world music, jazz, and the best of the subcontinent. She also makes excellent chai, which the rest of the team are very grateful for. She commutes from the city, which is 40 miles away.</font>
</td>
</tr>
</table>
</td>
<td width="50%" align="center" valign="top">
<table border="0" cellpadding="5" cellspacing="0">
<tr>
<td align="center">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAA/wAAAAAAAALAAAAAABAQARIAAAAw==" width="80" height="100" alt="Tom Tug Wilson"><br>
<font face="Verdana" size="2" color="#FFCC00"><b>Tom "Tug" Wilson</b></font><br>
<font face="Verdana" size="1" color="#FFFFCC"><i>The Tide Chart</i><br>Sunday Mornings, 6-9am</font>
</td>
</tr>
<tr>
<td>
<font face="Verdana" size="2" color="#FFFFCC">Tug is a fisherman. He gives the tide times, the weather, and the odd sea shanty. His dog Barkley sometimes barks during the broadcast. Listeners say it adds character. Tug says it's just a dog.</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- ============ GUESTBOOK ============ -->
<h2><font face="Comic Sans MS" color="#FFCC00">Sign Our Guestbook!</font></h2>
<p><font face="Verdana" size="2" color="#FFFFCC">Drop us a line! We read every entry, though it might take us a while because we're very small.</font></p>
<form action="mailto:webmaster@radiosaltmarsh.example" method="post" enctype="text/plain" name="guestbook">
<table border="0" cellpadding="3" cellspacing="0" bgcolor="#FFFFCC">
<tr>
<td><font face="Verdana" size="2" color="#000033">Your Name:</font></td>
<td><input type="text" name="name" size="30"></td>
</tr>
<tr>
<td><font face="Verdana" size="2" color="#000033">Email:</font></td>
<td><input type="text" name="email" size="30"></td>
</tr>
<tr>
<td><font face="Verdana" size="2" color="#000033">Town:</font></td>
<td><input type="text" name="town" size="30"></td>
</tr>
<tr>
<td valign="top"><font face="Verdana" size="2" color="#000033">Comments:</font></td>
<td><textarea name="comments" rows="5" cols="40" wrap="virtual"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Sign Guestbook">
<input type="reset" value="Clear Form">
</td>
</tr>
</table>
</form>
<!-- ============ HIT COUNTER ============ -->
<p align="center">
<font face="Verdana" size="2" color="#FFFFCC">You are visitor number:</font><br>
<script language="JavaScript">
<!--
if (document.layers) {
document.write('<ilayer name="counter" width="200" height="20"><div style="position:absolute;"><font face="Courier" size="3" color="#FFCC00"><b>00012847</b></font></div></ilayer>');
} else if (document.all) {
document.write('<span id="counter"><font face="Courier" size="3" color="#FFCC00"><b>00012847</b></font></span>');
} else {
document.write('<font face="Courier" size="3" color="#FFCC00"><b>00012847</b></font>');
}
// -->
</script>
</p>
<!-- ============ WEBRING ============ -->
<hr width="80%" color="#FFCC00">
<p align="center">
<font face="Verdana" size="2" color="#FFCC00"><b>~ Coastal Community Radio WebRing ~</b></font><br>
<font face="Verdana" size="2" color="#FFFFCC">
[ <a href="#">Previous</a> | <a href="#">Random</a> | <a href="#">Next</a> ]
</font><br>
<font face="Verdana" size="1" color="#FFFFCC">
[ <a href="#">Join the Ring</a> | <a href="#">List all sites</a> | <a href="#">Skip this site</a> ]
</font>
</p>
<!-- ============ FOOTER ============ -->
<hr width="80%" color="#FFCC00">
<p align="center">
<font face="Verdana" size="1" color="#FFFFCC">
Radio Saltmarsh © 1998. All rights reserved.<br>
The caravan is damp, the transmitter is temperamental, and the tea is always strong.<br>
Best viewed in Netscape Navigator 4 or Internet Explorer 4 at 800x600.<br>
Webmaster: <a href="mailto:webmaster@radiosaltmarsh.example">webmaster@radiosaltmarsh.example</a><br>