Archive for the ‘Open Source’ Category

How to activate the $Id:$ keyword on files in an existing Subversion repository

This is a quick update to my earlier post about using svn keywords:

If you have a Subversion repository already full of files, and you want to activate the $Id:$ keyword on all of them so it expands out to something like:


$Id: index.php 783 2006-04-27 06:05:24Z gserafini $

whenever you check in the file, then use this command:


find . \! -name "*\.svn*" -name "*.php" -exec svn propset svn:keywords "Id" {} \;

This finds all *.php files that are NOT in .svn directories and sets the svn keyword property on each file.

Substitute other filename extensions for the .php that you want to activate the keyword expansion on. Then commit the files and the next time you make a change it will update the $Id:$ tag.

Popularity: 2% [?]

My-BIC = Easy Ajax (Another AJAX Framework on del.icio.us today)

My-BIC = Easy Ajax

The What

After tiring of over hyped ajax frameworks trying to hide the guts that make ajax programming fun I decided to share my recipe for easy to make ajax applications where you still have control over everything, but the setup of it all is handled for you. This is a basic state of mind system rather than a framework. I offer you four files and a design pattern that allows you to focus on making things happen rather than setting things up. This is designed for PHP5 but can be written for php4 if people are interested.

My-BIC = Easy Ajax

Popularity: 1% [?]

advAJAX / AdvancedAJAX 1.0

Neat looking Ajax library with a lot of configurability. Someone should do a matrix of all the ajax frameworks with what they offer… :)

This text contains the list of all methods and variables of the AdvancedAJAX (advAJAX) object. This project is available for free for both private, non-commercial and commercial usage. In case you want to receive support, contact the author.

AdvancedAJAX is a JavaScript object allowing to use XMLHttpRequest object easier and speeding up development of AJAX based projects. It consists a bound of methods helping creating queries, error handling, usage with HTML forms as well as connection timeouts and reconnecting. AdvancedAJAX (so as AJAX itself) is fully supported by internet browsers listed below:

* Internet Explorer - 5.0 and above (and other browsers using Microsoft’s engine)
* Mozilla - 1.0 and above (and other browsers based on Gecko engine)
* Apple Safari - 1.2 and above
* Opera - 7.60 and above

advAJAX / AdvancedAJAX 1.0

Popularity: 1% [?]

The no-framework PHP MVC framework - Rasmus’ Toys Page

In the end, the no-framework framework that Rasmus proposes isn’t so much of a framework as a coding style / approach, and he basically advocates rolling your own instead of refactoring someone else’s complicated framework. Still, some good points and worth checking out, good comments at the bottom too…

Try to avoid using include_once and require_once if possible. You are much better off using a straight include or require call, because the *_once() calls are very slow under an opcode cache. Sometimes there is no way around using these calls, but recognize that each one costs you an extra open() syscall and hash look up.

Nothing is going to build your application for you, no matter what it promises. You are going to have to build it yourself. Instead of starting by fixing the mistakes in some foreign framework and refactoring all the things that don’t apply to your environment spend your time building a lean and reusable pattern that fits your requirements directly. In the end I think you will find that your homegrown small framework has saved you time and aggravation and you end up with a better product.

The no-framework PHP MVC framework - Rasmus’ Toys Page

Popularity: 1% [?]

I just recovered over 7GB of disk space on my Powerbook G4 using these tips…

My disk usage

I just found a bunch of files that could be safely deleted. This is the graphic of my disk usage pattern. I reclaimed up over 7GB of disk space - a lot of it in caches, old mailboxes that I had moved, and more. The WhatSize application was especially helpful, since it basically gives you exactly what you want - a sorted list of each folder on your hard drive, sorted by size of the contents, and lets you drill down and see exactly which file(s) are taking up so much space on your system. Highly recommended!

Read all the tips here.

(Via digg)

Popularity: 1% [?]

Audacity crashed and all I got was this useless dialog message

Useless Audacity Message

Man. So I was working editing the levels for the latest Christian Science podcast for Lafayette Square Christian Science Society when Audacity crashed. Save early, save often, have to remember that again with Audacity.

Anyways, it spit out this oh-so-helpful (NOT) error dialog message:

Warning
Audacity found temporary files that were not deleted or saved the last time you used Audacity.

Audacity can’t recover them automatically, but if you choose not to delete them, you can recover them manually.

Delete temporary files?

No | Yes

Only by Googling for recover Audacity crash did I find this page which has a number of ways to try to recover your project. Unfortunately it didn’t really work for me so I’m back to adjusting levels…

Popularity: 2% [?]

Yahoo! UI Library - Free BSD licensed DHTML widgets

Yahoo! User Interface Library

The Yahoo! User Interface Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, HTML and AJAX. The UI Library Utilities facilitate the implementation of rich client-side features by enhancing and normalizing the developer’s interface to important elements of the browser infrastructure (such as events, in-page HTTP requests and the DOM). The Yahoo UI Library Controls produce visual, interactive user interface elements on the page with just a few lines of code and an included CSS file. All the components in the Yahoo! User Interface Library have been released as open source under a BSD license and are free for all uses.

Yahoo! UI Library

Popularity: 1% [?]

unpaper 1.1

Open source scanning software that corrects skewed scans so they align properly.

unpaper is a post-processing tool for scanned sheets of paper, especially for book pages that have been scanned from previously created photocopies. The main purpose is to make scanned book pages better readable on screen after conversion to PDF. Additionally, unpaper might be useful to enhance the quality of scanned pages before performing optical character recognition (OCR). unpaper tries to clean scanned images by removing dark edges that appeared through scanning or copying on areas outside the actual page content (e.g. dark areas between the left-hand-side and the right-hand-side of a double- sided book-page scan). The program also tries to detect disaligned centering and rotation of pages and will automatically straighten each page by rotating it to the correct angle. This process is called “deskewing”. Note that the automatic processing will sometimes fail. It is always a good idea to manually control the results of unpaper and adjust the parameter settings according to the requirements of the input. Each processing step can also be disabled individually for each sheet. Input and output files can be in either .pbm or .pgm format, as also used by the Linux scanning tools scanimage and scanadf. Conversion to PDF can e.g. be achieved with the Linux tools pgm2tiff, tiffcp and tiff2pdf.

unpaper 1.1

(Via reddit)

Popularity: 1% [?]

Creating a Mozilla/Firefox Drag and Drop file upload Script (Part 1)

Drag and drop upload of a file into Mozilla is possible? This promises to deliver that formerly IE - Windows only capability. Yay.

Creating a Mozilla/Firefox Drag and Drop file upload Script (Part 1)

There has been a lot of focus lately on web applications which have enhanced rich-client functionality, such as the oft-published AJAX approach adopted by Google Maps and GMail. One of the features which is present for desktop applications but which is difficult to accomplish with a web page is drag and drop of something that didn’t start off on the webpage (for example, dragging an image around a webpage is fairly easy to do, however dragging a file or shortcut from the desktop onto the webpage is much more difficult). In addition, although such functionality exists and is fairly easy to access with an ActiveX control for Internet Explorer, it is difficult to replicate inside of a Mozilla/Firefox browser due to the inherent complexities of cross-platform support as well as the stronger security model.

However, difficult does not mean impossible, and this article will describe how to create a control which allows a user to drag a file onto a webpage and upload it (automatically if desired) to a given server. I will mention now that this first part of the discussion will create a file which functions correctly on the local machine – Part 2 will deal with the difficulties of packaging up this code in a Jar, signing that Jar, and deploying it on a remote server.

Creating a Mozilla/Firefox Drag and Drop file upload Script (Part 1) (straxus.javadevelopersjournal.com)

Popularity: 1% [?]

Seagull Framework :: Overview

Overview

Introduction
Welcome to the Seagull Framework project, created and maintained by Demian Turner and the Seagull community. Seagull is an object oriented framework written in PHP that focuses on best practices, clean code and reusable components. The core libraries are free for you to use in your own projects and a number of modules developed by the community are also available. The design goals of the project play an important role in the code’s direction as does Open Source philosophy. Since it’s the code that sells a framework, please take a look at some code examples to see what’s on offer.

Check out more features of this PHP framework:
Seagull Framework :: Overview

(Shanti mentioned this in our conversation tonight, looks pretty impressive. I like how it uses PEAR and seems to be all-in-all pretty well thought out. Of course like anything, the proof will be in the pudding.)

Popularity: 2% [?]