Skip to content

Instantly share code, notes, and snippets.

Avatar

Federico Ramirez gosukiwi

View GitHub Profile
@gosukiwi
gosukiwi / common-lisp-cheatsheet.md
Last active Jul 21, 2021
Common Lisp Cheatsheet
View common-lisp-cheatsheet.md

Common Lisp Cheatsheet

Common Lisp is a general-purpose programming language with functions as first-class citizens. Don't worry about being purely functional, Lisp is Object Oriented too. CLOS is a very powerful object-oriented system!

Useful definitions

The Common Lisp lingo is quite unique:

  • Package: Basically a namespace, a place for symbols to live
  • System: Basically a Library. A bunch of code plus some instructions how it should be treated, for example which other systems it depends on, what should be loaded and/or compiled first, etc. Not in ANSI lisp but widespread. The most common system definition tool is ASDF.
  • Modules: Deprecated and implementation-dependent
  • Quicklisp: Like NPM or Ruby Gems for ASDF Systems.
View ruby.vim
" Use |:RubocopAutocorrect[!]| to autocorrect the current file using Rubocop.
" Note that this will save the file before running the autocorrects. If ! is
" given, it will use unsafe autocorrects.
augroup ruby
autocmd!
autocmd FileType ruby command! -bang RubocopAutocorrect silent! call RubyRubocopAutocorrect(expand('<bang>') == '!')<CR>
augroup END
function! RubyRubocopAutocorrect(unsafe) abort
let flag = a:unsafe ? '-A' : '-a'
@gosukiwi
gosukiwi / paginator.inc.php
Last active Nov 4, 2020
PHP Pagination generator
View paginator.inc.php
<?php
/**
* Pagination generator
*/
class Pagination
{
private $items_per_page = 0;
private $items_total = 0;
private $mid_range = 7;
private $page_name = 'page';
View blink.agc
@gosukiwi
gosukiwi / powershell-bash.md
Last active Jul 4, 2020
Powershell <=> Bash
View powershell-bash.md

Commands

Popular bash commands in PowerShell:

grep: Select-String
  Select-String -r "console" .\foo\**\*.js
  
cat: Get-Content
  Get-Content foo.md
  
View demo
// VARIABLES
// no need to specify type
a = 1.2 // float
name = "Federico" // string
// you can still do it if you want
x as float
x = 1.2
function Double(x as integer)
View .vimrc
" ---------------------- USABILITY CONFIGURATION ----------------------
" Basic and pretty much needed settings to provide a solid base for
" source code editting
" don't make vim compatible with vi
set nocompatible
" turn on syntax highlighting
syntax on
" and show line numbers
View global_events.coffee
App.Lib.GlobalEvents =
###
This will trigger the callback whenever the user clicks on something outside
the given element. If the user clicks on something insied `el`, it will not
trigger the callback.
You can give it many elements using jQuery's `#add`:
$els = $('.my-element').add($('.some-other-element'))
App.Lib.GlobalEvents.onClickedOutside $els, =>
# do something
###
View JS Caching.md

Caching

This can cache AJAX requests across page-loads with custom max-ages:

FIVE_MINUTES = 5 * 60 * 1000
App.Lib.Cache.promise().maxAge(FIVE_MINUTES).cache('/foo', -> $.get('/foo')).then (results) ->
  console.log results
@gosukiwi
gosukiwi / demo.rb
Created May 29, 2019
Custom predicates for Ransack, allows you to search inside a YAML-serialized Array column
View demo.rb
# some model
serialize :my_field, Array
ransacker :my_field_raw, type: :string do
Arel.sql('my_table.my_field')
end
# some view (using simple form)
= search_form_for @q, builder: SimpleForm::FormBuilder do |f|