* 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.
$ 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.
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.)
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.
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.
(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 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.
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.
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.
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:
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:
Created a clean Amazon EC2 Windows 2008 server.
Installed Strawberry Perl 5.12. Had issues compiling modules with cpan. Uninstalled Strawberry Perl.
Installed ActivePerl 5.16.3. Ran cpan, dmake and mingw downloaded and installed properly. Rebooted so %PATH% would be updated.
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.
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.
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.
Last week I completed a two-part training at work on perl's internals,
led by Yves Orton and Steffen Mueller. We covered some of data structures used by the interpreter,
as well as some of the optimizations it uses and the consequences of how those optimizations are
implemented. Someone on Twitter asked me if there were any slides
available, and unfortunately, the talk was conducted in a very ad-hoc fashion (which actually probably contributed to
its success, as the audience was able to propose new areas to cover). However,
I did end up taking some notes, so I'm going to summarize those here along with what I
remember. A lot was covered in the two sessions, so in the interest of actually getting
this information out (I tend not to publish things that I can't write in one sitting),
as well as keeping your attention, I'll be publishing them in a series of posts.
I recently took a vacation with my family and actually didn't spend any time working on p5-mop-redux (or any code for that matter) which was actually kind of nice (odd but nice). But thankfully Jesse Luehrs, my co-conspirator on the previous p5-mop attempt, found himself with some free time and so was hacking away. He ported one of his newest modules, Reply (which is a really nice REPL for Perl, you should try it) and noticed that the startup time was pretty slow (something important for a REPL). Of course this is to be expected in a prototype, but still, Jesse went and added this simple method cache which resulted in an almost 3x speedup for startup time.
Jesse also added two new class traits both of which are important for enabling users to subclass MOP based classes using non-MOP based classes.
With great interest I read When "unsafety" is a Good Thing and brood over Gabor's comment regarding "inconvenience vs. danger".
In my job, I have done a fair amount of coding these days. Mostly smaller tasks, you know, the sort of problem you just not so easily solve with Excel. I did some gardening, so to speak..
The code now takes the output of Marpa processing your grammar (still available via the raw_tree() method), and post-processes it to provide just the user's grammar. That is, it is shorn of all the Marpa-specific details.
The main purpose of cooked_tree() is as input into MarpaX::Grammar::GraphViz2 V 1.00, which converts your SLIF-DSL (a type of BNF) into a visual representation.
During this, I found a bug in GraphViz2, so it's now at V 2.20.
Lastly, the demo page for MarpaX::Grammar::GraphViz2 is here.