Skip to content

Instantly share code, notes, and snippets.

View abelards's full-sized avatar

Sylvain Abélard abelards

View GitHub Profile

Disclaimer : motivé par Mathieu Sanchez je publie ce draft qui a plus de quatre ans. Ce sont clairement des hot takes et les plus chaudes sont à expliquer ou revoir. Je vais laisser comme tel, mais ajouter des étoiles. Encore merci Mathieu : https://www.linkedin.com/posts/matsanchez_humour-dev-orelsan-activity-6972841728902840320-fGyj/

Simple, Basique

OK, j'vais sortir un nouveau talk
Mais, avant, faut qu'on revoit les bases
J'vais faire un talk simple où j'vais dire des trucs simples

# ENGLISH ABOVE, FRENCH BELOW -- VERSION FRANCAISE CI DESSOUS
# You want to tally something in Rails and you like Ruby so you've written
Object.pluck(:field).tally
# and the results look OK so you don't look further
{'ruby' => 999, 'python' => 300, 'java' => 42, 'C' => 1}
# But you're actually asking the database to do only SELECT objects.field, fetch 1342 records, and counting in Ruby
# Databases are quite cool and fast, and you'd rather do
"SELECT objects.field, COUNT(objects.field) AS objects_count FROM objects GROUP BY objects.field"
# you: "I would like to randomly people, but I would like famous people to come up more often than non-famous ones."
# me: I expect you to have a :celebrity column with a numeric weight, and arel_extensions installed
# https://github.com/Faveod/arel-extensions/tree/master/lib/arel_extensions
# useful variables
obj = Person
at = obj.arel_table
field = :celebrity
scoring_col_name = 'randomized_score'
@abelards
abelards / visiting_paris_young_adult.md
Last active May 14, 2018 21:05
Visiting Paris as a teen or a young adult
@abelards
abelards / arel_use.rb
Last active October 11, 2021 16:13
Ruby, Rails, ActiveRecord and Arel
# Welcome to my "arel gist"!
## It started hacky, then as an example, but we want it cleaner.
# ActiveRecord
## This is an ORM: you call Ruby methods and get Ruby objects, it makes SQL and object instantiations for you.
## It's Rails' default, but there are alternatives: https://github.com/Sdogruyol/awesome-ruby#orm
Student.all
Topic.first
Workshop.sum(:hours)
@abelards
abelards / ARMMORPG.md
Created August 6, 2016 21:32
Pokemon Go, MMOs, and RPG (old World-of-Darkness style)

AR MMO RPG

Disclaimer

I never played MMOs nor WoDO. I played almost no RPGs (no FF*) and few tabletop RPGs besides Vampire & Mage. Yet, from some RPGs with friends and Pokemon Go, here are some thoughts I candidly write down or wish they existed. I own no IP on whatever trademark I quote, I give the ideas away, and know more talented people probably on it right now. I also have a tendency to dream of "power user" rules to games I love, which would probably make them boring.

Starting points

Ces informations sont issues du document "Rédaction des offres d’emploi : le cadre juridique, Guide pratique pour la rédaction des offres d’emploi", 2010, Pôle emploi

La mention discriminatoire liée au sexe

La discrimination fondée sur le sexe est prohibée de façon explicite par trois articles :

  • article 225-1 du Code pénal
  • articles L 1132-1 et L 1142-1 du Code du travail
@abelards
abelards / gist:be8e0a16c4eca89fd92c
Last active January 6, 2016 14:40 — forked from DavidBruant/gist:8519103
Guide pratique à destination des preneurs de décisions pour faire des applications partagées pérennes disponibles sur une majorité de plateformes

Problème

Créer des applications partagées pérennes qui peuvent être déployées à grande échelle.

Partagées signifie que différents utilisateurs vont pouvoir interagir et "travailler" ensemble sur l'application.

Grande échelle, en 2016, signifie que des dizaines à des millions de personnes peuvent utiliser l'application. Une majorité de plateformes doivent être accessibles (ordis de bureaux, portables, tablettes, téléphones mobiles) de préférence à moindre coût et sans avoir à tout refaire pour chaque appareil. Vivant dans un monde régi par certaines lois physiques, il sera raisonnable de supposer que le réseau de communication est au pire ouvert. La sécurité de l'application ne devra pas supposer le contrôle du réseau, même dans si l'environnement de déploiement est considéré contrôlé.

Pérennes signifie que l'arrivée de nouveaux appareils sur le marché ne remet pas en cause plus de 1% du temps de développement. Personne ne peut prévoir le futur ; il conviendra de garder un œil ouvert sur les tend

@abelards
abelards / xls2pg.el
Created October 28, 2014 16:46
XLS2PG transform
(defun xls2f (str)
"Transform a '42,42' string into a 42.42 float."
;; (atof (replace-regexp-in-string "," "." "42,42"))
(format nil "~{~a~^.~}" (sq:split-sequence #\, str))
)
@abelards
abelards / paris_restos.md
Created October 15, 2013 11:41
Paris Restaurants

Some adresses in Paris

TODO

You need to test meat, wine, baguettes, cheese, crêpes, glaces Berthillon...

Neighbourhoods to ask for drinks and meals are le Marais, Mouffetard/Monge, and the Butte aux Cailles in the south, Oberkampf where the students drink and around the Canal in the 10th more in the north, Belleville in the east,