Reviews

Update on Microsoft Expression Web Designer

It appears that Web Designer is part of a suite of apps that has yet to launch, called Microsoft Expression. It will contain three apps: Graphic Designer, Interactive Designer and Web Designer. Graphic Designer will be a marriage (in MS fashion) of Fireworks, Illustrator and Photoshop (we’ll see how well that comes out), Interactive Designer will be a UI design/destop app tool (it integrates seamlessly with Visual Studio), and Web Designer will of course go after Dreamwever, as detailed before, emphasizing the MS coding platforms (ASP, ASP.NET).

Microsoft Expression Graphic DesignerMicrosoft Expression Interactive DesignerMicrosoft Expression Web Designer
Graphic Designer and Interactive Designer are still in community edition (read flaky), and it looks like Interactive Designer will only work with .NET Framework 3.0 plus Visual Studio Express (at least). Web Designer is out in Beta and ready for download and use.

I have to ponder MS’ reach on this. They’re clearly building upon their strengths and going after their competitors, which is what they’ve always done, but to go after Photoshop and Dreamweaver is pretty lofty. Only time (and users) will tell whether they’ve managed to reach the target, or, in usual MS fashion, delivered something half-baked. Now we begin to see where all that R&D money went — it didn’t just go to Vista, it also went to stuff like this.

Standard
Reviews

Deliver First Class Web Sites: 101 Essential Checklists, by Shirley Kaiser

Deliver First Class Web Sites: 101 Essential Checklists, by Shirley KaiserDeliver First Class Web Sites, released by SitePoint Press, is an informative and compact book, but don’t let its size fool you. By using the checklist format, a whole lot of information was packed into this book. Rather than being an instruction manual, this book is a review guide. If you’re not familiar with today’s web design, you’ll be a bit confused. This is a book written for web designers and developers who want to produce quality web sites, not for novices. That’s how the book size was kept down while a staggering amount of instruction on all sorts of topics was squeezed in.

The checkpoints and checklists included in the book can be broken down into the following major categories:

  • Initial preparation and planning
  • Site content
  • Usability
  • Color
  • Information architecture
  • Navigation
  • Best coding practices/W3C standards and recommendations
  • Accessibility
  • Web site optimization
  • Search engine optimization
  • Design
  • Testing
  • Launch
  • Follow-up

I found myself drawn by the Color and Information Architecture sections, but all of the sections are worthwhile. They’re thoroughly written, and although most of us already know (or should know) what the author’s talking about, it really helps to have all of this knowledge down on paper, and in checklist format. As we’re building our next great site, or reviewing our current site(s) for a re-design, going through the book helps keep us on the right track by ensuring that our attention stays focused on what’s important. Remember, fluff or eye candy can be always be added as after-thoughts, but nothing can replace proper planning and a good, expandable foundation.

This book is highly recommended for all web designers and developers. Depending on the level of knowledge that each of us possesses, we may get a lot or a little from this book, but whatever we end up with will have been worth our time and money.

Standard
Reviews

Object-Oriented PHP: Concepts, Techniques, and Code by Peter Lavin

“Object Oriented PHP: Concepts, Techniques and Code”, by Peter LavinCan a single book get web designers to start writing better, reusable PHP code? Peter Lavin makes a go of it in Object Oriented PHP, and it comes out pretty darn well.

The gist of the book is this: would you rather write code that does the same sort of stuff over, and over, and over, and over, and… so on and so forth, or would you rather write a piece of code you can plug into any of your pages or sites when you need to do a certain thing? The object-oriented way involves a little more time upfront, but it pays off time and time again. Because let’s face it, none of us enjoys coding the same boring stuff unless we’re gluttons for punishment.

Some may say, “What?! What’s this nonsense about OOP with PHP?”, and I will duly point them to the specs for PHP 5. That’s when OOP techniques were truly made possible. I tell you, even I started reading Peter’s book with skepticism, because heck, PHP is “just” a scripting language, and besides, Dreamweaver can write a lot of the code I need for me. But as I went through the book, I realized an object-oriented approach is a scalable approach. It can be applied to multiple projects. In essence, that’s what Dreamweaver’s doing when I tell it to write a recordset for me, and Macromedia’s not doing too bad as a company… There are obviously benefits to be reaped from OOP in web development.

Peter’s book is great, because it walks you through and explains how OOP in PHP should work. He first explains the basics of OOP, then applies them to PHP, and provides real-world techniques and code to illustrate his points. He touches on AJAX, XML, RSS, thumbnail images, PDO, and other cool things, in an approachable and understandable manner.

It’s funny, but the illustration on the cover of the book says it all. Would you rather code a waffle from scratch, or code the wafflemaker, and make yourself waffles whenever you want them? That’s the difference between just writing code and object-oriented programming. It gives you the power of reproducibility and scalability. So what are you waiting for? Get cooking with OOP!

Standard
Reviews

Building Scalable Web Sites, by Cal Henderson

I love this book! There, I’ve given away the clincher already.

Truth is, the writing is addictive. Once I picked it up, it was hard to tear myself away. Perhaps it’s because I’m fascinated with the subject matter, but boy, the writing style ain’t too shabby either. It’s easy on the eyes, and easy on the brain. You just start reading, and go on reading. There are no stumbling blocks, just nice, smooth writing that encourages you to keep moving on as you’re reading.

Let’s face it, which web developer out there doesn’t want to find out how to build scalable websites? Don’t we all dream that our sites or web apps will hit it big, and we’ll have to start planning how to expand? Well, this book will show you how. No, this book won’t show you how to code such sites. There are so many languages out there, it’d be impossible to do that in a book. And besides, code and its structure varies wildly based on the application you’re building. The load imposed on the server varies as well, based on the nature of your application. Some require more RAM, others crave more disk space, others are cuckoo for I/O… you get the point.

What this book will do is to set you straight: what is scalability, and how it’s done, from scratch to finished product, from hardware planning to software planning. It’s all laid out, and it’s easy to understand. Oh heck, Cal even explains what a web application is. And he’ll shatter a few myths, such as this: scalability and performance aren’t the same thing. And, PHP can be used in scalable applications. What?! The heresy! Only Java is scalable, right? Nope.

You’ll also learn things such as… Which scaling (vertical or horizontal) is more cost and resource-effective? How do you load balance with both software and hardware? What in the world is involved when exposing web services? Well, it’s not about nerds flashing in the server room, that’s for sure. How should you react when someone pulls an RPC on your XML? Should you wash it with SOAP, or should you cry API Abuse? Is a data cache a good thing? Should you worry about your database slaves? Should you buy cheap machines like Google, or should you spend your cash on real servers? Read the book, and find out the answers to all these captivating questions.

By my estimate, most people interested in the subject will manage to read the book in less than a week, and that’s with leisurely reading in the evenings. That’s more than I can say about many tech books, where you get bogged down trying to understand the code and what it’s doing. This book is instructive, entertaining, and intellectually enriching. Cal has a lot of knowledge in building scalable websites, and there’ll be no mistaking that when you pick up the book. This fellow speaks from personal experience. Do yourself a favor, and don’t build a hamstrung site. Read this book first!

Standard
Reviews

Java I/O 2nd Edition by Elliotte Rusty Harold

Java I/O discusses in great detail a subject that is, in many ways, the bread and butter of Java: input and output. Given the expanded capabilities introduced with Java 1.4, 1.5 and 1.6, this book’s attention to them is timely and on target.

Here are some techniques that the book teaches:

  • Reading and writing files
  • Communicating over network sockets
  • Filtering data
  • Interpreting a wide variety of formats for integer and floating-point numbers
  • Passing data between threads
  • Encrypting and decrypting content
  • Calculating digital signatures for streams
  • Compressing and decompressing data
  • Writing objects to streams
  • Copying, moving and renaming files and directories
  • Choosing files from a GUI
  • Reading and writing non-English text in a variety of character sets
  • Talking directly to modems and other serial port devices
  • Controlling printers and other parallel port devices
  • Managing and communicating with USB devices
  • Transmitting data wirelessly with Bluetooth
  • Communicating with the outside world from small devices such as cellphones and PDAs

The book has 25 chapters, divided into the following logical parts:

  • Basic I/O, or the stream
  • Data Sources, such as files and networks
  • Filter Streams, or processing data as you read or write
  • New I/O, which deals with the changes made in Java 1.4
  • File System: moving, deleting, renaming and choosing files
  • Text: reader and writer streams
  • Devices: the Java Communications API, USB, J2ME and Bluetooth

Java I/O isn’t for everyone. It’s an in-depth book that assumes you already have a basic familiarity with Java, and you know its syntax. You should already know object-oriented programming, and you should already have written simple applications and applets. Although the examples given in the book are straightforward, you will quickly be overwhelmed if you’re a Java beginner, so you may want to pick up another book such as Learning Java or Java in a Nutshell first.

Elliotte Rusty Harold put a lot of hard work and detail into making Java I/O understandable and usable, and it shows. This book will prove an invaluable resource to the Java programmer interested in strengthening his or her I/O knowledge.

Standard