Sunday, May 24, 2020

Comdex 1999 by CryoModem - review of an early 80s text file

(This text file was written sometime in the 80's. I don't know who originally wrote it, but I've always enjoyed it. Now in 2020, I look back to see what was right and what was so very wrong...)

1999 COMDEX SHOW A FLOP

LAS VEGAS: The fall 1999 Comdex was, as always, a bit disappointing. The star of
the show was clearly the Yamagazi RoomTemp CryoModem I'm using to trasmit this
story. Yamagazi claims it blitzes out data faster than the speed of light, which
means that this report may have made it back to the office before the show even
took place.

(By 2000, consumer dial-up modems had peaked at 56 kilobit/s, with hardware compression on top of that to allow simple data to flow faster. DSL was on the rise although speeds topped out around 1 megabit both ways for commercial grade lines, and cable modems which promised faster speed were starting to roll out, but not as certain technology. BBSs and the concept of dialing a dedicated service were all but finished and the internet, while still young, had cemented itself as a necessary service.

In case it's not obvious, this paragraph is the whole premise of the article - that faster-then-light data transmission caused the report to travel back in time to the 80s.)

This year, the computer industry's companion show -Legaldex- nearly outdrew the
hardware and software exhibits. With so many pending lawsuits and so much money
at stake, it's really no surprise that Legaldex sprawled into 11 hotel lobbies,
two parking lots, and a hallway at the Liberace museum. the Apple booths alone
commanded more than 30,000 square feet of space.

(Lawsuits over software and hardware ownership and patents has never really gone away. Sun Microsystems was fresh in people's memories for suing over Java, but Apple still rings with an air of possibility. In fact, in 1999 Apple sued a PC manufacturer called eMachines, claiming their PCs looked too much like an iMac. eMachine's eOne was taken off the market as a result.

At the real Comdex 1999 - both Sun and Microsoft mentioned their mutual lawsuit in their keynotes - Gates with a joke and McNealy directly.)

In what has turned out to be an annual tradition, IBM once again trotted out a
new graphics standard, the 3DGA. Compatible with the MGA, MCGA, HGA, EGA, VGA,
EVGA, QGA, VVGA, VHGA, VQGA, VMGA, VAGA, EAGA, GAGA and, of course, CGA
boards, this new standard heralds a "bold new era of channel profitability," according
to IBM president and owner: "Now at last serious business users can have their fancy 3-D
graphs float in space."

(This didn't happen, at least with cards. After SVGA popular naming just sort of faded out, though there was briefly a UVGA. Of course, someone has to name everything, so the /resolutions/ still got names. By 2000 most machines were still 800x600 or lower, with 1024x768 possible but not fully supported by monitors. So based on that, the naming would have given us: CGA, QVGA, VGA, SVGA, UVGA and XGA. We didn't have widescreen yet, or at least not commonly. 3D displays were a long way off, with glasses or headsets still required most of the time even today. Glasses free 3D displays appeared around 2010, but didn't gain popularity.

Perhaps more importantly, despite creating the PC market and defining an architecture which survived and eventually defeated all comes, flourishing for  decades to come, IBM stopped being the driving force in the market in the 90's, eventually leaving it altogether in 2005 - though that's after this article. They had a brief resurgence in popularly in the late 90's with the Thinkpad laptop series, which was indeed a very good machine, but clone manufacturers dominated the desktop market and video card innovation was owned by dedicated video card manufacturers. In fact, the term "GPU" was coined by NVidia in 1999 and so would likely have been the graphical focus. 3DFX was the major leader at the time.

At the real Comdex 1999, 3DFX unveiled the Voodoo4 3D card and announced Voodoo5. the Voodoo4 would come with 32MB RAM, support AGP and PCI for $180. Voodoo 5 would come with 64MB or 128MB RAM, and cost $230-$600.)

Big Blue also displayed yet another new keyboard. The 143-key sports 6 randomly
scattered Ctrl keys, three more function keys, and an entire pad of SysRq keys
(though IBM did not annouce why anyone needs even one). To counter IBM's new Blu
architecture, AST/Quadram/Hyundai announced Blubus-Plus, with an additional data
line and slightly more shielding. Blubus throws off so much RF interference that
airborne users can make their planes bank left and right by leaning on the
cursor arrow keys.

("Big Blue" was IBM's nickname, a reference to their logo.

Keyboards didn't change much after the 101 key keyboard, although 104 keys became the standard after the addition of three Windows keys. Many keyboards also added media keys - some only a few and some a lot, but play/pause, next, previous, stop, volume up, volume down, and mute became relatively standard. SysRq seems to have gone away, though we still have pause/break doing nothing
most of the time...

New bus architectures did of course happen. By 2000 VESA had come and gone, and PCI was the dominant interface, though most motherboards still had an ISA slot or two for compatibility. PCI was released in '91 and caught on around '95, when Windows 95 introduced proper operating system support for it. For performance graphics, AGP was released in 1997.)

The fastest selling product at the show was IBM's just-released TBR (Technical
Bus Reference) manual, a fat compendium of IBM BIOS and chip-level errors that
the industry has had to accept as standards.

(Since IBM was no longer in charge, this didn't happen. Intel and Microsoft own the definition these days... although since IBM was still making machines in 1999, that may not have been the case then. I'm actually not sure!)

In response to the new line of IBM 240MHz machines, Compaq/Dell announced a
242MHz screamer, which it claims "makes the IBM box look like it's playing dead"
At the other end of the spectrum, we counted 35 manufacturers still selling
replacment motherboards for the original PC-1, switchable between 4.77MHz and
180MHz.

(In the mid-80s, where an 8MHz machine was considered serious and 25MHz insane, the idea of even a 180MHz upgrade board blew minds. Clock speeds in 1999 started in January at 450MHz and reached 600MHz  by the end of the year. Intel's Celeron was 400MHz, and AMD countered with their 450MHz K6-III offering.

This was the era of the Pentium 3, and there were no replacement motherboards for the PC-XT. In addition, the turbo switch disappeared during the 90's and computers just ran as fast as they could. This is also largely attributable to Windows 95 - a fixed feature set operating system meant that software could reliably use system timers, rather than CPU speed, to set their timing. The "Compaq/Dell" comment is interesting as maybe the only valid prediction in the document - if early! Dell acquired Compaq in 2002. Overclocking was big around the late 90s, though, so the 242MHz "Screamer" could have just been overclocked.)

Sponsors of next year's millennial Comdex are planning to call Comdex 2000
"Finally, the year of the LAN." Other vendors are proposing that Comdex 2000 be
dubbed "The Year of the Home Application," in an effort to prod the industry
into producing at least one product that could justify buying a computer for
home use.

(Hard to address such a tongue-in-cheek comment, but LANs were pretty established for businesses during the 90s, and the rising popularity of the internet was beginning to introduce them into the home - although it would really take the cable modem's victory and the spread of WiFi to fully integrate them years later.

As for the product... that's an ongoing thing. Arguably, though, the internet was the killer app that put a PC in every home. 20 years later, today, that's starting to fade a bit. Cell phones and tablets are replacing the general purpose PC for internet access.

As always, though, gaming also drives the PC market, as it did back then. 3D gaming was becoming big with 3DFX and NVidia pushing what the graphics card could do. AMD eventually replaced 3DFX as the big competitor.

At the real Comdex 1999, one author came away feeling that Sony's 64MB Memory Stick was the killer hardware of the show... perhaps it would have been if USB memory sticks hadn't followed on quickly, being cheaper and more compatible with the hardware that was out there.)

Ever-youthful Bill Gate's keynote address, "OS/9: The One You've Really, Really
Been Waiting For," blunted criticism that this newest version was still too hard
to use, too slow, and too memory-hungry: "Even though no third-party vendors
have taken taken advantage of the advanced capabilities of the seven previous
editions, dozens of developer are porting their applications over. And it will
run just fine on any system with 30 megabytes of RAM, although you may need a
bit more for your data."

(Bill Gates was only 44 in 1999. ;)

OS/2 failed out of the gate, and although IBM continued with OS/2 Warp in '94 and released the final version (Warp Server for e-Business) in '99, it only lasted a couple more years before being abandoned. Microsoft refocused on Windows with the release of Windows 95 and gained unassailable dominance for decades.

The criticisms remain, of course.

The porting comment was perhaps less an issue, the one thing that Windows did rather well was backwards compatibility. From Win95 onwards, applications generally "just worked".

30MB of RAM was laughable in the early 80s, but by 2000 systems came standard with 32MB-128MB of RAM, and virtual memory was standard, so the numbers, while big, were acceptable by then.

At the real Comdex 1999, a release date for Windows 2000 RC3 was announced and met with some doubt. Application compatibility was causing some delay. Windows 2000 was the first version to unify the NT and 95 kernels, so compatibility with both lines was important.

Bill Gates DID give a keynote, where he focused on Windows 2000, and tried to introduce the concept of the "personal web". It was seen overall as more of the same, so the article probably described it well enough.

Speaking of operating systems, there was a mini-expo for the Linux community at the same time. One writer noted: "while it's much nicer than last year's laughable bargain basement affair, it's small size gives ample evidence of the lengths Linux must go to enter the mainstream." However, Corel also showed "Corel Linux", a Debian distribution meant to be easy to set up.

Sun Microsystems also had a keynote, taking on Microsoft (with whom they were involved in an anti-trust suit), and pushed StarOffice heavily. CEO Scott McNealy's position was that software should be free (presumably hardware is the model?)

BeOS also had a booth that was well received, but there are few details beyond that. BeOS had its first x86 release in 98, but it was sold in 2001 and faded rapidly. A free reimplementation named Haiku was released in 2009 and was still active in 2018.)

In the word processing arena, MicroPro, Microsoft, and WordPerfect have packed
even more features into their bloated programs. MicroPro has purchased so many
third-party utilities that WordStar Professional Classic 7.3 is now delivered on
73 disks. WordPerfect has streamlined its 16-volume manual.

(Wordstar was abandoned in the early 90s as they failed to jump on the Windows bandwagon early enough. WordPerfect was also late coming to Windows, but held on due to a large install base. However, they were sold to Novell in '94, then Corel in '96. The 32-bit version of WordPerfect for Windows 95 was plagued with release issues and the final working version was rather late. By this time, Microsoft Office and in particular Word was gaining rapid market share. However, WordPerfect still survives today in 2020. I don't have a manual from 2000, but the WordPerfect manual today is only 282 pages long.)

Finally, Lotus announced its 1-2-3 WZ 50-dimension spreadsheet, a "quantum leap"
above its previous 1-2-3 VZ 5th-dimension version. Although users have been
demanding this added power, say market analysts, they're still not sure what to
do with more that three dimensions. When pressed for a delivery date, Lotus
officials would only say "Sometime in the first quarter of the coming millennium."
We can hardly wait.

(Lotus 1-2-3 was overtaken by Excel in the 90's for pretty much the same reason as the word processors - it failed to take the Windows update seriously in time. However, it did survive past the 1999 date here, eventually being discontinued in 2013.

As far as I can tell, 3 dimensions is as far as spreadsheets went, and even that is through multiple tabs rather than a single 3D sheet.)

... I spent WAY too long on this...


Sunday, March 22, 2020

Software is not a Science

I've been coming to a realization that one of the great problems with software development is the fervent belief that it can be simplified, that it is a science that can be nailed down to a fixed set of guidelines and will thereafter magically be perfect.

It's not. It's simply not. Like it or not, writing software is a creative aspect. You can no more reduce writing software to a set of fixed answers than you can create a checklist for drawing artwork.

Let's think about this.

First off, creating software requires the development of a unique solution to the problem from a set of incomplete tools which need to be assembled into a final system. It's a lot like building with Lego -- but you don't have the advanced set with all the fancy pieces. You have 2x2s and 2x4s and a couple of 2x8s.

It gets better. Normally the problem isn't even that well defined. You have a Lego set but you don't have the instruction sheet and the box is torn so you only have half the picture.

Of course, we do have the continued advance of software development - new systems, new languages, new processes. These are all great and fancy things. These are Space Lego, and Harry Potter Lego. They let you more easily create the new worlds you are imagining. But they don't remove the creative element - you don't automatically get Hogwarts, you have to build it. That's how you bought Castle Greyskull, but not Hogwarts.

Most of the development processes that we develop fall into two categories.

The good ones aim towards giving us the instruction sheet. A set of processes that advance us towards our goal - with the understanding that it will help us build THIS product. We can use bits and pieces of one instruction sheet - creatively - to help build other products. But naturally you need to intelligently apply your creativity.

The bad processes aim towards removing the random creativity element, assuming that all problems can be solved in a fixed, predictable manner. Problem A is given to developer B who applies solution C, which takes time D. Neat, tidy, and guaranteed quality output. About as likely as Gingerbread men inviting you to tea and gumdrops, but we invest thousands and thousands of dollars in pursuit of this goal.

Software needs to be run more like art. Unfortunately, I don't have insight from professional artists on how it runs and whether it works for them. I'll need to do some research. :)



Wednesday, November 13, 2019

The Year-endxxxxx Decade Blog

As part of my yearly evaluation, I need to sort through everything I did at work for the last year. Since the survey thing from Livejournal that I used to do was bugging me, I thought maybe I'd do the same thing at home!

Then someone decided that no, no, it's the end of the decade, list your DECADE of accomplishments. Well damn it, fine. But only in summary for the earlier stuff. ;)

Okay, looks like the biggest thing I accomplished in 2010 was my work for Neato.
I contracted for Neato robotics getting the Pinky chip up and running for the second generation Neato vacuum, which is of course the best one ever. ;) Sorry Camp!


Honorable mention to becoming Nintendo certified for the eventually cancelled Cool Herders DS.


In 2011 I went back to work full time after Cool Herders was cancelled, after contracting at NET, and went to work full time for Neato. But my top completed project would probably be the Skunkboard Revision 3, released with the financial and sales assistance of the GOAT store. This was a development board for the Atari Jaguar, designed by KSkunk and coded mostly by me. Due to problems with procuring the flash chips, this took a long time and we ended up with two vendors coming through, letting us produce 200 instead of the 100 we intended. All sold, of course. 


After this run, I released all Skunkboard properties to the public domain. (This has led to a couple of after market productions!)


2012 is pretty easy - this is year that I moved to Los Angeles for probably the only thing that could tempt me to move to Los Angeles...

Garmin was also trying to get me, and they had a great offer and a fun team and a neat project. I still feel a little bad for them. They were amazingly flexible and just awesome people.

In 2013, I didn't seem to release much of anything. I focused on my new work, some of which ended up in the park in Florida a year or so later, and helping people with their projects. (I see lots of TI, F18A, and Skunkboard in my outbox). So it's unfortunate, but it appears I didn't directly contribute to the world at large in 2013 (or at least, what I DID do was laying the groundwork for future contributions. ;) )


By contrast, 2014 was busy. I bought a house, I got my lion fursuit that I ended up never using (sigh), I released the TI UberGROM, and I finished Trixie's MLP-themed magic show in Second Life (barely in time to perform it by the end of the year). I also did a Day in the Park, working as a cast member at Disneyland for two days, so I could understand the operation of an attraction in real life. (That was tough for an introvert like me, but I'm glad I did it.) I even did a training course on Kuka robots! I built my Sega Genesis "3-way" multicarts including a hacked Thunder Force one, and a custom talking Nightmare Moon with real show quotes.

But for all this, the big thing in my life was agreeing to go to Shanghai to work on the new park there. Though I didn't leave before year end, a good half the year was spent getting ready to go.



In 2015, right off the bat I left for China. Early on, I got a recruiter call from Cyber Command, which would have been awesome. But they ran away when they heard I was Canadian. Pity. But other than that, I was largely focused on coming to terms with what I had done. If I thought Basic Training was a culture shock at only 10 weeks, man... I sure had a lot to learn.

I did get some travel in, seeing Tokyo (very briefly) and Beijing (also brief but more touristy), and I did a podcast with Floppy Days: https://player.fm/series/floppydays-vintage-computing-podcast/floppy-days-51-ti99-tech-specs-modern-upgrades-with-tursi

I also had the only internal surgery of my life (thankfully minor) when I had my gall bladder removed in Hong Kong!

But the best thing I unleashed upon the world was my "Spaceballs" demo for the TI, finally showing audio and video playback on the machine. This is what paved the way for Dragon's Lair four years later...




2016, is there any competition? In 2016 I helped open an entire new Disney park. A massive amount of effort and stress, but somehow we were open on opening day. :)


It's also the year I finally started to negotiate my license for Dragon's Lair...

In 2017 I moved back to Burbank and sold my place, worked in earnest on the 3 Way Genesis carts with a fellow online who was having fun making various ones. I created a patched Coleco BIOS for CollectorVision which led to me working on that device years later. My Dragon's Lair license also went live with a 2 year timeout. I tried to get help from several people on that, but everyone was just too busy.

But about all I managed to finish for myself for the year was a 4k remake of an old XB game I wrote as a kid, called HeroX:



I also had a minor role in the award winning TI Megademo by Desire: 


2018 brought the release of a finicky raccoon for work, and I got back out of rental into a townhouse just outside of town, which may have been a bad move. It doesn't look like I released very much, though I spent much of the year working on Dragon's Lair, and I commissioned a life-size Starlight Glimmer plush who sits atop my bookcase. But the main thing that I finished was the MLP Fanfic I started almost two years earlier in Shanghai. The story of Nightmare Moon defeating Celestia, and Celestia coming back - Night Reigns. 


It did all right, and even today is in the top 5% on the site (barely!) I printed out copies and so I can say I have a book on my bookshelf that I wrote.


Finally, we come to 2019, and I can be more detailed here, as this is what I originally wrote this for...

First of all, I managed to get Dragon's Lair for the TI-99/4A finished and out into the world as a full production. That was a huge task that took a few years to finish, and included learning some VHDL and KiCad for PCB layout and manufacturing. I wrote a document that details all about it:
https://docs.google.com/presentation/d/1u7SOusjQDInq95GrEH2tmIphUAjRg-9YbhR_X25D62A/edit?usp=sharing



Numerous bug fixes to Classic99 and ConvertHGR packages, as well as a massive (and long overdue) update to FlipTerm, my muck client, which brings the API up to speed again.
http://harmlesslion.com/software/classic99
http://harmlesslion.com/software/converthgr
http://harmlesslion.com/software/flipterm



Attended Vanhoover, which was a lot of fun, and also traveled to Ottawa to see friends, but completely failed to make any business contacts there as I intended! Also made it down to Australia for the first time in many years! I attended Further Confusion, but had a lousy time due to hotel rudeness and overpriced rooms. (I guess that's hardly an accomplishment, but I did it ;) ) Finally, I even made it to the Chicago TI User's Group annual International Faire - more than 35 years running!



Built the Coleco menu software for the CollectorVision Phoenix. Buy page here (note I do not get anything if you buy one ;) )
https://collectorvision.com/shop/colecovision/collectorvision-phoenix/



Shipped nearly two dozen of my PS/2 keyboard adapter chips for the TI. At least /someone/ wanted it! ;)
http://harmlesslion.com/software/keyboard

Image result for avr mcu"

I stepped out of my comfort zone, and did a "Haunted Cocktail Night" in Los Angeles. This was cute, and it was a set of scenarios in a fairly old mansion, including ghost actors you could interact with. But... it wasn't really creepy, it wasn't cohesive enough. It would be crazy hard to put such a thing together, and it was fun, but I would have done it differently. ;)



.. and of course I got out to see Weird Al Yankovic in the Strings Attached tour:



I worked out how to skin the cars in Wreckfest and published a little skin mod on Steam for my friends and I to use in our weekly game.


And I created an MLP Random Scene generator to commemorate the end of the series. Just a silly little script I've run for years and named BIBO (for "Babble In, Babble Out" ;) ) It's not supposed to make sense!
http://harmlesslion.com/cgi-bin/ponychat.cgi



There's still a month and a bit to go, but all I'm hoping to get done by end of year is an update to my TI music compressor, and there's not much of a picture to go with that anyway. ;)

Wednesday, August 7, 2019

The Lifecycle of a Commercial Software Project

I seem to have been around enough times that I'm starting to detect a pattern. I thought I'd share my observations and see what other people had in mind. It's kind of a frustrating one to me - I'm a huge fan of continuity - because it seems to define that all commercial projects are doomed to die.

So in phase one, we have the wild west. The project begins life - sometimes with formal blessing and sometimes without. The developers are the die-hards who believe in the project and put in crazy amounts of effort to putting it together. There's minimal oversight at this point - the team trusts each other. The team is usually in constant communication about what they are doing and what needs to be done next, but it's hardly formalized.

In phase two, the efforts of the developers have paid off. The project has crossed a major milestone, been revealed to all, and possibility even filled a hole that the company needed filled. Everyone is very excited, not least because the project seems to have come out of nowhere to meet a need. Now management is involved in taking this generally-still-rough-around-the-edges project and "finishing" it. Sometimes this is also called productization. But the main point is that someone is now in charge of choosing a future for the project. Everyone is still pretty happy and additional developers are often added. Source control becomes formalized. Everyone wants to use the product, although it requires updates to meet their exact needs (which the developers are happy to do).

In phase three, the product is more or less mature. It still has rough edges, since the resources planned for the grand designs in phase two were diverted to unexpected feature requests. New developers are added to increase the head count and try to catch up - costs increase. The product sees massive growth in feature set but little polishing. New features are published early in order to get back to the main tasks and frequently cause bugs to be seen by end users, resulting in a tightening of code quality standards such as code review and a decline in reputation.

In phase four, upper management begins to ask the project management why the product is still so unpolished and why it has so many bugs, despite the time and money put into it. Demands for better tracking of resources and money are put into place. Bug tracking and time tracking become formalized, and statistics are often added to the regular process, increasing the time spent managing the product. Demands begin to be made that the developers focus only on what the manager dictates needs to be done, and not side issues that the developers consider important. Small bugs linger and user satisfaction begins to fall. The developers begin to complain that they need permission to work on the aging architecture and to correct user satisfaction bugs.

Phase four may linger for a long time, but eventually it grows to phase five. Management decides that the number of things that lead developers have stated need attention is too large a list to handle in a cost-effective manner. The project is put into a bug-fix-only mode while a replacement is designed and built from scratch. Note that although there's often some planning sessions, the replacement project usually starts in phase one.

I've been all the way through this loop a few times, and been at various points of it on various other projects, and I am becoming convinced that it's inevitable. Look, software is expensive and it's very difficult to quantify. It's hard to plan, it's hard to maintain, and it's hard to get right. We need to stop pretending that there must be a silver bullet out there if we just find the right way to manage the project.

The truth is that phase one probably accomplished 80% of everything the product needed for its entire lifespan. And that should really be the statistic that makes the most sense. No matter what some people who don't write real software for a living may claim, it's not something that you can just plan out to the smallest detail, because unlike so many sciences that can (I'm thinking architecture here), SOFTWARE DOES NOT EXIST IN THE REAL WORLD. That's right - it's completely virtual. It doesn't obey any laws of nature.

To write software, a person needs to have a firm grasp on how to tell an imaginary concept to do a real world task. They need to be able to abstract thousands of steps, put them in the right order, and then be able to anticipate all the wrong ways that a person will try to interact with those thousands of steps. BUGS ARE INEVITABLE. You can mitigate some of them (see earlier blogs), but by god stop pretending you can prevent them all. Assume that EVERY LINE OF CODE WILL NEED ATTENTION SOMEDAY.

It's also important to keep in mind that if you are not a user of the software and you are not a developer of the software, you are not qualified to determine what the software NEEDS. If you're a manager and you came in to manage the product before you even knew it existed, then get over yourself. You need to buddy up with one of the developers, understand what it does, and work with them when you're making decisions. It's all too easy to focus on the wrong parts of the product, or to choose a forward path that is completely against all of the design to date (been to this one specifically). This will make the product worse, not better. Even better, become a user. Use the software daily. Make it something you HAVE to use. Then you'll better understand why those little usability bugs are a big deal. ;)

I'm pretty convinced that the longer a project survives before phase three, the more successful its life will be. It's good to have some structure - source control is critical. Code reviews are useful. Even a bug tracker is a good thing to have. But when you get into late phase three and phase four - all of these useful things start to be used against the project. Why is there so much code churn? Why are so many people wasting time with code reviews? Why are there so many issues in the bug tracker? Good things become bad because they are seen as wasting money, when in fact they are preventing waste by reducing the issues before they are seen in the field.

What's your experience with the commercial software life cycle?

Sunday, August 4, 2019

What's New

Since finishing off Dragon's Lair, I've actually been sidetracked working on the CollectorVision Phoenix (https://collectorvision.com/shop/colecovision/collectorvision-phoenix/), which is coming out soon. I've done a basic loader for the ColecoVision that will hopefully work well enough for people. We'll see when you get it!

Since that's done, I'm trying to get my todo list started. It's sobering to look at that list, do the math, and realize I will not likely finish it. Stupid mortality. ;)

You can look too! Then vote on what I should do! http://harmlesslion.com/cgi-bin/walrusshow.cgi

Unrelated to the task list, I just published a new version of Flipterm, in case anyone was using that. Flipterm is a text-based MUCK client. A MUCK is comparable to a MUD, and that probably doesn't help you at all. ;) MUD stands for 'Multi-User Dungeon', and before everything was a first-person shooter, this is what an MMORPG looked like. It was a lot like those old Infocom text adventures, except there were other people in the room as well.

Imagine a modern chat room or Discord server, but without the GIFs.

Anyway, FlipTerm is derived from the old GMud, and I started working on it back in 2002. It was pretty much stable since then, only minor fixes, but I was finally asked to make a few improvements, and took it as an opportunity to update the codebase.

Oh my god it's an awful codebase. It started rough, and then I was clearly learning as I went, not only MFC and MDI, but C++ itself. 

Anyway! Upgraded* the code to Visual Studio 2017, which came with a whole new MFC mindset for MDI that took a few days to get updated. Should be only minorly visible, though for free it did bring a new docking paradigm that has snazzy looking controls, and tooltips are nicer looking. It also, for free, fixed the docking preview on high DPI (ie: 4k) monitors, as that was kind of messed up.

(* - haha, "Upgraded". I fixed the parts that didn't work and left the rest as-is. I'm not that crazy!)

From the user point of view, the enhancements are:

- updated docking to modern version - fixes high DPI and provides better(?) user feedback
- removed MCP and the plugins. Nothing important ever used any of them.
- mouse scroll wheel works on the main output window and not just the input window (the one thing that did bug me for the last ten years or so ;) )
- word wrap settings now reformat the view when you resize the window (huzzah!) (unless you are using the fixed 80-column mode, but I'm not sure why anyone would anymore.)
- when you start a log after logging in, then log back to the beginning, the formatting of the old text is as-received instead of as-formatted, which makes logs more consistent.

Not much, really, but several nights of deep diving to get it all working with the new system. Hopefully good for another ten years!

Grab it over on Github here: https://github.com/tursilion/FlipTerm