It has come to my attention that Manning has released the One-Third Review copy of my book to a select group of about twelve reviewers. I hope that many of you will find your way here, as well as all the readers who will be participating in the MEAP. Either way, I welcome any comments or questions that you may have. I'll do my best to address both, and I'll certainly be taking notes to discuss and consider from the conversation.
Current Notes to Self
:: Section 3.2 should be "Explicit Conditionals", not "Explicit and Implicit Conditionals"; implicit conditionals are discussed in optimization tips in chapter 10.
:: In chapter 1 callout "Why “HIWORLD”, not “HELLO WORLD”?", emphasize that spaces are invalid in program names
:: Chapter 1, page 10: "gree." should be "green."
:: in App A, page 10: problem in the first example: the first line stores data in the [ b ] Matrix, and then you should calculate with the [ B ], not the [A]...
:: in App C: the link about DoorsCS SDK is dead. 404 not found.
:: fig 1.10: the "22" is there 2 times. That's not normal, in this game...
capture error ?
This is what I've found so far in the first couple pages:
CH_1:
-development environment (IDE) should perhaps be integrated development environment (IDE) 2
-Last paragraph pg 2 is cluncky. "If, however, you don’t already have an interest in broader programming, then you just might find that your interest develops as you" repeated twice for two different meanings. Would probably work better combined or modified. 2
-the repeated twice. "...The dashed line indicates the portion of the computer inside the the box on your desk..." 4
Thanks very much for those, Homer. Duly noted. I'm accumulating the suggestions here and offline, so I'll make sure I incorporate those corrections into the chapter.
No offense, but in appendix C (resource list) it seems like you are trying to promote mostly only things that you have made or founded. (eg. Cemetech, Source Coder, jsTIfied, etc.). Other people and other websites have great resources also. Not that you were trying to be critical to other people/websites, it just seems like you were only trying to promote your products.
Would you mind listing a few? I'm sure that will aid him in making that section less biased. Off of the top of my head (And, after a long day), I can't seem to think of others, except for a TI-Basic editor that... ScoutDavid(?) made. I do think that it should try to be as un-biased as possible, FWIW.
Parser Padwan wrote:
No offense, but in appendix C (resource list) it seems like you are trying to promote mostly only things that you have made or founded. (eg. Cemetech, Source Coder, jsTIfied, etc.). Other people and other websites have great resources also. Not that you were trying to be critical to other people/websites, it just seems like you were only trying to promote your products.
Actually, I ran that list past quite a few community members here and elsewhere, and I was surprised that none of them had a problem with the mix of links I included. I'm aware that something like Appendix C is a potential political minefield in as volatile a community as ours, so I was careful to check that it was both fair to me as an author and programmer and fair to the many, many people who have worked hard to make the community what it is.
Also, what _player1537 said.
Sorry to jump to conclusions, but it was a lot because there wasn't anything in there about TI-BASIC Developer, or about furthering your knowledge past TI-BASIC, such as asm/axe/celtic III.
Parser Padwan wrote:
Sorry to jump to conclusions, but it was a lot because there wasn't anything in there about TI-BASIC Developer, or about furthering your knowledge past TI-BASIC, such as asm/axe/celtic III.
A fair point at the latter. The book largely focuses on TI-BASIC, so Appendix C contains the references that readers will need for the majority of the material. In chapters 12 and 13 (which may become chapter 12, depending on space), I will be discussing going further with Axe, ASM, whatever. In chapter 11, I'll talk about Hybrid BASIC. In those chapters, I'll just-in-time introduce links to relevant ASM material like ASM in 28 Days and the SDK and TI's resources, Axe materials like its wiki and ticalc.org file, etc. Regarding TI-BD, I must say that I personally have used it very sparingly, so I don't automatically think of it as a resource, but it might not be a bad one to add.
TI-BD has an amazing resource of what commands do, what arguments they take, and cool code snippets. I would absolutely link to it.
Edit: Also, *stabs Kerm for wrong name*
Just a quick future-proofing tip: for the ticalc.org link to rom8x in Appendix C, I would recommend linking to the file info page instead of directly to the file; the former URL gives users more info and is less likely to break in the future with file archive reorganization or other changes.
I'll have other feedback about the book once I've had a chance to get it all organized. Looks nice so far.
Travis, great, thanks for that, and I look forward to your additional feedback. I think I actually did that for line length concerns, which is a poor reason; I'll switch it back to the file info page.
As a sidebar, it can be dangerous to include links in written word, because they're the sort of thing that can become dated / disappear very quickly. It might make sense to have an online resources page hosted by Cemetech (or even by Manning) that would have a fixed URL, and link to the most up-to-date versions of the resources you want to link to in the book. You could even break it up into Basic/ASM/Axe/Other resources, or something along those lines.
elfprince13 wrote:
As a sidebar, it can be dangerous to include links in written word, because they're the sort of thing that can become dated / disappear very quickly. It might make sense to have an online resources page hosted by Cemetech (or even by Manning) that would have a fixed URL, and link to the most up-to-date versions of the resources you want to link to in the book. You could even break it up into Basic/ASM/Axe/Other resources, or something along those lines.
Also don't use Java as an example of an interpreted language! It's compiled and runs in a VM.
And I'm semi-skeptical of the calculator specs you gave. I'm pretty sure some things got mixed up between the 83+, 83+SE and the 84+.
I'd certainly be willing to add something warning that if any of the links are out of date, to visit the book's subforum and check the Resource thread, since I'll of course keep that up to date. I consider Java an interpreted language, I certainly wouldn't call it an example of a compiled language. I knew someone was going to call me on that, though.
What specs do you think I messed up?
KermMartian wrote:
I'd certainly be willing to add something warning that if any of the links are out of date, to visit the book's subforum and check the Resource thread, since I'll of course keep that up to date.
This seems like a good way to handle it.
Quote:
I consider Java an interpreted language, I certainly wouldn't call it an example of a compiled language.
The JVM is a virtual machine with its own instruction set, targeted by multiple languages, some of which are compiled (Java) and some of which are not. And while the reference compiler (javac) targets the JVM, the GNU Java Compiler can target either the JVM or a native machine code. To claim Java isn't compiled is as silly as to claim C, C++, C#, or obj-C aren't compiled languaged, or as silly as to claim a dynamic language like PHP, Python, or Ruby is.
If you're worried the VM/native distinction will confuse people without a CS background, just exclude Java and stick to the sorts of languages that either have a native executable, or are executed from a text-file beginning with #!.
For your interpreted languages, why not go with Javascript, PHP, and Python; and for your compiled languages go with C, Pascal, and FORTRAN? I'm pretty sure most of your intended audience won't know what Haskell is (even after looking it up).
Quote:
What specs do you think I messed up?
I was almost certain that the TI-84+ had 512KB of Flash ROM, and that the stock 83+ had only 128KB - but maybe I'm just crazy.
It may also be worth mentioning that newer model 84+s have reduced total RAM.
as i mentioned before, it would make more sense to have the reference link for TILP be
http://lpg.ticalc.org/prj_tilp/
rather than
http://www.ticalc.org/pub/win/link/
because the first is exclusively for TILP, has separate links and instructions for different operating systems, and includes a handy script for installing on *nix systems.
also, deep's online assembler
ORG might be helpful to list under the IDE section because it requires no setting up and thus would make things a lot quicker and easier for people just starting
Regarding the TiLP website, I saw "© 2002-2005 by roms" and got concerned that it was less likely to be up-to-date than ticalc.org's own linking software directory. I agree that it's a good resource, though, if it is indeed up-to-date. I believe ORG is relatively new, is it not? I'll probably include that on the forum resource list, which I intend to make more inclusive and keep more current than the very limited space I have in the book.
the official TiLP page links directly to the ticalc archives for downloads, so there's nothing to worry about there.
and keeping a recent list here is a great idea =)
shmibs wrote:
the official TiLP page links directly to the ticalc archives for downloads, so there's nothing to worry about there.
and keeping a recent list here is a great idea =)
Cool, glad that we agree, and I shall change the TILP link. Added to the list!
Here are my random, more specific thoughts as I was reading through the manuscript. (The more general, “big picture” comments will be in the book review.)
Chapter 1:
* There seems to be a sentence missing when introducing the TI-81. The text starts referring to the model as “it” before mentioning its name.
* Technically, the 81 had something like 4 or 8 K of RAM, of which 2400 bytes were available for programs (and stat data), though trying to explain that might just add unnecessary confusing detail for the reader.
* In the discussion of the Prompt command where it talks about arguments, it mentions they appear in parentheses. But this is not true of instructions like Prompt, so that could be confusing to the reader unless it's mentioned that arguments may not appear in parentheses for some functions.
* Since it explains the basics of correcting typos and mentions [DEL] erasing the character under the cursor, maybe mentioning how to move the cursor (i.e., the arrow keys) should be mentioned?
Chapter 2:
* The caption of Fig. 2.7 mentions arguments separated by “parentheses”. I think you mean “commas” there.
Chapter 3:
* Maybe there should be some explanation on how to “flip around” a conditional expression, i.e. A>B == A≤B
Chapter 4:
* It might be worth mentioning in the memory leak discussion that this is only a problem if the Goto actually jumps into an outer block (if it jumps to a label inside the same blocks, it shouldn't be a problem as long as it eventually reaches the End) and that jumping into the inside of a different block of the same level can really make a mess, especially if the programmer doesn't realize that it's happening. (Watching out for mismatched Ends when weird things happen or missing Ends if the program seems to end when it should be looping can be a helpful debugging tip.)
* It seems to be a little early in the book to introduce a fairly advanced topic like recursion.
* The chapter in general covers quite a bit of ground and may be too long. It might be a good idea to split it up, saving the more advanced parts toward the end for a later installment.