Software Engineering

Software Engineering

1635 bookmarks
Newest
Maven - Welcome to Maven for PHP
Maven - Welcome to Maven for PHP

Maven for PHP uses the power of Maven for building, reporting on and creating documentations of PHP projects. It adapts the Maven build lifecycle to the PHP world while fully supporting PHP 4 and PHP 5. PHP for Maven uses PHPUnit for unit testing and doxygen for creating the api documentation. Use a PHP library project to create a library that can be used by other PHP libraries or PHP web projects. Use a PHP web project to create a standalone web project.

Maven - Welcome to Maven for PHP
InfoQ: Top InfoQ News and Exclusive Content for 2008
InfoQ: Top InfoQ News and Exclusive Content for 2008
Looking back at the year that is coming to its conclusion, we wanted to have a retrospective and find out which were the most read news and exclusive content items during 2008. We compiled a list containing top 5 news for each community and top 3 exclusive content items for each type: articles, interviews and presentations. This list considers the number of unique readers for each news/exclusive content as provided by InfoQ’s web server statistic data.
InfoQ: Top InfoQ News and Exclusive Content for 2008
Improve your jQuery - 25 excellent tips
Improve your jQuery - 25 excellent tips
I'd call myself an "intermediate" jQuery user and I thought some others out there could benefit from all the little tips, tricks and techniques I've learned over the past year. The article also ended up being a lot longer than I thought it was going to be so I'll start with a table of contents so you can skip to the bits you're interested in.
Improve your jQuery - 25 excellent tips
A web-focused Git workflow
A web-focused Git workflow

After months of looking, struggling through Git-SVN glitches and letting things roll around in my head, I’ve finally arrived at a web-focused Git workflow that’s simple, flexible and easy to use.

Some key advantages:

* Pushing remote changes automatically updates the live site
* Server-based site edits won’t break history
* Simple, no special commit rules or requirements
* Works with existing sites, no need to redeploy or move files
A web-focused Git workflow
Why Git is Better Than X
Why Git is Better Than X
This site is here because I seem to be spending a lot of time lately defending Gitsters against charges of fanboyism, bandwagonism and koolaid-thirst. So, here is why people are switching to Git from X, and why you should too. Just click on a reason to view it.
Why Git is Better Than X
InfoQ: IBM's BPM Zero Project: RESTful Worflow Management
InfoQ: IBM's BPM Zero Project: RESTful Worflow Management

Christina Lau, distinguished engineer at IBM, gave recently a presentation at the Devoxx Conference “BPM 2.0 – a REST based architecture for next generation workflow management”. The goal of her presentation is to help us better understand BPM-as-a-Service (BaaS) to better prepare for it.

She defines BaaS with 5 key concepts based on Rashid Khan’s post on the topic:

    * Model and execute processes in a hosted environment
    * Integrate with both inside the firewall data and internet services
    * Business users collaborate to create the business processes with a browser using RIA technologies
    * Monitor, administer, rate, discuss processes over the internet
    * Web-based reporting and monitoring (BAM) capabilities
InfoQ: IBM's BPM Zero Project: RESTful Worflow Management
giver - Google Code
giver - Google Code
Giver is a simple file sharing desktop application. Other people running Giver on your network are automatically discovered and you can send files to them by simply dragging the files to their photo or icon shown in Giver. There is no knowledge or set up needed beyond what the person looks like or their name to use Giver.
giver - Google Code
InfoQ: Describing RESTful Applications
InfoQ: Describing RESTful Applications

My goal in this article is to answer the following questions.

* Why is not there a standard descriptions language for RESTful applications yet?
* How does a contract for RESTful applications looks like?
* What kind of software do we need to build that can understand and take advantage of such a contract?
* If we decide to come up with a machine-readable description, how might it look like?
InfoQ: Describing RESTful Applications
Impressive
Impressive

Impressive is a program that displays presentation slides. But unlike OpenOffice.org Impress or other similar applications, it does so with style. Smooth alpha-blended slide transitions are provided for the sake of eye candy, but in addition to this, Impressive offers some unique tools that are really useful for presentations. Read below if you want to know more about these features.

Creating presentations for Impressive is very simple: You just need to export a PDF file from your presentation software. This means that you can create slides in the application of your choice and use Impressive for displaying them. If your application does not support PDF output, you can alternatively use a set of pre-rendered image files – or you use Impressive to make a slideshow with your favorite photos.

Impressive
monolith-toolkit - Google Code
monolith-toolkit - Google Code

A collection of scripts for making your daily MySQL DBA responsibilities easier.

* mt-backup-parallel -> runs mysql backups in parallel super fast, has lots of reporting features
* mt-check-replication -> script to report on replication status for slave servers
* mt-rhcluster-check-filesystems -> reports on redhat cluster filesystems (for mysql active/passive clustering)
* mt-rhcluster-script-wrapper -> wrapper script for running any of these scripts on a redhat cluster, chooses the active node to run the script on
* mt-connections-log -> logs connections to mysql to disk, reports on threshold overages
* mt-flush-tables-sequence -> runs through schema.tables to flush in sequence before global flush
* mt-rotate-logs -> rotates general and slow query logs on periodic basis
* mt-my.cnf_xG -> MySQL configuration file for a particular RAM size installation
monolith-toolkit - Google Code
Obvious Hints: Symfony Design Patterns
Obvious Hints: Symfony Design Patterns

After this research I came with the following conclusion:

* Use the controllers to handle user input data and choose which view to display.
* If there, remove all business logic from the controllers.
* Let the Model do it's job with the provided data. 
* When handling data to the model, do it as an array of normalized data -or proper objects pertinent to our application-, the model shouldn't know about the request.
* Let helpers or Helper Objects handle the data formating, avoiding script code inside templates.
* Use Propel as a DAL and refactor towards a Model. This means to remove complex business logic from the Propel classes.
Obvious Hints: Symfony Design Patterns
code.openark.org » Blog Archive » REPLACE INTO: think twice
code.openark.org » Blog Archive » REPLACE INTO: think twice
Many uses of REPLACE INTO have no intention of changing PRIMARY KEY (or other UNIQUE KEY) values. In that case, it’s better left alone. On a production system I’ve seen, changing REPLACE INTO to INSERT INTO … ON DPLICATE KEY resulted in a ten times fold more throughput (measured in queries per second) and a drastic decrease in IO operations and in load average.
code.openark.org » Blog Archive » REPLACE INTO: think twice
SaaS Application Packaging Standard
SaaS Application Packaging Standard
APS creates a new revenue opportunity for both industry hosting providers and independent software vendors by introducing a "pluggable" approach to distributing SaaS applications. Once packaged in the APS format by a software vendor, an application can be easily "plugged" into an infrastructure of any hosting provider that implemented the standard "socket" for the APS applications.
SaaS Application Packaging Standard
John Resig - Genetic A/B Testing with JavaScript
John Resig - Genetic A/B Testing with JavaScript
You have a baseline interface in which you adjust a single variable, at random, for each user that visits your application. After a given amount of time you should be able to see if certain variables affect how your users behave (either negatively or positively).
John Resig - Genetic A/B Testing with JavaScript
SPIP 2.0 - SPIP
SPIP 2.0 - SPIP
La branche 2 de SPIP se présente donc à la fois comme le système de publication intégré (compatible avec les versions précédentes), et comme une plate-forme de développement multi-serveurs SQL pour qui veut aller plus loin. Cette plate-forme propose elle-même deux niveaux d’expertise, permettant de conserver la progressivité de la courbe d’apprentissage de SPIP tout en augmentant le nombre de services rendus.
SPIP 2.0 - SPIP
severalnines.com
severalnines.com

CMON is a daemon that aggregates information from MySQL Cluster that earlier was only accessible from the cluster log or the management client, such as:

* cluster state
* node state
* backup statistics
* statistics
* cluster events (cluster log basically)

.. and let's you access the information using SQL, because CMON logs the information into ordinary MYISAM tables! So, it is really easy to use! In the package you also get get php scripts that you can put on your webserver to generate graphs and get a www interface to CMON. CMON can also start ndbd nodes and make decisions on how they should be started (with or without --initial).

CMON starts as a daemon and will automatically create cmon database and install the necessary tables automatically.

severalnines.com
Allan Jardine | Visual Event
Allan Jardine | Visual Event
Events in Javascript are often seen as a bit of an enigma. This is odd given that Javascript is very much an event driven language, but it is typically down to their complex nature and difficulty to debug. To this end I've created Visual Event to help track events which are subscribed to DOM nodes.
Allan Jardine | Visual Event