Rixstep
 About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Home » Industry Watch

Keymaster Too

Mind the gap. Accompanies today's ACP release.


Get It

Try It

'For the rectification of the Vuldronaii, we come as a Torb! The Shubs and Zuuls knew what it was to be roasted in the depths of a Sloar that day, we can tell you!'

Ahem.

This took time to get out the door. Not that it took time to finish the updates, but we needed to give people a chance. So now it's out the door.

Once you see the ACP's Keymaster in action, you'll understand. And you'll begin to understand what you're up against on this platform that so many of us wanted to call home.

We've likened it to John Steinbeck's tale of his friend the 'Doc' in Sweet Thursday. If you've read the book - and it's a great book - then you'll know. People driven by shared common sense to a 'safe haven' platform that turns out to be Seahaven. Like the frogs in Sweet Thursday.



Yes, we've been the frogs.

== Mind The Gap ==

They can get away with this on their mobile devices, even as more judicial pressure is brought to bear on them. But none of their platforms are free or open, and that fact is sufficient to drive us all away. They build on open source but don't follow the rules - they cheat. And we suffer.

The 'gap' manifests between the time of your download and the time you first make your system shell aware of the new files. If your files aren't cleansed in this gap, they're put in permanent quarantine, and the rules of that quarantine are bizarre and oppressive to say the least. You'll have to ask permission to save files to your own directories. And so forth.

This has nothing to do with security. Nothing. They make it sound like that, and their sheeple fanbase will follow along without question. But it has nothing to do with system security.

You don't protect a system by sealing files, by sealing each and every file. If Apple's claim should be that your system is not secure, then what the F are you doing here? That 'Mac vs PC' advert campaign: was that all lies? Of course not.

If the most secure personal system on the planet can't give two hoots about this type of thing, then why should you - and why should Apple?

It's all about the Benjamins. An estimated six billion of them. Per year. Get the increasingly disgruntled developers to play along with this sham, and of course they're going to market through Apple's Mac App Store! Of course they will!

There's a gap. Mind the gap. Developers almost have to, if they're to have any peace of mind. That's no way to run a development platform.

Tim Cook's Apple is not Steve Jobs' Apple, and Tim Cook's Apple is in deep trouble. Check what Forbes analysts have been writing for some time. Tim Cook's Apple is going to take the company back to where they were in 1996. Perhaps not today, perhaps not this year, but it'll come. The figures are there. The writing on the wall is easy to read.



Use this platform as best you can. You've invested in it. Perhaps you only own a Mac desktop or laptop or two. OK. Use them. Perhaps you administer a smaller network of Mac hardware. OK. But think about the future, OK?

For Tim Cook's future is not a future you want. Tim Cook doesn't care if you're happy with your Apple products - he just wants to make sure you keep using them. He wants to force Mac developers to use his Mac App Store to market their products so he can pick up his criminal 30% for nothing at all.

Think about it. This charade is incredibly complex, and difficult to understand, and it perplexed us for the longest time, even after we started to wake up.

Why didn't Microsoft improve security on their Windows? That took a long time to figure out too. Now we know.

And, unfortunately, we're again in a squeeze as a greedy corporate monster tries to destroy something good and monetise the bejeezus out of us all.

No panic. We're OK for now. As long as we have the right tools. And, with the ACP, we have the right tools.

But don't kid yourself about the future. Apple's Tim Cook has the proverbial bloodied tooth. He's not about open source. He's not about doing the 'right thing' in comp sci. He's not about anything but pure profit, and he has neither the technical nor the social skills to see how he's going to fail. And too many at Apple refuse to speak out.

Mind the gap. For your own sakes. Stay free.

== What's New ==

Lots of things happening this time. Important updates. Even to Xfile!!one! And nice enhancements to Xattr. But most of all this is about your own ACP version of Keymaster.

== The Keymasters ==

There are now three Keymasters, but you'll need only one. First up is Keymaster Solo, the free version. It's much like the one you got last time, which should mean that your new ACP Keymaster is even better. And it is!

Now you can create your own paths and save collections of paths in Keymaster document files, extension 'KM'.

These files also contain info on screen coordinates, so your Keymaster documents always come up at the same place in the same size.



We fiddled a bit with Apple and their Interface Builder component in Xcode. You'll see the results when you open those Keymaster documents!

The two Keymaster documents are, for now, located in your download root.

The second Keymaster is named 'KeymasterB'. Hopefully you won't need it. We received reports of high CPU on the original Keymaster, this together with a racing FS Events. We saw something similar - only once - on a Mac with a retina screen. (It hasn't returned.) But to avoid this ever happening, we made a special version called KeymasterB that polls (doesn't sleep) every 10 seconds. Don't use this one if you don't need to. (Use top to check the default one to see if it's racing - report it to us if it is.)

Finally, the old Keymaster, the free one, is now called Keymaster Solo. It too polls, just in cases.

== Xattr ==

Xattr is better. Much better! We hate XAs, as you might have noticed. This new Xattr took some time to get right.

What we've done is *wrap* all XA system calls so we loosen perms, then restore them when we're done. So you can safely keep your files read-only, for example, and Xattr will get at the critters anyway!

You can also observe a curious phenomenon with XAs. If file perms are set to '0000' then the XAs can seem to disappear, as the file isn't readable! Xattr now gets around that!

Finally, a 'logical bomb' was found in the Xfile code. Could occur on exotic occasions when dropping a path on its toolbar.

== Research ==

We've also done considerable research on industry use of XAs. You won't believe it. Almost no other OS vendor uses them! Meaning no other vendor has such a constricting system! It's easy to see why Paul Graham condemned them!

IBM and RedHat? Nope. OpenBSD, the most secure personal system on the planet? Nope! They considered it at one point in time but abandoned the idea.

You've been sold a bill of goods.

Think about that until next time. And enjoy the new software!

== The Notes ==

Keymaster - 2019-12-29
---------
Code cleaned, optimised, object reduced, now being tested.

Keymaster - 2019-12-29
---------
Looking into possibility to implement a keymaster launch service. Documentation is muddled, makes several assumptions for the application domain, doesn't address other pertinent matters. Ideal is to get the thing up and running and then completely out of sight.

Keymaster - 2019-12-30
---------
Change bundle sig to RxKm. No biggie - app will run fine as is. Obviously. Four-byte sigs are a bit whiskered anyway.

Keymaster - 2019-12-30
---------
Attempt to make KM 'free' w/o ACP framework - it's too tightly woven - like Jim Allchin's MSIE. ;)

Keymaster - 2019-12-30
---------
Include option for unlimited (currently set to three) iterations.

Keymaster - 2019-12-30
---------
Attempt to make KM 'free' w/o ACP framework - it works. Sort of. Not sure we'll release it. Should we?

Keymaster - 2019-12-31
---------
They can't see XAs. They have no way to defend themselves against the FUD. So we've made a freeware version of Keymaster. A link to the download will be on Keymaster's 'help' file. Please spread this link to everyone. Thank you.

Keymaster - 2020-01-01
---------
A recurring pain is when the events daemon misses something and files don't get cleaned. CandS has a way around this. Keymaster didn't.

Therefore testing the trick to hide and unhide Keymaster. Module will go up to 14568. Testing now (this takes time).

Keymaster - 2020-01-01
---------
Keymaster now tested, documentation updated, back to nursing our hangovers! (Happy New Year!)

Keymaster - 2020-01-01
---------
PS - the method used is to flag for application becoming active. Back to sleep!

Keymaster - 2020-01-01
---------
Xshelf must also disallow minimise, still haven't solved the mystery there - perhaps these 'float on top' can longer be minimised?

Keymaster - 2020-01-05
---------
Testing: 'Go Again' instead of relying on activation to snare slackers. Future version may eliminate activation code.

Keymaster - 2020-01-06
---------
Oh this is getting overly complex. Gotta remember the target demographic. In the case the events daemon is slow - and there's a second sweep after ten seconds so sometimes it can be very very slow - KM used to trigger a clean upon activation. This leaves the unwashed with no way of seeing what's happened - which of course is not our bother, as they've opted not to buy better tools. But still and all, just so you know something's happened, you can now click 'Go Again' to give a new swift cleanse. And you'll get the response: 'done again'. This makes it clearer at any rate. The 'clean on activation' code is still in place for now. But it's starting to feel a bit too complex - and bordering on precariously unwieldy - for what should remain a very simple app.

Keymaster - 2020-01-07
---------
Presser goes out to 594 IT pundits with a better than 20% open rate.

Keymaster - 2020-01-07
---------
New icon 'Screamer'.

Keymaster - 2020-01-10
---------
New icon coming: 'Tiny Tim'.

Keymaster - 2020-01-10
---------
New more efficient code, as CFArray and NSArray are 'toll-free bridged'. 24 bytes more in binary, but worth it.

Keymaster - 2020-01-10
---------
Tedious! Moving code inside class instance, preparing way for document-based app with configurable tableview (but arbitrarily limited to *16* threads (unless we figure something else out (which is not unlikely).

Keymaster - 2020-01-15
---------
First transition step complete - renaming everything in Xbase to Keymaster. Now to put in Keymaster code instead.

(This may take time!)

Keymaster - 2020-01-15
---------
Some Xbase functions must remain such as copy/paste and drag-drop. Somehow. So one can transfer between docs. Oy vey. We shall see. So many headaches! This is it! After this: no more! Urg! ;)

(OK we'll add copy/paste and drag-drop later if we want it...)

Tracker - 2020-01-15
-------
Logical bomb found in path pruning algorithm. Addressed later.

Keymaster - 2020-01-16
---------
Add forced toolbar update on sel change to speed up Apple's slow lame code. (Can't be done on all apps, sorry.) RxSelflip.

Keymaster - 2020-01-17
---------
Finally cracked the dealloc on FSEvents. Key (Gordian Knot) is not to know what stages you're at in the dealloc, but to determine and switch programmatically. This is naturally a *beta test* but it's currently working better than envisioned or expected.

Keymaster Kmsolo - 2020-01-17
----------------
Both race on Retina, not with ordinary screens. WTF Apple?

KeymasterB - 2020-01-17
----------------
KeymasterB uses two timers instead. Kmsolo B follows tomorrow for the developmentally challenged.

KeymasterB KmsoloB - 2020-01-18
----------------
Then need but one timer. KeymasterB done, KmsoloB remains. HOWEVER: if you can run the standard versions, do so - so much better.

Keymaster Kmsolo KeymasterB KmsoloB - 2020-01-18
----------------
Can we combine both events and timers? Is it worth it? Prolly not, is it?

Keymaster Kmsolo KeymasterB KmsoloB - 2020-01-18
----------------
We now have four versions of Keymaster, two licensed, two free, two with FSEvents, two with timers, two with issues with Apple hardware, unbelievably enough, two without.

Timers will always get their man - but it can take up to 9.9 seconds. FSEvents versions act immediately, can miss, but you can always close and open again.

We have an issue with the unwashed fanboys: they can't see the shite anyway. We need a solution, we need to give them the opportunity to see what their beloved Apple are doing to them. We need to do this without donating the farm.

The Dangle-Dongle: I want this out. Those stupid stupid people. When something is free, you are the product. Eminently simple, and they don't get it. None of us get it. Yet eminently simple. They're the fulcrum, the wedge. Apple dangle-dongle them. Dangle them in front of increasingly desperate independent software creators. The temptation - which leads to a 30% cut for Apple. And they are so fucking stupid they don't even realise how they're being had, being used. SOMEHOW WE NEED TO INFORM THEM.

Frugality
---------
To remember: these all take RESOURCES. Do not monitor more paths than you need.

Openness
--------
Perhaps do a quick recursion on their selected paths, and reporting on the # of XA-infected files for each path?

0700?
-----
Suddenly see files marked 0700 - WTF? Assessing this:

S_ISDIR(m)

#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) /* directory */

Can't find culprit. Currently Seahaven code leaves files masked with 07500 - but why? Found two dirs marked with 0700, so the correction to 07500 was correct. But why use 07500 and how did they get marked 0700 in the first place? Bugs - hate 'em!

07500
-----
Duh. 500 needed for executables. So mystery is how 0700 crept in??!??!??!??!??

WTF?
----
OK something's fucking up bad. Getting 0700s all over the place. Gotta freeze stuff until this is figured out. Likely culprit of course is last guy to the scene - Keymaster Solo. Even 'Preferences' got hit, and none of our new utilities go in there. WTF!!

FOUND IT - it's in the 'Infections' code for Keymaster Solo! And I already know where it is! GAH! GAH! GAH! :) :) :)

-- Like I'm such a DUMBASS so I ran KM Solo's 'Infections' on ALL POSSIBLE (10) DIRECTORIES. OY. VEY!

Actually
--------
Actually perms have to be loosened to ensure entrance but they should never be cleansed on an inspection only! Finally ready now? ;)

Keymaster Solo 2020-01-19
--------------
Keymaster Solo uploaded, presser soon.

Keymaster 2020-01-19
---------
Built version with 'Infections' only to realise we didn't need it.

Keymaster 2020-01-19
---------
Tag on menu item.

KeymasterB 2020-01-19
----------
Tests of ordinary Keymaster on Retina laptop show no undue CPU, leading one to conclude... Conclude what? Keymaster Solo will go out as is, polling, as it were, every 10 secs or so, and KeymasterB will remain in case you get in trouble. (And please report if you do OK?) Prelim release date is 4 or 5 February.

Changes 2020-01-20
-------
Default window level 0, ID column widened.

Xfile 2020-01-21
-----
Hold onto your hats - minor bug (logical bomb) found in Xfile! When scooting to a file and directory by dropping a path on the title bar, Xfile must not only compare the strings of the names but also their length! Never seen this before! Same module size, 32 bytes object is all it took. PS. Actually redid this and ended up saving 8 bytes! WHOAH! PS. And now saved 152 bytes! ZOMG!!1! This also shaves 48 bytes off the executable! This was *totally* unexpected!

Xfile 2020-01-21
-----
Code benefits from NSInteger rather than int when possible. Object further reduced, EXE remains same (46316). Tread carefully - this time the 'last known goods' will be updated.

Changes 2020-01-21
-------
Considering removing 'level' code, reinstitute minimise.

== The New Files ==

Three applications and two document files for two of them in the download root.

Keymaster Solo.app
Keymaster.app
KeymasterB.app
desktop-downloads-.km
desktop-downloads-pictures-sites.km


Keymaster Solo is standalone and free - our contribution to the world.

Keymaster and KeymasterB are exclusively for you.

The *.km files are KEYMASTER files, to be used with Keymaster and KeymasterB. (The funny name on the first of those is for sorting purposes only. The use of the 'Xshelf' idea, rather than the 'XA' idea, to store coordinates is of course to avoid further XAs.)

A Keymaster document file looks like this.

<dict>
    <key>Keymaster</key>
    <dict>
        <key>Frame</key>
        <string>847 11 586 233</string>
        <key>Paths</key>
        <array>
            <string>~/Desktop</string>
            <string>~/Downloads</string>
        </array>
    </dict>
</dict>

Where were we last time? Right. It was a beginning. After the 'Seahaven' idea in CandS and Lightman, and further research for the application 'Changes', we had a simple app called Keymaster which had tick boxes for ten local paths to guard. We'd already planned on something more sophisticated, and it was also suggested at the forum. So here it is. Or rather, here they are.

== Polling and Retina ==

Some users noticed a CPU issue with the first Keymaster. We saw it too but couldn't reproduce it. It occurred on our computers with retina screens, not on the others. To that end, we made a special edition of Keymaster, called 'KeymasterB' which 'polls', by timer, rather than listens. This is the technique used in the new 'Keymaster Solo', the successor to the Keymaster from last time.

The polling time for Keymaster Solo is just under ten seconds so that, given system bottlenecks, it averages at ten seconds.

The two Keymaster document files are for Desktop/Downloads and Desktop/Documents/Pictures/Sites. Naturally you can make your own Keymaster files.

== Tell Your Friends ==

Please tell your friends about Keymaster Solo. This app is free, and it attempts to offer others a sporting chance to see what's really going on. You can see it, because our apps show you everything - but they can't see it! Keymaster Solo has an 'Infections' function (on the menu) which summarises all the stuff they can't see.

Send them a link or zip up 'Keymaster Solo.app' and send it to them. It's self-contained. (This update has it all ready for you.)

== Presser ==

The last time around, our marketing gurus reported an unusually high 'open rate' on the 600 pressers they sent out.

The 'open rate', for those who don't know, and we did not, is how many of the recipients actually open the message. We got over 20% right away, and they tell us that is unusually high. They also told us to create more and more pressers, as that will help move things forward.

Another presser is planned for the end of January or beginning of February, ideally after 2020-02-03.

== Window Menus ==

They're motley. Some inherit this 'tabbed' thing, some don't. We have yet to find the common denominator. What we are after is ridding the menus of things that don't apply.

== Rixedit ==

Slight code optimisation found, 40 bytes object, better nesting of automatic variables.

== Catalina Mishaps ==

We've received two (2) crash reports for Catalina, as recently as 10.15.2. We advised shortly after 10.15.0 that Catalina is not considered stable, and warned against upgrading, until at least mid-spring 2020. Those who proceed anyway do so at their own peril - and that's apart from the myriad other issues with that monster.

CONSIDER THIS A REMINDER. And, as things stand, we want to warn you again, and even more severely than before: Catalina is a 'no'. No matter how much Apple want to convince you otherwise, almost all reviews conclude that the system - ceteris a lot of paribus - is simply not anywhere near stable. We didn't created this 'rift'. Apple did. Do we expect them to come around, so to speak? No. Take that at face value. Thanks.

== Xbase and XAs ==

Spent an evening combating XAs. They're insidious! Text encoding? We don't want that. Any way of turning that shite off? Of course not! How about 'LASTUSEDDATE'? You. Gotta. Be. Kidding. But we're working on it! Apple dropped off the deep end: their end is nigh.

== Run Loop Misery ==

Apple's run loop takes too long to get down to business. This is crucial when it comes to updating toolbars. We've added code to compensate where possible but not all situations apply.

== Tracker ==

Solution to that inconsistency will be to compare paths component by component. Remind us if we forget? Thanks!

== Xattr ==

40 bytes. Idea to loosen modes and restore them to remove undesirable XAs. Could be done even better. But as is will make things better. Knock knock.

Continue to wrap all calls in like manner, needs more research and work.

== Xattr ==

System calls wrapped to loosen mode access. Test run now. Possibly adding flag to allow (or not).

== Xattr ==

* You can't see them there but they're there * - XAs are not visible if a file is not readable [sic]. But Xattr will now find them.

== Xattr ==

Attempt to modify control flow for adding XAs: shelved, as may not be prudent anyway (and code-wise with IB etc is unwieldy).

== ACP ==

Suggestion: use different off-colours for different types of reasons to 'colour' mode field. Drawback here of course is you don't know how many new 'modifications' will come along (if we stick with this sinking ship much longer).

Actually: the 'off-colour' is used in different places. It's used on Size if size is affected, and it's used on Mode if mode's affected. So we should be OK.

== Keymaster ==

Hacking NIBs Part One. Needed to tweak Keymaster's to reduce possible min width so toolbar still visible, no more. Funky utility window style 0x10 creeping in, bug in IB itself which typically can't handle zero dimensions. But finally got it!

== Some of the tricks you can pull ==

(These assume you're running Xfile and programs associated with it.)

1) You notice that one of your files - from a download or from Preview or some other constrained application - still has XA gunk it even though you're protecting its directory

- What may have happened is Apple's FS Events daemon got 'clogged' - or 'bottlenecked'. Simply invoke your Keymaster, turn it off, turn it back on again. Keymaster will automatically cleanse its protected directories on a new run.

2) You're trying to edit an image file with Preview, but the file is in a protected directory

- This can be a right pain. Simply moving stuff around in Preview will give you a barrage of diagnostics (from Preview). Simply select the file in Xfile, hold down shift, and move the file to an unprotected directory. Preview will ask you one final time (ahem) if you want to 'unlock' (ahem) your file, click OK, then continue playing with your file. Once you're through doing whatever you were doing, hold down shift again, and MOVE the file back to its previous location (a Keymaster-protected directory). The XA gunk will automagically disappear!

3) I got a bunch of files loaded with XA crap in an unprotected directory and I want that gunk gone - by yesterday!

- Almost the same as above. SELECT all the files in Xfile, hold down SHIFT, move them to a protected directory, then IMMEDIATELY back again, whilst still holding down shift. They're cleaned!

You're bound to discover other cool tricks as time goes on. Keep enjoying this important tool!

Evil begets stupidity.
 - Paul Graham
The best programmers can work wherever they want. They don't have to work for a company they have qualms about.
 - Paul Graham
Programmers continue to develop iPhone apps, even though Apple continues to maltreat them. They're like someone stuck in an abusive relationship.
 - Paul Graham
The dictator in the 1984 ad isn't Microsoft, incidentally; it's IBM. IBM seemed a lot more frightening in those days, but they were friendlier to developers than Apple is now.
 - Paul Graham
When you look at the famous 1984 ad now, it's easier to imagine Apple as the dictator on the screen than the woman with the hammer. In fact, if you read the dictator's speech it sounds uncannily like a prophecy of the App Store.
 - Paul Graham
The way Apple runs the App Store has harmed their reputation with programmers more than anything else they've ever done. Their reputation with programmers used to be great. It used to be the most common complaint you heard about Apple was that their fans admired them too uncritically. The App Store has changed that. Now a lot of programmers have started to see Apple as evil.
 - Paul Graham
To all those who replied to my first piece I have this to say: Steve Wozniak is one of those I respect greatly but I don't think he ever meant to create a community of snobs around the computer he designed. He is one of the better human beings who were part of the technology revolution that has taken place over the last 30 years. The current batch of Apple users - at least most of the sample I've been exposed to - are an embarrassment to a gentleman like him.
 - Sam Varghese

About Rixstep

Stockholm/London-based Rixstep are a constellation of programmers and support staff from Radsoft Laboratories who tired of Windows vulnerabilities, Linux driver issues, and cursing x86 hardware all day long. Rixstep have many years of experience behind their efforts, with teaching and consulting credentials from the likes of British Aerospace, General Electric, Lockheed Martin, Lloyds TSB, SAAB Defence Systems, British Broadcasting Corporation, Barclays Bank, IBM, Microsoft, and Sony/Ericsson.

Rixstep and Radsoft products are or have been in use by Sweden's Royal Mail, Sony/Ericsson, the US Department of Defense, the offices of the US Supreme Court, the Government of Western Australia, the German Federal Police, Verizon Wireless, Los Alamos National Laboratory, Microsoft Corporation, the New York Times, Apple Inc, Oxford University, and hundreds of research institutes around the globe. See here.

All Content and Software Copyright © Rixstep. All Rights Reserved.

CONTACT INFO:
John Cattelin
Media Contact
contact@rixstep.com
PURCHASE INFO:
ACP/Xfile licences
User/Family/Business
http://rixstep.com/buy
About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Copyright © Rixstep. All rights reserved.