Skip to content

Instantly share code, notes, and snippets.

View andreloureiro's full-sized avatar

André Loureiro andreloureiro

  • Sao Paulo, Brazil
View GitHub Profile
<!-- Modified from https://gist.github.com/NicholasKimuli/2b167ca1c6ce03cb860e3f89d17db1eb
Bonaire, Saba and Sint Eustatius may need a future flag update -->
<select class="input-block-level" id="countryCode" name="countryCode">
<option data-countryCode="AF" value="93">&#x1F1E6&#x1F1EB Afghanistan (+93)</option>
<option data-countryCode="AL" value="355">&#x1F1E6&#x1F1FD Albania (+355)</option>
<option data-countryCode="DZ" value="213">&#x1F1E9&#x1F1FF Algeria (+213)</option>
<option data-countryCode="AD" value="376">&#x1F1E6&#x1F1E9 Andorra (+376)</option>
<option data-countryCode="AO" value="244">&#x1F1E6&#x1F1F4 Angola (+244)</option>
<option data-countryCode="AI" value="1264">&#x1F1E6&#x1F1EE Anguilla (+1264)</option>
<option data-countryCode="AG" value="1268">&#x1F1E6&#x1F1EC Antigua &amp; Barbuda (+1268)</option>
export const h=(t,p,...c)=>({t,p,c,k:p&&p.key})
export const render=(e,d,t=d.t||(d.t={}),p,r,c,m,y)=>
// arrays
e.map?e.map((e,p)=>render(e,d,t.o&&t.o[p])):
// components
e.t.call?(e.i=render((render.c=e).t(Object.assign({children:e.c},e.p),e.s=t.s||{},t=>
render(Object.assign(e.s,t)&&e,d,e)),t.i||d,t&&t.i||{}),d.t=t=e):(
// create notes
m=t.d||(e.t?document.createElement(e.t):new Text(e.p)),
// diff props
# scaffold your project
npx preact-cli@rc create default my-app && cd my-app
# upgrade to Preact X
npm i -D preact-cli@rc && npm i preact@latest preact-router@latest preact-render-to-string@latest
npm rm preact-compat
@thevangelist
thevangelist / my-component.spec.js
Created August 4, 2016 13:06
The only React.js component test you'll ever need (Enzyme + Chai)
import React from 'react';
import { shallow } from 'enzyme';
import MyComponent from '../src/my-component';
const wrapper = shallow(<MyComponent/>);
describe('(Component) MyComponent', () => {
it('renders without exploding', () => {
expect(wrapper).to.have.length(1);
});
@veer66
veer66 / core.cljs
Created May 30, 2016 16:09
This is my first client-side code in ClojureScript apart from Hello World.
(ns toto.core)
(let [button (.getElementById js/document "button")
input (.getElementById js/document "input")]
(.addEventListener button "click"
(fn [event]
(.log js/console (nth input/files 0)))))
@btroncone
btroncone / rxjs_operators_by_example.md
Last active June 15, 2024 07:17
RxJS 5 Operators By Example
@city41
city41 / gist:aab464ae6c112acecfe1
Last active January 19, 2021 12:51
ClojureScript secretary client side navigation without hashes

This is the example that comes with the reagent template converted to use HTML5 based history. This means there are no # in the urls.

I just got this working, so there might be better approaches

The changes are

  • use goog.history.Html5history instead of goog.History
  • listen to clicks on the page, extract the path from them, and push them onto the history
  • listen to history changes, and have secretary do its thing in response
@prakhar1989
prakhar1989 / richhickey.md
Last active November 8, 2023 17:19 — forked from stijlist/gist:bb932fb93e22fe6260b2
richhickey.md

Rich Hickey on becoming a better developer

Rich Hickey • 3 years ago

Sorry, I have to disagree with the entire premise here.

A wide variety of experiences might lead to well-roundedness, but not to greatness, nor even goodness. By constantly switching from one thing to another you are always reaching above your comfort zone, yes, but doing so by resetting your skill and knowledge level to zero.

Mastery comes from a combination of at least several of the following:

@dhh
dhh / test_induced_design_damage.rb
Last active June 22, 2023 06:18
This is an extraction from Jim Weirich's "Decoupling from Rails" talk, which explained how to apply the hexagonal design pattern to make every layer of your application easily unit testable (without touching the database etc). It only seeks to extract a single method, the EmployeesController#create method, to illustrate the design damage that's …
# Original Rails controller and action
class EmployeesController < ApplicationController
def create
@employee = Employee.new(employee_params)
if @employee.save
redirect_to @employee, notice: "Employee #{@employee.name} created"
else
render :new
end
@emad-elsaid
emad-elsaid / mobile-uploader.rb
Created March 24, 2014 13:32
Uplaod files and images from you android to your desktop/laptop
#!/usr/bin/env ruby
# Author : Emad Elsaid (https://github.com/blazeeboy)
require 'sinatra'
set :port, 3000
set :environment, :production
get '/' do
<<-EOT
<html><head>