Book Discussion

| | Comments (21)

Ok, so here's the dealio. I've given the idea of writing an e-book some more thought, and I wanted to have a bit of a discussion with people who might be interested in purchasing such a beastie. What I'm trying to come up with right now is a chapter list (basically, a 50,000 ft overview) for such a programming book. I'm going at this from a few different angles: 1) General RB book, 2) Focus on design patterns in RB, 3) Win32 programming in RB. I'm also open to other ideas, but remember where my strengths are. ;-)

Here are the books and chapters that I've come up with.

Win32 Programming in RB

Part I -- Designing a Win32 UI
  • Design principles, references, etc
  • Tab ordering
  • Keyboard mnemonics
  • Menu shortcuts
  • Control spacing and general layout
Part II -- The file system
  • Special folders and their uses
  • File permissions
  • File extensions and associations

Part ?? -- Other Stuff that's not in any category


  • Registry

  • ActiveX

  • Tray items

  • Installers

  • Console and service applications

To be honest, I think this might be a good idea for a book, but in terms of structure, it's probably the weakest idea I've had.

Design Patterns in RB

  • Classes, modules, interfaces (basically, an intro)
  • Bridge pattern
  • Observer pattern
  • Singleton pattern
  • Monostate pattern
  • Command pattern
  • Chain of Responsibility pattern
  • Proxy pattern
  • Probably a lot more due to some new features in r5. ;-)

I like this idea for a book. It seems like an interesting topic, and it has many uses. I'm not certain how much I would enjoy writing a beginner-level book, and this would alleviate that fear. Also, I wouldn't have to spend that much time teaching REALbasic, it'd be more about how to use REALbasic to solve problems.

Generic RB Book

Part I -- Intro
  • Data types, operators, basics
  • Classes, modules, interfaces
  • Methods, properties, events, etc
  • Putting it all together: an example fraction class
Part II -- The Framework
  • Window, basic controls
  • File I/O, FolderItems, Dialogs, File Streams, MemoryBlock
  • Threads, sockets, serial
  • Database, record sets, etc (YECH!)
  • Part III -- Advanced Concepts
  • Custom controls using a Canvas
  • Static data, computed properties, new language features (think r5 stuff)
  • Declares and their data types

I really want to avoid this sort of book because I feel like I can't make everybody happy unless I essentially rewrite the language reference and user's guides. For example, it won't go into a ton of detail (otherwise it'd be like a 10 volume set!), and it'll miss entire concepts (graphics, printing, rbscript, the IDE, platform specific stuff, etc). So I dunno...

Hands-On RB Book

  1. Data types, operators
  2. Classes, modules, interfaces
  3. Methods, properties, etc
  4. Putting it all together: a fraction class
  5. Method overloading
  6. Operator overloading
  7. Extend the example: a fraction class
The idea behind this one is teaching the language (skipping over most of the framework) by doing examples. Again, I haven't fleshed this one out very much, but the basis is learning how the language works. My goal is to come up with various examples that demonstrate all the language features in REALbasic. I don't care what it shows about the framework.

So what I'm looking for from everyone here is thoughts and ideas on which book topics are good ideas to persue (and why), as well as flesh out the content and structure a bit. Once I've got one or two ideas for a book, then I can seriously start looking into writing one. As I've said, I'd like to avoid a general-purpose RB book, or one that focuses on the framework just because there's way too much ground to cover, and I hate leaving things only half-finished.

If you've got ideas for something that I haven't thrown out there, feel free to speak your mind. And if you think my ideas suck, tell me. Cuz I'm not the target audience for a book -- you guys are. :-P Oh yeah, and I make no promises about actually writing the book; if it turns out to be a royal PITA, I may drop the side project.

21 Comments

How about simply calling your book "A compendium of RB insights" and not worrying so much about pedagogical issues like 'scope and sequence'. Then simply bang away at whatever topic fits your fancy and call it a chapter! Each chapter would address a discrete issue much like a reference book.

I would also suggest looking into self-publishing through kinko's or cafepress.com. Personally I would rather curl up with a good book than my clunky laptop...

~joe

Sure, I'm all for the Win32 book. I know the last two, but Win32 and Design Patterns I would find quite interesting.

I'd have to say the Win32 one, hopefully with declares and advanced Win32 topics too =).

I have to vote for design patterns as my favorite since I do programming in other languages in addition to RB. I could take what I learn and use it in RB and elsewhere.

My close second is Win32. The reason it's not the first is because I've been doing Win32 for about 10 years and I'm afraid I wouldn't learn much that I haven't seen before.

I'd also be interested in any kind of random composition of cool examples, projects and code. By cool I mean graphics, communications (tcpip and/or serial), telephony, writing a mail server/web server, drawing programs, an email or ftp client, a newsgroup reader, etc.

The problem I've found with programming books; especially RB related ones, is that they're always out of date. I'd certainly do it as an e-book (although the CafePress idea is a good one) so that you can release new versions easily. Treat it like releasing software!

Not that this is much use to you: I've always thought programming and computer books should be provided in ring-binder format. When a new bit has been written, you can buy just the updated chapter. You then add it to your nice ring-binder, and if it's a replacement of an old chapter, you throw out just the obsolete bit. That way you always have an up-to-date version of the book, without having to buy it again and again.

My thoughts on RB-books are: the dummies book and o'reilly books are now completely useless for RB2005; they should be taken off the shelf. There has never been an advanced techniques book published, which I would love. Finally, I think better than a Win32 book would be a "X-Platform Development using REALbasic" book with lots of tips and tricks about UI design etc.

Aaron, The problem you are going to have, by discussing this idea here, is that besides myself, there are only experts in RB here. If you look at the most popular book for RB it is of course Matt Neuburg's book, and that was aimed at a target audience of Newbies. Here is my thoughts:

You write the 'intro' book first, who better than an actual RealSoft developer to write that? It might not be as fun, nor as sexy, but it will be the meat and potatoes.

Next you move on up the scale to cover the intermediate topics, of course, all the people who bought your begginner book will follow up and get this one.

Then you come out with the third volume, of advanced topics, which at this point your prior customers are ready for.

Finally you release a hints and tips book, mainly code showing how to solve immediate problems, from easy, to mindboggling hard. Again, a ready made audience.

As has been mentioned before, I prefer a three ring binder, I had the RB 2005 LR photocopied and hole punched and it has been much easier to use, now if RealSOft would release updates to it in the same format, I would be 100% happy with the documentation.

Copy this guy's writing style:

http://poignantguide.net/ruby/chapter-3.html

BEST PROGRAMMING TUTORIAL EVER

I would like the Win32 stuff, but especially the design pattern stuff, which I don't know alot about.

Aaron, I was preparing to write an RB book on OOP, including refactoring and design patterns, and had submitted a preliminary table of contents to a publisher. I published a book on OOP with Prograph CPX in 1995 and wanted to explore new territory. Unfortunately, my surgery in May and the (annoyingly lengthy) recovery from it have kept me from writing the book (and completing a really great RB programming tool that was in early beta testing).

I would recommend that you write first about the subject that you are the supreme expert on: Windows programming in RB. You'd have no competition on that subject and you'd be offering information that nobody else could. Right after that, tackle the design patterns book. I agree with others here that a general RB book would quickly become outdated -- unless you continuously updated it and offered an update service. In addition, many other people besides you could write a general book. It also doesn't tap your strengths as well as a Windows or design patterns book would.

Wow, a lot of great feedback from people -- thanks! I'm surprised to hear so many people pushing for a Win32 book. I tend to think of the RB user-base as mostly Mac people. ;-)

So if I were to run with a Win32 book, what sort of material would you like to see covered? And since design patterns seems to be a close second in terms of popularity, are there patterns in particular that the book should cover?

Arrrgghhh, you are getting a skewed sample here. Write a book that lcearly shows how to use databases, listboxes and networking and you will have thousands of 'switchers' beating a path to your door.

I understand that the sample is skewed by asking people here. However, I'm not certain I'd be able to write a decent book about those topics without that data swiftly going out of date, and not covering in enough details. The listbox class alone has almost 100 members to it (including properties, methods and constants). I like topics that are very open and shut (which is why the appeal of the design patterns book) because it's much easier to encapsulate the data.

In fact, I'm actually leaning towards a design patterns book at this point. It's interesting, it's got definite boundaries, the content doesn't get out of date very quickly, and it can be applied across multiple languages.

Personally I don't think that you should write a book at all. Now don't take that the wrong way, and let me explain myself. =)

What I would rather see is a series of indepth articles similar to the style of the Programming Gems series (average 6 to 10 pages per article). It can be a variety of topics and in any order you choose. Set up your website so that readers can purchase the articles that they want, or we can purchase a subscription.

This would make the task of writing easier and you will be able to see immediate results (and income). Another advantage is that some topics (like Design Patterns) are able to attract readers beyond just REALbasic users... which might expose REALbasic to more programmers. You would also be able to write the introduction in your blog and then refer to the article for more information.

That's an interesting idea Phil, but there's a few drawbacks to it. The first is -- I'm web programming stupid, and I wouldn't have the first clue about how to setup a website like that. The second is, that would require an on-going commitment to writing (subscriptions, that is) and I'm not certain I have the stamina for it. But it's still an idea worth exploring.

What if you were presented with a table of contents and a summary for each entry (like a schedule for a developer conference, sort of), and in order to read the entire article, you pay a small fee (like 1$? 5$? 10$? No idea) and then you can read just that article.

I dunno... seems like people might feel cheated, try to circumvent it, easy to leak articles, etc... And it still seems like a harder time than writing a book and selling it. But I'm not certain, part of me thinks it's an interesting proposal.

If you write an article on how to select a row in a listbox and get the corresponding piece of daa in a database, I would be happy to paypal you over $5.00

Sure, a small percentage of people would pass your mini-books around, but I am sure that the vast majority of us would be more than happy to pony up the going rate to ensure that you stay sufficently motivated to write even more.

Start out with the simple stuff and build up to the big stuff.

I think just writing a book on Win32 or Design stuff is the way to go. Id imagine you could get it published thru someplace. Too much maintenance with a website and all that. Can't your boss hook you up with some publishing like they did for the LR?

The $5 - $10 per article path may be the way to go. Some eBook publishers would publish shorter material like that. This would give you a way to write about both topics -- Windows and design patterns -- in parallel, rather than writing one book, then the other. You could publish a chapter on whichever material you had a brainstorm on at the moment.

I am new to RB. Been coding transaction based apps on Unix/Linux with CUI interface for 15 years using a 4GL.

Getting the hang of most UI design issues in RB is pretty straight forward, of course the deeper you venture the more complex issues become. Anyway solutions can be found on forums, documentation, etc.

What is really missing for RB is detailed documentation on developing transaction based apps, you know the boring old header/detail type apps (invoicing as an example.)

We are wanting to port our legacy CUI business admin app to RB GUI and the main stumbling blocks are working with databases, listboxes, input forms, etc.

The RB User Guide and Language Referance are is very skimpy on these subjects.

We find that what took us a few lines of code in old 4GL now takes many, many, complex lines in RB and are sure we are doing something wrong.

So a chapter or in depth article on transaction based coding would be much appreciated and hansomly paid for.

Aaron, I didn't want this to get lost in the shuffle, and I would love to know what you are thinking along these lines.

I mean, if you can fit it in between scrubbing your tub and picking out wallpaper .

@Bill -- I'm still pondering the ideas posted here. Right now, I think I'm mostly leaning on the idea of a content-driven website like the one Phil described.

The sticking point for me is that it involves making a content management system for the web. I'm mostly web programming stupid (and damned proud of it!), so that's a barrier for entry that I'm trying to find affordable ways to overcome.

“The sticking point for me is that it involves making a content management system for the web.”

Aaron, take a look at vBulletin.com - it allows using PayPal for recurring or one-time payments. Check “Paid Subscriptions” on http://www.vbulletin.com/docs/html

If you go for the recurring subscriptions you can setup a forum that is only accessible to a specific group of users.

If you prefer a one-time payment, for a pay-per-article system, you can also setup a forum for each article you create - so, people that buy that article would be able to access the respective forum’s article. Using a forum for each article would be great, as users could then post any questions they had about the article.

Although it seems that you prefer to go for a pay-per-article system I think that you can have both systems. What you could do on a subscription system is to setup a monthly (or three-month) payment where users would have access to all articles you publish on *that month*, for free or for a small price, depending on the monthly fee you have. The subscription forum could also provide other benefits to users, like tips, code snippets and so on - users could also help other users.

About the articles, I think you could provide them also in a PDF format, where users could download and print it - if any example project is used, you can also provide the source code file to download.

And if you want to provide some more, you could create also video tutorials for some articles - Camtasia Studio (techsmith.com) is very easy to use and it allows to create also flash videos (all browsers). So, let’s say that each article could be read online and downloaded with the PDF, Source code and Video Tutorial - you can charge more because the perceived value is greater ;)

About users trying to circumvent the system and get the files without paying... I think vBulletin is secure on that.

Hope this helps.

Carlos

Leave a comment

Disclaimer

I'm currently an employee of REAL Software. My blog is mine. The opinions represented in this blog are mine as well and may not represent my employer's opinions. All original material is copyrighted and property of the author.

REALbasic® is a registered trademark of REAL Software, Inc. REAL SQL Server™ and Lingua™ are pending trademarks of REAL Software, Inc. All rights reserved.