Skip to content

Instantly share code, notes, and snippets.

Avatar

Sterling Hanenkamp zostay

View GitHub Profile
@zostay
zostay / README.md
Created Jan 24, 2020
Font files for Julian's hygrometer
View README.md

Introduction

I built this file with:

./bdfconv -y 0 -th 2 -tv 3 -v -f 2 -m '37,46,67,91-100,176' ../bdf/profont29.bdf -o u8x8_font_profont29_2x3_j.c  -n u8x8_font_profont29_2x3_j
View ping-pong-end-emit.p6
use v6.d;
my Supplier $pinger .= new;
my Supplier $ponger .= new;
react {
say 'Beginning ping/pong...';
whenever $pinger.Supply.throttle: 1, 1 {
.say;
$ponger.emit: 'pong';
@zostay
zostay / python-best-vs-perl6-best.md
Last active Jun 28, 2018
Transforming Code into Beautiful, Idiomatic Perl 6
View python-best-vs-perl6-best.md

Transforming Code into Beautiful, Idiomatic P̶y̶t̶h̶o̶n̶ Perl 6

I can't help myself... I think Perl 6 is easier to read than Python... so I toook the best practices here and added Perl 6 translations instead.

README FIRST!

Okay, so I'm not really trying to one-up Python (well, maybe just a little). I think Python, especially Python 3, is a very able language and use it for a several projects. I also appreciate the work of Raymond Hettinger and Jeff Paine in putting together these best practices and summarizing them, respectively.

However, I think Perl 6 has a truly ingenious syntax that has taken 15+ years to assemble from lessons learned from 20+ years of language development in Perl preceding it and hundreds of years of experience from other languages. Perl 6 unashamedly steals language features from many others. I sincerely hope that languages will start learning from Perl 6 and stealing back (actually, I'm certain so

@zostay
zostay / all-in-one-live.p6
Created Sep 4, 2016
P6WAPI On Demand Mini Server
View all-in-one-live.p6
#!/usr/bin/env perl6
use v6;
my $sideeffect = 0;
sub app(%env) {
start {
note "APP RESPONSE";
200, [ Content-Type => 'text/plain' ], supply {
note "SENDING REQUEST";
@zostay
zostay / all-in-one-live.p6
Created Sep 4, 2016
P6WAPI Mini Live Supply Demo
View all-in-one-live.p6
#!/usr/bin/env perl6
use v6;
my $sideeffect = 0;
sub app(%env) {
start {
my Supplier $content .= new;
start {
note "WAITING FOR READY ", %env<p6w.ready>.WHICH;
@zostay
zostay / ulimit.txt
Created Jan 27, 2016
My current ulimit -a for my linux box
View ulimit.txt
% ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-m: resident set size (kbytes) unlimited
-u: processes 15691
-n: file descriptors 1024
-l: locked-in-memory size (kbytes) 64
@zostay
zostay / ulimit.txt
Created Jan 27, 2016
ulimit on my machine
View ulimit.txt
% ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-v: address space (kbytes) unlimited
-l: locked-in-memory size (kbytes) unlimited
-u: processes 709
-n: file descriptors 256
@zostay
zostay / stacktrace.txt
Created Sep 20, 2015
tracking down a syntax error
View stacktrace.txt
[11:10] sterling@Weasley Smack#master% perl6 -Ilib --ll-exception t/sent.t
# Unhandled exception: Cannot unbox a type object
# at <unknown>:1 (/Users/sterling/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)
# from gen/moar/m-CORE.setting:17236 (/Users/sterling/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:<anon>:40)
# from gen/moar/stage2/NQPHLL.nqp:1425 (/Users/sterling/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:command_eval:380)
# from src/Perl6/Compiler.nqp:59 (/Users/sterling/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/Compiler.moarvm:command_eval:93)
# from gen/moar/stage2/NQPHLL.nqp:1365 (/Users/sterling/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:command_line:114)
# from gen/moar/m-main.nqp:39 (/Users/sterling/.rakudobrew/moar-nom/install/share/perl6/runtime/perl6.moarvm:MAIN:18)
# from gen/moar/m-main.nqp:35 (/Users/sterling/.rakudobrew/moar-nom/install/share/perl6/runtime/perl6.moar
@zostay
zostay / desc.txt
Last active Sep 12, 2015
Weird Iteration/Switch Bug
View desc.txt
Okay, so I am at a loss so far as to what is happening here, but something
broke.
In Template::Anti, the node-set.t test is failing:
t/node-set.t ...........
ok 1 - text works
ok 2 - attrib one works
ok 3 - attrib two works
ok 4 - attrib three works
@zostay
zostay / explanation.txt
Last active Aug 29, 2015
P6SGI: Use Supply and/or Channel for streaming?
View explanation.txt
So after publishing 0.1.Draft of P6SGI, the most prominent feedback I have
received is whether or not Channels are the best option for streaming data. The
main alternative put forward is to use a Supply rather than a Channel. After
carefully weighing the options, I am not sure there is a clear winner in this.
The short answer is, Channel is simpler for app and middleware devs, but may not
scale as well or as easily as a Supply-based solution. On the other hand, there
is no obvious best solution when using a Supply and using a Supply can lead to
lost data if the app and middleware developers are not careful.