Skip to content

Instantly share code, notes, and snippets.

View gnclmorais's full-sized avatar
Growing a beard

Gonçalo Morais gnclmorais

Growing a beard
View GitHub Profile
gnclmorais / controllers.application\.js
Created November 25, 2022 14:19
Indeterminate demo
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
export default class ApplicationController extends Controller {
@tracked isChecked = false;
@tracked isIndeterminate = false;
cycle = () => {
if (this.isChecked) {
this.isChecked = false;
gnclmorais /\.js
Last active April 8, 2022 14:42
Checkbox with multiple args
import Component from '@glimmer/component';
import { action } from '@ember/object';
export default class extends Component {
selectProduct({ id, checked }) {
console.log({ id, checked });
gnclmorais /
Created May 13, 2021 14:42

Keybase proof

I hereby claim:

  • I am gnclmorais on github.
  • I am gnclmorais ( on keybase.
  • I have a public key ASCSdjucny8qcjDql7Lcw91lxP6wl4E07jCdw1jIEG7hYgo

To claim this, I am signing this object:

gnclmorais / flatter.js
Last active August 29, 2017 15:25
Iterate over a matrix in JavaScript, cell by cell
function* flatten(matrix) {
for (var i = 0; i < matrix.length; i += 1) {
let column = matrix[i];
if (!Array.isArray(column)) yield column;
for (var j = 0; j < column.length; j += 1) {
yield column[j];
gnclmorais / 80_char_limit.commented.css
Last active July 5, 2017 17:07
CSS-only ruler for GitHub diff
.code-review::after {
/** Make the pseudo-element visible: */
content: '';
/** Replicate the font style the <td> element is using: */
font-size: 12px;
font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
/** Replicate the left padding the <td> element has: */
margin-left: 10px;
/** Setup actual positioning of the element: */
position: absolute;
gnclmorais /
Created December 20, 2015 22:02 — forked from max-mapper/
Video stabilization using VidStab and FFMPEG (Mac OS X)

Video stabilization using VidStab and FFMPEG

Examples here use the default settings, see the VidStab readme on GitHub for more advanced instructions.

Install ffmpeg with the vidstab plugin from homebrew

brew install ffmpeg --with-libvidstab

Install OS X 10.10 Yosemite in VirtualBox

(based on this pastebin i've found via Google, markdownified and adjusted to work with the official Yosemite release)

Yosemite's first developer preview was released right after Monday's WWDC opening keynote. For the general public, an open beta will be available to download later this summer. However, for those who want a sneak peek at the new hotness, there is a way to safely install it without risking your machine, using the free and powerful VirtualBox application from Oracle.

(LEGAL DISCLAIMER: This guide aims to explain how to create a virtual machine on a regularly purchased Apple computer, running a genuine Mac OS X operating system, for testing purposes only.)

gnclmorais /
Last active February 17, 2022 08:34
How to write the letter ç (c-cedilla) in virtually everywhere.

Writing cursive forms of Ç, from Wikipedia

Character macOS (UK) Unicode Alt Code HTML (Name) HTML (Number)
Upper case Ç + + c U+00C7 Alt 0199 &Ccedil; &#199;
Lower case ç + c U+00E7 Alt 0231 &ccedil; &#231;

On Linux, you can use Ctrl + Shift + u followed by the code in hex/unicode (you only need to hold down Ctrl and Shift while typing the code).

gnclmorais / bind.js
Last active August 29, 2015 14:11 — forked from Couto/bind.js
* bind
* Takes a function and returns a new one that will always have a particular context.
* If arguments are given, curry will happen:
* @param {Function} fn Function whose context will be changed
* @param {Object} [ctx=this] the obejct to which the context will be set
* @param {Mixed} [args...] Arguments to be passed to the resulting function
* @returns {Function}