Skip to content

Instantly share code, notes, and snippets.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2011 YOUR_NAME_HERE <YOUR_URL_HERE>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
@Qqwy
Qqwy / LICENSE.txt
Last active March 8, 2018 11:40 — forked from 140bytes/LICENSE.txt
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2011 YOUR_NAME_HERE <YOUR_URL_HERE>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
function base64ImageUploader(dialog) {
var reader, image_url, img;
var canvas = document.createElement("canvas");
var canvas_context = canvas.getContext('2d');
function rotateImage(direction){
//These are swapped when rotating
defmodule ZigZagConversion do
@moduledoc """
Qqwy's solution to https://leetcode.com/problems/zigzag-conversion/
"""
@doc """
Converts a string into a zig-zagged string:
- the characters of string is distributed over `num_rows`, as follows:
@Qqwy
Qqwy / elixir_operator_info.exs
Created July 7, 2016 20:01
Elixir Operator Info
# See https://github.com/elixir-lang/elixir/blob/master/lib/elixir/src/elixir_parser.yrl#L52
# for the list of operators with associativity, etc.
# The operators in this list are grouped by precedence, low to high.
# The comments indicate the operator's normal function, as well as its ability to be defined/overridden.
-> # CompileError 'unhandled operator'. only allowed in anonymous function syntax.
& # CompileError, only allowed in short anonymous function syntax.
defmodule Modulo do
defmacro guard_safe_int_max(a, b) do
quote do
div(unquote(a)+unquote(b) + abs(unquote(a) - unquote(b)), 2)
end
end
defmacro int_sign(x) do
quote do
@Qqwy
Qqwy / early_exit.cc
Created September 12, 2016 14:45
Shows why early exit on failure is a good code style strategy.
/*
In this snippet, the failure cases are not close to the conditions they belong to.
This makes it hard to track when which error case is triggered (especially when they are more than a screen height apart).
It also adds a lot of `{}` and indentation.
*/
int someFunction(int foo, int bar, int baz)
{
if (foo == 1)
{
@Qqwy
Qqwy / scream.ex
Last active July 19, 2017 03:15
How exclamation marks are supposed to be used in Elixir
defmodule Scream do
defmacro scream!(ast) do
{exclams, res} = count_exclams(ast, 0)
case exclams do
_ when exclams < 5 ->
quote do "You say: #{inspect(unquote(res))}." end
_ when exclams < 10 ->
quote do "You yell: #{inspect(unquote(res))}!" end
_ when exclams < 15 ->
quote do "You scream: #{inspect(unquote(res))}!!" end
@Qqwy
Qqwy / IsPrime.hs
Last active February 12, 2018 18:09
Prime Checker without doing any division or modulo
{-#OPTIONS_GHC -O2 -optc-O3 #-}
{-
Author: Wiebe-Marten Wijnja
Date: 2018-02-12
This simple program is a Prime Checker.
It is special, in that does not perform any
division or modulo operations to check if a number is a prime,
which most prime checkers or prime sieves do.
@Qqwy
Qqwy / YCombinator.ex
Last active January 7, 2022 20:43
Explanation of using the Y-Combinator and wrapping functions in Elixir to write recursive functions and wrap them with extra functionality
defmodule YCombinator do
@moduledoc """
Some functions explaining the Y-Combinator.
Can definitely be improved upon, but this is as much as time allowed me this evening.
"""
def factorial(n) do
y_combinator(&almost_factorial/1).(n)