Sunday, 9 July 2017

NSURLConnection won't die!


Integrity has been the most interesting project of my life.

I believe that the success of the web is down to the html standard and its flexibility *. It's human-readable, human-writable and web browsers do their best to render a page, whatever problems there might be.

I hate to think how many hundreds of hours of work that this has made for me over the last ten years.

With many applications, you can press every button, test all scenarios and be sure that it works. But with a web crawler you can test it on 99 websites, and it'll fail when the first person tries to use it **.

In order to have a reliable web crawler which parses html itself, you have to investigate every problem and improve your code  to handle whatever new unpredictable thing has been tripping it up.

It's taken ten years of this hard work for Integrity (and other related apps which use the same engine) to be as stable as it is. It has more users than ever and head-scratching problems are very few and far between now.

The worst times are where the problem happens at a deeper system level and you can get no debug information.

At a very high level, you can obtain data for a url in a single line. At the opposite extreme you can get involved with sockets etc. for Integrity I've taken the middle ground, creating the response and asynchronous  connection and using delegate methods to monitor what's happening and be able to intervene if necessary.

But there comes a point where you say au revoir to the request / connection and wait for your various notifications. If the response / notification is unexpected then you're down to some educated guesswork and trial and error.

That's what's happened this week. At a certain point through scanning particular sites, all NSURLConnections would appear to 'lock up' and all would return timeout notifications. (And any further NSURLConnections created to any url within that app would also time out until the app was quit and re-started even though the same urls would respond in any other app.

As usual there are many questions and answers online, with many suggestions that aren't relevant or have no effect.

I eventually got somewhere with a process of elimination - stripping the relevant code down to bare essentials until the problem had gone, then adding the original code back in, chunk by chunk until it stopped working again.

It appears that the problem is related to connections staying alive. The app obviously manages the number of simultaneous connections, and either lets one connection load all its data and complete naturally, or cancel it (if that data isn't needed)  before creating a new connection to replace it.

I think what's going wrong in these cases is that when you think you've let go of a connection with [connection cancel], that connection sometimes stays open, and the next one isn't replacing it but adding to the number until some limit is hit.

Removing all [connection cancel]s and allowing every connection to load and finish naturally completely solved the problem.

Making better use of the HEAD method (when you know that you only need the status but not the data) and explicitly making sure those requests have 'connection: close' in the request header should solve the problem but it doesn't entirely.

There's a lot I still don't know - why is a connection sometimes staying alive after it's been cancelled (or in the case of a HEAD request, when it has supplied the header info and says that it's done). If anyone knows, do tell!







* Despite Microsoft's and Netscape's best attempts to make it their own, it's survived as a truly universal standard - anyone can make a web page that can be read in any browser. It's an unusual thing and the IoT has a lesson to learn.

** There are some ridiculously unexpected things in the code of some websites (written by humans and written by machines)

Thursday, 6 July 2017

Here is the first look at a new drag and drop lighting effects designer for our Hue-topia and LIFXstyle light controllers.



You'll be able to create more sophisticated versions of the false dawn / dusk or go the whole hog and create a 24hr daylight simulator (blue hour / golden hour etc)

And you'll be able to get creative and design mood effects such as flickering fire, colour cycling for party effects or mood.

I think all bases are covered, you can set the length of the whole cycle from 1s to 24hrs, whether it's 'one shot' or loops, the length of the transitions.

You can apply effects to a single bulb, groups or rooms, manually or on schedule.

There still a little work to do, inclusion in a new version of LIFXstyle and Hue-topia is planned soon.

Monday, 19 June 2017

Airfoil Satellite support in Screensleeves

Following some recent updates to Screensleeves I had a request for Airfoil satellite support.


Airfoil Satellite running on your Mac allows you to stream music from another device. Happily the stream contains meta data and Rogue Amoeba (AS's developers) have made that information accessible, so adding support to Screensleeves was a breeze.

So Screensleeves can now display cover artwork, track name, album name and artist name (assuming that the information is provided by the original music source). This will all display within any of Screensleeves' themes. Unfortunately the progress bar and some other details aren't available via Airfoil Satellite at this point, but maybe that will change in future.

The basic Screensleeves and Screensleeves Pro are now available at version 5.4.0  which contains AS support.

Wednesday, 14 June 2017

A step forward with French localisation for Integrity & Scrutiny

The translator and I decided to take a phased approach to this project. We started with the applications' web pages, the next step was the context help within the app


I realise that it all looks a little 'Franglais' at the moment, but the buttons and labels are next.

(The localized context help for French speakers will be in the next point releases, Scrutiny 7.4.3 and Integrity / Integrity Plus 6.9.1)

Friday, 9 June 2017

Reminder - Scrutiny in current Bundlehunt app bundle

[Edit 14/6/17] this bundle has now finished.

A reminder that Scrutiny is included in the current bundle at Bundlehunt for a few more days only. For a fraction of the price of Scrutiny, you can obtain it along with 11 other Mac apps.






Wednesday, 7 June 2017

Where has Objective C gone in Apple's Documentation?

Today for the first time I noticed that I'm no longer able to choose Objective C as my preferred syntax
It's bugged me for a long time that these pages always appear pre-selected with Swift and don't remember my selection of Objective C.

To be fair, this isn't entirely unexpected. When Swift was announced, it was unlikely that they'd run the two languages in parallel for any length of time. I've been forced to learn another language in the past; my first dealings with Cocoa were in Java-cocoa (sounds tasty!). (Java was the first OO language I learned). Translating an entire project from the Java syntax to Obj-C when I could no longer compile the Java-Cocoa code was a PITA.

I felt the wind of change when I started to notice that the first solutions I found to problems contained Swift code rather than Objective C, and I either had to translate (easy if you're just looking for the best method to use, but harder if it's a whole block of example code you want to use) or keep Googling for another answer with an Obj-C code example.

I guess I'll have to find out how to use the built-in documentation and wait for the day that things are available in Swift but not Obj C.

Tuesday, 6 June 2017

First thoughts on yesterday's announcements

With each year's announcements it's always a relief to hear that the Mac has at least another year of life. The convergence of Mac and iOS is taking many years to happen. Yesterdays talk of enhancing Sierra with efficiencies and switch to the Apple File System was pretty welcome.

I'm very curious about the VR and AR stuff, but more from a 'playing' perspective rather than seeing ways to incorporate them into what I do. But the machine-learning stuff I really can; I've been waiting for an API built into the OS for doing that kind of stuff.

I'd always expected the Mac to continue morphing into iOS but the biggest surprise yesterday was files / drag and drop / enhanced dock in iOS. (Meaning that the convergence is going to end up closer to the Mac than anticipated.) And as Craig demo'd all of this, his iPad screen looked more like the macOS than I'd ever expected.
I'm not that bothered about the home pad, I think the built-in intelligence is a lot of guff, and they're very late to the party with a voice-activated computer in the room, I guess they thought the advanced speaker stuff was an area that Google and Amazon had been neglecting.


Monday, 5 June 2017

Best viewed.....

This makes me laugh out loud... seen at the bottom of one of my favourite sites:
Thankfully the days of 'this site is best viewed in...'  are now largely confined to history - but I'm fully with anyone who doesn't want the ball-ache of spending days trying to make their site look half-decent in certain versions of IE.

routine update for Screensleeves

Yesterday Screensleeves (free and pro versions) received a maintenance update; some small updates, improvements and the odd little glitch fixed.



It's the first update in a while. But then if something's working pretty well, should it be important to do some work and release a new version? There are definite marketing advantages (exposure).

Over the weekend I had an app pulled from the App Store, on the grounds that it hadn't been updated for a while. I hate the Store and haven't supported it for a long while, and this is a minor app that I haven't sold a copy of for a long time and have been wondering whether to stop supporting anyway. When uploading apps is such a headache anyway, the obligation to do it regularly in order to avoid them dropping an app just seems like another hoop to jump through. But it did make me feel a little offended.

On the positive side, the Apple's policy does keep their store free of abandoned apps. I've seen users refer to apps as 'abandonware' if they haven't been updated in a couple of years.


Friday, 2 June 2017

routine flights to the moon, iPads and film processing

I'm thoroughly enjoying this read. I love the film but the medium of film doesn't allow for a lot of explanation, and Kubrick seems to go out of his way to *not* find clever ways to explain things, leaving quite a hallucinogenic experience.

Something I really love about old sci-fi (I recommend Metropolis, Solaris) is seeing the vision of the future from the past.

The film (2001 a space odyssey - 1968) famously contains images of what look like iPads. And just like today, the pads are sitting on the table while people are eating.

I was delighted to read the description of the 'newspad' in the book. It goes well beyond the physical description depicted in the film. Clarke uses far more words to describe the convenience of instant access to the world's news, up-to-the-hour if not the minute than the physical form of the pad.

Much is made of Clarke's accurate predictions, but in this book as well as others, the missed predictions are as delightful. Along with all sci-fi authors, Clarke predicts the future with his own world around him, thus the newspad needs connecting with a wire, and it's necessary to read a reference code on each news article and type the code into a keyboard to read the article, thus no prediction of wireless data, hyperlinks or touch-screens.

The best mis-prediction I've read in this book, is of pictures being taken by the moon colonists - and sent to the lab for processing!

Wednesday, 31 May 2017

Scrutiny and WIX sites

Wix make it easy to create a website, but their reliance on javascript and plugins (including Flash apparently) makes it a challenge for webcrawlers, including Googlebot, to index the content.

It seems that Google have had to go out of their way to index these sites. There used to be a hack to get at plain html content, which I used to give as a workaround to users wanting to scan Wix sites, but that no longer appears to work.

As someone with a background in website accessibility, this all seems appalling to me*.

But they're gaining ground, I seem to be seeing more support questions about scanning WIX sites. (and their *!^%$ advert that I have to skip before almost every Youtube video I watch. When is Yotube Red going to be available in the UK??)

Unless anyone knows otherwise (please, please tell me if you know), WIX relies on a/ providing its users with an xml sitemap for submission to Google, and b/ Google being able to render js before indexing a page (again, as an old-fashioned gal, something I heartily disapprove of* )

Scrutiny has long been able to render javascript before parsing page content. There have always been a small number of sites which have menus and links that are written by js when the page loads. I've recently done some work to ensure proper scanning of such a site.

So... here's my best advice for scanning a Wix site using Scrutiny (Integrity and Integrity Plus don't have the necessary js option).

1. Make sure you have Scrutiny 7.4.1 or higher, which contains some necessary improvements to the js functionality. The most up-to-date version of scrutiny is always here.

2. Switch on 'Render Javascript' which is in the Advanced settings for your site.
3. Turn down your number of threads. You can see I'm using 3 here (first notch). Using the js option is very heavy in terms of client-side processing. You don't want pages timing out without having loaded because Scrutiny is working hard at rendering a large number of pages. If your website scans fully then maybe edge this up a bit but best to err on the side of caution.
4. Go and make a cup of tea. This is going to take some time.
5. After the scan, switch on the Target Size column of the 'by link' table and check whether any of the Internal links have a target size of zero (switch the Filter button to Internal to see this more easily). If an internal page has zero kb as the target size, then it may have timed out before the page had finished loading / rendering, which means that you may have an incomplete scan.

If that looks well then you're good to go with your data, which should be complete.



* It's not the javascript I disapprove of, but the fact that the page is 'invisible' without the js being rendered. Accessibility guidelines state that we must "Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page." (Web content accessibility guidelines, checkpoint 6.3 -  a priority 1)
SaveSave

Tuesday, 30 May 2017

Sharpresize v2 now fully released

SharpResize v2 is now out of beta. It's a lightweight application (ie quick to start up) for making a better thumbnail / resized for web  image. The great result is due to the combination of the resizing algorithm it uses along with an additional sharpening slider.
Despite being a lightweight app it now has a good selection of adjustment sliders and built-in filters. (sepia, black and white, posterize etc).
We've decided to keep the price down. In fact as it's now priced in dollars (1.95 USD) it's a little less in real terms than the previous GBP price.

More information and the download are here

The guide is here.

Friday, 26 May 2017

Alongside our recent post about supporting International Domain names within our web crawling tools, we're very proud and excited to announce that work has started on translating some apps and some web pages into other languages. Initially French, and initially Integrity, Integrity Plus and Scrutiny.


It's impossible to do all of the work at once, it will take a little while but the web pages for Integrity, Integrity Plus and Scrutiny now allow you to choose (top-right) English or French versions of the pages.

Localized context help in French is shortly to go into those apps, followed by the rest of the text within the apps.

Thursday, 25 May 2017

When is a link internal.....

Here's an interesting situation.

The website being scanned was http://peacockmedia.software.  As you can see, the link found during the crawl is a link to a page on peacockmedia.co.uk . That looks like an external link, and so Scrutiny has marked it as an external link, therefore checked its status but not followed it.

However, it redirects to a url on peacockmedia.software - so the ultimate destination is an internal one.

There are a bunch of pages which will only be discovered if this link is considered internal.

(the pages are old manual pages - I want them to be orphaned, but that's beside the point...)

The question is - should Integrity and Scrutiny consider that link *internal* (and therefore follow it and discover more internal pages) or *external* (so it's checked but then is a dead end). Remember that the original link is to an external domain.

Wednesday, 24 May 2017

Heads-up : Internationalised Domain Names (IDNs) supported in our web crawlers

We're a UK-based concern, our apps have been almost always available in a single language - UK English (or just English as we call it here in England!)  The vast majority of our users as I write this are from English-speaking countries.

Our alphabet entirely consists of characters available in ascii, and so there has been little call for Integrity, Integrity Plus and Scrutiny (and other tools based on the same engine) to support domain names - ie domain names which contain characters not found in the ascii character set.



But now we've started work on localisation of our apps and web pages, and have received the odd question concerning IDNs.

Let's not confuse this with unusual characters in the path and filename of the url. Our apps have long supported these. You may still see the non-ascii characters displayed, but behind the scenes, those characters are encoded before the http request is put together, usually using a percent-encoding system.

The method is similar with the domain name, but using a a more complex and clever system of character encoding. Browsers (and our web crawlers) often still display the user-friendly unicode version.

You can enter your starting url in the unicode form or the 'punycode' form and it'll be handled correctly. The same goes for unicode or punycode links found on your pages.

Personally, I'm not keen, this does allow for spoofing of legitimate domains using similar characters. There are rules excluding many characters for these reasons.

After lots of extra homework for us, Scrutiny is now handling IDNs, and is in testing.

[update 26 May 2017] Integrity and Integrity Plus also have this enhancement and are also in testing.

If this is useful for you, and you'd like to try the new version (remembering that there may still be the odd bug to iron out)  then you're very welcome to download and use it (with the condition that you let us know about any issues you spot.)

Integrity
http://peacockmedia.software/mac/integrity/integrity69.dmg

Integrity Plus
http://peacockmedia.software/mac/integrity-plus/integrity-plus69.dmg

Scrutiny
http://peacockmedia.software/mac/scrutiny/scrutiny47.dmg

Monday, 22 May 2017

List of all of a site's images, with file sizes

A recent enhancement to Scrutiny and Integrity make it easy to see a list of all images on a site, with file size.

It was already possible to check all images (not just the ones that are linked, ie a href = "image.jpg" but the actual images on the page, img src = "image.jpg"  srcset = "image@2x.jpg 2x" )

The file size was also held within Scrutiny and Integrity, but wasn't displayed in the links views.

Now it is. It's a sortable column and will be included in the csv or html export.

Before the crawl, make sure that you switch on checking images:

or

You may need to switch on that column if it's not already showing - it's called 'Target size'.

Once it is showing, as with other columns in these tables, you can drag and drop them into a different order, and resize their width.

To see just the images - choose Images from the filter button over on the right (Scrutiny and Integrity Plus)


If you're checking other linked files (js or css) then their sizes may be displayed, but will probably have a ? beside them to indicate that the file size shown has not been downloaded and the uncompressed size verified (the size shown is provided in the server header fields).

This last point applies to Integrity and Integrity Plus, and will appear in Scrutiny shortly.

Note that all of this is just a measure of the sizes of all files found during a crawl. For a comprehensive load speed test on a given page, Scrutiny has such a tool - access it with cmd-2 or Tools > Page Analysis







Thursday, 18 May 2017

Post-apocalyptic life skills : handwriting

Self-service is great, if all goes as planned then it's efficient and easy for both customer and seller. (Though I still resist the self-service tills at my local convenience store - I think I care too much about the 4 or 5 jobs that have clearly gone redundant as a result. Plus - the store is reaping the benefit of the customer doing those ladies' jobs, without paying the customer in any way for doing that job.)


Anyway. When it doesn't go as planned is when the fun and games start.

Today I found myself needing to get back to a customer urgently, but the email address bounced as 'user not known'. Leaving me with a postal address.

The old business-letter-writing skills came back pretty easily; my address on the right, their address below and to the left, sincerely if you know their name, faithfully if you don't etc.

(I'm an old-fashioned kinda girl. Printing off the attempted email and putting that in an envelope wasn't going to happen.)

I was wrong to think that it would be quicker to write the address on the envelope than to work out how to print it on a label or put the envelope through the printer.

I draw a lot, but I don't write very much at all now. My handwriting was never great, it seems to be appalling now. After several practice goes, I got a result that wasn't as hideous as the first ones.




.... then turned it over and found that the address was upside-down! How crap does that look?

I'm not going to be among the survivors after the aliens come and hit us with a big EMP device.

Wednesday, 17 May 2017

Don't we love rules?


I've just Googled 'html5 page structure' to check something. The post that appeared first consists of a very simple code snippet followed by around a hundred comments, some asking questions but mostly asserting an opinion. (none spammy or trolly).

Without wanting to get very deeply into the actual topic itself (and maybe risking the odd comment myself....) a large number of those comments are about whether a section tag is allowed within an article tag and vice versa. It seems that anything goes as far as these two are concerned. But my, don't we love rules?

It reminds me of those areas of cities where the pavement and road have been paved over into one homogenous area. I hate them; surely it's better if there are rules that everyone knows?

It occurs to me that the vast number of relevant comments could be responsible for that post being ranked #1 for such a popular search term. I'm sure there's a lesson there somewhere...

Tuesday, 16 May 2017

Hidden Gems in Scrutiny 7: Locate a broken link

This tip applies to Integrity, Integrity Plus and Scrutiny.

So the app is reporting a broken link (or maybe it's a redirect you're interested in, or just a good link). You can easily see, copy or visit the target of the link, or the page it appears on. But how did the crawl find this particular page?

The Locate function will tell you. First open the link inspector by double-clicking on the link in one of the Links views Then highlight the 'appears on' page you're interested in, and click 'Locate'.

It won't show you every possible route to that link, but it will show you the shortest.

note that there's a context menu there too with these options.


You may have noticed that the link inspector and the context menus have a 'Highlight' option too. If you're having trouble seeing the link on the page, the Highlight option will do its best to open the page and apply yellow highlighter.



Monday, 15 May 2017

Scrutiny plus 11 other apps for $19.99

[Edit 14/6/17] this bundle has now finished.

 Bundlehunt have just gone live with an offer that includes Scrutiny.
Choose 12 from more than 60 premium apps and pay $19.99

The Scrutiny licence is the full per-user licence for the current version, 7.3.1, usually $115.

Improvements since 7.3 include

  • Improved insecure content reporting - the table now shows all issues - secure pages which contain links to insecure ones, and pages with mixed content.
  • Manage the autosaved data and selectively trash what you don't need.
  • see all images with their file size
  • Other small fixes and enhancements


Sunday, 14 May 2017

SharpResize Help, updated for v2.0

This article uses SharpResize and is updated for version 2, which creates better thumbnails. Version 2 is available shortly as beta.
In this article:

  • Opening an Image
  • Quality and Size
  • Adjustments
  • Additional Output Sizes
  • Batch Image Processing
  • Saving

Opening an Image

There are several ways to get your image into SharpResize.
  • New from clipboard using File > New From Clipboard or cmd-N
  • Drag the image onto application's dock icon
  • Drag the image onto application icon or alias
  • Drag the image into SharpResize's image well
  • File > Open or cmd-O
Tip: You can grab an area of the screen using cmd-ctrl-shift-4. Drag a rectangle and see the width and height of your selection. It's not an easy shortcut to remember but worthwhile.

In addition there are toolbar buttons for New from Clipboard, Open and Save.



Retina Screens

A note about retina screens. This is a confusing subject, pixels can refer to the number of dots within an image and the actual physical pixels on the display, or it can be used as a a measurement similar to points.

Because SharpResize is designed primarily for resizing images for the web, it will display your image at '1x' - ie the size that it would appear if you specified your size in pixels in a CSS. If you're using a retina screen, then this would obviously look fuzzy and you wouldn't be able to make proper judgement when making adjustments to sharpness etc.

So SharpResize has a setting in Preferences:

As it says, the 2x version of your image will be displayed while you're working. This setting should be auto-detected when you first run SharpResize.

If you want to save the actual version of the image that you're seeing while you're working, make sure that you have 2x selected in the Additional sizes.

Quality and size

When you open a new image, the width and height won't immediately set themselves to the size of your image because Sharpresize is about creating thumbnails, and the width and height fields may be set to the size that you want your thumbnail to end up.

If you do want to set the output size to the actual size of the image, press 'Actual' or cmd-=

If you want the resized image to have the same aspect ratio as the original, make sure the padlock  is in the 'locked' position.

If the padlock is in the 'unlock' position, then you can set the height and width to whatever you like, and you'll see additional controls relating to whether you want to crop your original image to size or add white, grey or black etc.

Resizing will be performed with Lanczos sharpening which is noticeably better than the more usual bicubic. You will see the output image displayed in the image well.
The Sharpening slider applies a further filter to further improve a resized image. Use judiciously - too much will result in an artificial look. The best setting here will depend on the image. Most pictures seem to look best with the slider about a third of the way. If the image includes text, any more than a small amount of sharpening can spoil the anti-aliasing and make the text look jagged.

Under the Output File tab, the Quality slider sets the jpeg compression of the output. (If you have the jpg output file format selected.) For maximum quality you'll also get the maximum file size but the file size can be reduced significantly (maybe halved) by backing off that slider a tiny bit below maximum.

Adjustments

Version 2 has more controls for adjusting the output image, and also a few filters, such as Sepia and Black and White.


Like a little extra vibrance with your sharpening? No problem.

Additional Output Sizes

The height and width fields are important, they'll set the dimensions of the primary output image for all input images.  You can now create and select additional sizes (for example, a banner-format image, or a square image, or a @2x image).  These can be relative to the original image size, or your primary output image, or have absolute dimensions.




Batch Image Processing


Version 2 allows you to drag and drop or open multiple images. They'll all be resized using the height and width that you've set and all using the same sharpness and adjustments that you've set. if you've created and selected additional output sizes, each input image will be saved with all output sizes.

Saving

You can save the image using File > Save, cmd-S or the toolbar Save button.

If you have opened multiple images, you will be asked to choose a folder for the output images (at least one output image for each that you've opened). Files will be saved with their original names. If you've chosen additional sizes for each image, the filename modifier will be applied.

There's a preference to set whether SR saves all of these images directly in the folder that you've chosen, or whether it creates a new folder with a unique name and saves the images within that. The latter method is set by default, and is less likely to cause filename conflicts.

If you have opened a single image (regardless of how many output images you want) then you'll be asked to choose a filename, and your output images will be saved with that filename, with modifier where appropriate.

Saturday, 13 May 2017

This *one weird trick* will cure your website of all ills

Do people really fall for those headlines? Surely we're all aware by now that anything that sounds too good to be true always is. And that if you ever do take the plunge into that clickbait labyrinth and ever do find the promised information, it's sure to disappoint.

A spam email about Mother's Day, which turned out to be selling cleaning products, nearly made funniest spam email this week (also the one from Dick Richardson offering to send a bag of gummy dicks to the person of your choice for $15) but all of that was pipped at the post by this one:
When I say funny, I do find it sad that it's reinforcing and preying on fear and anxiety. The funny part is the '4Idiots' part.

I can almost understand how the 'for Dummies' series works, people are often self-deprecatory when it comes to technical things.

But what man with anxiety about his height is going to click a link that says 'for idiots'?

I'm still wondering whether it's a parody. The author appears to be saying 'you'd have to be an idiot to believe this!'

(For the record, the subject line mentions HGH. This can significantly increase height but only if you haven't stopped growing, this may work into someone's twenties but there's no mention of that here.)

Anyway. You clicked a 'one weird trick' link and arrived here. Maybe it's not an empty promise this time; we're responsible for Scrutiny, which can quickly scan your website and report broken links, SEO issues, spelling and much more.

Scrutiny is the premium product. For no-frills link-checking, there's the free Integrity, and for more features, it's paid sister Integrity Plus. Too good to be true?  The paid apps offer free trials, so you've nothing to lose by finding out.



SaveSave

Friday, 12 May 2017

Hidden Gems in Scrutiny 7: Run multiple website scans (and other things) at the same time

This may be Scrutiny's coolest trick (other than its main job of zipping through a website like a dose of salts and presenting loads of data).

It may not really be a hidden gem, because it's mentioned in lots of places and one of the main new features of version 7, but if you've just downloaded Scrutiny and run it, you may have missed it.

As the title of this post suggests, Scrutiny 7 allows you to open multiple windows and scan a site or do anything else you like within them, examine some data or configure the settings for another site.

Unsurprisingly, File>New (cmd-N) will open a new window for you to use as you see fit.


Wednesday, 10 May 2017

Google: "No more deceptive download buttons" (Feb 2006). Still waiting.

I've just come across this article from Feb 2006 on the Google Security Blog called No More Deceptive Download Buttons. It was mentioned in a recent article on the Google Webmaster Central Blog.

It's a problem that I've been very frustrated about in recent years. This is Scrutiny's page on MacUpdate. This is an incredibly important page for me; Scrutiny is my flagship product and MU are probably the leading mac app site outside of Apple's Mac App Store (which I have real problems with and don't support).

At the size you're seeing this screenshot, you'll find it hard to pick out the real 'download' link for Scrutiny, but you won't have any trouble seeing three massive download buttons which are unrelated.

My example here is from MacUpdate because of their importance to me, but the problem is everywhere, I'm sure you're more than familiar with it and are already skilled in hunting for the real link among the ads, or are blocking ads.

To be fair, the number of deceptive download buttons on that page does vary (There are more ads as you scroll down) and you get a different selection of ads every time you view the page (Google ads, via Doubleclick) but it's unusual for me not to see at least two big green download buttons high up that page.

It would be nice to see an end to this, but in these days of people expecting the product to be free, advertising comes into play, and advertisers will do what they can to attract that click.

Tuesday, 9 May 2017

Hidden gems: Scrutiny 7's Autosave feature

Some of Scrutiny's coolest tricks may not be terribly well documented, so I thought I'd start a series of articles here.

Previous versions of Scrutiny had an 'Autosave' checkbox. With the feature turned on, any data that was in memory would still be there after quitting (deliberately or unintentionally) and re-starting the app.


(Note that this option is in Scrutiny's Preferences, not the site settings.)

In Version 7, the same option is there but the app goes much further. With the feature switched on, Scrutiny will save the data from the most recent crawl of each site. This means all data; link check results, sitemap, SEO data, spell check, everything.

If crawl data exists for a site, then you'll see the database icon with the site's configuration. This takes you straight to the Results selection screen.

Since version 7.3 this feature is on by default for new users. So if you are scanning very large sites and short of disc space, you may want to switch the feature off (note that you can still save and load data manually using File > Save data and File > Open). But you may not want to switch Autosave off, because this window (below) shows the data that Scrutiny is keeping (with dates and sizes) and you can use this 'data manager' to selectively trash the data that you don't need. The table can be sorted by size, scan date or website name.
This is found under Tools > Manage Autosaved Data (cmd-5)

Wednesday, 3 May 2017

Updated video introduction to Scrutiny for Mac

The video introduction for Scrutiny had become a little out-of-date, it showed version 6. So here's an updated video showing the current version, 7.3.


It'll be of particular interest to users of Integrity or Integrity Plus, and anyone who develops or helps customers with SEO or other website issues.

Application home page http://peacockmedia.software/mac/scrutiny

Saturday, 29 April 2017

Improved reporting of mixed / insecure content / links to old insecure pages in Scrutiny v7.3

Scrutiny has been able to report insecure content for a while; links to insecure (http) pages from your secure pages, and secure pages which use resources with insecure (http) urls.

Scrutiny has even been able to alert you to these problems at the end of the scan.

The question was "why are these things in different places" (pages with mixed content were accessed via the SEO results and 'rogue' links to insecure pages were with the links results).

With version 7.3 this has all been made a little more user-friendly. There's a new results table which shows all of this together in a usable way.


To bring these functions into play, make sure that your starting url is https:// and make sure that you have 'check images' and 'check linked css and js files' switched on in your site's settings

Also check 'Alert when links to http site are found' in Preferences > Links.
At the end of the scan, if any issues are found, you'll be alerted and asked whether you want to go straight to a table of results to see the issues.

But regardless of whether you have this alert switched on or what you choose when you see it, you'll now see 'Insecure Content' as an option on your Results selection screen:

The information is still in the old places too; see the details of 'links to internal http pages from secure pages' in the links tables by choosing 'http: links' from the Filter. And you can see pages with mixed content in the SEO results as before, Select 'mixed content' from the Filter drop-down button. If any pages contain links to insecure resources, they'll be listed.


This is all in Scrutiny version 7.3 which has just been released.