In today's sugary exploration, let's take a look at a shorthand for object key expansion in Javascript (ECMAScript 2015+, es6+). For an overview of the TON of delicious sugar that was added to Javascript at around es6, check out es6-features.org.
We're using Firebase as the hosting service for https://covidcanidoit.com and the experience has been kinda weird, coming from a more traditional server-database world.
Cool things I saw on the internet at some point:
I got a Pocket Operator PO-33 a while back, and find it super fun -- it is minimalist and usable. It inspires me to play around with beats and tunes ... and it also inspires me to work on my own samplers, sequencers, and synths.
I'm working on making the jump from READING about recent machine learning techniques to APPLYING recent machine learning techniques. I have some nice datasets at work, so I am doing a bit of double-dipping by playing with those.
Generative artwork, floating and fading.
I think it's important to learn through destruction. I like to proble the edges of things, and one of the best ways of knowing where IS the edge is to go over it. So ... let's go over the edge.
I've been doing a spot of accounting at work over the last few months. This is clearly a failure of delegation and management on my part, but it has led to at least one deep observation that I mightn't have had otherwise.
I Dockerized this website yesterday! I had already built a cpanfile that declares the Perl5 dependencies of OddMuse, which made it easy. I'm also going to run this with the data directory directly bind-mounted.
I gave a lightning talk at The Perl Conference about my collection of Perl6 Colons. Looks like Geoff gave me 34 extra seconds... not sure that I approve :)
There are many tools in my programming toolbox, but one that I've felt is missing is constraint and logic programming. I've done a spot of Prolog and played with some inference systems of various types ... but even when I run into something where I think it's the right hammer... I don't have a go-to tool.
I've been having lots of fun with https://github.com/vimwiki/vimwiki lately! I've mixed in a bit of encryptfs to have a private directory of notes. Sometime during boot, I set it up with:
Last night at the DC Perl Mongers meetup we collaboratively built a proof-of-concept for storing key/value pairs as messages in a slack channel, https://github.com/plicease/globalhash. This was made straightforward by great Slack API docs and cpan:WebService::Slack::WebApi. Example usage:
A fun thing to do is to explore things using introspection/reflection. In Ruby and Perl6, for example, we can get a list of methods for a given object instance pretty easily:
One of the codebases I work on regularly has a large and slow test suite. So slow that it typically only runs in totality in a continuous-integration (ci) environment, and there it uses the parallel_tests gem to slice it into pieces and run in parallel. This gets it to run in like 30 minutes instead of 2.5 hours.
Idea for a programming language: make experienced programmers twitch by forcing minor and common errors to be part of the language.
I enjoyed presenting at DCRUG tonight on React.rb, which I've been playing with for the last few weeks. Good turnout too!
Welcome to the DC-Baltimore Perl Workshop!
Today I attended http://retroruby.org, a great un-conference in Arlington. I got my toehold in the local Ruby community at the Arlington meetup, and was happy to visit with lots of familiar people. I didn't meet any new people, though that was mostly because it was easy to spend time catching up.
Tags: Polyglot, Ruby, Perl6, Python
Scott linked an article from new scientist, Memories may be stored on your DNA, which relates with what has been on my mind lately.
I just wrote up a call-for-people post about the DC-Baltimore Perl Workshop over at blogs.perl.org. I say it all there -- but in a nutshell, come and join us! :)
Tags: Vacation, Flood, Rental Car, Rain
I've traditionally thought of code comments as having two audiences. One audience is me, or whomever will be taking over the code after me. This consists of notes or hints as to what I was thinking when I wrote something. Typically these are regular code comments, possibly right on the end of a line. The second audience is the users of my code. Usually this is other programmers, in the case of a library (as opposed to the consumer of a resulting UI, which I guess is a sort of third non-engineer audience who doesn't read code comments). This second group is the one for which you typically use POD (or similar in other languages - javadoc).
I'm watching the first video for the CSU CS440 Intro to AI class, taught by Chuck Anderson. Man... so far this looks great. In addition to delicious shout outs to Turing and Hume and so on, tossed out a reference to the XKCD take on some AI concepts. Did I mention that we are using a wiki rather than WebCT as our primary interaction point? hmm!
Eliza: I am the psychotherapist. Please, describe your problems. Each time you are finished talking, type RET twice.
Tags: Perl6, Rakudo, Programming
Tags: Coffee, Music
This song popped into my head today, and the muse took it all the way to a recording!
We're starting our usual monthly DC Perl Mongers meeting a bit early this Tuesday (September 7th) to have a little pizza and celebrate Rakudo-Star! Arrive at 6:30pm at the Starbucks at 18th and K Street NW (call me, Brock, if you miss us and need to be let in, number on the website) if you want food. But feel free to wander in any time thereafter, we usually stay as late as 10:00pm. We'll swoop down and look for people at the normal 7:30pm time too :)
Ever since I got my terminals and mutt all working well with international characters, I've been fascinated by the Chinese spam I get. First of all it looks neat to see in a terminal. But sometimes I throw it into google translate just to see what it is I'm getting spammed about, and every now and then it's mildly interesting. Take this for example:
Tags: Perl, Programming, Conference
I love this song so much, and it is as fun to play as I imagined.
I saw some article about cpan:HTML::FormHandler, and decided I'd give it a try. I'm probably not really using it as intended... and I'm also not pushing this confluence of tech nearly as far as it can go.
Tags: C++, Programming, UIUC, Data Mining, Homework
Tags: Mercurial, hg, Debugging, Testing
Tags: OSCON, perl, continuity, lightning talk, oscon2008, REPL
So I was right, I completely messed up the previous example and it wasn't electrified by Creox at all. But I've rectified this situation, and for your listening pleasure (pain?), here is a smaller snippet of just the guitar part of the song, before-and-after.
I was playing with Creox the other day, which can make an acoustic guitar sound electric (amongst other things). I recorded a quick song... but it doesn't sound nearly as electric when I listen to it now as it did when I first recorded it (and now I wonder if I even had my Jack settings right for recording what I was hearing...). But it did end up with a fun crackly sound on the voice I think. Listen for yourself:
I was just exploring the latest and greatest Oddmuse modules, and see that someone made it easy to embed youtube/google videos. So now I feel like I have a real blog and I can post the random crap that everyone else does! To prove it, here is a totally awesome song my friends turned me on to:
It's been over 4 hours since Android was released... but still no port to the Neo. Pft.
Some of my family came to visit this weekend, and we did a bunch of sight-seeing. Here are the distance estimates, this is definitely a lower-bound of the amount we walked. I tried to include walks that I know everyone did, and left off a bunch of random trips to the store. Distances are in miles.
Tags: garden, camera, photos, cats
I love to create and build -- lately I've made a few songs! My friends like to play guitar and sing, and I play the harmonica and am learning guitar. So here are my recent creations (all with the help or in conjunction with friends):
I've been using the Tree Style Tabs Firefox extension for a few months now, and love it! Having vertical tabs has always been fabulous, ever since I first encountered them in Galeon. The chrome-css hack that I have been using for the last few years in Firefox stopped working in Firefox 3 (beta), so I went exploring and am very glad I did.
Tonight I am doing a bit of work on the EPFarms User Panel and Effin, our financial database. The Panel is a Continuity application running under FastCGI and suexec. The security model is different from most other web applications I've done, we use suexec to run the application as the individual Eggplant Farms user.
This last weekend was the 2007 Pittsburgh Perl Workshop, where I gave a talk on Continuity. Though it was my first Perl conference, going to other nerd events had prepared me for what it would be like. Even so I thought it was fantastic -- you just gotta love those Perl People!
I've cleaned up and expanded my RSS feeds a bit. So now I have three main feeds:
Today while reading some random article I noticed someone doing
The other day Liz showed me a new book that she got, Drawing on the Right Side of the Brain. Pretty interesting book discussing how to take what you see in the world and put it down on paper.
Just posted the sketch for two new Projects. The first is Chompie, which I've actually got a proof-of-concept going for. It chops up your program until it is as small as it'll go while still passing (or failing!) some test. The idea is to help debugging, for example -- it could spit out the exact code that fails some test in a specific way.
One day a week and a half ago Beth and I up and moved! Well... I suppose it took a little more planning than just that, but that's what it feels like. We are now living out our dreams in Washington, DC.
A few years ago, while doing some contract work, I created a simple yet effective way to monitor my time. The idea was taken from some other command line junkie, but I simpliefied it a bit. I dropped a command called "L" into my ~/bin directory that looks like this:
While at Walgreens I spotted a super cheap USB digital camera (I was supposed to be buying something else) and I couldn't resist... so I am now the proud owner of a 16mb camera! It is one of those keychain things, though I'm probably going to remove the keychain mount.
We're becoming quite the Oracle shop at work. The accounting package we recently purchased actually encompasses a lot more than just ledgers -- it helps us track things such as individual projects. And it comes with all sorts of Oracle goodies, including Oracle Portal.
I've been working on the release of the new website for my work at SWCA Environmental Consultants, which has been a long time in the making. During the development of the site they wanted drop-downs for navigation (against my clearly stated opinion :) ), and I selected Son of Suckerfish for the technique.
Tags: HTTP, Back Button, Web Application Structure
Tags: Oddmuse, Wiki, Blog, Tags
Tags: Perl, Code, SWCA, DJabberd, AD
Tags: Code, Perl, Library, Scrape
Tags: Perl, Continuity, AJAX, HTTP Push, Code
The City of Tempe seems to do a good job of keeping the town a thriving place, full of interesting events and sites. They have an advantage with the main ASU campus bringing lots of active youth -- but they like to push the envelope by doing things like daming the dried salt river and re-filling it to make their very own Teme Town Lake.
A little over a year ago I re-wrote the db-oop layer of my work project. The previous system was a bit much for me, and my replacement simplified things significantly (though surely at a run-time cost, but not noticeable to users).
Drawing up some ASCII art diagrams of the internal Continuity control flow, these are my two best variations so far. First is a bit too tall:
Oh how I love you Cygwin... let me count the ways.
(as sent to the Nabisco World Website)
After needing to find some old email and getting tired of waiting for grepmail to complete its search, I went out and found a mail indexor. The one I settled on is called Mairix, and so far so good.
I have this fantasy. You may have heard it before, it's pretty common. One day I'm designing this website for some people. Actually, I'm not designing it, I'm coding it -- I'm doing all the dynamic programming stuff. My partner in crime is a Designer (mainly graphic design, but also HTML, no programming) named Sarah, and she is doing the actual design. Together we talk to the client and she sketches some things that they like and I talk about the newest headlines showing up on their homepage, and so on.
A while back it was announced on the OCaml mailing list that someone had created a userland delimited continuations library for OCaml. I love OCaml, and I love Continuations... so I thought I'd give it a try. Ultimately going for the HTTP re-inversion trick, of course.
Its a good thing that I do my Unison Backup Setup... because today I need it. I awoke at 5:00AM to the pinging sound my computer makes when I get an email to my INBOX (past spamassasin and not a mailing list). Normally I can't hear the sound, but I must've had my speakers turned up to 11.
I use Unison to keep my important files synchronized between machines. This is a description of how I have it arranged and to some degree automated.
A few days ago I noticed that Peter Nuar was given the 2005 Turing Award. I thought to myself "self, doesn't that name sound familiar?" "I believe it does," I replied. That is Peter Naur of Backus-Naur Form. That, in conjunction with his greater work on Agol 60, is why he got the award. Backus got his award in 1977, for inventing FORTRAN (which is, shall we say, significant).
Guido van Rossum Re-Posted a plea for advertisement of Python. Some of the Python folks are feeling the Ruby squeeze and feel like their leader might be able to make some noise.
I'm sorry Livejournal People! I accidentally flooded your friends lists (all 4 of you) because I changed the naming scheme for the feed. I was afraid this might happen... stupid interweb. I'm sorry!
I've Blogified my site! Probably needs some tuning yet, but now when you go the the front-page you get a very blog-oriented view of things. My rough plan is to do what adam mentioned in an offhanded remark -- turn some things which I might ordinarily put into wiki pages into blog entries, and do some editing.
Hanging out in San Francico with Adam. Specifically I'm here attending CodeCon, which has been very enjoyable. It hasn't quite gotten me to suddenly produce tons of amazing code, but it has definately been generally inspiring. And theres one more day!
I wrote my first useful stand-alone javascript thingie! I've always wanted a combo drop-down in HTML... and for one project I'm currently working on it was especially appropriate. Yet again I set out accross the web to look for the perfect fit, but didn't find what I wanted.
I've been reading Reddit quite a bit lately. Its another popularity-based list if user submitted links, basically. They seem to have a pretty good vote-based algorithm for floating interesting things to the top of their list.
I've been thinking about DabbleDB quite a bit lately -- Avi Bryant's approach to solving the super-spreadsheet problem. That is, the problem that small organizations often run into when utilizing spreadsheets. They start out good, but they don't scale to more complex relational data. Of course, the solution that is typically pointed at is a database.
Lately on all the mailing lists and articles I note people doing langauge comparisons and leaving Perl out. This is quite frustrating, because often Perl exemplifies whatever it is they are discussing. Gar!
Went over and hung out with Scott (of Phoenix.PM) a bit, working with him on Continuity.
I recently read a notable piece from Slashdot, Does Visual Studio Rot the Mind?. This was a talk given to the NYC's .NET Developer's Group by Charles Petzold, author of several Windows developer books. The style of the talk was entertaining in general, but the topic also caught my attention.
Wow, I missed a whole month! I don't actually have anything useful to say... but I'm saying it anyway. What shall I talk about? I hear that google is joining forces with Sun to push distribution of the google toolbar and the JVM.