Takes the screenshots fo the websites



  • For absolutely no reason, I decided to try browsershots. I entered the URL and left all the other options as defaults. Now, some of the screenshots loaded almost immediately. I had to refresh a few times for them to show up, though. Another few are queued for 40+ minutes from now. That'd be fine, it being a free service and all, but the page that allows me to download the screenshots expires in 13 minutes.

    Here's the full gallery.

    Some highlights:










  •  Browsershots used to be awesome, but it started falling apart when they introduced their paid online VM service about six or seven years ago. It's sad to see that it's gotten to this point.



  • @TortoiseWrath said:

     Browsershots used to be awesome, but it started falling apart when they introduced their paid online VM service about six or seven years ago. It's sad to see that it's gotten to this point.

    The problem is people get used to these free services being free.  Then they get popular and are widely used, and need to have more dedicated resources. This means either the person running it has to eat the loss to continue providing it, start charging for the formerly free service at which point everyone will get pissed off, or start offering a more premium paid service for users who want to use it, which means introducing additonal complexity into what is already a complex web app.

    Frankly, I wish people in general would just grow up and understand that we can't have everything free forever.  I'd be happy to kick a few bucks to my favorite websites every once in awhile. 


  • Considered Harmful

    @Master Chief said:

    @TortoiseWrath said:

     Browsershots used to be awesome, but it started falling apart when they introduced their paid online VM service about six or seven years ago. It's sad to see that it's gotten to this point.

    The problem is people get used to these free services being free.  Then they get popular and are widely used, and need to have more dedicated resources. This means either the person running it has to eat the loss to continue providing it, start charging for the formerly free service at which point everyone will get pissed off, or start offering a more premium paid service for users who want to use it, which means introducing additonal complexity into what is already a complex web app.

    Frankly, I wish people in general would just grow up and understand that we can't have everything free forever.  I'd be happy to kick a few bucks to my favorite websites every once in awhile. 

    Would they have had a chance to become your favorite sites if they'd presented you a paywall on your first visit? Free trials are even worse, since I got a "free credit score" years back and discovered I needed to wait on hold for over two hours on the phone to cancel, I won't repeat that experience.



  • @joe.edwards said:

    Would they have had a chance to become your favorite sites if they'd presented you a paywall on your first visit? Free trials are even worse, since I got a "free credit score" years back and discovered I needed to wait on hold for over two hours on the phone to cancel, I won't repeat that experience.

    Sounds like you need to find a payment system that allows YOU to choose when you send money to someone or not. That way you can just, well, cancel your subscription.



  • @Master Chief said:

    Frankly, I wish people in general would just grow up and understand that we can't have everything free forever.
     

    That's why things like flattr and patreon exist. Lost of creators discovered that, oops, the free ad-supported business model isn't cutting it!



  • @Ben L. said:

    For absolutely no reason, I decided to try browsershots.

    Ooh, I hadn't heard of that before. I'm going to try feeding it the URLs of as many online browser fuzzing test pages as I can find... ;-)



  • My results with a simple website:
    104 successful (55.0%)
    9 not maximized (5%)
    16 not loaded (8.5%)
    33 had dialog box in front (18%)
    27 outright failed (14%)

     With a more complex website:
    85 successful (45%)
    12 not maximized (6.4%)
    32 not loaded (17%)
    22 had dialog box in front (12%)
    36 outright failed (19%)

    Also, having lurked here for a while and just now starting to post, I finally understand why y'all bitch about Community Server so much. Seriously, I could write something better than this in PHP of all languages.


  • Trolleybus Mechanic

    @TortoiseWrath said:

    Seriously, I could write something better than this in PHP of all languages.
     

    Huh?  What's wrong with PHP?



  • @TortoiseWrath said:

    Also, having lurked here for a while and just now starting to post, I finally understand why y'all bitch about Community Server so much. Seriously, I could write something better than this in PHP of all languages.

    Guys, he's right. We should really consider switching to something better, like Discourse.



  • @Lorne Kates said:

    @TortoiseWrath said:
    Seriously, I could write something better than this in PHP of all languages.
    Huh? What's wrong with PHP?
    Well, what isn't wrong with PHP?



  • @joe.edwards said:

    Would they have had a chance to become your favorite sites if they'd presented you a paywall on your first visit? Free trials are even worse, since I got a "free credit score" years back and discovered I needed to wait on hold for over two hours on the phone to cancel, I won't repeat that experience.

     You misunderstand, I'm saying if a site had to enable a paywall after they had been free for a long time, I'd be alright with that. Yes, it's unfortunate that what once was free isn't going to be anymore, but it's damn well better than having a site burdened with a complex pay system like this one now is. 



  • @Anonymouse said:

    Well, what isn't wrong with PHP?
     

     Community Server. But TortoiseWrath is already planing to fix that.

     



  • @Ben L. said:

    @TortoiseWrath said:
    Also, having lurked here for a while and just now starting to post, I finally understand why y'all bitch about Community Server so much. Seriously, I could write something better than this in PHP of all languages.

    Guys, he's right. We should really consider switching to something better, like Discourse.

    Never! I'd give my life for Community Server!

    Can anyone explain why half the screenshots are in English, half in Polish, and there's also one in German for some reason? Also, it seems like MS's Polish translation team is TRWTF ("pamięć nie może być "read" " is exactly as stupid as you'd expect)



  • @Maciejasjmj said:

    Can anyone explain why half the screenshots are in English, half in Polish, and there's also one in German for some reason? Also, it seems like MS's Polish translation team is TRWTF ("pamięć nie może być "read" " is exactly as stupid as you'd expect)

    Because the "factories" are crowdsourced (if you want to, you can run one too, and if it has a decent uptime, it will even be used), and most people don't give a fuck to install the English language pack, but just pick whatever install medium they have and toss it into a VM?

    On the other hand, crowdsourcing without QA hardly works (unless the people providing the factories are really dedicated to the project). And I think by doing a very simple automated QA (like request a 100% green website and count the green pixels and check if the region is large enough and rectangular without holes) every few hours (or few hundred requests) should make the situation much better (browsers like lynx need an exeption of course). Or add some marker images in the corners and check their existance, too (to avoid screenshots that are "too maximized"). Somebody just had to code it, and somebody had to implement it in the backend service. Which will, if the maintainers are no longer interested in providing good quality, probably never happen...



  • I was going to ask what was wrong with this picture, but then I read the message box. "OMG we've established this page to be secure!!!"

     



  • @Maciejasjmj said:

    Also, it seems like MS's Polish translation team is TRWTF ("pamięć nie może być "read" " is exactly as stupid as you'd expect)
    Slovenian version of that error is the same - Pomnilnika ni bilo mogoče "read". But if you want TRWTF, Slovenian language pack has some #PLACEHOLDERS# translated, so eg. the Action center always shows #IME_ZADNJEGA_PROGRAMA# (#LAST_PROGRAM_NAME#) instead of showing the program name.



  • @Lorne Kates said:

    @TortoiseWrath said:

    Seriously, I could write something better than this in PHP of all languages.
     

    Huh?  What's wrong with PHP?

    The language... it's fine.



    Some of the people who write it however are the problem.


  • BINNED

    @Lorne Kates said:

    Huh?  What's wrong with PHP?
    Have you seen this article?



  • @PedanticCurmudgeon said:

    @Lorne Kates said:
    Huh?  What's wrong with PHP?
    Have you seen this article?

    Lies!


  • Trolleybus Mechanic

    @PedanticCurmudgeon said:

    @Lorne Kates said:
    Huh?  What's wrong with PHP?
    Have you seen this article?
     

    I'll turn off the trolling for a second, because yes I've seen that, but re-read it anyways.  I couldn't say if a similar article could be written about ANY language-- but regardless, I love some of the things PHP does so, so wrong.

    @PHP Sadness, linked to from that article said:

    After PHP 5.4.4, a change was made which causes two numeric strings which both overflow and appear equal numerically to be compared as strings instead. Before this change, even these such strings were compared numerically.

    This can become especially important in situations where the developer chooses to use == to compare two values which will always be strings. For example, consider a simple password checker:

    @code said:

    if (md5($password) == $hash) {
      print "Allowed!\n";
    }

    Assume that the $hash is loaded from a known safe string value from a database and contains a real MD5 hash. Now, suppose the $password is "ximaz", which has an all-numeric hex-encoded MD5 hash of "61529519452809720693702583126814". When PHP does the comparison, it will print "Allowed!" for any password which matches even the first half of the hash:

    @code said:


    $ php -r 'var_dump("61529519452809720693702583126814" == "61529519452809720000000000000000");'
    bool(true)
    

     


    - http://phpsadness.com/sad/47

    And just to show how deep into PHP development's core the lack of understanding of basic principals goes...

    @TFA said:

    In 2007 the interpreter had an integer overflow vulnerability. The fix started with if (size > INT_MAX) return NULL; and went downhill from there. (For those not down with the C: INT_MAX is the biggest integer that will fit in a variable, ever. I hope you can figure out the rest from there.)

    It basically runs down like this:

    PHP devs code an overflow by trying to assign EXPR bytes, where EXPR is an integer that isn't bound checked.

    Their soution is, given that INT_MAX is the largest value an int can be
    int size = EXPR
    if (size > INT_MAX) {malloc...}

    "Hey, you're not bound-checking that integer."

    "Okay, I'll check to see if the integer is greater than the maximum value an integer can be."

    "..."

    Yeah, if you have an hour, read that article. At the very least, opponents of PHP can get a better idea of WHY it sucks as a language, and proponents can get a better understanding of why opponents call it a sucky language.



  • My favorite bit is how the JSON parser returns null if it can't parse the JSON string, despite:

    1) Almost every other library function returning false in case of error, and

    2) null being a perfectly valid thing for JSON to contain

    So they had to write a SECOND function to check for the last JSON parser error. Which kind of makes a tiny iota of sense, since that's what they do with the functions that are wrappers around C, except that JSON is a lot newer than C so it still doesn't make any sense. And they could have just written it to return false.


  • Considered Harmful

    @blakeyrat said:

    My favorite bit is how the JSON parser returns null if it can't parse the JSON string, despite:

    1) Almost every other library function returning false in case of error, and

    2) null being a perfectly valid thing for JSON to contain

    So they had to write a SECOND function to check for the last JSON parser error. Which kind of makes a tiny iota of sense, since that's what they do with the functions that are wrappers around C, except that JSON is a lot newer than C so it still doesn't make any sense. And they could have just written it to return false.

    False is also a valid JSON value, right?


  • @joe.edwards said:

    False is also a valid JSON value, right?

    Nope.

    "{ted: false}" is valid, but plain "false" isn't JSON.


  • Considered Harmful

    @blakeyrat said:

    @joe.edwards said:
    False is also a valid JSON value, right?

    Nope.

    "{ted: false}" is valid, but plain "false" isn't JSON.

    [ 'false', '{ted:false}', '{"ted":false}' ].forEach( function( json ) {
    	try {
    		var value = JSON.parse( json );
    		console.log( 'Valid JSON: ' + json );
    	} catch( ex ) {
    		console.log( 'Invalid JSON: ' + json );
    	}
    } );
    
    Output:
    Valid JSON: false
    Invalid JSON: {ted:false}
    Valid JSON: {"ted":false}
    


  • Whatever library you're using, it's broken. It's probably just running Eval(). The outermost object in JSON has to be either an object {} or an array []].

    You can have an object that's equivalent to null. You can't have one that's equivalent to false.

    LOOKIE WEB PROOFSSSS that site everybody LOVES sez I'm right I win cookies give me all the cookies yum yum


  • Considered Harmful

    @blakeyrat said:

    Whatever library you're using, it's broken. It's probably just running Eval(). The outermost object in JSON has to be either an object {} or an array [].

    I'm using the builtin Firefox implementation. No library. I get similar results with the Chrome builtin engine. And node.js'. The output is identical in all three.



  • Well it's time you learned that a lot of open source products are buggy pieces of shit. Congratulations.


  • Considered Harmful

    @blakeyrat said:

    Well it's time you learned that a lot of open source products are buggy pieces of shit. Congratulations.

    Would you look at that. Microsoft Internet Explorer has the same bug.


  • BINNED

    @Lorne Kates said:

    I couldn't say if a similar article could be written about ANY language

    In a way, yes. The old saying is that there are two types of languages: those that people complain about and those that nobody uses. That said, an article about Haskell would have an entirely different list of complaints.



  • Oh noes you have shattered my entire worldview, you cursed brat! I am melting, melting! Oh what a world! What a world! Who would have thought a good little girl like you could destroy my beautiful wickedness?



  • @blakeyrat said:

    Whatever library you're using, it's broken.

    Keys need to be in quotes in JSON. They don't need to be in JS. So JSON.parse is right to fail on your example.


Log in to reply