Skip to content

Instantly share code, notes, and snippets.

View fedecarg's full-sized avatar
🥄
There is no spoon

Federico Cargnelutti fedecarg

🥄
There is no spoon
View GitHub Profile
@fedecarg
fedecarg / mysql-split-string.md
Last active October 22, 2018 12:33
MySQL Split String Function

MySQL Split String Function

The following example function takes 3 parameters, performs an operation using an SQL function, and returns the result.

Function

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),

pos INT

@fedecarg
fedecarg / python-interceptor.md
Last active June 12, 2022 03:23
Intercepting class method invocations using metaclass programming in Python

Intercept class method calls

Here’s an example of how to use metaclass programming to intercept class method calls similar to the method_missing technique in Ruby:

class ClassMethodInterceptor(type):

    def __getattr__(cls, name):
        return lambda *args, **kwargs: \
                   cls.static_method_missing(name, *args, **kwargs)
@fedecarg
fedecarg / svnlog-ldap-extractname.sh
Created March 7, 2013 11:52
Replace LDAP entries with full names in SVN log
#!/bin/bash
# Author federico.cargnelutti@bbc.co.uk
svn_url="$(svn info . | grep 'URL:' | cut -c6-)"
echo "Repository ${svn_url}"
svn log -v --xml . > templog.log
touch svnlog.log
@fedecarg
fedecarg / merge-files.sh
Created March 7, 2013 12:16
Merge files, joining each line in one line
pr -m -t file1 file2 ...

Custom CodeSniffer ruleset file

CodeSniffer allows you to create your own ruleset.xml file. Once created, a ruleset file can be used with the --standard command line argument. In the following example, CodeSniffer will use the coding standard defined in the directory MyStandard.

1. Create a temp directory and ruleset.xml file:

mkdir /tmp/MyStandard
touch /tmp/MyStandard/ruleset.xml

2. Add rules:

SVN Notes

Prop

Ignore files and directories:

svn changelist ignore-on-commit <file>
svn propset svn:ignore <dir> .
svn propedit svn:ignore .
@fedecarg
fedecarg / rgb2hex.js
Created March 7, 2013 13:08
RGB to hexadecimal converter in 3 lines of code
function rgbToHex(r, g, b) {
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
}
@fedecarg
fedecarg / nearest-colour-name.py
Last active December 14, 2015 15:29
Python script to find the nearest matching colour name given input R,G, B values (from 0-255).
def rgb_from_str(s):
# s starts with a #.
r, g, b = int(s[1:3],16), int(s[3:5], 16),int(s[5:7], 16)
return r, g, b
def find_nearest_colour(R,G, B, colorD):
mindiff = None
for d in colorD:
r, g, b = rgb_from_str(colorD[d])
@fedecarg
fedecarg / search-and-replace.md
Last active December 14, 2015 15:29
Search and replace in files

Search

grep -Irl --include=\*.txt "keyword" .

or

find . -type f -print0 | xargs -0 grep "keyword"

Search and Replace

@fedecarg
fedecarg / remove-svn-dirs.sh
Created March 8, 2013 12:19
Recursively remove SVN directories
rm -rf `find . -type d -name .svn`