Skip to content

Instantly share code, notes, and snippets.

@vividsnow
vividsnow / fold_wrap.pl
Last active Aug 29, 2015
integer value fold wrap in interval
View fold_wrap.pl
use strict; use warnings;
use feature 'say';
use List::MoreUtils 'minmax';
# usage: fold_wrap.pl 10 4 8
say "wrap: ".wrap(@ARGV);
say "fold: ".fold(@ARGV);
sub wrap {
use integer;
@vividsnow
vividsnow / gstreamer-video-test.pl
Created Apr 28, 2014
perl gstreamer-1.0 example
View gstreamer-video-test.pl
use v5.18;
use warnings;
use Glib qw(TRUE FALSE);
use Glib::Object::Introspection;
my $loop = Glib::MainLoop->new;
map { Glib::Object::Introspection->setup(basename => $_, version => '1.0', package => 'GStreamer') } qw'Gst GstBase';
GStreamer::init([$0, @ARGV]);
say 'GStreamer ', join '.', GStreamer::version();
@vividsnow
vividsnow / pdfshot.pl
Last active Dec 24, 2015
perl html to pdf printer using gtk3 bindings
View pdfshot.pl
# example usage: xvfb-run -a -s '-screen 0, 34x34x24' perl pdfshot.pl OUTFILE URL [ WAIT]
use v5.16;
use Gtk3 -init;
use Gtk3::WebKit;
(my $view = Gtk3::WebKit::WebView->new)->set_transparent(Glib::FALSE);
(my $window = Gtk3::OffscreenWindow->new)->add($view);
$view->signal_connect('notify::load-status' => sub { if ($view->get_uri && $view->get_load_status eq 'finished') {
Glib::Timeout->add( $ARGV[2] // 5, sub {
$view->get_main_frame->print_full((map {
@vividsnow
vividsnow / scratch.pl
Created May 17, 2013
random stuff from live coding session using https://github.com/vividsnow/perl-live
View scratch.pl
# some handy modules to print things
use Data::Dump 'dd';
use DDP colored => 1, filters => { -external => [ 'PDL' ] };
dd my $h = bless { a => 1 }, 'test';
p $h
# ok - lets test scoping
say my $v = 0;
@vividsnow
vividsnow / sctweets.pl
Created May 15, 2012
recent supercollider tweets
View sctweets.pl
#!/bin/env perl
use v5.12;
use HTTP::Tiny();
use JSON::XS();
use Try::Tiny;
use HTML::Entities 'decode_entities';
my @search_words = ('#supercollider', '#sc140', '#sc', qw(
Ndef Tdef Pbind SinOsc PMOsc LFSaw LFPulse Splay Pan2 LFNoise0 LFNoise1 LFNoise2 LFCub LFPar
LFTri Drand Ringz Dshuf Decay2 DelayN DelayL DelayC CombC GVerb FreeVerb VarSaw DynKlank DynKlang
@vividsnow
vividsnow / test.pl
Last active Oct 1, 2015
simple PDL cmp OpenGL::Array performance for glBufferDataARB_p
View test.pl
use v5.14;
use OpenGL qw(:all);
use PDL;
use Time::HiRes qw(gettimeofday tv_interval);
my $o1 = OpenGL::Array->new_list(GL_FLOAT, map $_/40, (1..400));
my $o2 = OpenGL::Array->new_list(GL_FLOAT, map $_/40, (1..400));
my $p1 = pdl(float, map $_/40, (1..400))->reshape(20,20);
my $p2 = pdl(float, map $_/40, (1..400))->reshape(20,20);
@vividsnow
vividsnow / test.pl
Created Dec 29, 2011
cdaweb CDF to PDL
View test.pl
#perl
use strict;
use warnings;
use feature 'say';
use CDF;
use PDL;
use Data::Dumper 'Dumper';
my ($id, @out);
View gist:1536353
#perl
use v5.12;
use CDF;
use Data::Dumper qw(Dumper);
my ($id, @out);
CDF::CDFopen($ARGV[0], \$id);
CDF::CDFinquire($id, refstd([( undef, [], (undef) x 5 )])); pout();
View gist:1380125
Use of uninitialized value in substitution (s///) at /home/f2r/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/PocketIO/Message.pm line 55.
Use of uninitialized value in string eq at /home/f2r/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/PocketIO/Message.pm line 66.
Use of uninitialized value in string eq at /home/f2r/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/PocketIO/Message.pm line 66.
Use of uninitialized value in hash element at /home/f2r/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/PocketIO/Message.pm line 87.
Use of uninitialized value in string eq at /home/f2r/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/PocketIO/Message.pm line 90.
Use of uninitialized value in string eq at /home/f2r/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/PocketIO/Message.pm line 93.
Use of uninitialized value in string eq at /home/f2r/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/PocketIO/Message.pm line 93.
Use of uninitialized value in string eq at /home/f2r/perl5/
@vividsnow
vividsnow / chat.html
Created May 14, 2011
SocketIO <=> PocketIO test app ( reqs: WebSocketMain.swf and socket.io.min.js from github.com/LearnBoost/Socket.IO )
View chat.html
<html>
<head>
<script type="application/x-javascript">
WEB_SOCKET_SWF_LOCATION = 'WebSocketMain.swf';
</script>
<script src="socket.io.min.js"></script>
<script src="//yandex.st/prototype/1.7.0.0/prototype.min.js"></script>
<script type="application/x-javascript">
Event.observe(document, 'dom:loaded', function (){
var socket = new io.Socket(window.location.hostname, {