Benchmarking several ASCII-table-generator modules

UPDATE #1 2014-07-11: Added Catmandu::Exporter::Table. This module is not exactly lightweight, so I will not consider it for usage in Perinci::CmdLine::Lite, but it's interesting to benchmark anyway.

UPDATE #2 2014-07-11: Nudged by me, Jakob extracted the table-generating
functionality of Catmandu::Exporter::Table into its own module Text::MarkdownTable. This module depends on nothing but Moo. Great job Jakob. Although for my particular project Perinci::CmdLine::Lite, I declared that Moo is a bit too heavy, and so excluded it. :)

UPDATE #3 2014-07-11: Added more modules to the mix: Text::FormatTable, Text::Table::Tiny. Excluded more modules: Data::ShowTable, Text::UnicodeBox::Table.

UPDATE #4 2014-07-11: Excluded 2 more modules: Table::Simple, Text::SimpleTable::AutoWidth

Grants Committee Budget

I don't know the Grants Committee ever published the annual budget. I see reasons to do so and not to do, but let's do it. Transparency is a good thing.

Conclusion first. The Grants Committee's budget for 2014 is $16,000.

Here is how it works.

Rule #1: The committee evaluates and funds grants every two months. At the point of funding, the money is "spent".

Suppose you submit a grant proposal of $3,000. Your proposal is great, the community feedback is all positive, and your grant is funded. At this point, we have spent the money; it's like putting the $3000 in a special envelope that has your name on it. The money is still in the TPF safe but it is reserved for you.

Rule #2: We are out of the money when all the money is spent for the year.

Rex meet Rspec~

As an DevOps, I use Puppet and Rex, and like automatic testing for my infrastructure. So when I saw serverspec, I thought: maybe I can do such things in Perl?

I know there are already so many testing frameworks at CPAN. But I like the syntax used by serverspec( yes, evoloved from Rspec!) so DIY begin~

Here is my work:Rex::Test::Spec.

We can use it as follow:

Amazon & Ebay

We are going to start a project to provide easy to use + install interfaces for Amazon and Ebay for Interchange 6, similar to the one available for Magento and other Ecommerce software. It should be also possible to use this in conjunction with Interchange 5.

With your help this becomes a successful project, e.g. through

  • Feedback / Experiences with Amazon / Ebay and Perl modules
  • Feature suggestions
  • Developing time
  • Documentation
  • Testing
  • Funds

Regards
Racke

Metabase down?

Does anobody know what's wrong with metabase.cpantesters.org? Any attempt to submit test results ends in failure. Accessing the url returns a please come back later message.

Grants Cancellation

As announced in the official blog (link), three grants have been cancelled. All of them have been stalled for some time.

It is neither a pleasant nor easy decision for us to cancel grants regardless of a reason. I understand the grant managers and the grantees did their best to make progress but delivering a grant is not always easy.

One of the major reasons to terminate grants is our budget. In the next post, I will discuss our budget and explain why it is necessary to cancel stalled grants.

XS, Advanced XS Callback Patch For OCI, Part IX A little review

Well just another quick installment for my new chapter in XS Fun This time I am just going to review what we have gone over so far before we dive into the real fun stuff.

Now we are more than half way there at least in code changes and we have covered allot of varies subjects from general 'c' programming the very specific OCI programming and a little XS sprinkled about.

So I have shown you how to get your callback into and out of DBD::Oracle with the dbd_db_STORE_attrib and dbd_db_FETCH_attrib functions. Here we saw the use of a few XS macros to make our life a little eiaser , such as 'strEQ' a little memory management with SvREFCNT_dec and a few other.

We also saw how I used a 'c' struct (structure) to hold the pointers to my paremates and how I declared this in a '.h' or header so I could use them in other 'c' programs rather than just including them in the dbdimp.c file.

The Joy In What We Do by Sawyer X This is perhaps the best...



The Joy In What We Do by Sawyer X

This is perhaps the best speech I’ve ever heard about software development. Thank you Sawyer X.

[From my blog.]

Procedural Quest Generation in Perl

Yes, it's another post about Veure (whose actual name we might finally have chosen, but that's another story), the MMORPG that I've been writing.

There are 117 stars in a 20 light year radius around Sol. There are 544 space stations and currently there are 3,080 rooms in those stations (and that number is growing). That means there's a lot of area, but how do I fill that area? There's a lot of work still left to be done, but I took a quick stab at implementing a procedural mission generator as described in this paper. Surprisingly, the core of the code only took about an hour to write.

$4,000 grant approved

The Grants Committee approved and funded the grant proposal "Modern Object Oriented Programming in Perl" in the previous round.

This is our first time to fund a grant which exceeds $3,000 since we lifted the grant limit of $3,000 earlier this year.

I am pleased that we are now able to fund larger scale grants and help the Perl development. While we don't have unlimited budget, it is the right thing that appropriate amount of money is funded for good projects which will help the growth of Perl.

If you did not submit a grant proposal in the past just because $3,000 limit was too low, act now. The deadline of the next evaluation round is July 15th.

For choosing the grant amount, see "Improving the grant program (1) Grant Limit" too.

XS, Advanced XS Callback Patch For OCI, Part VIII Just a little 'c'

Just a quick one tonight's installment for my new chapter in XS Fun just looking at the next function from my patch.


Now just to continue on to the next logical step we will need a disable function as well so my patch is

Charlie Stross on the future of technology and Perl.



Charlie Stross on the future of technology and Perl.

[From my blog.]

Making git bisect more useful

If you've ever used git bisect, you know what an incredibly useful tool this is. It allows you to do a binary search through commits to find out which commit caused a particular error. Many people seem unaware of git bisect run ... which automates this even further, but it has a limitation: it won't let you find a particular error, it detects success or failure, that's all. So I decided to do something about that.

A Perl CMS for the Masses, Part II

(With permission), I got this email from a former Phoenix.PM-er (my home PM):

I looked at Ruby on Rails, what a mess. I'm running the WordPress meetup group here in Jacksonville Florida...

I've been moving code into Mojolicious lately. Still trying to get used to the "new" ways of doing things.

You have one more "backer" - all the best on this. I can help with documentation at least, if you like.

I was right. I'm not the only Perler who uses WordPress or is responsible for site. In my case, I help with http://biketempe.org as part of my duties on the board of Tempe Bicycle Action Group.

Right now, there are 47 supporters and $1,840 pledged: https://www.kickstarter.com/projects/2083389021/create-perl-competition-to-the-php-content-managem

XS, Advanced XS Callback Patch For OCI, Part VII Back into 'C' and a little XS

Tonight's installment for my new chapter in XS Fun I am heading back to the 'c' land again looking at the function that actuality sets up the callback.

So now that we have a place to store of callback we can have another quick look at the 'dbd_db_STORE_attrib' function and this little addtion

 
    if (SvTRUE(valuesv)) {
        enable_ha(dbh, imp_dbh);
    } 
   else {
       disable_ha(imp_dbh);
   }

Perlmodules.net is awesome

Just a heads up that if you're not using perlmodules.net you should check it out.

I use News+ on my android phone to keep up with RSS feeds, so I find it super useful to be able to at a glance find out when modules that I use frequently have been updated, and what's changed.
I got my list of modules I'm following.

**Edited, fixed links to point to unprotected rss feed instead of logged in view, fixed relative to absolute url to perlmodules site.**

Inheritance is Bad: Code Reuse Part III

0. Overview

  1. Inheritance is Bad: Code Reuse Part I
  2. Inheritance is Bad: Code Reuse Part II
  3. Inheritance is Bad: Code Reuse Part III

1. Introduction

There exists a legend named the Gordian Knot. It was a knot that nobody was able to untie. An oracle predicted that the one who will be able to untie the knot would become the king of Asia. A lot of people tried to untie it, but nobody was successful. It seemed like an impossible task to do. But 333 BC they came a man, when he tried to untie it he drew his sword, sliced the knot and untied it that way. That man was Alexander the Great, and became later the King of Asia.

To the tune of…

Buddy Burden:

Yes, we had multiple keynotes [at YAPC::NA 2014]. Two or three a day, even. I thought that was a bit weird. My friend David Hand kept joking that we had gone beyond keynotes and were now into keychords.

XS, Advanced XS Callback Patch For OCI, Part VI Well Not Really Even 'C' but we will see if there is some XS or perl

Another in my seemingly endless posts for a new chapter in XS Fun. Today I am am going to look at just what and where my the functions from my last two posts store their data.

Now to do a little backtracking I hinted earlier on about a mythical 'c' struct called 'imp_dbh_t' and I had mentioned this is where we where storing the values that we where passing into the 'Store' function and getting from the 'Fetch' function.

No not to go all to 'c' on you what you really need to know it that a 'c struct' is just the way 'c' stores a number of variables in memory with one pointer. Working with structures should be second nature to a Perl programmer as you would access the data in a struct with it name or key like this

 
imp_dbh->ha_function

how to sync time between two linux servers

  1. Option 1
  2. Found a way to synchronize date and time with a server over ssh which can quickly solve the problem:

    # date --set="$(ssh user@server date)"

    Or you can do it the other way around:

    # ssh user@host "date --set \"$(date)\""
  3. Option 2
  4. ‘ntpdate 10.200.117.37’ or ‘/usr/sbin/sntp -P no -r 10.200.117.37’ Of course you need to set up a ntp or sntp server first.

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.