Doing some really simple research on Neural Network, i came across that blog post: http://iamtrask.github.io/2015/07/12/basic-python-network/ . Reading that blog post is a good simple introduction to Neural Network, with Concrete example, implemented in Python.
After that, i thought, why not try that with Perl6, however, things were not that simple. Python has some pretty nice libraries for matrix calculation, like numpy, Perl6 on the other hand, does not yet have so many libraries.
Implementing a simple neural network will not be as simple as in Python. With the Neural Network sample from the first part of the previously quoted post, i started to work on a simple library to do some Matrices calculation, Math::Matrix.
For now, the Library only contains simple operations, like addition, subtraction, transposition, negative, determinant. The next step will be to start to work on LU decomposition, and further on.
First thing first, the Neural Network from the previous post would translate to:
Hopefully you've all heard about the amazingly successful CPAN Pull Request Challenge that was run throughout 2015 by Neil Bowers. If not you can read about it here or here. You may also have heard that 2016 is coming in a couple of days, and that Neil is starting up the 2016 Pull Request Challenge.
What you might not know, especially if you didn't take part in the 2015 challenge, is that Neil ran a survey recently to get feedback from the CPAN distribution authors and the participants about how it went. I was both at various points of the year, so I got both surveys :-)
Perl 6 is here and people in the Perl community seem to be excited, but I don’t understand why. Perl 6 is a bit sexier than Perl 5. It’s got quite a few whiz-bangs I’d like to use. However, I’m likely never going to use it, and I think the same is true for the other established businesses using Perl 5. Here’s why:
There is no real migration path from Perl 5 to Perl 6. If you have any significant code base in Perl 5 you’re going to keep working in Perl 5.
If you decide to up and rewrite your entire system, are you going to choose Perl 6? As amazing as Perl 6 is, I don’t think so. I think you’re going to pick Javascript and node.js. The reason is simple, Javascript has a lot of the same flexibility as Perl, it’s faster than Perl, and there’s an almost immeasurable amount of work being put into Javascript libraries.
Are you a smart web developer using Mojolicious, Dancer2, Kelp, Limper or just CGI ?
Sure, yes you are! ;-) You have just finished yet another web application ready to get deployed
and awaited with impatience by your customers. All your 't/' are fine, you for sure use Plack::Test
or similar tools to tests your application not only in internal but external way. Everything is going to be
fine, even though it's Friday today and is not probably good time to make a release, but you so
anxious to see a results and get users input, so you are going to talk to John - devops guy and send him a git URL where your source code lives in so he could start the deploy procedure ...
... But, yes, there are some "hurdles" always. John kindly asking you to provides some monitoring
capabilities for your freshly baked application, so he could make it sure it won't break
on weekend silently without alarming anybody ...
Given the embarrassing talk that Netanel Rubin gave last year, in which he chose not to learn a language and then laugh at it for the mistakes he made, I’m surprised I have to respond to yet another of his talks. Surprisingly, CCC gave him another slot to present strawman arguments for cheap laughs again this year, and no doubt that’s what he did.
Perl is built with testing in mind from the start. All the tools someone would like to have to do testing are there. Almost every module on CPAN has a directory t , containing test files.
Writing one’s own test files is not really hard, once familiar with the tools.
Testing a web application written with Dancer is also really convenient with Plack::Test and PSGI. The usual way would be to use a SQL Lite database as a test database, which can be created or teared down pretty easily.
However, a SQLite database can’t always do the trick. If the website/API is using for instance database schema or any other functionality that SQLite does not support. In that case, we need to find a way to test with a PostgreSQL server.
To illustrate that, let’s write a really small API with Dancer 2, that will manage a film collection. To keep it simple, we will just keep a list of films with their title. The database engine used being PostgreSQL:
I know this is probably the worst time of the year to blog about something different than Perl 6... but I had this article under construction since about one month, and some Christmas vacations helped to give it the final touches! I hope someone will enjoy... and I wish you all a happy new year!
Just as I always promised (...for, ahem, so many years in a row ;-)
And now that we've arrived at this joyous and long-anticipated day, now that we officially have this extraordinary and beautiful language at our disposal, now that the project that has consumed half of my own professional life has finally reached its first great milestone ...what can I say?
I could perhaps reflect on the long, often lonely, sometimes painful, struggle to bring this language into existence. On the endless fear, uncertainly, and doubt from a sceptical world. But that is only history now, irrelevant, and largely obscured by the memory of the tireless support and patience and faith of so many loyal friends and supportive colleagues.
While going through my repositories, looking for things to work on during the holidays, I found a draft blog post for the CPAN.io pulse, that I initially planned to publish in June 2015: CPAN.io as a reference site
Several hours ago my unorthodox campaign came to an unsuccessful end. There has been a lot of feedback to my previous post, some of it so surprisingly off the mark that I still have not wrapped my head around it enough for a proper response. I plan to publish a much more in-depth analysis and "lessons learned", but I need to gain much more distance from the current hot mess of CPAN, to better express the crux of what went right and what went wrong (spoiler - while the campaign itself failed, I consider the chain of events an incredible, way-beyond-what-I-expected success)
Couple weeks before the "I give up" announcement I compiled and started working in parallel on the following list, in order to shape up a "final ribasushi-approved" DBIC release:
Perlito5 now supports calling Perl subroutines from Java.
For example, a Perl module was compiled to "Main.java", and it can be called using:
class TestPerl {
public static void main(String[] args) throws Exception {
// initialize the Perl module - setup global variables
// and create the subroutine entries
Main.init();
// locate the subroutine main::test
// and call it with an argument list
// that is: @res = main::test(123)
PlObject[] res = Main.apply("main::test", new String[]{ "123" });
// do something with the results
for (PlObject s: res) {
System.out.println("Java result: " + s.toString());
}
}
}
"Top-down parsing is guessing"
is my newest blog post. Top-down is the most flexible of parsing methods -- you can add anything else to it. And you have to, because pure top-down parsing is, literally, guessing.
Thanks to @VMBrasseur on Twitter and IRC, several people this year decided to submit Perl (and especially Perl 6) content for OSCON 2016. The talk announcements won't be made until December 25th (I personally submitted two, and I know of at least 4 others who submitted), but I'm pleased to announce that one of the 3-hour tutorials at Austin will be an "Introduction to Perl 6", led by yours truly.
It's been so many times when I wrote about swat and sparrow - a tool-chain for rapid web test automation development .
Well, it's time to represent a SparrowHub - a central repository of sparrow plugins.
About swat and sparrow in few words.
SWAT
Swat - is a web test automation framework for quick and simple web test development. There are a plenty of documentation at swat project page HOW to write swat test suites and a lot examples as well.
SPARROW
Sparrow was designed as evolution for swat related development. Sparrow provides infrastructure for swat related projects. It means you could orchestrate and manage various swat tests and run them as well against dedicated web services. Right now it's quite simple console client with ordinary, naive look but I have a bigger plans for it ;-)