Skip to content

Instantly share code, notes, and snippets.

:octocat:
Working from home

Felipe Lima felipecsl

:octocat:
Working from home
Block or report user

Report or block felipecsl

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@felipecsl
felipecsl / setup.sh
Last active Mar 5, 2020
Base EC2 instance setup for Amazon Linux box
View setup.sh
# Install all the packages
sudo yum install -y \
curl gpg gcc gcc-c++ make git \
openssl-devel readline-devel libcurl-devel \
zlib-devel postgresql-server.x86_64 ruby-devel \
sqlite sqlite-devel ruby-rdoc python-devel \
cairo-devel libffi-devel python-pip nc docker \
tmux htop postgresql-libs postgresql-devel \
postgresql96-server java-1.8.0-openjdk
View install-ffmpeg-amazon-linux.sh
sudo yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel -y
mkdir ~/ffmpeg_sources
# nasm
cd ~/ffmpeg_sources
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2
tar xjvf nasm-2.14.02.tar.bz2
cd nasm-2.14.02
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
@felipecsl
felipecsl / phone-number-combinations.rs
Created Apr 15, 2018
My first Rust program - Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent.
View phone-number-combinations.rs
// https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/
use std::collections::HashMap;
use std::char;
use std::iter::FromIterator;
fn main() {
let mappings = init_map();
find_combinations("23", mappings)
}
View longest-substring.rb
def length_of_longest_substring(str)
if str.empty?
return 0
end
map = {}
curr_start = 0
max_length = 0
found_start = 0
found_end = 0
i = 0
@felipecsl
felipecsl / unless.kt
Last active Dec 24, 2017
Kotlin unless like Ruby just for fun
View unless.kt
inline fun <T> unless(stmt: () -> Boolean, block: () -> T, noinline elseBlock: (() -> T)? = null) =
if (!stmt.invoke()) {
block()
} else {
elseBlock?.invoke()
}
// Use like:
unless({ foo == bar }, {
@felipecsl
felipecsl / extensions.kt
Last active Jan 30, 2018
Helpful Kotlin extension functions
View extensions.kt
import com.fasterxml.jackson.core.type.TypeReference
import com.fasterxml.jackson.databind.ObjectMapper
import org.gradle.api.Task
import org.gradle.api.Project
import org.gradle.api.UnknownTaskException
import org.gradle.api.GradleException
import org.gradle.api.plugins.ExtraPropertiesExtension
@SuppressWarnings("UNCHECKED_CAST")
fun <T> Project.ext(key: String): T {
@felipecsl
felipecsl / MutableLazy.kt
Created Oct 22, 2017
A Kotlin lazy that can be set to override the initializer value
View MutableLazy.kt
private fun <T> mutableLazy(initializer: () -> T) = Delegate(lazy(initializer))
class Delegate<T>(private val lazy: Lazy<T>) {
private var value: T? = null
operator fun getValue(thisRef: Any?, property: KProperty<*>): T {
return value ?: lazy.getValue(thisRef, property)
}
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {
View keymap.cson
# Your keymap
#
# Atom keymaps work similarly to style sheets. Just as style sheets use
# selectors to apply styles to elements, Atom keymaps use selectors to associate
# keystrokes with events in specific contexts. Unlike style sheets however,
# each selector can only be declared once.
#
# You can create a new keybinding in this file by typing "key" and then hitting
# tab.
#
@felipecsl
felipecsl / code-of-conduct.md
Last active Nov 9, 2019
Brazil Tech Expats Slack group Code of Conduct
View code-of-conduct.md

Código de Conduta

O Brazil Tech Expats se esforça para criar um espaço confortável para todos os membros da nossa comunidade em crescimento. Nós acreditamos em respeito, compaixão, compreensão e inclusão, e esperamos que todos os membros da comunidade se comportem em concordância com estes valores.

Não toleramos qualquer espécie de assédio. Qualquer pessoa que for identificada participando de comportamentos de assédio será contactada por uma pessoa da administração, que solicitará a interrupção de quaisquer atividades inapropriadas ou que a pessoa se desligue imediatamente da nossa comunidade.

Assédio inclui, mas não se limita a:

  • Comentários ofensivos sobre a identidade de uma pessoa;
  • Comentários indesejados sobre as escolhas e práticas de estilo de vida de uma pessoa;
@felipecsl
felipecsl / app.js
Created Sep 9, 2016
Sample use of react-native-maps with a tabbed layout
View app.js
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
TouchableOpacity,
Text,
ViewPagerAndroid,
View,
} from 'react-native';
import MapView from 'react-native-maps';
You can’t perform that action at this time.