Flying Drones with Perl

At next week’s MadMongers our guest speaker is Timm Murray talking about UAV::Pilot. And yes, we’ll be flying drones using Perl! 

Our meetup is at the UW Stock Pavilion. It starts at 7pm on Tuesday, September 10th. Be there.

[From my blog.]

I translate "Modern Perl Writing Style" to English

I translate "Modern Perl Writing Style" to English

If you learn modern perl writing style, please see this topic. you can learn it quickly.

Modern Perl Writing Style

Three things you must do

Tired of being a Perl script-kiddie? There are three things you must start doing with your code.

  • Use version control
  • Write tests
  • Create distributions

You say, "No need to waste my time, only people who work in teams need that."

  • Guess what, if anyone besides you will ever use your software OR its output, you're working on a software team.
  • In 3 months when the boss says, "Hey, can you run that analysis again on the new data?", you will look at the code and say "Who wrote this?". Once again, you're working on a software team, and wondering who hired that one guy anyway.

Version control

Tree::DAG_Node V 1.14 + utf8 + read_tree()

Hi All

Tree::DAG_Node V 1.14 now includes utf8 data in its test suite.

Also, there is a new read_tree($file_name) method, for when you've previously redirected output of tree2string() to a file.

Where is App::Harmonograph ?

After the first, two posts about GCL maybe some words about the app I develop it with, because street wisdom says: you should construct any API not only in theory but also use it on some real world stuff before you release it.

I release TaskDeal - Setup or deploy multiple environments on web browser. Ruby Chef alternative tool.

I release TaskDeal - Setup or deploy multiple environments on web browser. Ruby Chef alternative tool.

TaskDeal

Example

Example (ID:admin, Password:test)

Features

* Execute command to multiple machines on web browser.
* Client(machine side) and Server(Web browser side) comunicate using WebSocket. Server can push notice to clients.
* Portable. you can install it into your Unix/Linux server, and cygwin(with gcc4) on windows.
* Perl 5.8.7+ only needed
* SSL support
* You don't have to learn Ruby DSL and cook book as Chef. You can write machine setting by familiar shell.
* You don't have to do client setting becuase command is pushed from server side. It is ok only to connect to server.
* Client command log is send to server. You can know what is done on clinet.

Using git-bisect to track down warnings in your test suite

You've all seen this before:

$ prove -l t/some/test.t
t/some/test.t .. 51/? Use of uninitialized value $foobar in ...
t/some/test.t .. ok

Inspecting the code doesn't necessarily make it clear what the correct fix is, so you want to kick it back to the person who generated the warning. But that's not actually a test failure, so git-bisect doesn't work out of the box.

Puppet vcsrepo - the 'module' Attribute

It turns out that the Puppet vcsrepo module (for working with version control systems like CVS and Git) had an undocumented module attribute for when a repository further divides into modules (as the LOCKSS CVS repository does with lockss-daemon, lockss-platform, etc.)

I say "had" because I created https://github.com/markleightonfisher/puppetlabs-vcsrepo with branch dev-README.CVS.markdown (and the corresponding pull request) to document the module attribute :).

Portuguese Perl Workshop 2013

The Portuguese Perl Workshop is back, the event will be held on October 9th and 10th in Lisbon, Portugal. Featuring Dancer2 training class with Alexis Sukrieh, and AnyEvent and Coro GreenThreads Tutorials with Pedro Melo.

Check the workshop website for more details.

All new http://delhi.pm.org

Friends,

A new http://delhi.pm.org website has been released ,

More details:
http://mail.pm.org/pipermail/delhi-pm/2013-July/000092.html

The code has also been released opensource

https://github.com/abhishekj/delhipm

This is a app in catalyst.

New feature requests are welcome and critic on delhi.pm mailing list.

Please be a member of delhi,pm to know more or reply more link below.

http://mail.pm.org/mailman/listinfo/delhi-pm

--
Abhishek Jain

Test::Class::Moose introductory video

The video of my Test::Class::Moose presentation in Kiev is on Youtube. Follow that link, or watch this embedded version:

Note that the first two minutes is me waiting for everyone to arrive.

Writing the Perl I Want to See in Others

How many of you are in my shoes? There isn't much scope for Perl coding in your day job, so you find yourself furtively browsing Metacpan, checking the latest Perl Weekly on your lunch hour, and dream about getting beyond Initiate. Maybe you scribble ideas in the margins of your weekly status report for that cool lowercase mononym you'll use for your first O'Reilly book (krusty...feldspar...molewhack...). But on the weekends, you're scaling the peaks of DBIx::Class, and basking in the tropical climes of Mojolicious.

The post-post about the YAPC::Europe 2013 in Kiev

(Original Russian version of this text is available in the 7th edition of the Pragmatic Perl magazine.)

This august, in the centre of Kiev, there took place an annual international conference YAPC::Europe 2013. I attended almost no talks, thus can only write about the organisational point of view.

We started the preparations in July 2013. It all begun with a simple question of whether we had to make a YAPC in Kiev.

Question:

From: Andrew Shitov
Date: 2012/7/10
Subject: yapc?
To: Viacheslav Tykhanovskyi, Yaroslav Korshak

Hi!
What do you think about YAPC::EU in Kiev?

Answer:

From: vti
Date: 2012/7/10
Subject: Re: yapc?
To: Andrew Shitov

I only agree! :)

Config::Tiny V 2.15 supports utf8

Hi All

I made myself co-maint of Config::Tiny, and, after not hearing back from Adam for over 2 weeks after I sent him the following outline (from the Changes file) of my proposed patches, I've released V 2.15:

2.15 Sun Aug 4 14:59:00 2013
- Clean up the shambolic dates in this file.
- Add a note under Caveats about setting options more that once. Only the first case is respected.
Thanx to Kimmel K. See RT#69795.
- Add a $encoding parameter to read_file() and write_file(). See docs for details.
Add t/04.utf8.t and t/04.utf8.txt.
Thanx to Mark Lawrence and Wolfgang Husmann. See RT#71029 and RT#85571.
- For BSD-based systems, when writing a file during tests, use:
my($temp_dir) = File::Temp -> newdir('temp.XXXX', CLEANUP => 1, EXLOCK => 0, TMPDIR => 1);
- Rename t/*.t files. I use '.' rather than '_' in file names because the latter is a shift char (and I'm lazy).
- Add MANIFEST.SKIP, Changelog.ini, Build.PL, META.json.
- Add an FAQ to the docs.
- Clean up the docs.

Report bugs via RT, as usual (for me).

Let the bugfest begin!

Wx::Perl::Smart::* (technical advantages of GCL)

As en extention of my last post, where I introduced the first rough ideas of the still changing GCL syntax, I want to write now about further advantages of the DSL I created this new namespace for. Yes it reminds a bit on smartmatch, but that's wanted, because these modules that implement the functionalities of GCL in the Wx realm (second planned target is Prima because I cant install Gtk2 here) and there is a lot things going on depending on the type of the value, exactly like in smartmatch. Plus the Wx::Perl::* namespace will be more free for other normal modules that do far less magic.

Planet Moose - August 2013

Welcome to the first edition of Planet Moose, a brief write up on what's been happening in the world of Moose this month, for the benefit of those of you who don't have their eyes permanently glued to the #moose IRC channel, or the MetaCPAN recent uploads page. The intention is to cover Moose and similar OO frameworks (Mouse, Moo, p5-mop), along with interesting developments to their dependencies and dependent projects.

This edition is a little sparse because it just contains the news that I happen to have noticed. If you have any items you'd like to be included in the September issue, add them to the wiki! That way it might not be so tobyink-focussed next month.

Progress::Any update (2)

This is the second API revision for Progress::Any (0.10). There are a couple of minor incompatibilities introduced, but I think not major like in the first revision a few months ago.

The cause of this second revision is that I want to be able to specify an estimated remaining time even though I haven't given target (or even when target is undefined), or done any update()'s. Plus, I want to do some refactoring to eliminate duplicated code.

Estimating remaining time of tasks

For example, suppose you are writing an installer. You have 3 subtasks: download packages, install the packages, and setup them. After you have done testing on several development machines, you know that the typical average duration for each subtask is respectively, 5, 15, and 10 minutes. You can now say:

Strawberry Perl uninstall / Active Perl install Issues on Windows

I have had a little problem getting a working Perl on Windows over the past few days. I was having a lot of trouble somehow getting a working dmake and mingw to compile code, among other things.

Here's what happened in my latest attempt, for your benefit:

  1. Created a clean Amazon EC2 Windows 2008 server.
  2. Installed Strawberry Perl 5.12. Had issues compiling modules with cpan. Uninstalled Strawberry Perl.
  3. Installed ActivePerl 5.16.3. Ran cpan, dmake and mingw downloaded and installed properly. Rebooted so %PATH% would be updated.
  4. Tried installing any module, immediately failed.

This is the important part: Strawberry Perl sets ENV variables in an incompatible way to what ActivePerl wants.

11:26 <@BinGOs> they mess with how the META parsers work.

So I ran this at the command prompt:

set PERL_JSON_BACKEND=
set PERL_YAML_BACKEND=

Everything started installing after clearing these variables.

Write GUI faster -> GCL

A goal that set my juices to flow is to make Perl a first class GUI language. Like back in the days even hardcore Java people took TCL to whip up a small graphical frontend app. This should now be done in Perl, because Perl can be simple but powerful when you need it. It just lacks some nice sugar to get a Gui fast. And GCL is my attempt to achieve that.

Underappreciated Perl Modules, UAVs, and Musings on Programming

In an effort to follow JT's advice about writing something new every day, I've queued up some articles over on my blog. Most of them will be about Perl programming, but also some UAV and Arduino stuff.

The first one today is about File::ShareDir, which I think is an underappreciated module that solves a problem we'll all probably hit sooner or later.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.