Skip to content

Instantly share code, notes, and snippets.

View zernie's full-sized avatar
🏠
Working from home

zernie zernie

🏠
Working from home
View GitHub Profile
@jhilden
jhilden / README.md
Last active October 3, 2021 10:32
Setup for using i18n-js together with react-rails i18n-js for server side prerendering

When using react-rails for an internationalized app it makes a lot of sense to use i18n-js for translations, so that you can reuse the the strings from your rails app's .yml files (and all the tooling & services that exist around that).

When you use the prerender feature of react-rails you face 2 problems:

  • The first is that translation.js & i18n.js from i18n-js need to be loaded inside the server-side JS prerendering processes, which is achieved by loading them inside the components.js.
  • The second problem is the server processes need to be aware of the current locale of each HTTP request. This is done by adding a custom renderer and using the before_render hook to configure i18n-js accordingly for each render call.
const stateIdLens = propLens('id')
const stateTokenLens = propLens('token')
let setCurrentUserId = (state, action) => set(idLens, action.payload.result, state)
let setCurrentUserToken = (state, action) => set(tokenLens, action.payload.token, state)
compose(setCurrentUserId, setCurrentUserToken)
@blaze182
blaze182 / deploy.rb
Created February 20, 2016 13:57
Capistrano 3 PostgreSQL backup task for Rails
# ...
# config/deploy.rb, config/deploy/production.rb etc.
# contents omitted
###
# example: add backup task prior to deploy
namespace :deploy do
before :deploy, "db:dump"
end
sudo apt-get update
sudo apt-get install build-essential chrpath libssl-dev libxft-dev -y
sudo apt-get install libfreetype6 libfreetype6-dev -y
sudo apt-get install libfontconfig1 libfontconfig1-dev -y
cd ~
export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/$PHANTOM_JS.tar.bz2
sudo tar xvjf $PHANTOM_JS.tar.bz2
sudo mv $PHANTOM_JS /usr/local/share
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
@danwhitston
danwhitston / browser_testing_on_wsl.md
Last active November 19, 2024 20:19
Browser testing for Ruby from within Windows Subsystem for Linux

This is a rough guide to setting up browser testing through Selenium on Windows Subsystem for Linux (WSL), aka Bash on Ubuntu on Windows. It assumes the following environment:

  • Windows 10, running WSL
  • A Ruby dev environment, running inside WSL
  • Code that we want to test using a web driver, in this case Selenium, with a Capybara and RSpec test framework

The coding project folders are stored in the main Windows filing hierarchy and accessed via dev/mnt, but that makes no real difference to development and testing other than making it possible to edit the code using a GUI based editor within Windows.

The problem with browser testing in WSL is that it relies on opening and controlling a web browser, and browsers don’t work on WSL at present as it deliberately doesn’t include X Windows or some other GUI manager - it’s meant to be command line after all. So while you can apt-get firefox, trying to actually run it isn’t going to work.

@genekogan
genekogan / scrapeImages.py
Created February 22, 2017 11:49
scraping full size images from Google Images
from bs4 import BeautifulSoup
import requests
import re
import urllib2
import os
import argparse
import sys
import json
# adapted from http://stackoverflow.com/questions/20716842/python-download-images-from-google-image-search
@zmts
zmts / tokens.md
Last active July 16, 2025 22:24
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Last major update: 25.08.2020

  • Что такое авторизация/аутентификация
  • Где хранить токены
  • Как ставить куки ?
  • Процесс логина
  • Процесс рефреш токенов
  • Кража токенов/Механизм контроля токенов
@jakoblind
jakoblind / managing-state.js
Last active March 28, 2017 09:23
Demonstration of two ways to manage React state. With recompose and with ES6 classes
// First we have our component which takes data and callback functions as props
const ProductDetails = ({ selectedColor, selectedSize, setSelectedColor, setSelectedSize }) => {
return (
<div>
<p>Selected color is: {selectedColor}</p>
<p>Selected size is: {selectedSize}</p>
<button onClick={() => setSelectedSize(64)}> set selected size 64</button>
<button onClick={() => setSelectedColor("green")}> set selected color to green </button>
</div>
);
@jaxn
jaxn / application_system_test_case.rb
Last active September 19, 2017 17:14
Migrate to chromedriver from capybara-webkit for Rails with WSL support
require 'test_helper'
# Capybara driver chosen based on the value of ENV['TEST_WITH_CHROME']
# - `false` - use capybara-webkit
# - `headless` - chromedriver in headless mode
# - `true` (or any other value) - chromedriver in a Window
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
if ENV['TEST_WITH_CHROME'] && ENV['TEST_WITH_CHROME'] != 'false'
require "selenium/webdriver"
@ipepe
ipepe / install-chrome-headless.sh
Last active February 10, 2025 16:14
Installing headless chrome on Ubuntu.
#!/bin/bash
# from https://chromium.woolyss.com/
# and https://gist.github.com/addyosmani/5336747
# and https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:canonical-chromium-builds/stage
sudo apt-get update
sudo apt-get install chromium-browser
chromium-browser --headless --no-sandbox http://example.org/