Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Web::Magic 0.005

by Anonymous Monk
on Jan 15, 2012 at 05:12 UTC ( #947949=note: print w/replies, xml ) Need Help??


in reply to Web::Magic 0.005

This module might be great but way to many dependencies. I recommend checking out Mojo::UserAgent. No dependencies.

Replies are listed 'Best First'.
Re^2: Web::Magic 0.005
by Anonymous Monk on Jan 15, 2012 at 05:46 UTC

    This module might be great but way to many dependencies. I recommend checking out Mojo::UserAgent. No dependencies.

    It also has no features -- at least none of the features of Web::Magic -- great argument, very persuasive

      The dependencies kill this module... According cpantesters, this modules has a 42% chance of all tests passing. As for Mojo::UserAgent, it supports DOM, CSS selectors, and JSON. http://mojocasts.com/e5.

        The dependencies kill this module... According cpantesters, this modules has a 42% chance of all tests passing...

        Nice math

        Web-Magic 0.006 ( 75 ALL, 1 FAIL, 1 NA, 73 PASSes )

        invented number %42 chance of all tests passing

        You're a great advocate for mojo

        Mojo is quite impressive for what it manages to do without dependencies. But really, say I bundled all the other distributions Web::Magic replies upon, and packaged them with Web::Magic. Then I could say it had no dependencies too. Many of Web::Magic's dependencies are indeed modules that I wrote, so I could have easily chosen to package them all into one distribution.

        But it seems more logical to provide more, smaller, independently testable and independently usable releases. And rely on a tool to keep track of dependencies between them. Perhaps a tool with a good track record of managing dependencies for Perl modules? Perhaps a tool that has been bundled with Perl for well over a decade?

        That 42% (actually 43% according to deps.cpantesters.org today) statistic is very misleading. The site that calculates the statistic acknowledges this.

        In practice the only dependencies of Web::Magic which have worrying fail rates are B::Utils which fails a lot on BSD, but seems reliable on other operating systems, and XML::Feed which has some date formatting test cases that seem to sometimes fail. (An Atom test case which expects a datetime in the floating timezone, receives one in UTC.) A force install on XML::Feed will almost certainly still give you a working copy.

        That said, Mojo's claimed HTML5 credentials are a bit suspect. The following code illustrates that Mojo::DOM's HTML5 conformance is not quite there yet:

        use Modern::Perl; my $html5 = do { local $/ = <DATA> }; { say "HTML::HTML5::Parser:"; use HTML::HTML5::Parser; use XML::LibXML::QuerySelector; my $dom = HTML::HTML5::Parser->new->parse_string($html5); say $dom->querySelector('tbody')->textContent; } say "----"; { say "Mojo::DOM:"; use Mojo::DOM; my $dom = Mojo::DOM->new($html5); $dom->find('tbody')->each(sub{say $_->all_text}); } __DATA__ <!doctype html> <title>Greetings</title> <table><tr><td>Hello World</table> <!-- This is a valid HTML5 document. See http://validator.w3.org/check + -->

        For comparison, try the following in a modern, HTML5-capable browser (tested Firefox 3 and Opera 11):

        <!doctype html> <title>Greetings</title> <table><tr><td>Hello World</table> <script type="application/ecmascript"> window.alert(document.querySelector('tbody').textContent); </script>

        Here it has 0% chance on success, as it uses modules that depend on modules (that depend on modules ...) that are blocked (forbidden) by company rules/standards.

        So yes, the dependency tree is too heavy.

        $ cpan Web::Magic : : Result: FAIL Failed 5/5 test programs. 2/3 subtests failed. make: *** [test_dynamic] Error 2 TOBYINK/Web-Magic-0.006.tar.gz 9 dependencies missing (HTML::HTML5::Writer,XML::LibXML::QuerySelector +,JSON::JOM,HTML::HTML5::Parser,JSON::JOM::Plugins::Dumper,RDF::RDFa:: +Parser,AnyEvent::HTTP,JSON::JOM::Plugins::JsonPath,common::sense); ad +ditionally test harness failed /usr/bin/make test -- NOT OK

        Enjoy, Have FUN! H.Merijn

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://947949]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2020-02-28 14:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What numbers are you going to focus on primarily in 2020?










    Results (123 votes). Check out past polls.

    Notices?