Jul
02

Is Locked? 2017

Rediscovered one of my software projects from the space-year 2011: Is Locked

It's a little program that allows you to drag and drop files into it and it'll tell you if those files are currently locked (either by another program or Windows itself). I made this for myself as I wanted to quickly know which of the multitude of files I was transferring via FTP were complete.

Any unlocked files can be copied or moved to the clipboard (via a true FileDrop drag operation; not just a textual representation of their filenames) ready to be pasted into an Explorer or whatever window.

Needs a little bit more polishing and then I'll kick it out there; I managed to resist redoing the GUI to be a more modern flat-style, otherwise it may not get released again.

There's so many projects that are on the verge of completion but I just haven't bothered sorting out that last couple of percent.


Windows Re-installed!

Alright, Windows itself installed extremely quickly but installing stuff like Visual Studio took forever. It's now all finally done.

There are various issues in FileSieve that need to be fixed before I can release 4.20, so I'll continue work on it tomorrow (a Monday) rather than jumping into it mid-day on a Sunday. The Method/Modifier settings not being loaded at the right time is extremely confusing so will need a huge amount of thought and debugging.

Jul
01

Reinstalling Windows 2017

Alright, this messed-up Windows install is annoying me too much to continue. Time to re-install Windows 10 again to see if it'll actually work properly this time...

Edit: I couldn't find this info anywhere, although it tells you after you click the Delete everything option.

Does the Reset PC -> Remove everything option also wipe/format any other installed drives and partitions?

The answer is: it's up to you.

Windows will tell you that there's more than one drive installed and will ask you if you want to just format the drive Windows is installed on or format all drives.

Now you know.

Edit 2: Damn Windows installs fast. 6-8 minutes, maybe?

Jun
30

Broken Chrome and Windows Re-installation 2017

As rare as Windows (10) re-installations are these days, a fresh installation being immediately broken has happened at least twice now.

Some applications can't save their settings and Google Chrome now won't open most Google services due to NET::ERR_CERT_AUTHORITY_INVALID and HSTS errors.

I'm supposed to be doing some major FileSieve work over the next few days!

Edit: More information on the Chrome issue.

But first, system information: Windows 10 x64 (Creator's Update), GeForce GTX 770, Skylake i7 6700K CPU, 32GB RAM; all updated drivers

The cert problem in Chrome is something I've seen a bit too often over the years; with no change in the OS environment, Chrome will start giving the NET::ERR_CERT_AUTHORITY_INVALID error, along with a message that the site can't be seen at all due to it using HSTS. But this is new in that its specifically the Google services, and Gmail's missing icons.

Microsoft Edge works without issues. For the first time - ever.

This is happening for YouTube, the Chrome Store; not sure if it's affecting non-Google sites as I haven't browsed many today. One difference, though, is Gmail works but its web-fonts(?) are blank. Uh, how do I show a screenshot in Markdown...

Gmail: no icons

The vertical lines denote where I snipped the image to reduce its width.

The screenshot shows that various within-button icons are entirely missing, including the images displayed within each tab.

Additionally, the Hangouts Chrome extension won't sign-in.

Edit 2: Argh, re-installed Windows and everything works fine - except Chrome. It's now complaining with the same error above (seems it's when I restart Windows?), but thankfully I'm able to fix it via the following:

Fully exit Chrome via the systray icon
Open a command prompt in Windows
Type `ipconfig /flushdns`, and hit Enter
Open Chrome and it works correctly

Jun
28

Cores, Plugins, and Rewrites 2017

What a frantic couple of hours.

A user - the same as the previous post(s) - reported another couple of issues involving FileSieve, audio tag data, and Windows path and file names.

The first being that any audio files with a genre with a slash character (which is invalid in a Windows path - when not used a path separator - or filename) wasn't having those slashes replaced with a valid delimiter. This was an easy fix as the slashes were correctly being replaced, but any files that had multiple genres weren't having a delimiter appended after each genre (with the last dangling delimiter being stripped off the end), so you'd end up with a genre of FolkPop as opposed to Folk, Pop.

The second issue involves the way Windows treats directory - and probably file - names that end in a full-stop or a full-stop and a space. To put it bluntly: it doesn't bloody well like it.

FileSieve creates a directory based on a file's audio tag data, such as (minus quotes) D.I.S.C.O. but Windows internally, somewhere, "corrects" that to D.I.S.C.O thus stripping off the trailing full-stop. If there was a space after the full-stop, then it removes that, too.

Of course FileSieve doesn't see this ninja-change that happened internally within Windows and then chucks an error into the log saying that it couldn't find the file. That's because Windows stuck its D in our A.

Then I ran into an issue while beginning to debug the above path issue. Of course I did.

The (audio) Tag and (photo) EXIF plugins. They allow a mask to be set, such as %ALBUM_TITLE%\%TRACK%. %TITLE%.%FILE_EXTENSION%. When an (audio) file is processed, it would be placed into a directory and named as follows:

My Album\01. My Song.mp3

Except it doesn't. The file isn't actually renamed at all; the directory structure is created, but the filename is kept the same as the original.

This, as initial impressions appear, may be due to a core change made within FileSieve's processing. Plugins set a processed item's Path property independently of its Filename property. This means that plugins don't need a pile of additional logic to determine and set an item's path and filename. FileSieve's core will do that.

Unfortunately, it appears the Tag and EXIF plugins weren't updated to make use of this change and so treat both the path and file names as one property. Tomorrow, this changes.


Replace Main Site?

Been wondering the last couple of days if I should replace the main BootBlock.co.uk site with this, instead?

The main site was supposed to have a combination of quick updates like this and big, main articles - hence the Articles link on the side. But the problem is that the site feels too "bulky" and ill-suited to the quick-fire posts like these, so I'm wondering if I should just bin it and shove this in its place.

Would be a shame to lose some of the articles, though, such as the Learning to Drive series.

Need to think about it more; plus, if I do switch it over eventually, then they will be more content to see as I'm hoping to update this daily - if I do development every day.

Jun
27

Wonky Path Handling: Fixed! 2017

Finally got to the bottom of the issue that user was having with directory names in FileSieve.

Turns out it was due to a Modifier plugin affecting the entire path of items rather than just the path after the root destination.

FileSieve creates directories within a destination the user specifies, but the Find Replace modifier plugin was performing its modifications on the entire path, including the drive letter. There's absolutely no point to this (it was an oversight, originally - now corrected) as the destination already exists and cannot be modified (eg. changing case).

This user was using the Find Replace modifier in a really good way - replacing invalid characters with valid ones so FileSieve doesn't skip out on them. But using the previous (incorrect) entire-path-is-affected replacement style replaced the : colon character (as part of the drive letter) with a suitable replacement as specified by the user.

Oops. Now fixed; hopefully verified by the user himself as I've done a test build. A full release will be made shortly after verification.

While I was working with FileSieve anyway I also fixed some other stuff and re-instated the Invalid Filename Editor to replace any invalid characters encountered within filenames - a more consistent and low-level version of the Find Replace substitution method above.


Invalid Filename Editor

Invalid characters in filenames suck.

Any plugins in FileSieve that return an invalid character results in the file the plugin is working on being skipped due to a failure when combining paths together. This is a controlled failure, I suppose you could say, but it's a failure nonetheless.

Despite adding an Invalid Filename Editor to the previous version of FileSieve, I disabled it as I wasn't sure at which step invalid characters should be substituted. Well, due to a quirk/bug involving filenames as reported by a user, I had another go at getting this working again.

Substitution now happens before path combining occurs, which I'm not 100% sure is the correct location. More of a semantic thing, but I'd like to move it to another step - not easy to do as this occurs during a (project-wide) plugin that does not reference the main, parent application.

Jun
26

Modifier: Find Replace 2017

A couple of new categories for the site!

Today someone actually registered on the Tracker.BootBlock.co.uk site for the first time, and as a bonus, they even created a nicely detailed bug report.

So I began working on fixing the bug in FileSieve (specifically, a plugin) and instead got side-tracked and added a preset set of filters for removing invalid OS characters from filenames.

Next up will be to add low-level support for removing/replacing invalid characters rather than shoving it into a plugin, and fixing the reported bug.

Edit: The date grouping issue on this site doesn't look like it has been fully resolved.


Sub-Sorting Problem

Had a bit of an issue - and still do - with sorting returned database results; all posts are returned in descending creation date order, which is expected.

Unfortunately, due to the whole date-grouping-thing where multiple posts on the same day only use one date heading to reduce visual clutter, the posts for said day would be sorted in reverse, as a side-effect of the overreaching creation date ordering above.

I briefly tried to perform a sub-sort as part of the initial SQL query but I didn't get anywhere. I'm still not sure how to fix this without creating additional arrays and sorting those. That'll be saved as a last resort.