Mar 7, 2016

Why we should all oppose the Federal government's attempts to force Apple to decrypt the San Bernardino iPhone

Many of you may not remember, but back in 1993, in the early days of encryption technology on the Internet, the NSA attempted to foist upon the people of the U.S. the now forgotten "Clipper Chip." The proposal was essentially to require, by federal law, all encryption to be performed using an integrated circuit designed by the NSA. The chip's design was a secret, but would have a built in back door - a secret key held by the government - that could be used to decrypt any secrets. The chip would be required to be included in every new computer. It would be unlawful to encrypt data by any other means. The NSA tried to sneak this through Congress, but an alert security community in private industry caught on to the maneuver and, through a campaign waged largely on what was known as Usenet, managed to raise awareness and the idea met with such resistance from the tech community - including a vocal part of the fledgling UNIX community - that eventually the effort lost momentum.

Besides the obvious concern about misuse by the federal government, another reason the chip met resistance was that few people believed the government could do as good a job at encryption with a closed design as with an open one. Encryption algorithms of the day were rampant, and many were found to be flawed.

Another concern was many doubted the government's ability to keep such a secret key secret. One need only recall cases of espionage of the era. And for a modern example one need look no further than Edward Snowden, One of the biggest risks of stolen encryption keys and broken algorithms is that once broken, everything that's been encrypted - ever - using that algorithm can then be easily decrypted. This means that secure communications could be recorded and later decrypted - with huge potential consequences.

Unfortunately, government, including ours, doesn't have an exactly stellar record of safeguarding our privacy. Law enforcement especially, is especially prone to a willingness to do anything to "get their man", especially without determined and careful oversight. Our founding fathers observed this in the British government, and went to great lengths to ensure that our citizenry wouldn't be subject to such abuses. This was the foundation for the fourth amendment to the U.S. Constitution:

Amendment IV
The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no warrants shall issue, but upon probable cause, supported by oath or affirmation, and particularly describing the place to be searched, and the persons or things to be seized.
It seems to me to be absolutely self-serving and short-sighted that any branch of our government should be so selectively blind as to deny that encryption is a reaction of the people to breeches of the promise that we should be "secure in [our] persons, houses, papers, and effects". But I think law enforcement today is guilty of exactly that - the arguments that I hear boil down to an attitude that people don't have a right to keep secrets from the government. Recent, and not so recent, revelations about the government's intrusions into our "papers and effects" only reinforces long held suspicions of many, and has bred distrust in many who were previously naively trusting of government reassurances.

Mind you, I'm very supportive of law enforcement and want them to catch the bad guys. I don't want terrorists to succeed in attacking our rights and peace and sovereignty. Terrorism is nasty business. But so is a government spying on its people. I'm not willing to give up my rights to my own privacy as a law abiding citizen, and don't think that it's in our best interest as a nation to follow blindly a government that has proven itself so willing to intrude into so much of our personal lives.

I think Apple has taken the right stand, and applaud them and the other tech companies who have also spoken up. But I think we as individual citizens need to stand up and speak out against the progressive erosion of our right to privacy. After all, the rights we're talking about here are personal rights.

Jan 30, 2014

Setting the Project Gantt time scale - overcoming Zoom

One of the things I hate about Project is the Zoom function on the Gantt view. As it is, zooming leaves the scale in weird units on seemingly arbitrary boundaries. Given that, I wish it would zoom on the task table and leave the Gantt time scale alone. Frustrated with this, I wrote the following macro to easily reset the timescale to something sensible: showing 3 tiers with year, quarter, and month in a compact format. You may find this useful directly, or may want to play around with the constants to customize it.

Sub YQM_timescale()
' Changes the Gantt scale to show Year, Quarter, and Month
    TimescaleEdit TierCount:=3, Separator:=True, Enlarge:=80, _
        TopUnits:=pjTimescaleYears, TopLabel:=pjYear_yyyy, TopCount:=1, _
            TopAlign:=pjCenter, _
        MajorUnits:=pjTimescaleQuarters, MajorLabel:=pjQuarter_Qq, MajorCount:=1, _
            MajorUseFY:=True, MajorAlign:=pjCenter, _
        MinorUnits:=pjTimescaleMonths, MinorLabel:=pjMonth_m, MinorCount:=1, _
            MinorUseFY:=True, MinorTicks:=True
End Sub

Collapsing Project Summary Tasks that are 100% Complete

Here's a little VBA macro I wrote to toggle the collapse/expansion of Summary tasks that are complete. This can be useful as you move through the project and want to easily hide the clutter of completed work.

Sub collapseCompletedSummaryTasks()
' Toggles visibility into subtasks of completed summary tasks
    Static collapsed As Boolean
    Dim t
   
    If collapsed Then
        collapsed = False
    Else
        collapsed = True
    End If
   
    For Each t In ActiveProject.Tasks
        If t.Summary And t.PercentComplete = 100 Then
            If collapsed Then
                t.OutlineHideSubTasks
            Else
                t.OutlineShowSubTasks
            End If
        End If
    Next t
End Sub