Posts

Apple Challenges Court Order

Feb 22, 2016

Last week, a federal judge ordered Apple to help FBI investigators decrypt the employer-owned iPhone 5C used by Syed Rizwan Farook who took part in a terrorist attack in San Bernardino in December (ars technica, “Judge: Apple must help FBI unlock San Bernardino shooter’s iPhone”.) The order is to provide the FBI with a custom firmware to bypass auto-erase functions and allow investigators to brute force the passcode efficiently without the normal restrictions only for this specific iPhone, and that Apple may refuse to share the resulting software outside of Apple. This last part is the troubling point. Apple has challenged this court order (ars technica, ‘Apple CEO Tim Cook: Complying with court order is ‘too dangerous to do’) and recently wrote in a Q&A, “it would be the equivalent of a master key, capable of opening hundreds of millions of locks.”

Tools, processes, and software used for gathering evidence may be challenged in court. Software may need to be validated by a third-party which would open up Apple’s backdoor to the world allowing others to reverse engineer for new products, or research for weaknesses. All of this could also be leaked to criminals. As noted by forensic scientist, Jonathan Zdziarski, on his blog post, “Apple, FBI, and the Burden of Forensic Methodology,” an established tool is “validated, peer reviewed, and accepted in the scientific community.” Before iOS 8, the FBI would have simply asked for an image of the data–a copy, a reasonable request using established methods. However, iOS 8 encrypts the data within the device. As Zdziarski points out, it would be difficult to get a judge’s approval to request Apple to exceed reasonable assistance to hack the device. Which is why the request is for the investigators to do the cracking using a special tool developed by Apple to make it easier. Any such new tool could be challenged in court, and if Apple kept its methods secret then the any evidence obtained would likely be thrown out. The FBI knows this.

The FBI isn’t interested in ignoring forensic science and knows terrorists go through the trouble of masking their steps which may include using other encryption methods. Law enforcement wants the key or precedent to go ahead with other cases, and take another step towards pushing for backdoors.

Abiding by the court order in creating a new forensic tool while maintaining the designed security is unreasonable. As Apple pointed out in its Q&A, this isn’t about marketing, but about the risk. It says, “The only way to guarantee that such a powerful tool isn’t abused and doesn’t fall into the wrong hands is to never create it.”


Little-Big Mods for Skyrim

Feb 11, 2016

Sometimes it only takes a small thing to make a big difference. Here I share some lightweight, seemingly simple mods that give a big impact on gameplay for TES V: Skyrim.

Pretty soul gems

“MultiLayer Parallax Soul Gems” by MadCat221 makes soul gems prettier, and by differentiating filled gems from empty, improves gameplay. Filled gems appear to have an animated wriggling light effect inside the gem, a technique used for atronochs making an animated texture appear within a semi-transparent surface. Filled gems appear to have a soul inside, and empty gems appear empty. This simple thing helps a player instantly recognize the difference upon spotting a soul gem sitting in a room without having to pick the gem up and open the inventory screen. Handy if searching for a filled gem.

Lightweight, pretty, and cuts the cost of accessing a game interface resulting in improved immersion. Beautiful.

Knock, knock - “Is someone there?”

Knocking on a closed, locked door seems so natural that it once was a part of TES II: Daggerfall, yet oddly missing in later chapters. The Dragonborn, attempting to return a lost family heirloom, feels foolish standing outside and waiting, or picking the lock and accepting the fine. (Of course, the hero that insists on disturbing homeowners at late hours might deserve to wait outside.) Many have requested a door-knock feature, and a few have given a go at solving the problem. It turns out implementing a smooth knock-knock experience is non-trivial.

As Chesko explains on his “Simply Knock” mod description page, the core problem in Skyrim for the modder is that it isn’t easily determined where a door actually leads to. Using scripts, “it was impossible to discover important things like ‘Where does this door go?’, ‘Who owns this door?’ and ‘Are the owners home?’, before you actually go through the door.” To solve this complex problem, Chesko employed a workaround using “Skyrim Script Extender” (SKSE) function, GetLinkedDoor(). Thus, the mod requires SKSE.

Chesko’s implementation finds the home, determines if occupied by which characters (and if enabled), and fetches the matching voice (most of the time) for “Is someone there?” to greet the player when knocking. The interface is simple: if door is locked a dialogue presents options to knock, leave, or pick the lock. If sneaking, then it skips straight to the lock-pick interface as normal.

I found the default settings too welcoming. Using the MCM, I disabled option for friends always open and reduced base speechcraft chance to 33%. Sometimes even friends need their quiet time, especially if the hero always comes knocking at 3 AM.

Being able to do something that comes so natural, even if only on occasion, has a huge impact on gameplay. Well done.

Carry a lantern

Sure, torches are more convenient when investigating crypts or old mines, but a trusty lantern is nice when traveling the tundra at night. “Wearable Lanterns” by Chesko allows your character or follower to adventure with a lantern. Carry in hand or fasten to belt. Craft a lantern and buy lantern oil from a vendor. If using “Campfire”, lanterns may be crafted using survival skills, create item.

This mod comes in very handy if using darker nights and dungeons modification. Let’s get going!

SkyrimSaharLantern


Screen capture above features “Gwelda Dawnguard Armor”, “Circlet Replacers for Women”, and “WiC: Cloaks.


Swift Code Exercises

Jan 12, 2016

I’ve updated some of my programming tutorial exercises with Swift code samples. See the original exercise for complete problem description. Swift 2.1 code tested in Xcode 7.2 Playground.

The anagram problem

A string is an anagram of another string if re-arranging the letters results in the other string. “Astronomer” and “moon-starer!” are anagrams.

In the original problem we stripped all punctuation since symbols and spaces may be ignored. Let’s say we wanted to count “Ray.adverb” as a single word (for whatever reason) including the period, but “ray-adverb” should still ignore the hyphen as normal. In the code below we strip by word boundaries.

Swift 2.1: are two strings anagrams
import Cocoa
var str1 = "Astronomer!"
var str2 = " Moon starer?"
var str3 = "ray-adverb"
var str4 = "barry-dave."
var str5 = "Ray.Adverb"
var str6 = "Tom Marvolo-Riddle"
var str7 = "I am Lord Voldemort!"
func areAnagrams(phrase1: String, phrase2: String) -> Bool
{
if phrase1.isEmpty { return false }
if phrase2.isEmpty { return false }
//var trimmedPhrase1 = phrase1.stringByReplacingOccurrencesOfString(" ", withString: "")
//var trimmedPrhase2 = phrase2.stringByReplacingOccurrencesOfString(" ", withString: "")
var trimmedPhrase1 = stripWordBoundaries(phrase1)
var trimmedPrhase2 = stripWordBoundaries(phrase2)
trimmedPhrase1 = trimmedPhrase1.lowercaseString
trimmedPrhase2 = trimmedPrhase2.lowercaseString
if trimmedPrhase2 == trimmedPhrase1 {
return false
}
if trimmedPrhase2.characters.count != trimmedPhrase1.characters.count {
return false
}
let chars1 = trimmedPhrase1.characters.sort()
let chars2 = trimmedPrhase2.characters.sort()
if chars1 == chars2 {
return true
}
return false
}
// let's treat "Ray.adverb" as a word so period would not be stripped, but "Adverb-Ray?" would become AdverbRay
func stripWordBoundaries(string: String) -> String
{
var words : [String] = []
string.enumerateSubstringsInRange(string.characters.indices,
options: .ByWords) {
(substring, _, _, _) -> () in
words.append(substring!)
}
return words.joinWithSeparator("")
}
func anagramTest(phrase1 ph1: String, phrase2 ph2: String)
{
if areAnagrams(ph1, phrase2: ph2) {
print("'\(ph1)' and '\(ph2)' are anagrams")
}
else {
print("'\(ph1)' and '\(ph2)' are NOT anagrams")
}
}
anagramTest(phrase1: str1, phrase2: str2)
anagramTest(phrase1: str3, phrase2: str4)
anagramTest(phrase1: str5, phrase2: str4)
anagramTest(phrase1: str6, phrase2: str7)
Continue reading...

Columbia Gorge Photos

Jan 3, 2016

For Winter Solstice, I took a drive up Columbia River Gorge on the Oregon side. The first photo is the twisty turns on old Hwy 30 seen from Rowena Crest.

Rowenaturn

Starvation Creek Falls has its own exit off I-84 eastbound only. A very short walk to see the falls.

Starvfalls

Multnomah Falls is Oregon’s tallest, and almost always a busy attraction. The hike to the top is only a mile long with 11 switchbacks.

Multnomahbr

Multnomahlow

MultnomahBW

Multnomahover

Continue reading...

Skyrim Gear 4: Heavy Armor

Dec 17, 2015

SkyrimBladesDragon3

For Skyrim, I previously shared some of my favorite modded clothing for mages, Akiviri-related gear, and light armor mods. This post covers some nice heavy-armor mods.

difficulty levels

I usually play mages and stealthy rogues leaving heavy armor choices for followers. Recently, I gave the paladin style a try with a warrior, Regulus, adventuring as an agent for Mara. The experience has been a reminder on how unbalanced the difficulty settings are in TES games. Choices in difficulty only adjust damage given by the player character (PC) and damage taken by the PC.

modifier for damage given by PC - received by PC (eldescrolls.wikia):

  • adept: 1 - 1
  • expert: 3/4x - 1.5x
  • master: 1/2x - 2x
  • legendary: 1/4x - 3x

Stealth and magic (mostly) remain the same. Followers always fight 1-to-1 with NPCs, so giving the follower the best armor and weapon is a good strategy.

Some frustrating moments, but for the most part, Regulus manages okay on master difficulty. He must remember to fight smarter: take advantage of terrain and traps; hit hard with ranged weapons; push his follower in front and keep her healed. What hurts most, though, he sometimes feels humiliated watching his follower shrug off multiple hits from large two-handed weapons, but he bleeds profusely when rapidly stabbed by butter knives. Two-handed weapons are very deadly with 2x or 3x damage! On master, might as well ditch the armor and run faster.

I enjoy the game best on expert, and add challenge by limiting schools of magic or making different choices based on role-playing. Regulus fights fair by announcing his intentions and respecting occupied forts. He admonishes necromancy and hunts vampires. He chooses not to use dark soul gems believing the use restricts souls from reaching their destination. Summoning daedra is for the weak.

SkyrimRegulus1

Regulus’s face uses “Better Males” “YoungerFacesMergedWithMenByGeonix”, “Beards” by Hvergelmir texture update, “The Eyes of Beauty” by Gabriel Mailhot, and Superior Lore-Freindly Hair by skyrimmaguas. His armor of choice: “Dragon Carved Armor Set” by hideto84.

Continue reading...