Spreadsheet chart reference manual now available

After weeks of working on this, I’ve finally finished my reference manual on Open XML charts in spreadsheets. It’s called (imaginatively) Spreadsheet Open XML Charts.

It’s sort of a sequel to my other reference manual on Open XML spreadsheets.

If you do any work on Open XML spreadsheets and in charting specifically, I’m certain you’ll find this useful. Please check it out and let me know what you think.

Now if you’ll excuse me, I’ve got to go crash and do nothing. Perhaps get a cup of tea or hot chocolate.

Modularity in programming guides

I’ve read many programming guide books and tutorials. The one thing I’m looking for is, “I want to do X. What is the code I need to write to do just that?”

Many times, the author of the book or tutorial had mixed in other code or concepts into that. I want to know the simplest way to print “Hello World!”. I don’t want to include any extra libraries that don’t help with that. I don’t want any custom functions that makes printing a string any easier. I just want to print a string, ok?

The point is, the author already knows how to accomplish that task you want to learn. It’s when he gets, I don’t know, bored, that he adds other concepts to make it, I don’t know, interesting.

I’m not looking for the least number of code lines to write that accomplishes that task, although it’s usually that. I’m looking for the lines of code that just do what I want.

Because sometimes, I can’t differentiate the important from the extraneous. I don’t know, that’s why I’m learning, remember? This is especially important when I need to mix and match different concepts. If what I learnt has other extra stuff mixed in, then the resulting code has “more” extra stuff.

It’s like I want to mix X and Y, but got (X + dx) and (Y + dy). And I don’t know which parts are dx or dy.

Some authors make it clear which parts are the actual lines of code to accomplish X. Some authors are great at explaining stuff. I’m saying there are many others who don’t or can’t.

So when I wrote my Open XML spreadsheet programming guide, I made sure each chapter was modular. If not, I had sufficient comments and explanations so the reader knows which parts are the important parts. Each chapter was modelled after a major feature/function in the Excel software. How to style text, how to insert images, how to add more worksheets, that kind of thing. The Excel user mixes and matches those functions, so I want the programmer using the guide to be able to do a similar thing.

I got an email from a programmer who bought my guide that he liked to pick apart code to figure it out. I wrote a few custom functions but only because it made the code more readable. The full source code is given, so the reader is free to pick apart those functions and write his own (to better suit his needs).

I believe this is attributed to Albert Einstein:

Make things as simple as possible, but not simpler.

Be careful of encapsulating too much into just one function call.

WOX or online business guide?

Alright, in my quest to feed myself, I have a few product ideas down the pipeline. Now that version 2 of my spreadsheet Open XML guide is out (privately and affectionately referred to as SOX because the full acronym SOXFS is pronounced “socks fuzz” and doesn’t sound sexy), I am going to create something else.

Here’s where you can influence what I’m going to create. I’m going to ask you what would be useful to you, and I’ll go create that. More details in the following paragraphs.

Naturally, the next logical products should be Open XML guides for Microsoft Word and PowerPoint, named (for consistency) Wordprocessing Open XML From Scratch and Presentation Open XML From Scratch. Or referred to internally as WOX and POX. *grin* That’s 2 product ideas.

I’m also thinking of writing a guide for setting up a small online business, specifically for technically proficient people. You know those online business guides out there? They range from “how to make money online” to “how to make money online in niches”, from setting up small to big online businesses, from setting up businesses in the boardgames niche to the herbal niche to dating niche to the blogging niche.

You know what’s common in all of them? The authors all assume that you’re technically inept, that you don’t know anything about (or fearful of) HTML, CSS, WordPress, PayPal (payment integration), buying and setting up domains, setting up email lists, designing logos or ebook covers or website/blog layouts. The authors will give you step-by-step instructions to whatever they’re teaching and showing you, which is crucial to getting the “common” people (I mean no disrespect with that term. Would you feel better if I called them the “masses”?). They will tell you to get a technical person to help you with your technical problems. Get it outsourced, get a friend to help, but just don’t do it yourself because it wastes time.

Well, technically proficient people face different problems. Specifically, pride and fear of letting go. Our technical proficiency can be a bane at times.

“WordPress runs on PHP? I don’t know PHP, but I’m good at programming. How hard can PHP be?”

Why WordPress? What about Django or .NET Framework or whatever-new-fangled-thing-out-there? Because you’re running a business, and not indulging in your pet peeves. See the problem of pride I mentioned above. Hey, I’m a .NET programmer and the LAMP stack is extremely great at business setup ease. I don’t even deal with the LAMP stack. I let the web host deal with it. Remember, you’re running a business.

That said, any time those authors say it’s a technical thing, you can probably solve it quickly. Maybe in a few minutes. Maybe it takes a couple of hours. So depending on your technical proficiency, you can save a bunch of money from not outsourcing. But there’s the price of your time…

Anyway, that online business guide I might be writing will have everything I know about product creation, how to get product ideas, marketing, sales page writing, setting up the whole sales funnel, why you need an email list (think of it as your CRM). I will teach you the littlest number of activities you need to do to get something up and running.

Let me tell you, there are a lot of these “how to make money online” kind of guides and products out there. I’ve read and gone through many of the free offerings, whether they be blogs or PDF reports (one of the “tricks” used to get people to sign up). The current most-used method is to have a free video giving you valuable information, but you have to sign up to a mailing list. Your email address is the price to watch that video. Why do they want your email address? Because they’re building their CRM.

I’ve even bought a few of these products. There’s a traffic generation product, to generate website or blog traffic because apparently your product/service will fail without millions of views. I’ve been in 2 membership sites, teaching about how to use a blog as a means to creating cashflow and how a membership site is the greatest thing an online business owner can have. Membership sites are great because of the recurring income (see website hosting or Basecamp from 37signals or anything with a subscription model). I’ve bought sleazy products before, and I’ve bought ethical and useful products too.

There will be no startup stories, although I worked in a startup before. So maybe I can tell you about my experience. I can tell you it’s nothing like those stories in Silicon Valley… I suggest you think about a problem people are having and you solve that problem. A startup may be the solution, but you don’t need a development team, venture capitalists, and massive numbers of users. My blog doesn’t have thousands or hundreds of thousands of readers, yet I still manage to sell copies of my guide. Solve a problem people are facing.

So let me know if you’re more interested in another Open XML guide (for Word or PowerPoint) or this online business guide. Write in the comments or you can contact me privately if you want. If I don’t get any particular preferences from you, I’ll just go with whatever I can produce in the shortest amount of time and effort. Like I said, I need to eat…

Agatha Christie triumphs over Snow-Eater, Mario and Final Fantasy

I was clearing a part of a cupboard so my brother could store his collection of Agatha Christie books. I thought I might as well let you see what kind of junk I had… Among the contents were my university prospectus, game cartridges (from Sega and Super Famicon), comic book sword collectibles and tons of game guides and manuals.

Spreadsheet Open XML V2

I was rushing to get this out. The updated version of my programming guide is out! I first launched it on 17 Jan this year, so I was hoping to meet the personal-and-unseen deadline of 17 May, so it’s a nice 4 months interval. Ah well, I’m the only one who cares anyway…

I’ve added loads more content to help you with your Open XML spreadsheet needs. Version 1 was 53 pages. Version 2 is 147 pages. There are a lot of pages with screenshots, but still… 147 pages!

You can find out more here.

The last few weeks had been interesting while I rushed to get working source code and write explanations for the guide… I need to sleep… wait, I’ve got a magazine deadline! *sigh*

Programming guide update

So. Quick update.

I’ve finished writing a bunch of code for my Open XML guide to create spreadsheets. They include:

  • Inserting comments
  • Using formulas
  • Setting header/footer options
  • Setting page setup options
  • Creating multiple worksheets
  • Freezing/Splitting panes
  • Using and styling tables (but not pivot tables)
  • How to write the cells if you have multiple sets of tabular data

The last one was a problem that a customer faced. Let’s say you have 2 sets of tabular data, and they’re side by side in the worksheet. Using Open XML SDK, you have to run through the 1st row of the 1st set of data, then the 1st row of the 2nd set of data. You can’t completely iterate over the 1st set of data first. This is because with Open XML SDK, you have to completely define the first row to be inserted into the worksheet. That will include the 1st row of the 2nd set of data.

So I’m (feverishly) typing the explanation part of the guide (the code is all done and tested). I’m telling you now because when I release this update, I’m going to increase the price. I calculated that with the amount of work done on writing the code and the explanation, and that I currently offer a 1-year free technical support together with the guide, I’m severely undercharging. Besides, the number of hours saved studying the guide versus learning from scratch is worth the price increase.

Since I currently give customers a free update within one year of purchase, you might want to get the guide now before the price goes up. Then you’ll get the current guide and do awesome stuff with it right now, and when I release the updated guide, you get it at no extra cost.

Depending on how fast I type (and how many cups of tea I imbibe), I might release the update in a week’s time or two. I don’t really have a deadline. But the latest release date will be around mid-May (because I’ll have to work on my magazine by then. But I digress…). But it might be sooner, because I want to get this off my todo list so I can work on something else.

Basic guide to Excel Open XML

Ok, I don’t know why I didn’t think of it before. So it appears that there’s some need to create Excel files using Open XML SDK 2.0. I’m halfway done with my guide to doing that. It will be sold as an ebook (packaged with source code). It’s a consolidation of some of the articles I’ve already written on the subject, together with some all new articles. Included topics are:

  • How to create a stylesheet and use it
  • How to insert an image into a worksheet
  • How to insert multiple images into a worksheet
  • More advanced styling options
  • Setting column widths
  • Setting column and row settings (such as grouping columns and hiding rows)
  • Text alignment in a cell

When I teach, I believe in giving you the simplest explanation and code. This allows you to create more complex functions if you want. If I complicate it for you, you might not know what the individual parts are. It’s like giving you all 26 alphabets and let you play with it. Much better if you learn the individual alphabets and it’s up to you to form words with them.

I haven’t finalised the cost of the product, nor the release date. But I’m planning a “before Christmas” launch, so you should see it in my store soon. This is a heads up in case you’re agonising over a Christmas present for a programmer (or yourself). The price will be fair, considering that I will be saving you tons of hours of research and pain. It will also come with both C# and VB.NET supporting code.

Having worked in a mid-sized company, I understand that sometimes your IT department doesn’t allow third party products (or doesn’t have the budget to buy the license). I don’t consider the Open XML SDK 2.0 to be a third party product. Besides, it’s by Microsoft (and free!). Most companies should be able to accept that. The source code will only need the Open XML SDK (and the .NET Framework of course) to work.

My product license will be fairly flexible, so you can use my code to create commercial products. And the license is tied to the product, not to number of computers or developers or servers (or whatever complicated rule being used by other software companies). You only need to buy 1 copy. (But tell your friends to buy as well because I need to eat)

So yeah, that’s all I have to say. If there’s a particular topic you want me to cover, there’s still some time. Comment below and I might consider adding it to the guide. If this turns out to be popular (as in I get to eat a couple of meals because of it), I’ve got plans to include more Excel Open XML goodness, and even expand to Word and PowerPoint. We’ll see…