Skip to content

Instantly share code, notes, and snippets.

View maxgfr's full-sized avatar
🎯
Focusing

Maxime Golfier maxgfr

🎯
Focusing
View GitHub Profile
@maxgfr
maxgfr / node_websocket_kraken.js
Created May 20, 2020 17:02
Example of node application using kraken websocket
const WebSocket = require('ws');
const ws = new WebSocket('wss://ws.kraken.com');
ws.on('open', function open() {
ws.send(JSON.stringify({
"event": "subscribe",
"pair": [
"BTC/USD",
"ETH/USD",
@maxgfr
maxgfr / ffmpeg.md
Last active February 14, 2023 12:51
Tricks using ffmpeg

FFMPEG

How to generate an empty video of 12 minutes ?

$ ffmpeg -t 720 -s 640x480 -f rawvideo -pix_fmt rgb24 -r 25 -i /dev/zero empty.mpeg

Concat videos using ffmepg

@maxgfr
maxgfr / nodemail_tester.js
Last active December 4, 2022 10:42
Testing nodemailer
const nodemailer = require('nodemailer');
sendMail('gmail', '[email protected]', 'Maxime', '[email protected]', 'Informations V2.0', 'Bonjour Maxime\nPasse une belle journée :p')
.then((res) => {
console.log('Email sent: ' + res.response)
})
.catch((err) => {
console.log(err);
});
@maxgfr
maxgfr / rename_js_to_jsx.md
Last active December 2, 2022 22:20
Rename JS file to JSX file

Rename JS file to JSX file

find . -name "*.js" -exec sh -c 'mv "$0" "${0%.js}.jsx"' {} \;

# or
find ./ -depth -name "*.js" -exec sh -c 'mv "$1" "${1%.js}.jsx"' _ {} \;
@maxgfr
maxgfr / overlay_container.js
Last active December 5, 2025 11:26
Make our own convenient OverlayContainer. The trick is to use absolute with 100% size (cf : https://github.com/onmyway133/blog/issues/254)
import React from 'react'
import { View, StyleSheet } from 'react-native'
type Props = {
behind: React.Component,
front: React.Component,
under: React.Component
}
// Show something on top of other
@maxgfr
maxgfr / axios_interceptor.js
Created August 22, 2020 18:32
Axios interceptor
import axios from 'axios'
import store from './redux/store'
const AxiosInstance = axios.create()
AxiosInstance.interceptors.response.use(
(response) => {
return response
},
async function (error) {
@maxgfr
maxgfr / transformFirestoreTypes.ts
Created August 28, 2020 19:57
Transform Firestore Types
const transformFirestoreTypes = (obj: any): any => {
Object.keys(obj).forEach(key => {
if (!obj[key]) return
if (typeof obj[key] === 'object' && 'toDate' in obj[key]) {
obj[key] = obj[key].toDate().getTime()
} else if (obj[key].constructor.name === 'GeoPoint') {
const { latitude, longitude } = obj[key]
obj[key] = { latitude, longitude }
} else if (obj[key].constructor.name === 'DocumentReference') {
const { id, path } = obj[key]
@maxgfr
maxgfr / i18n.js
Created August 29, 2020 20:18
basic configuration for react-js using i18n library
import i18n from 'i18n-js';
import detectBrowserLanguage from 'detect-browser-language';
const en = {
title: "Title"
};
const fr = {
title: "Title"
};
@maxgfr
maxgfr / useful_regex.md
Created September 28, 2020 13:13
List of useful regex
@maxgfr
maxgfr / react-dates-day-picker.tsx
Created October 5, 2020 12:34
Day Picker based on Airbnb react-dates
import React, { useState } from 'react'
import { SingleDatePicker } from 'react-dates'
import moment from 'moment'
export function AppDayPicker({ value, onChange, ...props }) {
const [date, setDate] = useState(null)
const [focusedInput, setFocusedInput] = useState(null)
const returnYears = () => {