Skip to content

Instantly share code, notes, and snippets.

View 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
View ZigZagConversion.ex
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:
View modulo.ex
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 Sep 12, 2016
Shows why early exit on failure is a good code style strategy.
View early_exit.cc
/*
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 Jul 19, 2017
How exclamation marks are supposed to be used in Elixir
View scream.ex
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 Feb 12, 2018
Prime Checker without doing any division or modulo
View IsPrime.hs
{-#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.
View 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
@Qqwy
Qqwy / YCombinator.ex
Last active Oct 21, 2018
Explanation of using the Y-Combinator and wrapping functions in Elixir to write recursive functions and wrap them with extra functionality
View YCombinator.ex
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)
@Qqwy
Qqwy / classical_star_phase.c
Last active Nov 27, 2018
Bytebeat implementation of a classical piece of music, using a single sinusoid and comparing the naive, discontinuous signal with an improved, phase-accumulation based version.
View classical_star_phase.c
/*
* Date: 2018-11-26
* Author of this C code: Wiebe-Marten Wijnja (Qqwy).
* Author of original JavaScript-version: Unknown.
*
* This version uses phase-accumulation to ensure that the signal remains continuous throughout,
* and that there are no nasty clicks when we change to the next note.
* You can add the directive `DISCONTINUOUS VERSION` (using e.g. the `-D` flag of `gcc` and `clang`)
* to compile it as the original version, that bases its samples only directly on the current sample,
* and therefore includes clicks whenever the note changes.
View base64_image_uploader.js
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