PHP App Architecture
Rasmus Lerdorf: "A suggested architecture for a PHP application. The template layer should have as little business logic as possible. As you go down you have less presentation and more business logic."
Rasmus Lerdorf: "A suggested architecture for a PHP application. The template layer should have as little business logic as possible. As you go down you have less presentation and more business logic."
Looks like a great web application: Basecamp - "Web-based project management the way it should be".
"Automator contains a library of Actions. Each Action is designed to perform a single task, such as finding linked images in a Web page, renaming a group of files or creating a new event in an iCal calendar. Actions from the Automator library are added in sequence to a Workflow document. Each Action in the Workflow corresponds to an individual step that you would normally do to accomplish your task. The results of one action are seamlessly passed to the next action."
chromatic's Pragmatic Programmers Interview:
"Andy Hunt: [...] Simple applications should be simple to write, easy to install and maintain. That used to be the case, but the current state of the world with web applications, J2EE, and so on is quite a bit more complicated than it needs to be.
Dave Thomas: Interestingly, we're seeing definite signs of pushback against the complexity. The "I'm mad as hell and I'm not going to take it any more" meme is starting to spread among developers, but it's a slow business. To some extent, the reluctance to change is only natural -- after all, folks have spent years learning the fine arcane details of J2EE and all the associated frameworks, and now they're being told that all that detail is too much. But at the same time, they're seeing the benefits of using tools such as Spring, Hibernate, Pico, and so on. We're even seeing folks abandon the J2EE world entirely in favor of lighter-weight solutions when appropriate. This wouldn't have happened two years ago, where a "Hello, World!" web app still needed 17 deployment descriptors to install. [...]
Dave: [...] Java and C# are not really dynamic in any meaningful way. Memory management is a small part of the picture, but the real gains in these more dynamic languages come from different areas, particularly from a flexible type model and from the ability to metaprogram.
Ultimately, it comes down to ease of expression. If I can express myself in code at a level closer to the problem domain, then I'm going to be more effective, and my code is likely to be easier to maintain and extend. Paul Graham makes a big deal out of the way Lisp helped him while building the software that became Yahoo Stores, and he's right. These languages, applied properly, are a strategic advantage. I know some companies are using them with great success. And you know -- they're keeping quiet about it."
Harry Fuecks - Seperating Browser from Resource:
"A personal grievance: I hate writing admin interfaces for web applications. The "front end" - what a site's visitors see - no problem but the admin interface, which is typically both more complex and at the same time, visible only to a limited use group, drives me nuts - lots of work for people who tend to have very evolved opinions."
Jon Udell - The Google PC generation:
"Job No. 1 for the Google PC would be to vacuum up all available sources of data. Job No. 2 would be to exploit that data to the hilt.
On the Google PC, you wouldn’t need third-party add-ons to index and search your local files, e-mail, and instant messages. It would just happen. The voracious spider wouldn’t stop there, though. The next piece of low-hanging fruit would be the Web pages you visit. These too would be stored, indexed, and made searchable. More ambitiously, the spider would record all your screen activity along with the underlying event streams.
[...] Instead of idly slacking most of the time, our PCs ought to be indexing, analyzing, correlating, and classifying."
Joel Spolsky wants more web-app-developer friendly features in the web browser:
"In the previous rounds of HTML enhancement, the world's great graphic designers (like Jeffrey Zeldman) made the most noise and got us things like CSS which allow the kind of pixel-perfect page layout that the marketing people like, done in an intelligent way that separates content from presentation. Kudos. They got what they wanted, mostly, and quieted down. Now it's time for us application developers to start clamoring for the features we need to develop great web applications. Here are some examples of the kinds of features I'd like to see in web browsers."
Nothing new, but well-written by Scott Granneman - Time to Dump Internet Explorer:
"Look, let's be honest with each other. We all know this is true: IE is a buggy, insecure, dangerous piece of software, and the source of many of the headaches that security pros have to endure [...]. It's time to tell our users, our clients, our associates, our families, and our friends to abandon Internet Explorer."
Found Cory Doctorow's great piece on why the Semantic Web will not exist - Metacrap: Putting the torch to seven straw-men of the meta-utopia:
"2. The problems
Brian Jones - Using Jabber as a log monitor:
"Jabber, the streaming XML technology mainly used for instant messaging, is well-suited to its most common task. However, Jabber is a far more generic tool. It's not a chat server per se, but rather a complete XML routing framework. This has some pretty far-reaching implications."
"LAMPPIX allows you to burn your web projects (i.e. PHP presentations or Perl scripts) onto a CD-ROM and give them away to others. They will only have to insert the CD and reboot -- if you configured LAMPPIX right (and this is really easy!) they can view your project."
"Rhizome is a Wiki-like content management and delivery system that exposes the entire site -- content, structure, and metadata as editable RDF. This means that instead of just creating a site with URLs that correspond to a page of HTML, with Rhizome you can create URLs that represent just about anything, such as:
Jon Udell on InfoWorld - Capturing user experience closes the feedback loop:
"For developers who rarely get to see people using their software, any opportunity to observe users is likely to provide valuable insight. Arguably such observation can, and should, occur throughout the software life cycle. A software team will often nominate one member to advocate for the user. Equipped with low-cost and easy-to-use recording tools, that team member can capture users' experiences with alpha, beta, or production software. Ideally the material will be edited down to highlights, but even raw footage can be helpful.
It's still hard for developers to watch this stuff. We have had a tendency to spare them the pain -- and to sacrifice the gain -- because connecting developers to users in this way has not often been practical. This new generation of tools aims to close that critical feedback loop, thereby helping developers figure out what ease-of-use really means to users."
Howard Feldman - Tales of Optimization and Troubleshooting:
"Whatever it was, I determined to find out what was going on. How hard could it be? What I found was not at all what I expected. The story was interesting enough that I thought it worth sharing. Perhaps you'll find ways to apply some of the principles employed to your own code optimization procedures."
Derek Sivers - Programming is like Songwriting:
"As I get more and more into programming, I'm constantly struck with how similar it feels to songwriting. [...]
- It makes me jump out of bed at 2 AM wanting to try the ideas in my head to see if they work. - Being the programmer in the company is like being the songwriter in the band. You're the one that creates the thing that the rest of the organization is there to promote and support. - Most real songwriters and programmers would be doing this even if they never made a dime."