Skip to content

Instantly share code, notes, and snippets.

View eventualbuddha's full-sized avatar

Brian Donovan eventualbuddha

View GitHub Profile
@eventualbuddha
eventualbuddha / README.md
Created October 11, 2021 23:59
OMNIKEY HID Card Reader Incompatibility

OMNIKEY HID Card Reader Incompatibility

Certain model years of the OMNIKEY smart card readers seem to be incompatible with pcsc on Ubuntu Linux 18.x and possibly other versions. This document describes how to reproduce the issue.

Steps to Reproduce

  1. Copy write.scriptor and read.scriptor to a directory on your Ubuntu Linux 18.x system.
  2. Install pcsc-tools.
  3. Choose a card reader to be considered BAD from OMNIKEY 3021 (rev C 2021) or OMNIKEY 3121 (rev A 2017).
  4. Choose a card reader to be considered GOOD from OMNIKEY 3021 (rev A 2016) or OMNIKEY 3121 (rev A 2016).
This file has been truncated, but you can view the full file.
<head>
<style>
body {
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;
}
.page {
position: relative;
@eventualbuddha
eventualbuddha / gist:15ed48676adc0f59eee8191d5869662b
Created January 25, 2020 16:59
TreasuryDirect Login Virtual Keyboard complaint
The virtual keyboard at login is a terrible idea. The only stated reason for it I can find on the website is: "The advantage of using the virtual keyboard is that others are deterred from learning your password." No information is given to back up this claim. I think it's actually far _more_ likely someone will learn your password by watching you use an on-screen keyboard than by watching you type on a real keyboard.
The main reason I dislike it is that I use the 1Password password manager to generate strong passwords and auto-fill them when I visit websites. Someone watching me use 1Password to fill in my login info on a website would have no chance of learning my password as I never type it, virtually or otherwise. Instead, you force me to laboriously "type" a password using my mouse. Presented with such a system, I strongly believe most people will simply pick a password that is a) easy to remember/guess and b) easy to "type" with a virtual keyboard.
This doesn't even begin to address accessibility. I ca
@eventualbuddha
eventualbuddha / controllers.application.js
Created March 22, 2018 19:07
ember-get-has-own-property
import Ember from 'ember';
class Counter {}
Counter.prototype.value = 0;
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
counter: Ember.computed(function() {
return new Counter();

To: Volkswagen
Subject: Expiration of "Goodwill" Loyalty Card

My wife and I bought a VW Jetta in late 2011 and generally loved the car, right up until the diesel scandal broke. Since then, we appreciated receiving the goodwill package and eventually the offer to buy back the car. While we did take the buyback offer, we were unable to take advantage of the goodwill loyalty card. Here's why:

  1. We didn't want the hassle of trying to ensure there was enough on the card every time we used it, so we were waiting to use it on a single purchase that was large enough to spend the $500 in one go.
  2. The card expired 15 days ago, 4/31/2017, which we realized when we were finally trying to use it today 5/15/2017.
  3. Multiple phone support representatives told us there was nothing that could be done as VW is no longer issuing replacements for these cards.

On the topic of expiration, your representatives claimed that the terms of the goodwill package were made clear and that the money would be gone when the c

@eventualbuddha
eventualbuddha / controllers.application.js
Last active February 28, 2017 16:14
onclick-this-select
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
@eventualbuddha
eventualbuddha / controllers.application.js
Created February 1, 2017 17:28
cancelTimers is broken
import Ember from 'ember';
export default Ember.Controller.extend({
appName: Ember.computed(function() {
try {
Ember.run.throttle({}, function(){}, 1);
Ember.run.cancelTimers();
return 'no error';
} catch (err) {
return err.message;
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
actions: {
foo() {
console.log('foo!');
}
}
import Ember from 'ember';
export default Ember.Component.extend({
triggerComponent: null
});
/* eslint-disable no-invalid-this, no-extend-native */
import Ember from 'ember';
/**
* Getter/Setter Computed Property Function Deprecation
*
* In Ember 1.12 a deprecation was added for creating a computed property with
* a function that acted as both a getter and a setter:
*