Tuesday, January 30, 2007
Monday, January 29, 2007
Sunday, January 28, 2007
Thursday, January 25, 2007
Tuesday, January 23, 2007
Lullabot Podcast No. 30: Karen Stevenson | Lullabot: "Jeff Robbins interviews Karen Stevenson about her recent work with CCK, Views, Date, Calendar, and others."
Monday, January 22, 2007
Saturday, January 20, 2007
Aggregating from aggregators: Leech and URL Profile modules | Leech / URL profile demo: "The combination of the aggregator module Leech and the URL profile module allows you to mine the original sources from feeds that contain articles from various sources"
InfoQ: Four Ways to Ajax Enable a Java EE Application: "Sun's Developer Network posted a series of four articles late last year on different ways to add Ajax to a Java EE application. Each article covers a different way of adding in Ajax, including do-it-yourself, using Dojo, JSF components, and JSF phase listeners."
OpenID Mashpit Vancouver Recap | Bryght: "OpenID is an emerging Identity 2.0 standard for exchanging identity data on the internet." & Ma.gnolia Blog: Sign In Your Way: "Recently Scott Kveton over at JanRain, Inc. (View Details) mentioned in his blog post about Converting your site to OpenID (View Details) that we were considering OpenID support for Ma.gnolia... What is OpenID? The quick explanation is that OpenID is an easy-as-pie, single sign-on system that keeps users in control of their online identity. For a better explanation, check out OpenID on Wikipedia (View Details)."
Client and Server Stub Generation from WSDL - Codehaus XFire - Confluence: "Limitations: The generator Java 5.0 only at this point since it takes advantage of the JSR 181 annotations & RPC/Encoding is NOT supported... XMLBeans Client/Server Generation"
XMLBeans Integration - Codehaus XFire - Confluence & XMLBeans Client Generation - Codehaus XFire - Confluence: "Generating XMLBeans just requires a few lines in your Ant build file or your Maven 'maven.xml'"
MTOM - Codehaus XFire - Confluence: "MTOM is a way to handle large amounts of binary data in your services. Unlike attachments, the XML infoset stays the same. MTOM just 'optimizes' any base64Binary data you have in your messages. When MTOM is turned on, this base64 data gets sent as a binary attachment saving time and space."
JMS Transport - Codehaus XFire - Confluence: "This guide gives you a quick rundown of how to configure XFire to use JMS as a transport. JMS is one of the easiest means to create a reliable SOAP connection. Additionally it is much faster then things such as WS-Reliability."
Fault and Exception Handling - Codehaus XFire - Confluence - Custom Exceptions to SOAP Faults
Spring Remoting - Codehaus XFire - Confluence: "With protocols like Hessian or RMI, you just need a service interface to configure a Spring remoting client. However, SOAP is a bit more complicated. XFire has the concept of a service model. It uses your service class and various extra information to build this service model. Any information you use to configure your client must be used to configure your client as well. For instance, say you specify a custom a custom namespace on your service, you must also specify that on your client... Check out the Client API page to learn more about options when creating clients using XFire. The full example is available in the ./examples/spring/ folder (within the XFire distribution)."
Implementing WS-Security with JSR181 Annotations using WSS4J in XFire « The Arsenalist Muses: "The example shown implements WS-Security as specified by OASIS Web Services Security and implemented by WSS4J in XFire."
Friday, January 19, 2007
Wednesday, January 17, 2007
Sony Musicbox | ted serbinski: "The site was built using Drupal 4.7, along with a number of performance patches backported from Drupal 5.0. The majority of the site uses only CCK, imagecache & imagefield modules, and theming logic, and then some custom code to tie all of those together. It’s really bare bones in that sense :-) The rest of the site, which is basically just user profiles and community features, also makes use of the community tags module, buddylist module, privatemsg module, and tagadelic module. Add to that mixture a small dose of taxonomy to classify genres of content and some custom regions/blocks for ad management, and and voila, that is the site in a nutshell."
Tuesday, January 16, 2007
How to make (Drupal) blogs more conversational | webschuur.com: "There should be a process to allow people to ‘subscribe’ to the comments to any blog post, and get notified of new comments posted. Subscribe, Organic Groups, Notify, Views and Comment RSS. Enough to choose from, I’d say, yet no ready-to-go-out-of-the-box solution..."
Top Ten Gift Processing Problems - Jacobson Consulting Applications: "Oftentimes fundraising departments struggle with the same problems every time they enter, acknowledge, and report gifts. Are you one of them?"
Industry Solutions | MasterCard & the Nonprofit Industry | MasterCard (via civicspacelabs.org: "There are some excellent tips on this topic on the Mastercard website. There was an article about it in the May/June 2006 edition of Advancing Philanthropy Mastercard conducted a usability review of more than 50 nonprofit websites to evaluate the usability of their online giving features.")
creativepro.com - Design HTML E-Mail Templates That Won't Fail: "I could go on and on, but for most details, I'd just be parroting the world's best Web page that details everything you've ever wanted to know about CSS support in e-mail programs: David Greiner's "A Guide to CSS Support in Email". For this guide, Greiner compiled clear and comprehensive charts outlining exactly which CSS features each program supports, divvied up into local and Web-based programs. His charts even include Thunderbird and Windows Live Mail, which I haven't mentioned."
Bryght Support: Bryght's Drupal 5 Hosting Early Access Frequently Asked Questions & Running Drupal 5 on Your VPS: "These instructions will get you started running Drupal 5 on your virtual private server. They assume knowledge of the command line, which you can access via SSH."
Monday, January 15, 2007
XML Matters: Ajax tradeoffs: The many flavors of XML: "You make a lot of decisions when you build an Ajax-enabled Web site or Web application. What format your data takes is a decision that is too often made by default or without really thinking about all the issues. I have tried here to at least give some food for thought on these issues and to help frame the decision making process. To reiterate the rules of thumb given above:
- JSON for data
- XML for documents (favoring XHTML unless there is a reason not to)
- Wrap it in Atom for syndication (and to support the Atom Publishing Protocol)"
Sunday, January 14, 2007
Friday, January 12, 2007
Spring-Loaded: My contract-first wishlist: "In recent months, I've become quite a fanatic of contract-first web-services using the Spring-WS project. Arjen Poutsma has done some really good stuff in that space. I was a skeptic at first, but the more I think about it, I believe it's the right way to do web-services."
Eugene Kuleshov's Blog: Executing tasks with java.util.concurrent API: "Version 0.2 of the xcommonj-work project include implementation of ExecutorService and allows to use java.util.concurrent API introduced in Java 5 for asynchronous and parallel task execution. For compatibility with JRE 1.4 (e.g. in order to run on Weblogic 8.1) you can use this implementation is using backport-util-concurrent package. "
Pipelines and priorities « Blog of Peter ‘Alarmnummer’ Veentjer: "The solution is quite simple: add priorities to the messages and make the queues aware of these priorities: higher priority messages should be passed to consumers before lower priority messages. As soon as a high priority message is placed on the queue, it will be processed before all lower priority messages in that queue. This means that the response time of higher priority messages decreases, and response time for lower priority messages increases (in our case this behaviour is acceptable). Luckily in Java there already is such a queue implementation: PriorityBlockingQueue."
Lightweight message solution [Archive] - Spring Framework Support Forums: "Asynchronous communication can be handy to decouple components, and JMS was made for this. Only I find JMS to heavy if I need channels/pipes-filters in my system and I don`t care about the remoting aspect. Therefore I have created a lightweight channel implemention that doesn`t rely on jms (or anything else)... this is a part of the configration in Spring... java.util.concurrent.LinkedBlockingQueue..." & [java] lightweight messagechannel oplossing. - Programming
Enterprise Java Community: Distributed Computing Made Easy: "The ExecutorService interface in the java.util.concurrent package (since Java 5) provides direct support for the Master/Worker pattern, and this is something that we will take advantage of. We are also going to use the Spring Framework's dependency injection (DI) capabilities to wire up and configure the system."
Thursday, January 11, 2007
POJO Mojo: Fun with DSO and Cyclic Barrier: "DSO is the transparent “Distributed Shared Objects” component of the Terracotta Server. It is an API-free way to convert a multi-threaded application to a multi-VM application, as well as a drop in session clustering tool for WebLogic. If this is your first time working with the DSO product, I recommend downloading the product from http://www.terracottatech.com and working through the "Hello World Tutorial" and trying out the sample applications... When running in a single Java VM, I use the java.util.concurrent.CyclicBarrier. A CyclicBarrier takes a thread count N. Every thread that calls await() is blocked until await() has been called N times."
Chapter 23. Scheduling and Thread Pooling: "The Spring TaskExecutor abstraction -- Spring 2.0 introduces a new abstraction for dealing with Executors. Executors are the Java 5 name for the concept of thread pools. The odd naming is due to the fact that there is no guarantee that the underlying implementation is actually a pool. In fact, in many cases, the executor is single-threaded. Spring's abstraction helps bring thread pooling to Java 1.3 and 1.4 environments as well as hide implementation details between 1.3, 1.4, 5, and Java EE environments."
Java Feature — Concurrent Queries @ JAVA DEVELOPER'S JOURNAL: "You have a domain object, perhaps for reporting purposes, that's built from a ton of JDBC queries and it takes too long to load. Nothing else happens until this object is built, so it's become a bottleneck. Even worse, each of the queries is actually well tuned, so there isn't much to gain from modifying the queries themselves - there are just too many of them. You don't want to change (or can't change) your data model, so what can be done to alleviate this problem short of a major redesign? There are several options like caching, lazy loading, resource pooling. Another worthy option would be to implement a variation of the concurrent query pattern... Sources are available for download from http://sourceforge.net/projects/concurrentquery."
A Couple of Dutch Rants » Miscellaneous questions about Java / Spring & AspectJ: "In Spring 2.0, we’ve introduced a tighter integration between Spring AOP and AspectJ. One of the most visible enhancements that came out of this is the ability to use the AspectJ pointcut expression language inside Spring AOP"
A Couple of Dutch Rants » On the ServiceLocatorFactoryBean, DLAs and the sustainability of code and design: "As you can see, there certainly is such a thing as design for maintenance. Using DLAs and a dedicated service locator, we were able to decouple our application from the Spring APIs completely and create a less fragile and more sustainable design. Next to spreading your code across packages, that often correspond to modules or layers in your system, other things like adding annotations to certain classes (or in environment in which you’re not able to use Java 1.5 yet, a marker interface) might also help to better embed the rules of the game in the codebase; especially if you’re using DLAs with AspectJ for example."
Wednesday, January 10, 2007
Tuesday, January 09, 2007
Monday, January 08, 2007
Saturday, January 06, 2007
Friday, January 05, 2007
RSS, Leech, Aggregator2, and frustration.. | drupal.org: "I feel your pain. While Aggregator2 worked....that was actually deceptive. Leech module is an extension of the code and a bit crazy. The Development Seed folks are making improvements, but I fear that the base code is....scary. Try the Feedparser project -- we've been very impressed by the clean-ness of the code." & SimplePie: Super-fast, easy-to-use, RSS and Atom Parsing.
Thursday, January 04, 2007
Drupal Sign up Module Question | drupal.org: Q: "The sign up form only shows fields for name and phone. At minimum I was hoping for an email field as well." A: "Look at the big comment at the end of the signup.theme file in your signup directory." & Custom Fields in Drupal Event Signups | D'Arcy Norman dot net: "Then, I saw that the module developers had already done the work for me. They implemented the signup form's fields as a themable method, letting me override it on a per-theme basis. Without having to touch the code for the module itself. Brilliant. Absofrakking brilliant. So, I added this code to our theme's template.php file (the theme is called 'uofc_thisisnow'):..." & Signup: manage users event registration | drupal.org
Tuesday, January 02, 2007
A comparison of php json libraries: "The JSON homepage lists quite a few php libraries, but only 4 are in fact available for download and look stable and maintained:
Path aliases and web usability | drupal.org: "What you described is also one of the things that I consider essential for a good web site: clear and hierarchical URLs, with perfectly matching hierarchical breadcrumbs. Unfortunately, this is something that Drupal does not yet offer... not out of the box, anyway. In order to get the breadcrumb navigation and the index pages for taxonomy terms, you will need to install taxonomy_context.module. Most people use this module for its taxonomy-based menu block (personally, I try to keep blocks to an absolute minimum), but I use it because it generates breadcrumbs based on taxonomy terms; because it allows you to enter a 'description' for each term, which then becomes that term's 'index page'; and also because it can generate a list of subterms and append that list to the description. Sadly, neither taxonomy_context nor any other module will give you hierarchical URLs. However, I have developed a patch that will find the alias of a node or taxonomy term, find the alias(es) of its parent(s), and then join these together to form a truly hierarchical path. Please visit my site to see this patch in action...In the meantime, good luck with taxonomy_context - it's truly one of Drupal's most valuable modules."
Reproducing a large static web site hierarchy in Drupal | drupal.org & Creating a hierarchical website with taxonomy | drupal.org: "Note: site recipes are opinions of the original author. Book module is a way to create hierarchical content out of the box."
The ServerSide Interoperability Blog » Tango in Web services: Java and .NET 3.0 interoperability: "Here are is a collection of useful links:
GreenAsh ground-up videocast: Part III: Custom theming with Drupal 4.7 | GreenAsh: "It shows you how to create a custom theme that gives your site a unique look-and-feel, using Drupal's built-in PHPTemplate theme engine. Tasks that are covered include theming blocks, theming CCK node types, and theming views."
Sender Policy Framework Introduction & OpenSPF.org: Project Overview & Tutorial: Preventing SPAM: "Although SMTP provides a simple and fast method of mail delivery across networks and the Internet, spoofing who the mail is from is rather easy to do. This means that there is no guarantee that any mail you receive is actually from who it says it is from. This also makes it easier for SPAM mails and viruses to spread. Ability Mail Server helps combat this problem by supporting the new SPF system, which in simple terms means that domains can declare which SMTP servers are permitted for their outbound mail traffic. Should a domain publish SPF information, and a mail is received from that domain but from a non-permitted IP, the mail can be refused before it even enters Ability Mail Server." & Part 2: How to keep your Lotus Domino server off spam blacklists: "Sender Policy Framework is a relatively new technology that allows you to list the IP addresses of your mail servers in a special DNS record. When recipients receive a message that claims to be from you, their antispam software can compare the IP address the message originated from against your e-mail server's IP address. If the addresses don't match, the message can be assumed fraudulent, and the recipient doesn't think that your mail server is sending out spam. The Sender Policy Framework is still relatively new and a bit controversial because of some alleged weaknesses. However, it is a tool that could potentially help prevent you from being blacklisted."