Software Engineering

Software Engineering

1635 bookmarks
Newest
InfoQ: Hiring for an Agile Team
InfoQ: Hiring for an Agile Team
Thus, hiring technical people for an Agile team and being hired can be difficult, no matter what the economy is doing. The key lies in identifying a sound process to get the most compatible people on board. People should be hired for talent rather than specific skills that they possess at that particular time.
InfoQ: Hiring for an Agile Team
SystemTap
SystemTap

SystemTap provides free software (GPL) infrastructure to simplify the gathering of information about the running Linux system. This assists diagnosis of a performance or functional problem. SystemTap eliminates the need for the developer to go through the tedious and disruptive instrument, recompile, install, and reboot sequence that may be otherwise required to collect data.

SystemTap provides a simple command line interface and scripting language for writing instrumentation for a live running kernel. We are publishing samples, as well as enlarging the internal "tapset" script library to aid reuse and abstraction.

Among other tracing/probing tools, SystemTap is the tool of choice for complex tasks that may require live analysis, programmable on-line response, and whole-system symbolic access. SystemTap can also handle simple tracing jobs.

SystemTap
MCollective - Overview
MCollective - Overview

The Marionette Collective aka. mcollective is a framework to build server orchestration or parallel job execution systems.

Mcollective’s primary use is to programmatically execute actions on clusters of servers. In this regard it operates in the same space as tools like Func, Fabric or Capistrano.

By not relying on central inventories and tools like SSH, it’s not simply a fancy SSH “for loop”. MCollective uses modern tools like Publish Subscribe Middleware and modern philosophies like real time discovery of network resources using meta data and not hostnames. Delivering a very scalable and very fast parallel execution environment.

The focus is on catering to the needs of enterprises and large deploys. Pluggable Authentication, Authorization and Auditing capabilities sets it apart from other tools in this space.

MCollective - Overview
Capistrano Multi Stage Instructions - Box Vault
Capistrano Multi Stage Instructions - Box Vault

Features provided in the capistrano-ext gem allows you to setup multiple environments within your deploy.rb file giving you the ability to run commands such as:

cap development deploy:migrations or

cap production deploy:migrations and have your application deploy to the different environments properly. This document provides you instructions on how to properly accomplish this.

Capistrano Multi Stage Instructions - Box Vault
GNU Parallel - build and execute command lines from standard input in parallel - Accueil [Savannah]
GNU Parallel - build and execute command lines from standard input in parallel - Accueil [Savannah]
GNU parallel is a shell tool for executing jobs in parallel locally or using remote computers. A job is typically a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables.
GNU Parallel - build and execute command lines from standard input in parallel - Accueil [Savannah]
aost - Project Hosting on Google Code
aost - Project Hosting on Google Code
The Tellurium Automated Testing Framework (Tellurium) is a UI module-based automated testing framework for web applications. The UI module is a collection of UI elements you group together. Usually, the UI module represents a composite UI object in the format of nested basic UI elements.
aost - Project Hosting on Google Code
Behat - BDD in PHP
Behat - BDD in PHP

Behat is an open source behavior driven development framework for php 5.3.

Behat was inspired by Ruby's Cucumber project and especially it's syntax part (Gherkin). It tries to be like Cucumber with input (Feature files) and output (console formatters), but in core, it built from the ground on the shoulders of giants:

Symfony Dependency Injection component Symfony Event Dispatcher component Symfony Console component Symfony Finder component Unlike any other php testing framework that tests applications inside out. Behat is testing applications outside in. It means, that Behat works only with your application's input/output. If you want to test your models - use unit testing framework instead, Behat created for behavior testing (but can be used for anything +) ).

Also, there's symfony plugin for Behat, so you can start testing your applications right now.

Behat - BDD in PHP
Celery - The Distributed Task Queue
Celery - The Distributed Task Queue

Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.

The execution units, called tasks, are executed concurrently on a single or more worker servers. Tasks can execute asynchronously (in the background) or synchronously (wait until ready).

Celery is already used in production to process millions of tasks a day.

Celery is written in Python, but the protocol can be implemented in any language. It can also operate with other languages using webhooks.

Celery - The Distributed Task Queue
Ganglia Monitoring System
Ganglia Monitoring System
Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids. It is based on a hierarchical design targeted at federations of clusters. It leverages widely used technologies such as XML for data representation, XDR for compact, portable data transport, and RRDtool for data storage and visualization. It uses carefully engineered data structures and algorithms to achieve very low per-node overheads and high concurrency. The implementation is robust, has been ported to an extensive set of operating systems and processor architectures, and is currently in use on thousands of clusters around the world. It has been used to link clusters across university campuses and around the world and can scale to handle clusters with 2000 nodes.
Ganglia Monitoring System
Skills Matter : In The Brain of Simon Brown: Good code isn t
Skills Matter : In The Brain of Simon Brown: Good code isn t
In this session Simon Brown, author of the Software Architecture for Developers Workshop and Enterprise software developer will look at why delivering a successful software project requires more than simply choosing some technology and throwing it together, showing how you can take the best bits from traditional and modern approaches to form a structured yet lightweight approach to software development. The session will cover the complete end-to-end software development process; from planning, gathering requirements and software architecture through to the effective use of source code control, automated unit testing, continuous integration and load testing. Good code isn't enough.
Skills Matter : In The Brain of Simon Brown: Good code isn t
Charting out devops ideas
Charting out devops ideas

Thanks to the devopsdays conference, the idea of devops seems to live on. While talking with other people about it, I realize that it is difficult to frame it within the current IT landscape. At lot of the ideas are coming from different kinds of emerging technologies (T) and process management (P) approaches.

For me the two most important observations are:

there is a increase in feedback loops between business, all parts of the delivery process and operations thanks to this feedback loops we increase the quality and speed up the flow So where can you look for devops ideas ? As you can see on the map , these interactions are all over the place.

Charting out devops ideas
JeOSVMBuilder - Community Ubuntu Documentation
JeOSVMBuilder - Community Ubuntu Documentation

Ubuntu JeOS (pronounced "Juice") is an efficient variant of the Ubuntu Server operating system, configured specifically for virtual appliances. It is no longer available as a CD image for download. Now you can install it with either:

the Ubuntu Server Edition installation CD by pressing F4 and choosing "Install a minimal virtual machine", or Ubuntu's vmbuilder, as described here. JeOS is a specialized installation of Ubuntu Server Edition with a tuned kernel that contains only the base elements needed to run within a virtualized environment.

JeOSVMBuilder - Community Ubuntu Documentation
Foreman
Foreman

Foreman is aimed to be a Single Address For All Machines Life Cycle Management.

Foreman integrates with Puppet (and acts as web front end to it). Foreman takes care of bare bone provisioning until the point puppet is running, allowing Puppet to do what it does best. Foreman shows you Systems Inventory (based on Facter) and provides real time information about hosts status based on Puppet reports. Foreman creates everything you need when adding a new machine to your network,It's goal being automatically managing everything you would normally manage manually - that would eventually include DNS, DHCP, TFTP, PuppetCA, CMDB and everything else you might consider useful. With Foreman You Can Always Rebuild Your Machines From Scratch! Foreman is designed to work in a large enterprise, where multiple domains, subnets and puppetmasters are required. In many cases, Foreman could help remote provisions where no experienced technicians are available.

Foreman
Scaling Puppet with Git | Bitfield Consulting
Scaling Puppet with Git | Bitfield Consulting
Scaling Puppet is most commonly done using client/server mode, in which every client is issued with an SSL certificate, and conversations take place between clients and a server, over HTTP, and manifests and assets are served over the network, and applied by a locally running Puppet daemon. However, is there a better way? We present an alternative to the traditional Puppetmaster solution which we like to call ‘Git Puppet’.
Scaling Puppet with Git | Bitfield Consulting
CloudBees - Enterprise Java Virtualization
CloudBees - Enterprise Java Virtualization

Introducing DEV@cloud from CloudBees

CloudBees DEV@cloud provides a fully integrated development infrastructure featuring a Hudson-based continuous integration available as a SaaS. All ready in a snap. DEV@cloud delivers:

Continuous Integration (based on Hudson) with build agents available as elastic resources billed by-the-minute, Private and secure Git and SVN repositories, Private and secure Maven repository, (more features coming soon...)

CloudBees - Enterprise Java Virtualization
Big Ball of Mud
Big Ball of Mud

While much attention has been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture is seldom discussed. This paper examines this most frequently deployed of software architectures: the BIG BALL OF MUD. A BIG BALL OF MUD is a casually, even haphazardly, structured system. Its organization, if one can call it that, is dictated more by expediency than design. Yet, its enduring popularity cannot merely be indicative of a general disregard for architecture.

These patterns explore the forces that encourage the emergence of a BIG BALL OF MUD, and the undeniable effectiveness of this approach to software architecture. What are the people who build them doing right? If more high-minded architectural approaches are to compete, we must understand what the forces that lead to a BIG BALL OF MUD are, and examine alternative ways to resolve them.

A number of additional patterns emerge out of the BIG BALL OF MUD. We discuss them in turn. Two principal questions underlie these patterns: Why are so many existing systems architecturally undistinguished, and what can we do to improve them?

Big Ball of Mud
Introducing fise, the Open Source RESTful Semantic Engine, Nuxeo Developers Blog
Introducing fise, the Open Source RESTful Semantic Engine, Nuxeo Developers Blog

As a member of the IKS european project Nuxeo contributes to the development of an Open Source software project named fise whose goal is to help bring new and trendy semantic features to CMS by giving developers a stack of reusable HTTP semantic services to build upon. As such concepts might be new to some readers, the first part of this blog post is presented as a Q&A.

Introducing fise, the Open Source RESTful Semantic Engine, Nuxeo Developers Blog
Lucas Nussbaum’s Blog » Blog Archive » Ruby packaging in Debian and Ubuntu: Mythbusting and FAQ
Lucas Nussbaum’s Blog » Blog Archive » Ruby packaging in Debian and Ubuntu: Mythbusting and FAQ

The Ruby developers (or expert users) community is generally very hostile towards Debian. Many harsh words and insults are used in discussions mentioning Debian in the ruby-core@ mailing list, and there are frequent recommendations to avoid the Debian packages and install from sources, which is quite demotivating (Actually, what prompted that blog post is someone calling Debian-specific changes unforgivable).

This atmosphere makes it hard to recruit people, and the Debian Ruby teams are completely understaffed, which is clearly the major blocker to improving the situation further

Lucas Nussbaum’s Blog » Blog Archive » Ruby packaging in Debian and Ubuntu: Mythbusting and FAQ
Linux sysctl configuration and tuning script | Shell Tips !
Linux sysctl configuration and tuning script | Shell Tips !
Frequently when I setup a new server (or a bunch of them) I use a small shell script that will go thru all the basic linux sysctl config. I decied to share it. I always change it a bit according to my needs and the application/services that will run on the server. Though having a script to automate some of this manual tuning is quite useful. Use it at your OWN risk. There is no silver bullet, make sure to understand each parameters and that they fit your needs/usage/network/OS.
Linux sysctl configuration and tuning script | Shell Tips !
Percona Server with XtraDB in Launchpad
Percona Server with XtraDB in Launchpad

"Percona Server with XtraDB" is a drop-in replacement for MySQL, with full backward compatibility.

Percona Server provides diagnostic tools useful to DBAs, and more tunability of server behavior. Also included is Percona's online backup utility XtraBackup, the open source tool for the XtraDB / InnoDB.

 Percona Server with XtraDB shows outstanding performance and scalability on today's high-end server systems with many CPUs and fast storage subsystems such as flash storage and SSD. Notable advantages include:

     Scalability: Handles more concurrent transactions, and scales up on powerful servers.      Performance: Fast IO path, improved internal cooperation, and fast checksums.      Flexibility: Variable page size, better table and buffer pool management, and configurable insert buffer.      Reliability: Resilience to corrupted data, and crash-safe transactional replication.      Management: Online backup, InnoDB table import/export, fast recovery, and configurable data dictionary.      Diagnostics: Improved profiling and instrumentation.

Percona Server with XtraDB in Launchpad