Assuming I have an undirected graph of 3D points, what (free) Javascript or Flash software would you recommend for plotting them (along with their connections) in a browser? I vaguely need an end result like this 3d scatter plot, but with fewer (87) points and a similar number of connections.
It would be nice if it was cross-browser compatible and didn't require a Flash authoring tool :)
At the previous entry Debugging B::C, hitting the recursion depth I showed how attack a typical B::C problem, how to use the perl level debugger
stepping into compiling code with Od.
However we found no error in the compiler at a first glance.
Inspecting the generated c code we see for the perl code package dummy;sub meth{print "ok"};package main;dummy->meth
Having monitored the logs on the server over the last few days, I've noticed some improvements that can be made to some of the processing. Some of the improvements are in the server code itself and will be introduced alongside some of the changes towards CPAN Testers 2.0.
However, some of the proposed changes are to the files available on the Development site. Specifically the database downloads. As there hasn't been anyone accessing any of the CSV files for the Uploads DB, these will be removed next week. Of the other files, although the GZip and BZip files are accessed, they aren't accessed very often, except for the cpanstats DB. As such the archives for both the Uploads DB and Release DB will only be updated once a day from next week.
These changes are to help reduce the processing load on the server, which in turn will help to improve response times for web pages and allow more processing capacity for parsing reports once we move to the Metabase.
Shlomi Fish published a post in Israel.pm that I think is worth reading by anyone from Israel (or Israhell), especially if you're from the Tel Aviv region.
In a year that dealt mostly with marketing, there seemed to be a decline in people showing up to meetings. Even though Tel Aviv University provided us with a room (and now a better room), with a projector, boards, air conditioner and a lot of space, few people show up.
Whatever the reason is, if these trends continue, the meetings will cease. If you care about Perl, if you like to learn, if you like to teach and if you want to spread it, these meetings are for you (or for you to drag someone else to :).
I find it hard to believe there are no Perl programmers in Tel Aviv (I personally know a few), and that they all know everything already.
Seriously, wake up and give a shout out to Shlomi (or even me) about why you aren't showing up. Whatever reason it is, there's bound to be some solution to it.
P.S.:
No, I didn't really understand what you wanted, Shlomi. :) My answer was "whatever parser you want to write, it has two steps. Step one is Parse::RecDescent." I thought it was funny.
I really wish more people would post here. I don't want this to be Ovid + the rest of the Perl community. I feel bad about the number of posts I make because I feel like I'm almost dominating this blog.
In other news, I've discovered that using GraphViz and star charts is harder than I thought.
This site has live been on the new hardware for a while now and things seem to be a lot more stable than they were previously.
There are, however, still a few issues that are left over from the old system and which are causing problems for some users (and some potential users). One particular problem that we keep coming across is that of accounts that were half-created on the old system. If you think you set up an account but you can't log in here or if you log in successfully but the system says you don't have permission to post a blog entry then your account is almost certainly in one of several possible intermediate states.
Most of these issues are really simple to fix. But we can't fix them unless we know about them. We have a ticket tracker on github where you can tell us about these problems. There is a link to this tracker at the bottom of every page on this site.
So if you have a problem of any kind with the site, please use the tracker to left us know about it.
I'm wondering if it's possible to upload a file through scp (ssh). This would be very convenient in the case where SSH keys would be allowed as it wouldn't require users to type in a password (except for the first time that the ssh-aget loads the key).
The Autodia plugin for Padre is currently only version 0.01 and very simplistic, but it does allow you to create, view and save UML class diagrams of your code within Padre..
Silly facebook conversation inspired the following:
package UNIVERSAL::Don't; # Because putting things in UNIVERSAL is fun!'
sub don::t {
my ( $proto, $method ) = @_;
my $class = ref $proto // $proto;
my $method = $proto->can($method) or return;
*{"$proto\::$method"} = sub {};
return $method;
}
Just think of how much fun you could have with that ;)
And even though the single quote mark package separator is deprecated, it will be at least a decade before a more strongly worded deprecation notice is added. This, oddly, was inspired by the fact that today at work, I wrote the following package: Don't::Put::Me::In::t::lib:Unless::You::Want::To::Drag::The::Test::Suite::To::A::Screaming::Halt.
And for some reason, this blog is cutting off the rest of that package name, so here it is, broken up: Don't::Put::Me::In::t::lib:Unless::You::Want::To::Drag::The::Test::Suite::To::A::Screaming::Halt
Elegance might seem like a lost trait in programming these days, but it is live and vibrant in Perl. A rather large part of the Test namespace is devoted to providing an elegant way to write "run this code, get the result, compare it with this one".
Today I found myself at a loss of an elegant solution to a problem.
I want to run a set of tests. Theoretically I can write each subset of tests as a Role in a test object (there are atleastthree testing frameworks that allow this nicely) and then run the tests in the object. I can even use MooseX::POE (or regular POE, AnyEvent, Test::Aggregate and the list goes on) to run them asynchronously in order to save the time.
If you've suffered any problems accessing any of the sites, the databases, the CPAN mirror, etc from the CPAN Testers server last night, please direct your wrath at Microsoft. Last night the msnbot took out the CPAN Testers server with a dedicated denial of service attack. As a consequence measures are now being put in place to completely ban the msnbot from accessing at least the Reports site, and probably all the sites on the server.
Microsoft in their incompetent wisdom decided to unleash 20-30 bots every few seconds. I know this because I can see the IP addresses in the logs. The ones spotted within a few minutes of rebooting the server this morning to clear the processes were:
I recently moved to a new BBC team (if we go down, iPlayer goes down too) and am getting used to working in a different environment with different tools. One issue is that certain tools I'm used to working with are not available (Test::Most being the most noticeable) and getting them added to all environments is a bit bureaucratic (all things considered, shipping new tools should be treated with more caution at many shops than it tends to be). Thus, when I accidentally merged to trunk with a test which contained Test::Most, I was embarrassed.
That's when the rather obvious answer occurred to me. I don't want to accidentally commit use of that module, but it's easy to do. Thus, here's how I do it safely:
Yesterday I gave a talk on Moose (the post-modern metaclass-based object system for Perl 5) in TelAviv.pm. The slides are available on slideshare. They aren't a lot of slides because I mainly wanted to give an introduction to Moose for beginners and the gist of the lecture is me speaking, so the slides can't really express that.
Now, regarding the talk. There were few people present, which was a bit unfortunate but I'm assuming it's somewhat due to the change in location in the university. It was difficult to find, I have to admit. However, it's a new place, bigger and more comfortable.
If I could do it over again, I would definitely want more people and more participation so we could give some live examples instead of trying to squeeze it out of people. But overall, I'm happy with it.
I scheduled with Gabor to do the lecture on March in Rehovot.pm. If you're near Rehovot, stop by, say hello and learn how to use Moose!
I want to thank Shlomi Fish for organizing TelAviv.pm, the lectures (including this one), the promotion, receiving a free guest room from the university and all the other annoying/difficult things most people don't feel like doing.
I've released a new version of Cantella::Store::UUID. (git) It features one incompatible change, but I figured it was OK since I'm pretty sure nobody is using it and it is reasonably new. I just couldn't live with having one lone method named so awkwardly. The POD was all updated and improved and two new methods were added, which allow the user to search for files in the storage directory and perform some action on these files. I don't really intend for these methods to be used a lot, since they will take minutes to run on most systems and be incredibly IO-intensive (depth-first search of the entire storage tree, which could be hundreds of thousands of nodes). I use them mainly for maintenance operations and you should probably too.
You know, I really would love to have a heart-to-knife conversation with developers who use complex unless conditions. While trying to tease apart some code, I came across this gem:
To be fair, code grows over time and it's easy to understand how issues like this crop up (and this is a fairly old bit of code), but it took me a while to make sure I understood this. My naive conversion of this to an if statement failed. I had to reduce it down to its simplest components and do a truth table:
Spreadsheet::WriteExcel now supports Area, Bar, Column, Line, Pie, Scatter and Stock chart types. I think that I'll leave it at that for now and concentrate on the sub-types within those charts. Bubbles and Doughnuts and Radar will have to wait untill later. Anyone use those?
So, last blog entry I mentioned Dancer and that I want to use it as CGI (since it's Plack-aware) but I don't know how.
Nick Spacek commented on my entry saying that if it supports Plack/PSGI, there should be an easy way to run it as CGI.
Later that evening I sat down for hummus with my girlfriend (hummus is awesome, ok?). After talking to her about it, I decided to take a minute to check online on my phone if anyone has any explanations on it. In the first 5 results, I found a post Alexis Sukriah (who wrote Dancer!) wrote that same day, regarding my post, showing how to use Plack to run a Dancer app under CGI!
Case in point:
use Plack::Server::CGI;
use Plack::Util;
my $psgi = '/path/to/your/app/app.psgi';
my $app = Plack::Util::load_psgi($psgi);
Plack::Server::CGI->new->run($app);
... and the web server configuration to use it.
(example shown on Alexis' post)
I started with what I thought would be a simple
Module::Starter
subclass. I wanted to modify Module::Starter::Smart, which knows how
to add a new module to an existing distribution, to properly handle an
existing MANIFEST and MANIFEST.SKIP. I thought I could just
override create_MANIFEST (RT
53339). Once I
overrode that, however, I wanted to make a couple of additional
tweaks, things weren't so easy.
Although I'm using Module::Starter as an example in this post, I
could just as easily use one of my own modules to illustrate the same
thing. I've just been hacking on Module::Starter for the past week
so I can get it into shape for use in the next edition of
Intermediate Perl. I'm not a particular fan of the module, but its
the best place to start if you don't know you want to use something
else.
My problem started when I also wanted to handle some DWIMery in the
--dist command-line parameter: