Archive for July, 2009

31
Jul

Lazyfeed-RSS by tag w/ invites

Really, REALLY BIG RSS feed button

Image by HiMY SYeD / photopia via Flickr

Lazyfeed is a new entrant in the field of RSS readers, a field currently dominated by Google Reader, NewsGator and FeedDemon.

Unlike the majority of feed readers, though, Lazyfeed doesn’t require you to manually input the URL of every feed you want to read. Instead, Lazyfeed relies on tags, one word synopsis of what interests you.

Say you want to read blog entries about Technology. Enter the tag “technology” in the “What Interests You” field and a stream of articles on that topic appears. Click on the “Save” button and that topic will be added to your saved interests list.

Louis Gray has posted a far better explanation than this on his blog at louisgray.com. Louis provides not just a great overview of the service along with screenshots of its features, but he also mentions how this manner of presenting feeds can add value to your RSS reading. Lazyfeed adds relevance that other readers often lack.

Lazyfeed is one of those services that might be easier to understand by playing with it for a while than reading about it. With that in mind, I’d like to offer the first three people to request one in the comments an invitation to the Lazyfeed beta. There is only one thing I ask in exchange for an invite: within the next month write a review of your experiences and opinions of Lazyfeed on your blog and link back to this post so I can read your impressions. I’m curious to know how other people use Lazyfeed, if it provides a unique experience and offers a better way to read relevant content on the web.

(P.S. If you’d prefer to not post your email address in the comments (I’ll need it to send an invite) you can email it to me directly at jeber (at) jebers.com)

Reblog this post [with Zemanta]
Sign-up for My Newsletter
Every month you'll be informed, challenged and entertained
Name:
Email:
 
Your email address will never be shared or sold.
Powered by Optin Form Adder
Print
20
Jul

I’ll get there someday

http://imgs.xkcd.com/comics/estimation.png

http://imgs.xkcd.com/comics/estimation.png

Print
12
Jul

Handicapslock.exe

Tab key on a standard Windows keyboard
Image via Wikipedia

There are several small utilities that do a single job and do it extremely well. I’ve recommended a few of these and will post about more in the future.

Have you ever been typing away and accidently hit the CapsLock key with your left little finger, not noticing until you’ve typed out several paragraphs? Frustrating, right?

Well, reader Jeadly of the very popular blog Lifehacker has written a small app that disables the CapsLock key once you click it, and keeps it disabled until you click the Handicapslock icon again. It doesn’t affect the Shift key, just CapsLock.

All you have to do is download the application. There’s no unzipping to be done, the executable file is all there is. If like me this is something you’ll be using on a regular basis, either drag the handicapslock.exe application to your desktop or right-click on it and pin it to the Start menu.

I’ve been using this app for over a year now and find it indispensable. No longer do I have to worry about what my left little finger is doing over there.

Grab yourself a copy at Lifehacker and enjoy. This application works only in Windows.

Reblog this post [with Zemanta]
Print
09
Jul

Is Chrome more a windowing system than an operating system?

Google vs Microsoft  --Chrome

Image by michperu via Flickr

At its core, an operating system is an interface between the underlying hardware and the software running on the computer. Windows, Macintosh and Linux/Unix each handle the task of controlling the hardware a bit differently (see hardware abstraction layer or HAL). Above the code that handles hardware is the user interface layer, the parts of the operating system that provides our familiar desktop, shortcuts to applications, start menus, etc. This layer gives the user access to both the software and some control over the hardware. You could call this the “look and feel” aspect to an operating system. It’s also the windowing part.

If Google builds the Chrome OS on top of a Linux kernal, it’s using Linux to handle the HAL while Chrome will provide the windowing. The look of the desktop, the way shortcuts work, the way we access the hardware, all that will have a distinct “Google” look and feel. Google will in effect provide a unique window manager apart from Microsoft’s Windows Manager (look at “Services” in the Windows Task Manager, you’ll see an instance of WDM-Windows Desktop Manager-that is always running), Linux’s Gnome or KDE (K Desktop Environment) or any of the other umpteen Linux window managers or Mac’s OS X. The difference between how the menus work in Windows and Mac is a result of the difference between their window managers.

All indications are that Google intends to simply “paint” their window manager on top of a customized Linux kernal. Since the Chrome OS won’t actually handle the hardware layer, just the windowing layer, some consider Chrome to be nothing but a windowing system, not a true and complete operating system. If we call Chrome an OS we might as well call Windowblinds an operating system.

I have to add that it’s because of the manner in which each OS deals with the hardware layer that many of us prefer Linux or Mac over Windows. It’s not (just) the perceived elitism, it’s not that we enjoy having fewer apps and interoperability issues with Windows, it’s not because we’re just hate Windows for no reason. Linux and Mac control the hardware layer in a far superior manner to the way Windows does. That’s the reason Mac’s aren’t considered “upgradeable” to the extent a PC is. Mac and Linux are tied closely to the hardware. They access the hardware more efficiently than Windows, thus there are far fewer system freezes or crashes.

Everyone appreciates an attractive desktop, but the true test of a computer is at the hardware level. The better the windowing system works together with the software and hardware, the better overall performance the user sees. A stable system allows the user to accomplish their tasks without having to think about what all is going on inside the magic beige box. An unstable system, like Windows, drives its users nuts by interrupting their work with freezes and demands to reboot (something only done in other OSs for changes in hardware) because the processes confuse the processor.

I also like the way the file system works in Linux better than the one in Windows (I’m still slightly confused by Mac’s file system). And software generally installs better, more logically, in Linux and Mac.

No system is perfect though some are less perfect than others.

Reblog this post [with Zemanta]
Print
05
Jul

Programming in Objective-C 2.0

Several months ago the good folks at Addison Wesley Publishing sent me a review copy of Stephen G. Kochan’s “Programming in Objective-C 2.0, A complete introduction to the Objective-C language for Mac OS X and iPhone development, 2nd Ed.“. It was my intention to read and review the book in a few weeks after its arrival.showcoveraspx

I’m not a programmer. The last computer language I studied was COBOL, back in 1976 while in training for my intelligence analysis position in the U.S. Army Security Agency. I don’t write programs or compile kernals. I build computers, I’m a hardware guy. Software is another world. I know enough about both Windows and Linux to install and fix errors, but I’m not a debugger.

So for several months I’ve been trying to understand this book well enough to write an informative review. I really need to complete this task as I’ve promised to send the book to a friend of mine who can actually make sense of it and use it. I’d like to do that before the 3rd edition hits the shelves.

So that you can get an idea of the value of this book, an idea that’s beyond my ability to convey, I’m going to cheat. I’m going to quote from three reviews of the book on Amazon posted by people who exhibit an understanding of the topic and an appreciation for this edition.

E.Kim says:

This book is both comprehensive and easy to understand. The sequence of chapters chosen to be read chronologically is well thought out (e.g. having the reader use static data types before introducing the generic id type, or having the reader declare and implement accessor methods before introducing the property and synthesize directives). The end of chapter exercises are also short (i.e. quick to complete) but also thoughtfully designed.

The author chose to make this book serve not only as a reference, but as a tutorial. In other words, a bit like the “… for Dummies” series in its hand-holding (i.e. tutorial) style. However, this book is certainly not for “dummies” as the author does not assume the reader to be slow or requiring interjections of humor or casualness. Other books will have authors write things like “Now grab a slice of pizza before we hit this really hard subject!”, but this author thankfully spares the reader of this. Kochan is concise and direct. There are very few wasted or unnecessary sentences.

Kochan does not assume prior Objective-C, Cocoa framework, or X-code knowledge. However, if you have experience with just about any procedural or object-oriented language, you will have a much easier time with learning any new language, including Objective-C. If you do not have experience with ANY other language, then you will still have a difficult time with learning all of the Objective-C language as some topics just by their very nature are difficult to grasp immediately without practical experience.

Although there is a chapter each on the Cocoa framework and iPhone development, this book is focused on the Objective-C language and Apple’s Foundation framework. Other resources will have to be utilized to learn Cocoa or Cocoa Touch.

BOOK’S TABLE OF CONTENTS:

1. Introduction
2. Programming in Objective-C
3. Classes, Objects, and methods
4. Data Types and Expressions
5. Program Looping
6. Making Decisions
7. More on Classes
8. Inheritance
9. Polymorphism, Dynamic Typing, and Dynamic Binding
10. More on variables and Data Types
11. Categories and Protocols
12. The Preprocessor
13. Underlying C Language Features
14. Introduction to the Foundation Framework Foundation Documentation
15. Numbers, Strings, and Collections
16. Working with Files
17. Memory Management
18. Copying Objects
19. Archiving
20. Introduction to Cocoa Framework Layers
21. Writing iPhone Applications
22. Appendix A. Glossary
23. Appendix B. Objective-C 2.0 Language Summary
24. Appendix C. Address Book Source Code
25. Appendix D. Resources

In summary, this book will make learning Objective-C about as easy as it can be since it starts with the assumption that the reader has no prior programming knowledge.

Jack (nope, not this Jack) posted:

I had heard about Kochan’s reputation for writing clear and concise books, so I was anxiously awaiting the release of the second edition of what has been recommended to me as THE book to learn Objective-C from. I was certainly not disappointed. I was able to work through this book in a week’s time and even write my first iPhone application, just from the material presented in this text.

Kochan methodically teaches the mechanics of the language, followed by the Foundation Framework, and then the iPhone SDK. In the last chapter on the iPhone, Kochan shows how to use two of the classes taught in the book (a calculator class and a fraction class) to develop a fraction calculator that runs on the iPhone. I was able to get the program running on the iPhone simulator that comes with the iPhone SDK. You should note that there was a mistake in listing some of the code for this example. I contacted the author and he was aware of the error. He mentioned that all the code, the answers to the exercises, and the errata will be posted shortly. It’s helpful to note that Kochan is active in MacRumors forums and seems to respond quickly to questions posted there as well as to the several emails I sent him.

John McSwain adds:

I am a web designer and developer and I’ve programmed in a lot of languages (i.e. HTML, javascript, actionscript, visual basic, etc.). I wanted to learn Objective-C as the quickly as I could. I quickly found out that not having experience in programming in C (the predecessor to Objective-C) made it hard to understand the reasoning behind the code syntax and finding resources that didn’t assume I knew C was almost impossible…

After going through the first three chapters of this book in less than an hour, my confidence in the language has increased exponentially. The book is roughly 624 pages, but I feel like I could code the samples and finish the book in just a few days…

The book is organized into four main sections:
I: The Objective-C 2.0 Language
II: The Foundation Framework
III: Cocoa and the iPhone SDK
IV: Appendixes

The separation of these main topics, Objective-C Language features and the Foundation Framework for example, almost guarantees that there won’t be much confusion if you are learning the language for the first time and that there will be a distinction between the topics and concepts for each section.

Kochan does a good job of creating a deep understanding of the material instead of simply saying `just write the code and we’ll explain later’. For example, each chapter provides instructions on how to fulfill basic concepts using Objective-C such as writing classes, inheritance, loops, operators, etc. At the end of each chapter, there are `Exercises’ which may range anywhere from 5-9, which more or less tests the reader’s comprehension on the material that was just covered.

These and 47 other reviews can be found here. You should read them to gain a better understanding of what this book offers than what I can provide.

As a frequent reviewer (of books I can fathom) I can tell you that for its price, Programming in Objective-C 2.0 is very comprehensive and easy to read. It was published on decent stock, though for a book like this I would have preferred to see them use a technique that allows the book to lie flat when open, which makes following along with tutorials easier. This edition has reasonable margins on each page, handy for making notes.

Based on knowledgeable reviews, I can enthusiastically recommend this book for those who are or plan to become developers for the iPhone or Macintosh platform, though it can be implimented on any system that supports the gcc compiler. You should have a a familiarity with programming languages in general and an understanding of object-oriented programming languages in particular. If you own an iPhone and have an itch to develop your own apps for it, buy and read this book. Perhaps someday you can explain it to me.

Print
04
Jul

Don’t let drivers drive you bonkers

Hardware drivers are programs, bundles of code that tell one machine (usually a computer) how to interact with other machines like printers, cameras, scanners and monitors that connect via a port on the computer.

One of the reasons Windows takes up so much room on your hard drive (Vista requires about 4GBs of disk space to install) is that Microsoft has tried to include many drivers for common hardware in the operating system. This means that when you plug your new monitor in, Windows will most likely have a driver available for it already available. Windows will search its installed driver database and apply the most appropriate one. It may not be the best driver for your device. We’ll get to that in a moment.

A common frustration with other operating systems like Macintosh and Linux is that quite often the best drivers are not available for those systems. Writing driver software is hard work, so it’s often performed only for the most popular operating system. Usually the code is propriatory. This means coders who want to write drivers for the Mac or for Linux can’t access the driver application in order to adapt it to a non-Windows system. Mac and Linux users are often forced to use generic drivers that don’t provide the functionality that drivers written for Windows do.device-properties

Many devices require specific drivers in order to access all their functions. Extra buttons on a mouse won’t work with generic drivers. Multi-function printers need a driver that tells the computer how to use all its functions. Generic drivers or drivers provided with Windows are usually not specific enough to get full use out of your hardware.

This is why I recommend checking, every six months or so, with the device’s manufacturer for the latest driver specific to your device. Go to their website and look for a “Downloads” or “Support” section. You should know your device’s exact model so you can download the driver best suited to your hardware. Most drivers download as executable files (.exe) that you simply need to click on after downloading. They’ll install the drivers and any additional software your hardware needs to function properly.

There are times you’ll need to reinstall drivers. You may get a new computer you want to use your current printer with or you may want to use your camera with your laptop. Maybe Windows just lost track of your device’s driver, or you’ve had to reinstall Windows and now need to reinstall all your hardware drivers. Sometimes you can’t even use your computer until you install the correct driver especially in the case of monitors or ethernet cards. You’ll need to use another computer to download those drivers and transfer them to the computer that needs them.

My suggestion is to buy a USB memory stick. A 2GB stick would likely work, but with prices low these days why not pick up a 4GB stick so you know you have enough space for all your drivers. Use a silver Sharpie to write “drivers” on it so you know it’s your driver storage device. Then download all the latest drivers onto it. Keep it in a safe place where you can find it when you need to install a driver onto your computer. Every six months or so update the drivers on your USB stick.

Using this tip can prevent a lot of frustration the next time you need the best driver for your hardware.

Print