MASON MARK (.COM)

TEST of breaking out and showing code full width

2015-07-14
UPDATE: About three weeks after doing this, I bought a retail box copy of Windows 10. Booted OS X, ran the Boot Camp Assistant, installed Window 10, enabled BitLocker, and... no problem. All you have to do is the registry hack (described in the link below) to enable BitLocker with no TPM. I don't know exactly what Mac models this works on, but it does work on current-model machines, and it is way easier to just buy a copy of Windows 10 than deal with the hot steaming pile fuckery below...

Today (and yesterday), I spent an inordinate amount of time figuring out how to get "FileVault2" and "BitLocker" to coexist on an "Early 2015 MacBook Air" that can boot either Apple OS X 10.10 or Microsoft Windows 8.1 Pro, while keeping both system partitions encrypted.

HERE IS THE BREAKOUT:

199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
    //MARK: - Pong
    func pong(_ event: Event) {
        pong = event.replyTo
    }

    //MARK: - Messages
    func messageSent(_ event: Event) {
        guard let reply = event.replyTo, let message = sentMessages[NSNumber(value: reply).stringValue], let channel = message.channel, let ts = message.ts else {
            return
        }

        message.ts = event.ts
        message.text = event.text
        channels[channel]?.messages[ts] = message
        messageEventsDelegate?.sent(message, client: self)
    }

    func messageReceived(_ event: Event) {
        guard let channel = event.channel, let message = event.message, let id = channel.id, let ts = message.ts else {
            return
        }

        channels[id]?.messages[ts] = message
        messageEventsDelegate?.received(message, client:self)
    }

    func messageChanged(_ event: Event) {
        guard let id = event.channel?.id, let nested = event.nestedMessage, let ts = nested.ts else {
            return
        }

        channels[id]?.messages[ts] = nested
        messageEventsDelegate?.changed(nested, client:self)
    }

    func messageDeleted(_ event: Event) {
        guard let id = event.channel?.id, let key = event.message?.deletedTs, let message = channels[id]?.messages[key] else {
            return
        }

        _ = channels[id]?.messages.removeValue(forKey: key)
        messageEventsDelegate?.deleted(message, client:self)
    }


    

AND NOW WE ARE BACK FROM THE BREAKOUT

I personally have no interest in running Windows directly on physical hardware (like an animal), but a lot of people at work do that, and somebody needed to figure out how to do this because we are moving off Truecrypt now that the NSA has disappeared the developers into a black site prison somewhere in Egypt[1].

There is probably a fairly epic and infotaining tale to be made out of my experiences, but just in case I disappear for the next two years doing something boring like raising my offspring (as I did after my previous blog post), I am posting my raw notes here (including all the drunken missteps and clueless demonstrations that I have no idea what the fuck I am doing):

http://masonmark.com/stuff/2015-07-14-filevault2-and-bitlocker-sitting-in-a-tree

I am certainly not providing any guarantees; in fact, I expressly provide whatever the opposite of a guarantee is. And if it is not immediately obvious to you that trying this could easily result in all the data on your laptop being destroyed, then you really should not try to do this. That being said, I am typing these words from a 2015 MacBook Air (model A1465 “MacBook Air 7,1”) that can boot into either a BitLocker-encrypted Windows 8.1 system, or a FileVault2-encrypted OS X 10.10 system. (And believe me, I cannot wait to be done writing this, so I can get back to a real computer… what is this gigantic bezel around this horrible lowres screen?? ugh)


[1]: or something

PREVIOUSLY:

2012-11-14
2012-03-16
2011-12-31
2011-12-05
2011-11-11
2011-10-12
2011-10-12
2011-08-10
2011-06-14
2011-03-09
2010-12-25
2010-11-03
2010-09-15
2010-08-25
2010-05-15
2010-04-18
2010-04-18
2010-01-13
2010-01-09
2009-03-25
2008-11-23
2008-11-05
2008-10-25
2008-08-20
2008-05-12
2008-04-08
2008-03-21
2008-01-29
1979-11-20