About Nick Cohen’s Book and Stephen Fry’s Predicament


, , , ,

Just as I was composing this post about Nick Cohen’s book (‘You Can’t Read this Book‘), which addresses the psychology of religiously-motivated censorship, I read about Stephen Fry reportedly being investigated by Irish police under blasphemy laws. Since the existence of such law, in 2017(!), would be as retarded as Fry’s understanding of theology, I was initially a bit skeptical. Unfortunately it’s true. According to Independent.ie, the complainant, one member of the public, believed that Fry’s remarks were criminal under the Defamation Act 2009. The Act has an entire section (36) on blasphemy, and it’s extremely subjective in its wording. Hard to believe, isn’t it, that such a backward piece of legislation exists in Ireland and in the United Kingdom?

Onto Nick Cohen’s Book: There are three sections, dealing with religion, money and the state, and there is a fourth section suggesting solutions that are more abstract than practical. Here I’ll cover the first and add some of my own thoughts. Not because of the religious angle, per se, but because it’s where we find the most lucid descriptions of how the supposition of our collective liberalism and tolerance is pretty difficult to justify sometimes.

It seems fitting to quote the extract from the Virginia Statute for Religious Freedom:

Be it enacted by the General Assembly that no man shall be compelled to frequent or support any religious worship, place, or ministry whatsoever, nor shall be enforced, restrained, molested or burthened in his body or goods, nor shall otherwise suffer on account of his religious opinions or belief, but that all men shall be free to profess, and by argument to maintain, their opinions in matters of Religion, and that the same shall in no wise diminish, enlarge or affect their civil capacities‘.

Here Jefferson demanded no less than the right of anyone to express their religion in the public sphere and the right of anyone to criticise a religion. It does not imply that expressions of religion should be banned from the public arena, or that one should keep his/her religious beliefs private – legislating that would be state censorship, essentially, for what is religion but a system of ideas?
Jefferson is essentially trusting in the individuals’ ability to reason for themselves, to defend their opinions and beliefs through argument, and to follow their consciences. Christianity is no less a valid basis for morality than what the secular world ultimately bases its ideals on, if most of us believe in the principles of fundamental rights, human dignity and the sanctity of life. We have the intellect to resolve the more challenging questions of applying these principles in the real world.

This freedom is important, because human rights violations, oppression and injustice do indeed happen, they should be exposed and they should be openly discussed. Sometimes they aren’t: Overall Cohen’s book is about how our desire to openly discuss the issues is often outweighed by the fear of retribution, the fear of being sued, the fear of how it would impact our careers, the fear of something consequential. He made the case for this far better than I ever could.
Cohen argued that mainstream ‘liberals’, maybe for fear of causing outrage among religious zealots, cannot be objective and consistent in criticising oppressive ideology, and there are real-world examples provided of established liberals turning on those who criticise the oppressors – the Salman Rushdie drama being just one case in point. This is perhaps why we see only outrage against trivial instances of ‘oppression’ within our Western culture, instead of solidarity with victims of real oppression in other nations where Islam is dominant. And this is only a facet of the underlying problem – ultimately the same kind of fear prevented employees of global banks warning us of the impending economic crash of 2008, and forces the press to consider the risks of being sued when holding those with financial power to account.

How to Disable the Vivaldi Browser Keyring Request


, ,

A problem that’s been bugging me for a while is the Gnome Keyring pop-up that frequently appeared in the Vivaldi browser on every other page I loaded.

In the Vivaldi settings, under the Privacy tab, uncheck the Save Webpage Passwords option.

Vivaldi can be launched with the keyring disabled using the following command:
$vivaldi --password-store=basic

But we don’t want to do that each time, so we could add the option to the menu.

Right-click the desktop’s main menu to edit it (‘Edit Menus‘). Here we can modify the start options for the desktop applications. Find the entry for Vivaldi, and right-click to see the option for ‘Properties‘.

In the Launcher Properties we can append the ‘--password-store=basic‘ to the command, so it should read something like:
/usr/bin/vivaldi-stable %U --password-store=basic

Close the windows, restart Vivaldi and the pop-up should no longer appear.

Won’t Commit


, , , ,

Sometimes the command line is a better and more reliable way of pushing changes to a Git repository. The sync feature on the Windows client does something the Linux GUI client wasn’t doing, and the latter was refusing to update the remote directory.

First navigate the command line to the local github subdirectory for the project. Next thing is to check a few global variables, if the client hasn’t been set up already. The important ones are username/password and the text editor, otherwise you’d probably be stuck in vim if the ‘-m‘ option isn’t used for adding a commit message:
$ git config --global user.name "Michael"
$ git config --global user.email michael@example.com
$ git config --global core.editor nano

It’s quite possible my local working directory was in a ‘detached HEAD state’, which basically means I could have actually been trying to modify an older version of the project instead of the current one – ‘git checkout [commit identifier]‘ allows this, and ‘git checkout master‘ will point the local directory back to the repository’s master branch.
The ‘pull‘ and ‘push‘ commands should ensure both local and remote directories are in sync again:
$git checkout [branch]
$git pull origin [branch]
$git push origin [branch]

The output should show everything being up to date at this point. This seems to retrieve all files and history, which might be intensive depending on the size of the project.

Submitting the Changes
To see the current status, the differences between the local and remote directories:
$git status

As we can see here, there are two updated files: index.html and main.css. Another two .ttf files were also deleted from the local directory. To commit the changes, both files must be ‘staged’ – the concept is the same as including and excluding files in Visual Studio’s Team Explorer before committing.
$git add [file1] [file2] [file3]

Running ‘git status‘ again lists the staged changes:

Now the changes are ready to commit:
$git commit -m "Updated home page and CSS"

The command without the ‘-m‘ option will open a text editor for entering the commit message.

Finally the changes need to be ‘pushed’ to the remote directory/server.
$git push origin master

Note the 7-digit hexadecimal numbers. These are the first part of the changes’ SHA fingerprints and their identifiers in the history log.

Restore / Recover
The change log can be viewed with the ‘git reflog‘ command, with identifiers and HEAD numbers. Either could be used for selecting entries.

To view the details of a specific entry, use the ‘git show‘ command again. The ‘git show [identifier]‘ command will print the SHA fingerprint, the date/time, change author, files and section(s) of code that were changed.
$git show [change identifier]

To revert to an older version of a file, we can checkout that file from an earlier commit:
$git checkout [commit] [filename]

Omitting the filename will revert everything in the local directory to the specified version. Because the checked out file might differ from the current version in the master branch, it should appear as another change to be committed.

A Bit Late to the Party


, , , ,

Even though I’ve been to God knows how many developer meetups and events where everyone seems to be using GitHub, I’ve only recently got round to setting up an account there. I don’t really do much in the way of collaborative development outside my day job these days, and I’ve been working almost exclusively with Visual Studio and TFS. I wanted to put together a repository of hacks and useful code for junior developers that might be joining us, though.

Setting up a Repository and Mapping
Getting started was a simple matter of creating a repository through the GitHub site, installing a few client applications and mapping the repository to local directories. By far the easiest way is to use the official GitHub desktop client. I’m also using GitKraken on another machine, and Git-Cola on a Linux system.

Even if there are no source files present, the Git client will at least create a sub-directory containing a .git file.

Now it’s possible to add source files to the directory and use the desktop client to push them to the server. New and modified files appear in the desktop client under the ‘Changes‘ tab. You’ll need to click ‘Commit to master‘ and the Sync button. For Cola Git, the changes must be staged, committed then pushed.

Visual Studio Code
Git version control is integrated into Visual Studio Code. The editor will read the .git file when opening the local folder containing a repository clone.

And to check in the changes, the Git version control button opens the version control tab.

But it seems the changes still need to be pushed to GitHub using the client application.

A GitHub account can also be used for hosting Web sites, which could be better than a wiki and a list of repos. The way to go about doing this is to create a new repository, but this time name it ‘[username].github.io‘. We want a README here also.

The Master branch should be set as the source in the GitHub Pages section of the repository settings.

Technically all that’s needed here now is an index.html, and whatever else would make up the site. Of course, the site files can be cloned, modified and checked back in using the version control system for offline editing.

The Vault 7 Release


, , ,

A price of having an overgrown surveillance industry and routine violations of the US Constitution the inevitability of classified material being exposed. There are too many former CIA hackers with sins to confess, but I wonder about the motives behind this leak. Certainly last week’s Vault 7 release is voluminous and shows that a comprehensive range of things has been compromised, but surprisingly little has been exposed so far relating to violations of their Constitution. What kind of intelligence service doesn’t develop tools and methods for targeted surveillance?
However, there’s a lot that hasn’t been revealed. Wikileaks’ Twitter post claims it’s less than 1% of the material they might publish. The CIA has close ties to Silicon Valley, a data collection budget over four times that of the NSA’s and a comparable allocation for data analysis. The budget for Computer Network Operations (basically what the Wikileaks material exposes), though, is much smaller. According to the press release, the CIA’s Center for Cyber Intelligence had over 5,000 users. It’s therefore a safe bet the CIA does have its own mass surveillance programmes, and anyone of interest to the CIA could have their devices hacked by the Center for Cyber Intelligence.

The consequences of weaponised malware aren’t only domestic. Weaponised malware set a precedent for state-sponsored malicious hacking, and undermined the moral standing and credibility of the US government. When there is a malicious attack on a given state’s network, there’s no telling who was responsible, now we know the CIA was developing methods of implicating other states. Therefore it becomes ludicrous to blame an adversary without very compelling evidence. For example, could we still be so certain the Russian government was responsible for the alleged hacking of the DNC servers, which I believe was unrelated to the published DNC emails?

Things of interest
* Much of the material under the Operational Support Branch section contains useful literature for developers and hackers. There you’ll find tutorials, product documentation, tips, coding practices, links, etc.

* I found a reference to something called ‘Palantir’ in the docs, which appears to be a reference to a testing tool. This caused a bit of fuss when that name appeared in the Snowden material, as it was assumed to be a reference to the company of that name that sells OSINT software.

* Some material deals with defeating ‘personal security products’ – anti-malware that the average home user would have installed. So far, they seemed to have broken past AVG, F-Secure, Comodo and Bitdefender, usually through DLL injection/hijacking.