7 slow and painful deaths by regexp

Catch more than half of these issues by testing, auditing and code reviews

My article about regexp on PullReview‘s blog is there to encourage

– to learn them before actually using them.
— to learn them before actually learning them the “hard” way in production
— to take a look at alternative to implement the feature without regular expressions (or the one used by your stdlib, language)
— if you use regex, understand the risks
— if you use regex, please write tests for you and your coworkers
— if you use regex, please audit your code (automatically and by human code review)

, , ,

Leave a comment

Gatling : load testing like a king

Gatling for rails app @ http://www.brug.be

, ,

Leave a comment

Ansible – tighten your quality feedback loop

Testing your ansible playbook…

, , , , ,

Leave a comment

Security for dummies

A presentation on web application security given for lunch.
Too long didn’t read ? Just pick the slide 38.

, ,

Leave a comment

Through the eyes of sonar: recap.

Sonar is an opensource platform to manage code quality. Sonar is combining various java quality tools and collect these possible defects as violations.


Recap of all sonar rules articles

Naming and comments
Collections
Immutable Objects
Complexity
Exception handling
Equals and hashCode
Architural constraints
Rules customization, alert,…

I hope this will make your java code better

Leave a comment

Fresh machine installation notes for ruby developer

Ubuntu

  • System Settings –> Privacy : disable “include online search results”
  • Run command as a login shell
  • Terminal : unlimited scroll buffer

Git !

Install and configure git

sudo apt-get install git
git config --global user.name "My Name"
git config --global user.email "myemail@company.com"
git config --global --add color.ui true
git config --global push.default simple

I’m a big fan of this customized git prompt, only drawback a carriage return by default at the prompt-end. Just need to modify it in the .bash_profile

export GIT_PROMPT_END=' > '
source ~/.bash-git-prompt/gitprompt.sh

If needed regenerate a new github ssh key (discard your old keys on github and other server authorized_keys)

SublimeText

Raw sublime text installation via apt-get.
Install the package manager with this

Then install these packages :
– git gutter :

– rubyTest

sublimelinter : highlights lines of code the linter deems to contain (potential) errors.
BeautifyRuby : reformat your ruby code on demand (sometimes messy, but best I found)
Coffeescript : syntax highlighting
puppet : highlight, lint, snippet,…
and a few others ;)

Fix tabs and trailing issue before they appear

{
  "font_size": 11.0,
  "tab_size": 2,
  "translate_tabs_to_spaces": true,
  "trim_trailing_white_space_on_save": true,
  "ensure_newline_at_eof_on_save": true,
  "rulers":
	[
		95
	],
  "hot_exit": false,
  "remember_open_files": false
}

Have you ever wondered to turn a branch name “feature/my-awesome-feature-123″ into a pre-filled commit message “My awesome feature #123″
Then gitils is for you. Last but not least, easy web page/sublime text integration with subl-handler. Thanks @toch !

Firefox

Ruby

rvm

sudo apt-get install curl
curl -L https://get.rvm.io | bash
source ~/.profile
rvm install ruby

I’m not a big fan, so I disable .rvmrc

I’m not often looking at ri or rdoc (most of the time I’m looking at the code directly) so I tweak ~/.gemrc to avoid downloading these artefacts.

gem: --no-ri --no-rdoc

native gem dependencies

Icu for charlockholmes, Postgresql for pg gem, and a running redis.

sudo apt-get install libicu-dev
sudo aptitude install libpq-dev
sudo apt-get install redis-server
cp /opt/redis/redis.conf.default /opt/redis/redis.conf

Devops

virtualbox

sudo apt-get install build-essential linux-headers-generic dkms
sudo apt-get install virtualbox

Vagrant

http://downloads.vagrantup.com/

wget http://files.vagrantup.com/packages/db8e7a9c79b23264da129f55cf8569167fc22415/vagrant_1.3.3_x86_64.deb
sudo dpkg -i vagrant_1.3.3_x86_64.deb
rm vagrant_1.3.3_x86_64.deb

veewee

rvm use 2.0.0@veewee --create
sudo apt-get install libxslt1-dev libxml2-dev zlib1g-dev
git clone https://github.com/jedi4ever/veewee.git
cd veewee
bundle install

packer ?

Skype

sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"
sudo apt-get update
sudo apt-get install skype

Now what ?

Find a boxen equivalent for ubuntu and automate this… time to give a try to kitchenplan or take a look at thoughtbot script (not exactly in my stack, less sexy)

Leave a comment

Puppet : spare 3 minutes per provisionning for your ruby installation.

From

Info: /Stage[main]/Ruby/Rvm_system_ruby[ruby-1.9.3-p362]: Evaluated in 261.84 seconds

To

Info: /Stage[main]/Ruby/Exec[rvm_system_ruby_mount-1.9.3-p374]: Evaluated in 69.66 seconds

Thanks to @mark_olson and this puppet snippet :

exec { "rvm_system_ruby_mount-${ruby_full_version}":
     command =>  "/usr/local/rvm/bin/rvm mount -r http://mycorp.com/binaries/debian/${operatingsystemrelease}/x86_64/ruby-${ruby_full_version}.tar.bz2 --verify-downloads 1",
     creates => "/usr/local/rvm/wrappers/ruby-${ruby_full_version}",
     require => [
                  Class['rvm::system'],
                  Class['ruby::packages']
                ]
  }

Leave a comment

Follow

Get every new post delivered to your Inbox.

Join 25 other followers