Colección de recortes y cosas útiles, simpáticas, interesantes(o las 3!) de Matías Herranz.
30 de abril de 2014
Tech Meetup en Santex: slides y código de la charla
Acá comparto el material de la Tech Meetup que di en Santex la semana pasada.
Slides: Link.
Código fuente de proyecto de ejemplo: https://github.com/matiasherranz/tech_meetup_django
7 de abril de 2014
Installing MySQL-Python in Mac OS X Mavericks
If you are in Mac OS X Mavericks and while trying to install MySQL-Python you run into this error:
This is a what makes the trick:
Then, pip works its way towards installing MySQL-Python OK:
Voilà!
This is a what makes the trick:
Then, pip works its way towards installing MySQL-Python OK:
Voilà!
26 de marzo de 2014
Create a global GIT hook to check Flake8 before each commit
First, let's install Flake8:
Note It is important to set the right version when installing Flake8, as there there are some versions that are bugged and will prevent the GIT hook to work (like the 2.1.0 version).
Now, let's setup global git commit hooks:
1. Enable git templates:
This tells git to copy everything in ~/.git-templates to your per-project .git/ directory when you run git init
2. Create a directory to hold the global hooks:
3. Write your hooks in ~/.git-templates/hooks.
For example, here's a post-commit hook (located in ~/.git-templates/hooks/post-commit):4. Make sure the hook is executable.
5. Re-initialize git in each existing repo you'd like to use this in:
NOTE if you already have a hook defined in your local git repo, this will not overwrite it.
Now, let's create a global git pre-commit hook:
Finally, let's take it for a spin!
Go to some of your repos and re-initialize it to take the pre-commit hook:
Now edit some of your Python files, introducing some violation (like a >80 columns line, only one blank line between function/class definitions, etc.) and try to commit it:
Voilà!
8 de enero de 2014
Custom sorting function as parameter to sorted() in Python
So, I am working with Python and I come across a list of image names, and I'd like to have them sorted. So, I call the sorted function with this list:
HA! It doesn't work as I would have liked it to. So, what can we do to achieve the sorting of the list as we want it?
Python's standard library sorted function, as you can see here, has an optional cmp parameter, through which you can pass a custom comparison function.
Going back to my example, I needed the images to be compared by the number in their name. I made this little function to achieve this goal:
And now let's put altogether:
TA DA!
27 de noviembre de 2013
How to setup you repo GIT and local instance (like for GitLab) and not to fall in despair
How to setup you repo GIT and local instance (like for GitLab) and not to fall in despair
For a while now, while collaborating with several projects, I noticed that having issues to generated and setup the public keys and configuring the access to GIT repositories was giving a bit of a harsh time to lots of people.
And when in comes to recurring problems there’s nothing better suited than a little reference tutorial to blaze the trail. So, let’s get to it!
#1: generate your SSH key-pair and set it up
Step #1: Check if you don’t already have a key pair
Open a terminal and run the following command:
1
2 3 |
cd ~/.ssh
ls# Lists the files in your .ssh directory |
Check the directory listing to see if you have a file named either id_rsa.pub or id_dsa.pub. If you don't have either of those files go to step 2. Otherwise, you already have an existing keypair, and you can skip to step 3.
Step #2: Generate new SSH keys
To generate a new SSH key, enter the code below in the terminal. We want the default settings so when asked to enter a file in which to save the key, just press enter.
1
2 3 45 |
$ ssh-keygen -t rsa -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label # Generating public/private rsa key pair. # Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] ssh-add id_rsa |
Now you need to enter a passphrase.
1
2 |
Enter passphrase (empty for no passphrase): [Type a passphrase]# Enter same passphrase again: [Type passphrase again]
|
Which should give you something like this:
1
2 3 4 |
Your identification has been saved in /Users/you/.ssh/id_rsa.# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
# The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com |
Step #3: Add your SSH key to GitLab
- Go to your account settings:
- Now go to the SSH keys section:
- Click “Add SSH key”
- Give it a title you like (in the “Title” field) and paste your public key in the bigger “Key” field:
- Click “Add key” and we are done with loading the SSH public key in GitLab!
Step #4: Check everything worked
Now we should have the key pair generated and set up locally and the public key loaded in GitLab. Let’s now make sure this is the case and that everything went fine.
To achieve such a certainty, run the following command:
1
|
$ ssh -T git@git.santexgroup.com
|
If everything went well, you should see an output like this:
1
2 |
$ ssh -T git@git.santexgroup.com
Welcome to GitLab, |
#2: Some extra hints
Now we have the keys and our GitLab repo set up and ready to work. Now you should be able to clone, push/pull and do all sorts of thing with your GIT repos without being prompted for your username and password. If GIT, after making a command, asks you for your username or password, it means something at some point went wrong.
Go back and make sure you didn’t miss any steps or ask someone for help.
14 de noviembre de 2013
Python Violations Tool: Check
Si bien seguramente cada uno ya tiene sus herramientas para chequear violaciones en código Python, esta puede ser de utilidad, check.
Correr pep8 y pyflakes en tódos los archivos que queramos:
check.py models.py tests/
Lo que tiene de novedoso/útil, es que sirve para verificar los errores introducidos sólo por nosotros basándose en el VCS, sin tener en cuenta las violaciones ya existentes en el código.
Para GIT, se puede agregar un pre-commit hook, para que aborte un commit si introdujimos errores: use-as-a-git-pre- commit-hook
Ejemplo
$ git commit -a -m"Test"
test_module.py:2: redefinition of unused 'logging' from line 1
test_module.py:42:1: E303 too many blank lines (22)
test_module.py:487:1: W391 blank line at end of file
Aborting commit. Fix above errors or do 'git commit --no-verify'.
Instalación
$ pip install https://github.com/jbalogh/ check/zipball/master
# Después de crear el archivo pre-commit:
$ chmod 0755 .git/hooks/pre-commit
Saludos!
6 de noviembre de 2013
Suscribirse a:
Entradas (Atom)
