Skip to content

Instantly share code, notes, and snippets.

Avatar

Sterling Hanenkamp zostay

View GitHub Profile
@zostay
zostay / gist:1167283
Created Aug 24, 2011
For my own sanity, what order do the around's get applied in an object that applies a role that applies a role?
View gist:1167283
package RoleBar;
use v5.10;
use Moose::Role;
around thing => sub {
my $next = shift;
my $self = shift;
say "RoleBar thing start";
$self->$next();
@zostay
zostay / gist:1358515
Created Nov 11, 2011
Best, quickest, safe way I know to pull out the " at x.pm line 1." is:
View gist:1358515
my $x = reverse $@;
$x =~ s/^.*? \ ta \ //xms;
$x = reverse $x;
@zostay
zostay / bad.psgi
Created Aug 1, 2012
OWASP Top Ten - A1 Injection - Good/Bad - In Perl
View bad.psgi
use v5.16;
use Plack::Request;
my $app = sub {
# Plack::Request makes getting parameters easier
my $req = Plack::Request->new(shift);
# Load the name
my $name = $req->parameters->{name};
@zostay
zostay / bad.psgi
Created Aug 15, 2012
OWASP Top Ten - A2 Cross Site Scripting (XSS) - Good/Bad - In Perl
View bad.psgi
use v5.16;
use Plack::Request;
my $app = sub {
# Use Plack::Request to help parse the environment
my $req = Plack::Request->new(shift);
# Load our input
my $input = $req->parameters->{input};
@zostay
zostay / README.txt
Last active Aug 3, 2020
Google Authentication Workflow for Pebble Watchapps
View README.txt
None of the workflow examples given in the Google Authentication OAuth2 documentation
(https://developers.google.com/accounts/docs/OAuth2) handle what's needed for Pebble. I
basically had to mix the needs of a client-side application with an offline web application
to get what's needed and work within the restrictions of the Pebble JS toolkit.
The steps are as follows:
1. Setup a Client ID for Web Application on the Google Developer Console
2. On the configuration web pages, with SSL:
* In the configuration page, use JavaScript to retrieve a authorization code, which
@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.
@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 / 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 / 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 / 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