Skip to content

Instantly share code, notes, and snippets.

View adrienjoly's full-sized avatar
☺️
In the flow

Adrien Joly adrienjoly

☺️
In the flow
View GitHub Profile
@adrienjoly
adrienjoly / run.sh
Created June 24, 2014 16:31
Simple HTTP server
# set mac osx's terminal title
echo -n -e "\033]0;http server\007"
# make sure to switch to the script's dir (e.g. when launched via mac osx's finder)
cd `dirname "$0"`
python -m SimpleHTTPServer
@adrienjoly
adrienjoly / export-unchecked-items-from-wunderlist-json-backup.sh
Last active April 1, 2016 01:31
based on jq command-line json processor
FILENAME=wunderlist-20140714-20-07-39.json
LIST_ID=AB1XAAVtNbA
cat $FILENAME | jq -r ".tasks[] | select(.list_id == \"$LIST_ID\") | select(has(\"completed_at\") == false) | .title"
@adrienjoly
adrienjoly / mostPostedTracks.js
Last active November 13, 2018 10:27
mongodb "group by" query using aggregation for counting documents per category, on a objectid-timestamp-based subset
db = db.getSiblingDB("whyd_music") // explicitely select collection
var jan2014 = ObjectId("52c35a800000000000000000"); // created using http://steveridout.github.io/mongo-object-time/
db.post.aggregate([
{"$sort": {"_id": -1}}, // order: antichronological
{"$match": {"_id": {"$gt": jan2014}}}, // only documents that were created after the 1syt january 2014
{"$group": {"_id": "$eId", // group by value of the eId attribute -> _id attribute in the resulting output collection
"name": {"$first": "$name"}, // -> include the name of each grouped category
"count": {"$sum": 1}}}, // -> count attribute will contain the number of documents for each value of _eid
{"$match": {"count": {"$gt": 50}}}, // limit output to results with count > 50
{"$sort": {"count": -1}} // output order: highest count first
@adrienjoly
adrienjoly / software-release-pledge.md
Last active August 29, 2015 14:19
Software Release Pledge

Software Release Pledge

Short description: This Pledge is a commitment by software makers to empower their users with the capabilities of keeping using the software, even if it was to be discontinued.

If our founding team ever comes to discontinue development and/or maintenance of our product (or service), we pledge:

  • to inform our users at least 2 weeks before the product (or service) can no longer be used;
  • and to propose a solution for them to keep using the product (or service).

These solutions include (but are not limited to): opening the source code of the product (or service), selling the Internet domain name and working server infrastructure without profit, or at least providing a way to migrate all user data and functionalities to another product (or service) for users who want it.

@adrienjoly
adrienjoly / .gitconfig
Last active August 29, 2015 14:19 — forked from yereby/.gitconfig
[user]
name = "Jérémy Giuseppi"
email = yereby@gmail.com
[credential]
helper = cache
[color]
branch = auto
diff = auto
interactive = auto
status = auto
@adrienjoly
adrienjoly / popinOnHover.js
Last active August 29, 2015 14:19
jquery-based function for displaying a popin/menu on hover
// generic function for displaying a menu element when hovering on an other element
function popinOnHover(hoverElement, menuElementOrFunction){
var $menuElement = typeof menuElementOrFunction !== 'function' ? $(menuElementOrFunction) : null;
var hoveredZones = 0;
function hideIfNotHovered(){
if (!hoveredZones){
if (typeof menuElementOrFunction === 'function') {
$menuElement = menuElementOrFunction(false);
}
else
@adrienjoly
adrienjoly / devenir-cto.md
Last active February 28, 2021 07:49
Devenir CTO d'une startup: éviter les problèmes de débutants

Devenir CTO d'une startup: éviter les problèmes de débutants

Présenté le 21/04/2015 par Adrien Joly à Epitech Innovation Hub

Résumé

Après 4 ans comme lead developer dans une startup web parisienne, Adrien Joly vient partager un retour d'expérience de cette aventure, et des conseils pratiques sur: comment reconnaitre un bon associé d'un incompétent, comment éviter de développer un service voué à l'échec, comment obtenir la confiance de son associé pour les choix technologiques et les délais de développement. Il cherche des étudiants bons en développement web et/ou mobile, pour les présenter à des CEOs sérieux, et les accompagner dans les 1ères étapes du développement d'une startup.

Introduction

@adrienjoly
adrienjoly / reply-to-facebook-playem-app-review.md
Last active August 29, 2015 14:20
My reply to Facebook's rejection of my submission of app review for Play'em

Your decision to grant read_stream and user_group only to Facebook-branded clients on platforms where Facebook is not already available seems legit, even though I don't know any client or platform that is not supported by Facebook yet.

Nevertheless, it makes me sad to see that this decision will kill my app Play'em. Indeed, the point of Play'em is only to play videos shared by our Facebook friends, so it's a novel way to consume Facebook news. In my opinion, my app is not a threat for Facebook, nor its users. It's the contrary. It's a missing feature that I'm providing for free, without storing any information from Facebook!

That's why it makes me sad that you're killing it.

@adrienjoly
adrienjoly / guide-de-collaboration.md
Last active June 13, 2022 10:57
Règles permettant de bosser efficacement en équipe

Règles permettant de bosser efficacement en équipe

Outils, et leur usage

  • Trello:
    • pour lister, planifier, s'attribuer, puis archiver les taches (appelées cartes),
    • savoir à tout moment qui bosse sur quoi, et quelle tache en est où,
    • les décisions relatives à chaque tache doivent être intégrées sous forme de commentaires dans la carte correspondante. (afin de garder un historique par tache, facile à retrouver plus tard)
  • Git:
  • pour stocker le code source produit,
@adrienjoly
adrienjoly / sample-devops-file.md
Last active August 29, 2015 14:20
(Sample) Project devops file: Server Maintenance & Troubleshooting

(Sample) Project devops file: Server Maintenance & Troubleshooting

Project topology

  • lucyJS: node.js server that handles HTTP requests for the web and iPhone clients
  • kinderDB: mongoDB database that stores user-generated content + metrics
  • nginx: reverse-proxy that maps our subdomains and ports to the right services, caches static files, and transforms HTTPS requests into HTTP

Domain/port mappings