Skip to content

Instantly share code, notes, and snippets.

View almet's full-sized avatar
🗺️

Alexis Métaireau almet

🗺️
View GitHub Profile
@almet
almet / gunicorn.conf.py
Created August 3, 2011 15:04
Or how to deploy a django application using nginx + gunicorn + supervisord
backlog = 2048
daemon = False
debug = True
workers = 3
logfile = "/usr/local/www/lolnet.org/reader/reader.gunicorn.log"
loglevel = "info"
bind = "unix:/usr/local/www/lolnet.org/reader/reader.gunicorn.sock"
@almet
almet / install.rst
Last active June 11, 2019 06:00
Glowing Bear + Weechat relay

Here's how to have a similar setup to irccloud, using any ssh-enabled host (this works with people.mozilla.com)

Running weechat on the server side

$ tmux
$ weechat
@almet
almet / ihatemoney-stats.py
Last active January 13, 2019 12:42
ihatemoney stats
# IHATEMONEY_SETTINGS_FILE_PATH=/home/ihatemoney/ihatemoney.org/ihatemoney.cfg ./ihatemoney.org/venv/bin/ihatemoney shell
>>> # To know the number of projects with more than 10 bills and less than 3 months old.
>>> from ihatemoney.models import *; import datetime
>>> projects = [pr for pr in Project.query.all() if pr.get_bills().count() > 10 and pr.get_bills()[0].date > datetime.date.today() - datetime.timedelta(days=90)]
>>> len(projects)
>>> # To get the email of the contacts
>>> ", ".join(set([pr.contact_email for pr in projects]))

Gestion de stock brasserie

A la brasserie, on gère pas mal de demande en fûts. Une commande ressemble à:

  • date
  • nombre de fûts pour chaque bière
  • mise à disposition de tireuse ? oui/non

Par exemple:

@almet
almet / instructions.md
Created October 23, 2017 16:30
Ardour setup on linux

Ardour setup on linux

  1. Install ardour
  2. adduser alexis audio
  3. log-out and log-in again (no need to reboot)
  4. Dans une console, lancer la detection du micro avec la commande alsa_in -dhw:H2n

Il est possible d'éviter cette étape manuelle en faisant comme suit:

Vous pouvez utiliser la fonctionnalité de lancement de script de QjackCtl : dans qjackctl -> réglage -> options -> activer "Exécuter un script au démarrage" et y mettre votre ligne. Il ne vous reste qu'à redémarrer qJackCtl, et le tour est joué.

# -*- coding: utf-8 -*-
import unicodecsv as csv
import sys
import json
def json_to_csv(source, destination):
loaded_json = json.load(source)['data']
writer = csv.writer(destination)
# First row contains the titles
diff --git a/formbuilder/components/AdminView.js b/formbuilder/components/AdminView.js
index 8de0b88..c81795e 100644
--- a/formbuilder/components/AdminView.js
+++ b/formbuilder/components/AdminView.js
@@ -25,19 +25,19 @@ export default class AdminView extends Component {
content = (
<div>
<h3>Results for {title}</h3>
- <DropdownButton title="Download as..." id="bg-nested-dropdown" className="pull-right">
- <MenuItem>
diff --git a/formbuilder/components/AdminView.js b/formbuilder/components/AdminView.js
index 249fc74..9a8739c 100644
--- a/formbuilder/components/AdminView.js
+++ b/formbuilder/components/AdminView.js
@@ -1,7 +1,6 @@
import React, { Component } from "react";
import CSVDownloader from "./CSVDownloader";
import XLSDownloader from "./XLSDownloader";
-import DownloadFormatDropdown from "./DownloadFormatDropdown";
import URLDisplay from "./URLDisplay";
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
AUTHORS = (
u'Brasserie du Vieux Singe',
)
SITENAME = u'Vieux Singe'
SITEURL = 'http://localhost:8000'
<!DOCTYPE HTML>
<html>
<head>
<title>La Brasserie du Vieux Singe</title>
<meta charset="utf-8" />
<meta name="slug" content="a-propos" />
<meta name="save_as" content="index.html" />
<meta name="og_url" content="http://www.vieuxsinge.com/" />
<meta name="og_type" content="website" />