Archives (2008 - 2023)

Archives (2008 - 2023)

1501 bookmarks
Newest
AutoSuggest jQuery Plugin | Drewwilson.com
AutoSuggest jQuery Plugin | Drewwilson.com

So I needed to add some auto-completing functionality to my project Build It With Me. I figured it would be easy to find a ready-made jQuery plugin to do the work for me. I was wrong. Naturally I took it upon myself to solve this problem for all of you :) I created this plugin to be as general purpose as possible. As a result it ended up being vastly more customizable than any other jQuery auto-complete plugin. Not only that, I am using actual jQuery. For some reason all the other "jQuery" plugins don't really take advantage of the radness that is jQuery. Consequently, my plugin ended up being dramatically smaller in size (way less code). Just 7kb minified. Have fun with it! AutoSuggest is a very lightweight jQuery plugin that makes auto-completing extremely easy.

AutoSuggest jQuery Plugin | Drewwilson.com
Utilisation d'un SSO dans eZ Publish - Lolart.net
Utilisation d'un SSO dans eZ Publish - Lolart.net

Parfois, lors du développement d'une application web, il est nécessaire de s'interfacer avec le ou les logiciels et/ou sites web du client afin de garder une session commune et cohérente au sein de sa bulle applicative. Pour ce faire, il est souvent utile de faire appels à un outil : le SSO (Single Sign On), ou Authentification Unique. Ce genre d'outils est assez répandu sur la toile; on en trouve notamment chez Google (un seul compte pour toutes leurs applications), Canal+, M6, etc... Il existe bien sûr plusieurs façons de s'interfacer avec un SSO en fonction du CMS ou du framework utilisé. eZ Publish, depuis sa version 3.8, permet de développer des SSO Handlers sous forme de plugin au système d'identification afin d'effectuer cet interfaçage. Je vais tenter, au travers de ce billet, de vous en présenter le mode de fonctionnement.

Utilisation d'un SSO dans eZ Publish - Lolart.net
Semantic Versioning
Semantic Versioning

Dependency hell is where you are when version lock and/or version promiscuity prevent you from easily and safely moving your project forward.

As a solution to this problem, I propose a simple set of rules and requirements that dictate how version numbers are assigned and incremented.

Semantic Versioning
Painless Spec and Schedule Development | BrandonSavage.net
Painless Spec and Schedule Development | BrandonSavage.net

In the time that I have developed software, I don’t know that I’ve ever met a developer who got excited about writing specs for anything. In fact, most developers loathe writing specs, or developing schedules of any kind. It’s not that they’re lazy, or that they don’t want to be held accountable; most of the time it’s because developers prefer to express themselves via code, or because developers are afraid that if they set a schedule, and then reality doesn’t match up, they’ll be forced to produce sub-standard code. Neither of these is an ideal situation.

This is directly at odds with the business need of specifications and schedules. Businesses need schedules to know when products will be finished and schedule things like trade shows, product launches, and write contracts with clients who need or want a particular product. It’s not as if businesses want to push their developers to insanity by forcing them to schedule and then stick to it; more often than not thousands of dollars hinges on the schedule, and it simply must be met.

Schedules and specs are a core component of software development, and business development; so much so that Joel Spolsky included developing both as core components of the Joel Test. While developers hate writing specs and developing schedules, there are some painless steps they can take to create them.

Painless Spec and Schedule Development | BrandonSavage.net
Eloquent JavaScript -- interactive tutorial
Eloquent JavaScript -- interactive tutorial

Eloquent JavaScript is a digital book providing a comprehensive introduction (tutorial) to the JavaScript programming language. Apart from a bookful of text, it contains plenty of example programs, and an environment to try them out and play with them. The book is aimed at the beginning programmer ― people with prior programming experience might also get something out of it, but they should not read chapters 2 to 5 too closely, because most of the concepts discussed there will probably be nothing new to them. Do make sure you read the end of the first chapter, which has some essential information about the book itself.

Eloquent JavaScript -- interactive tutorial
InfoQ: Resource-Oriented Architecture: The Rest of REST
InfoQ: Resource-Oriented Architecture: The Rest of REST

We will start by revisiting the REpresentational State Transfer (REST) architectural style. Oft quoted and even more often misunderstood, this manner of building networked software systems allows us to merge our documents, data and information-oriented services into a rich, logical ecosystem of named resources. From there, we will introduce the vision of the Semantic Web and walk through its core technologies represented by a flexible and extensible data model and the ability to query it. We will see how to incorporate relational data, content from documents, spreadsheets, RSS feeds, etc. into a rich web of reusable content. After we present the basics, we will walk through a variety of successful efforts building on these technologies and then return to reclaiming the vision promised to us by proponents of Web Services technologies. We will describe a process where we can achieve something of a Unified Theory of Information Systems; one that not only handles, but embraces the kind of technical and social change that has been painful and intractable to manage in the past.

InfoQ: Resource-Oriented Architecture: The Rest of REST
Profiling with XHProf – techPortal
Profiling with XHProf – techPortal
In this article, we’re going to try another profiler, XHProf, developed at Facebook and open sourced in March 2009 (under the Apache 2.0 license). XHProf is a function-level hierarchical profiler, with a PHP extension (written in C) to collect the raw data, and a few PHP scripts for the reporting/UI layer.
Profiling with XHProf – techPortal
Shocking News in PHP Exploitation
Shocking News in PHP Exploitation

On 5th of November I gave a talk titled “Shocking News in PHP Exploitation” at the Powerofcommunity hacking/security conference in Seoul, South Korea. Afterwards I uploaded my slides to this server but only distributed the link through twitter. I totally forgot about announcing the slides in my blog.

The topics of my talk were

* easy ways to bypass modsecurity and f5 big ip asm
* exploiting unserialize vulnerabilities in Zend Framework applications
* exploiting PHP interruption vulnerabilities after recent fixes in PHP
Shocking News in PHP Exploitation
crafterm's sprinkle at master - GitHub
crafterm's sprinkle at master - GitHub

Sprinkle is a software provisioning tool you can use to build remote servers with, after the base operating system has been installed. For example, to install a Rails or Merb stack on a brand new slice directly after its been created. Properties of packages such as their name, type, dependencies, etc, and what packages apply to what machines is described via a domain specific language that Sprinkle executes (in fact one of the aims of Sprinkle is to define as concisely as possible a language for installing software).

crafterm's sprinkle at master - GitHub
Schema Sync › a MySQL Schema Versioning and Migration Utility
Schema Sync › a MySQL Schema Versioning and Migration Utility
Schema Sync will generate the SQL necessary to migrate the schema of a source database to a target database (patch script), as well as a the SQL necessary to undo the changes after you apply them (revert script).Schema Sync does not alter your database. It only generates the .sql files containing the differences. You must apply the changes.All ADD|MODIFY COLUMN statements have the AFTER (or FIRST) SQL syntax even if no move is required.COMMENTS and AUTO_INCREMENT values are not by synced by default. See help (-h) for details.Schema Sync does not yet recognize Tables or Columns that have been renamed. A rename will result in the old table or column being dropped and the new one added.Partitions (MySQL 5.1+) are not yet supported
Schema Sync › a MySQL Schema Versioning and Migration Utility
InfoQ: A Reference Architecture Foundation for SOA Draft Was Submitted to Public Review
InfoQ: A Reference Architecture Foundation for SOA Draft Was Submitted to Public Review

The OASIS Service Oriented Architecture Reference Model TC has recently approved the Reference Architecture Foundation for Service Oriented Architecture Version 1.0 (SOA-RAF) specification as a Committee Draft for public review. SOA-RAF builds on Reference Model for SOA (SOA-RM) and defines the abstract architectural elements independent of the technologies, protocols, and products that are used for SOA implementation.

InfoQ: A Reference Architecture Foundation for SOA Draft Was Submitted to Public Review
realstorage - Project Hosting on Google Code
realstorage - Project Hosting on Google Code
realStorage is meant to create a consistent API for the W3C Web Storage key/value store specification (i.e. work around browser bugs). It also adds some convenience functions to help flesh out the localStorage key/value API. And when Web Storage is not available, a Gears fallback is provided.
realstorage - Project Hosting on Google Code
Closure Tools - Google Code
Closure Tools - Google Code
Web applications have evolved from simple HTML pages into rich, interactive applications that provide a great user experience. Today's web apps pose a challenge for developers, however: how do you create and maintain efficient JavaScript code that downloads quickly and works across different browsers?The Closure tools help developers to build rich web applications with JavaScript that is both powerful and efficient.
Closure Tools - Google Code
Haystack - Search for Django
Haystack - Search for Django
Search doesn't have to be hard. Haystack lets you write your search code once and choose the search engine you want it to run on. With a familiar API that should make any Djangonaut feel right at home and an architecture that allows you to swap things in and out as you need to, it's how search ought to be.
Haystack - Search for Django
Catching erroneous queries, without MySQL proxy at Xaprb
Catching erroneous queries, without MySQL proxy at Xaprb
MySQL Proxy is a really neat tool. I remember a few years back when I first saw Jan talking about it. Back in those days it was significantly different than it is now, but the concept remains the same: direct your database traffic through a man-in-the-middle. Chris Calender’s post on capturing erroneous queries with MySQL Proxy shows one use for Proxy. But wait. MySQL Proxy is just inspecting the MySQL protocol. And unless you’re using it for something else too, having a man in the middle to catch errors is like standing in the middle of the street and blocking traffic to count the cars on the street. Why don’t you stand on the sidewalk to count the cars instead?
Catching erroneous queries, without MySQL proxy at Xaprb
Python Package Index : pudb 0.92.13
Python Package Index : pudb 0.92.13

A full-screen, console-based Python debugger PuDB is a full-screen, console-based visual debugger for Python. Its goal is to provide all the niceties of modern GUI-based debuggers in a more lightweight and keyboard-friendly package. PuDB allows you to debug code right where you write and test it--in a terminal. If you've worked with the excellent (but nowadays ancient) DOS-based Turbo Pascal or C tools, PuDB's UI might look familiar.

Python Package Index : pudb 0.92.13
Mu — Mu Connect
Mu — Mu Connect

Facebook Connect is way to make your application more social. With it you gain access to: Identity: the user's name, photo and more [User].Social Graph: the user's friends and connections [Connection].Distribution: the Stream, and the ability to communicate [Publishing]Integration: publishers, canvas pages, profile boxes & tabs.This guide is for using the Mu JavaScript library to access the above on your site. Mu is a very small library which you can use along with your favourite JavaScript library such as Dojo, jQuery, MooTools, Prototype or YUI.

Mu — Mu Connect
memcache-top - Project Hosting on Google Code
memcache-top - Project Hosting on Google Code

I wanted a simple command-line tool to be able to grab real-time stats from memcache (memcached, I know, I know), and output it in a view something like top. I couldn't find anything like it, so I wrote one myself in perl. When writing it, I tried to keep it simple, portable, and lightweight. (No memcached perl modules required! I tried to keep it to modules I thought would be preinstalled on almost any modern system. It's also fairly polite - non-critical modules get checked, and if they aren't installed, the functionality is disabled without spewing errors or dying.) I realize it's not written well. But, hey, at least it exists, right? Until the day I released it, there wasn't any comparable tool like it for memcached. It gives you the basic stats, and not too much else. (You can specify thresholds, for instance, and it'll change color to red if you exceed the thresholds. You can also choose the refresh/ sleep time, and whether to show immediate (per second) stats, or lifetime stats. But it pretty much all revolves around those stats.)

memcache-top - Project Hosting on Google Code