Skip to content

Instantly share code, notes, and snippets.

@Qqwy
Qqwy / DAG-based-AItomator.md
Last active May 25, 2023 09:09
GPT-3.5 input to help with José Valim's "Skynet" / "AItomator" streams.
View DAG-based-AItomator.md

Good day! I will ask you to perform a task. Your job is to come up with a directed acyclic graph (DAG) of simple subtasks to accomplish the task. The output of the last step of the DAG should be the answer of the task.

To help you, here is a list of tools you can use.

  • date_from_today: Given a number of days (positive or negative) as input, it returns the date of today offset by that amount of days as output.
  • date_diff: Given a yyyy-mm-dd date, a second yyyy-mm-dd date, and days/weeks/months/years (as string) as inputs, it returns an integer representing the difference as output.
  • location_to_gps: Given a city name as input, returns GPS coordinates as output.
  • temperature_api: Given a yyyy-mm-dd date and GPS coordinates as inputs, it returns the forecasted or measured temperature in Celsius as output.
  • fashion_suggestion: Given a temperature in Celius as input, it recommends fashionable clothes to wear based on the temperature as output.
@Qqwy
Qqwy / index.html
Created May 18, 2023 11:05
Comparison of 32-bit multiplication in JS (http://jsbench.github.io/#23281fd842768138711bcd57e7b2a80a) #jsbench #jsperf
View index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Comparison of 32-bit multiplication in JS</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script>
<script src="./suite.js"></script>
</head>
<body>
<h1>Open the console to view the results</h1>
@Qqwy
Qqwy / refined_assertions.rb
Created May 1, 2022 18:54
Refined Minitest Assertions
View refined_assertions.rb
class RefinedAssertions
@mutex = Mutex.new
def self.set_last_operator(operator, lhs, rhs, res)
@mutex.synchronize do
@set = true
@result = [operator, lhs, rhs, res]
end
@Qqwy
Qqwy / doctest-minitest.rb
Created March 9, 2022 23:38
Example of how to integrate doctests with Ruby Minitest
View doctest-minitest.rb
# Example of how to integrate doctests with Ruby Minitest
#
# Besides depending on `minitest`,
# this functionality depends on the `doctest-core` gem, c.f. https://www.rubydoc.info/gems/doctest-core/
class YourAppName::TestCase < MiniTest::Test
# To be used inside the body of a tests-class
# It will automatically create test cases for all
# 'documentation test' snippets that exist in the comments
View tuple_map_benchmark.exs
defmodule Benchmarks do
@warmup 0.05
@time 0.05
@memory_time 0.5
@parallel 1
@inputs (
(0..20)
|> Enum.map(fn size -> {to_string(size), (1..size) |> Enum.shuffle |> List.to_tuple} end)
)
View gcd_maxmin.cob
*> Compile using GNU Cobol, e.g.: `cobc -x gcd_maxmin.cob`
IDENTIFICATION DIVISION.
PROGRAM-ID. gcd-maxmin.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUMS.
05 NUMS-ELEMS PIC 9(9)
OCCURS 0 TO 9999 TIMES DEPENDING ON NUMS-LEN.
77 NUMS-IDX PIC 9(9) COMP.
@Qqwy
Qqwy / caesar_cipher.pl
Created November 9, 2020 21:53
A simple substitution (Caesar/Vernam) cypher, implemented in Prolog. Beginner code; can probably be significantly improved
View caesar_cipher.pl
-module(caesar_cipher, [
shift_plaintext_cyphertext/3,
shift_plainchar_cypherchar/3,
shift_plainletter_cypherletter/3
]).
:- use_module(library(reif)).
:- use_module(library(clpz)).
:- use_module(library(lists)).
@Qqwy
Qqwy / Example.ex
Created July 11, 2020 21:51
Elixir 'safe macro override' example implementation
View Example.ex
defmodule Example do
use OverrideExample1
use OverrideExample2
@a 1
@b 2
end
# Prints at compile-time:
#
# yaay: {:a, [line: 4], [1]}
# wooh: {:a, [line: 4, context: OverrideExample2], [1]}
@Qqwy
Qqwy / addition.beam_disasm.ex
Last active July 8, 2020 14:34
An example of what BEAM code ends up being generated for a simple TypeCheck spec.
View addition.beam_disasm.ex
{:beam_file, Addition,
[
{:__info__, 1, 2},
{:"__type_check_spec_for_add/2__", 0, 18},
{:add, 2, 8},
{:baseline_add, 2, 16},
{:module_info, 0, 20},
{:module_info, 1, 22}
], [vsn: [337339698024769425821845159222917769638]],
[
@Qqwy
Qqwy / capturepipe3.ex
Last active June 24, 2020 15:40
Elixir example of a pipe-operator that uses some simple metaprogramming to allow piping into capture-syntax. Version with slightly more verbose `&`-prefixed syntax. Implementation that rewrites pipes nested inside &.
View capturepipe3.ex
defmodule Capturepipe do
@doc """
A pipe-operator that extends the normal pipe
in one tiny way:
It allows the syntax of having a bare `&1` capture
to exist inside a datastructure as one of the pipe results.
This is useful to insert the pipe's results into a datastructure
such as a tuple.