Skip to content

Instantly share code, notes, and snippets.

@msouth
msouth / newton.pl
Created July 29, 2019 14:10
Watch Newton's method converge
my $square = shift or die "Usage: $0 3 [where 3 is the number you want to find the square root of]";
my $guess;
print
"This is an implementation of Newton's method for finding roots.
(Specifically, we're finding square roots here, although Newton's
method can be used for many different kinds of functions.)
The only goal is for you to see how rapidly it converges, it is
otherwise quite useless :D.\n\n\n";
@msouth
msouth / add_inflate_snippet.sh
Last active January 18, 2017 08:12
quick test of inflate/deflate stuff using column filter in DBIX::Class
perl -ni -e '$cutting = 1 if /#.*start_inflate/; print unless ($cutting or $_=~/\s*1;\s*/); $cutting = 0 if /#.*end_inflate/;' lib/Test/Schema/Result/TestDeflate.pm
cat inflate_snippet.pl >> lib/Test/Schema/Result/TestDeflate.pm
#!/usr/bin/env perl
use strict;
use warnings;
my $flips = shift @ARGV // 1000;
print "I'm going to flip a coin [$flips] times...\n";
my @thresholds = (5, 10);
@msouth
msouth / Foodle.pm
Created August 6, 2013 14:08
quick store/retrieve with Storable in a Dancer app
package Foodle;
use Dancer ':syntax';
use Storable;
our $VERSION = '0.1';
get '/' => sub {
template 'index';
};
@msouth
msouth / tt.pl
Created August 5, 2013 20:47
single file tt test
use Template;
my $tt = Template->new( START_TAG=>'<%', END_TAG=>'%>' );
$tt->process(\*DATA, {}, \*stdout) ;
__DATA__
<% index = 0; last = 0; %>
index is now <% index %>
# This is the main configuration file of your Dancer app
# env-related settings should go to environments/$env.yml
# all the settings in this file will be loaded at Dancer's startup.
# Your application's name
appname: "Acme::Test::Dancer::Plugin::Database"
# The default layout to use for your application (located in
# views/layouts/main.tt)
layout: "main"
@msouth
msouth / gist:5959998
Created July 9, 2013 18:41
double-encode some utf-8 stuff for artistically interesting output
use utf8;
use v5.10;
my $string = "áéíóú";
binmode(STDOUT, ":utf8");
say $string;
use Encode qw/encode decode/;
my $bob = encode( 'UTF-8', $string);
@msouth
msouth / Reproduce.pm
Created June 11, 2013 15:59
dancer -a Minimal::Reproduce; edit the .pm file to look like this; perl Makefile.PL; make; make test; fails because simple_crud() tries to connect to database and doesn't know how
package Minimal::Reproduce;
use Dancer ':syntax';
use Dancer::Plugin::SimpleCRUD;
our $VERSION = '0.1';
get '/' => sub {
template 'index';
};
@msouth
msouth / doesn't work
Created April 20, 2013 18:23
incorrect fix [edit: maybe it is correct after all] for problem with new auth stuff in D::P::SimpleCRUD
--- a/lib/Dancer/Plugin/SimpleCRUD.pm
+++ b/lib/Dancer/Plugin/SimpleCRUD.pm
@@ -1176,6 +1193,8 @@ sub _ensure_auth {
Dancer::ModuleLoader->load('Dancer::Plugin::Auth::Extensible')
or die "Can't use auth settings without"
. " Dancer::Plugin::Auth::Extensible!";
+ } else {
+ return $handler;
}
@msouth
msouth / gist:5423491
Created April 19, 2013 21:53
When will a calendar for the current year be usable again?
perl -e 'for $year (2013..2113) {$cal = qx{cal $year}; $cal =~ s/\d{4}//; if ($year eq "2013") {$comp_cal = $cal} else { die "cal $year\n" if $comp_cal eq $cal} }'
cal 2019