{"id":43,"date":"2021-01-14T05:18:01","date_gmt":"2021-01-14T05:18:01","guid":{"rendered":"http:\/\/blog.randallhyde.com\/?p=43"},"modified":"2021-01-14T06:13:25","modified_gmt":"2021-01-14T06:13:25","slug":"first-post","status":"publish","type":"post","link":"https:\/\/blog.randallhyde.com\/index.php\/2021\/01\/14\/first-post\/","title":{"rendered":"Introduction"},"content":{"rendered":"\n<p>I first started putting information on the Web way back in the early-to-middle 1990&#8217;s while teaching Computer Science at UC Riverside. Back then you hand-coded Web pages in HTML with a text editor. Internet connections were slow, so you avoided graphics and other objects that took too long to download. My, how things have changed.<\/p>\n\n\n\n<p>At the time, I create &#8220;Webster&#8221; (www.webster.cs.ucr.edu). That website became quite well known in the assembly language programming community as I hosted a copy of my course notes &#8220;The Art of Assembly Language Programming&#8221; on that site. In the early 2000&#8217;s No Starch Press approached me about publishing the book. At that point, it was a bit too large, so a lot of material was cut. That material became the bulk of &#8220;Write Great Code, Volume 1: Understanding the Machine.&#8221; Volume 2 (&#8220;Thinking Low-Level, Writing High-Level&#8221;) followed shortly, with a promise of a soon-to-arrive Volume 3 on software engineering.<\/p>\n\n\n\n<p>About that time (2004-2005), however, I started working with General Atomics on new software for their Triga\u2122 Nuclear Reactor digital consoles. For the next 10-12 years I was kept extremely busy working on that software (and traveling all over the world to install and deploy it). Volume 3 fell by the wayside. <\/p>\n\n\n\n<p>I didn&#8217;t completely forgo work on my books. Around 2010 I did a second edition of &#8220;The Art of Assembly Language.&#8221; However, it wasn&#8217;t until around 2017-2018 that I had time to work on the Write Great Code series. Unfortunately, by then, computer technology had progressed to the point that Volumes 1 and 2 were in desperate need of an update. So I cranked out the second editions of the first two volumes (which finally appeared in 2019. Volume 3 turned out to be a whole lot larger than I initially expected; it got broken up into three volumes on it&#8217;s own: Volume 3: Engineering Software covering models, methodologies, and system documentation, Volume 4: Great Design, covering software analysis and design, and Volume 5: Great Coding that covers the actual construction process (this is all in addition to Volume 6: Testing, Debugging, and Quality Assurance, which was always planned for in the series).<\/p>\n\n\n\n<p>Volume 3 finally hit the shelves in late 2020. <\/p>\n\n\n\n<p>As I write this, I actually have four separate books in the editorial process:<\/p>\n\n\n\n<p>First of all, it was time to do something about &#8220;The Art of Assembly Language.&#8221; The original version of this book first appeared in 1989 (as a set of notes for a course I was teaching at Cal Poly Pomona). That book was geared towards the 8-\/16-bit 8088 microprocessor in the original IBM PC. The first published edition (No Starch, 2003) covered the 32-bit variants of the x86 using the High-Level Assembler. Within 10 years, 64-bit variants of the x86 were becoming popular. However, porting HLA to support 64 bit code was a huge undertaking (it took about four man-years to get HLA working in the first place, plus many years of support thereafter). At the time, my attitude was &#8220;learn 32-bit code; after that 64-bits is nearly trivial.&#8221; This was an okay attitude until new operating systems (especially Apple&#8217;s) stopped running 32-bit code altogether. Though HLA still ran on Windows (at least, as of Windows 10), the writing was on the wall, it was time to update &#8220;The Art of Assembly Language.&#8221; Unfortunately, the issue with updating HLA still remained. So, with a sad heart, I chose to abandon HLA and return to using Microsoft&#8217;s MASM assembler (the assembler used by the original version of the book back in the 8088 days). After considerable effort and rewriting, &#8220;The Art of 64-bit Assembly Language&#8221; was written. As I write this, it is in the middle of editing and technical review. It should head into production towards the middle of 2021.<\/p>\n\n\n\n<p>The original class notes I wrote for &#8220;The Art of Assembly Language Programming&#8221; yielded a bit more than &#8220;The Art of Assembly&#8221; (No Starch Press) and &#8220;Write Great Code&#8221; (also No Starch Press). There was a ton of really advanced stuff that never made it beyond the electronic version appearing on Webster. At least, not until now. I&#8217;ve taken that material, undated it to 64 bits and modern versions of Windows, and have written &#8220;The Art of 64-bit Assembly Language, Volume 2.&#8221; I&#8217;ve completed the first draft of this book and it&#8217;s sitting in the editing queue at No Starch waiting for the production of Volume 1 to complete.<\/p>\n\n\n\n<p>Since the very first days I began programming for a living (way back in 1977, actually), I&#8217;ve been working with embedded systems and programming hardware. Though I&#8217;ve taught lots of hardware classes at the University level, I&#8217;ve never written a hardware-related book. Until now. I just finished the first draft of &#8220;The Book of I2C&#8221; which is an in-depth treatment of the Inter-IC bus (also known as the I<sup>2<\/sup>C, or I-squared-C, bus). Anyone who has connected up hardware to an Arduino or Raspberry Pi has probably had to deal with this bus. Soon (figure 2022), No Starch will have a great reference for programmers dealing with I<sup>2<\/sup>C.<\/p>\n\n\n\n<p>&#8220;Write Great Code, Volume 4: Great Design&#8221; is in the middle of the rough draft (about \u2153 done). I&#8217;ll have more to say about WGC4 as I get further into it. You can probably expect it around the middle to end of 2022.<\/p>\n\n\n\n<p>Well, this is a long post so I&#8217;ll stop here.<\/p>\n\n\n\n<p>Cheers,<br>Randy Hyde<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I first started putting information on the Web way back in the early-to-middle 1990&#8217;s while teaching Computer Science at UC Riverside. Back then you hand-coded Web pages in HTML with a text editor. Internet connections were slow, so you avoided graphics and other objects that took too long to download. My, how things have changed. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/posts\/43"}],"collection":[{"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":4,"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/posts\/43\/revisions"}],"predecessor-version":[{"id":47,"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/posts\/43\/revisions\/47"}],"wp:attachment":[{"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/media?parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/categories?post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.randallhyde.com\/index.php\/wp-json\/wp\/v2\/tags?post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}