On Election Night 2020

November 3rd, 2020 No comments

I posted something similar to this on a friend’s Facebook wall in response to a suggestion that it’s ok to still be friends even if we vote differently.

Let me perfectly clear: It is absolutely not. Nope. Not this time. Not anymore.

This election isn’t just about policy or Trump/Pence vs. Biden/Harris. It’s fundamentally more than that: a vote for continuing Republican control of government is a vote for everything that they stand for: the corruption, lies and deceit, the anti-science rhetoric (which so far has cost the lives of nearly 230 thousand Americans), and behavior from the highest powers in government that exemplifies and epitomizes all of the bad -isms: racism, sexism, you name it — the list goes on.

This election is not about policy or lawmaking. This election is about how we the voting public determine what it means to be a decent person in a rational, civilized society.

Does that mean you want to promote intolerance and oppression of others just because they are different from you? Does it mean that you want to destroy the health and well-being of your community simply to fill some coffers a little higher, even when you probably won’t ever see a single cent of that? If so, then vote Republican.

Or does that mean that you want to work to more precisely identify and start resolving all the systemic problems in our government and law enforcement, and actually listen to the advice of reputable experts and scientists on how to deal with various socioeconomic and (especially now) medical issues? Does that mean you want to keep the rule of law as a core backbone of our society instead of letting it be pulverized by Republican cheats? If so, then vote Democratic.

No, I don’t particularly like Biden or Harris. But I still voted for them. Yes, I hate that our two-party system effectively forces us to make such a choice instead of electing much more qualified third-party candidates. But in order to fix the broken system we have to work within its constraints, at least for now. And of our two viable options, they (Biden/Harris) are infinitely more qualified and deserving of the offices than the incumbent Trump/Pence. Similarly to all congressional offices: Democratic is the only reasonable choice.

In my opinion, if you vote Republican or third-party at this point, especially after seeing the devastation wrought by the GOP in the last 4 years (and unfortunately, much more to likely come thanks to the recent Supreme Court confirmation of Barrett), then we fundamentally disagree on what it means to be a decent person in a rational, civilized society; and the difference is no longer one of sociopolitical opinion, but one of different objective worldviews. And that is a difference that is irreconcilable. If that is the case for you, then know that I no longer wish to interact with you or associate with you in any way.

As is oft being shared: You can’t tell someone you love them, and then vote for someone who will hurt them.

That said, please get out there and vote safely if you have not already done so. Vote Blue like your life depends on it: if not yours directly, I can guarantee you that is 100% the case for at least one other person that you care about.

On Technological Addiction: Active Noise Cancellation

July 5th, 2020 No comments

From a certain perspective, humanity has largely already become cyborgs: not only do we augment our flawed biological senses with corrective technological ones — for example, eyeglasses, hearing aids, pacemakers, and so on — but we also constantly carry with us so-called “smart” devices like watches, phones, and tablets, that allow us to easily stay connected to others and instantly access the entire breadth of human knowledge at our fingertips. In a way, these “smart” devices have become somewhat of an external secondary brain of sorts. (Reminiscent of the Ood of Doctor Who lore, though in a less drastic way.)

It’s easy to argue that we can, and have, become addicted to these technologies for our daily lives. For some — like corrective eyeglasses, hearing aids, and pacemakers — the addiction is clear: without constant use of these technologies, day-to-day life would be very difficult or perhaps impossible. But the addiction to phones and tablets and the rest is not always as visible, nor are the withdrawal effects from prolonged non-use of them. Moreover, there are other gadgets we use regularly whose addictive effects are not so obvious at all. For example, consider ANC (active noise cancellation).

I was working on a “1 Year Later”-style review draft of my Bose Noise-Cancelling Headphone 700 when I came upon an interesting conclusion: I find myself extremely more sensitive to background noise now than I ever used to be.

For instance, a few years ago, I wouldn’t have been bothered by the fireworks, sometimes loud music, and general noises of my neighborhood on a celebratory night like tonight. These were just things I lived with, simply as facts of life. Same with the hum of my refrigerator or the repetitive spinning noise of my bedroom’s fan: These were not sounds that were extraordinarily annoying; they simply existed near me as unremarkable background.

But now, after wearing Bose noise-cancelling headphones for nearly several hours daily for the better part of three years, I find that I am incredibly sensitive to these noises, to the point where it often gives me a headache to let them remain heard for any extended periods of time.

Being able to quite literally switch off the world around me and choose not to hear all of these disruptions has been an amazing boon to my work, hobby projects, and games, and lets me relax so much more deeply when listening to podcasts while doing chores and whatnot. (Truthfully, I probably would have been a more diligent and productive student in college if I had these. But it would also have meant an entire week’s pay at that time…)

And now, I find that when I’m not wearing my Bose headphones, that same background noise of my neighborhood — when it happens — is extremely irksome and makes it difficult sometimes even to hear my own thoughts. It has come to such an extreme at times that in the pre-pandemic era, I would carry my Bose headphones with me to family gatherings and such because I knew just the intensity of so many conversations ongoing could be too raucous for me, and I would need to step away for a few minutes of silence.

I suppose in retrospect this conclusion should have been an obvious one, especially for a transhumanist like myself: Of course, my brain has probably adapted to that near-silence as a new “default” background noise level. In short, I’ve developed an addiction to the technology of ANC; and in the same vane, I experience a sort of technological withdrawal by not using it.

Does anyone else that regularly uses noise-cancelling/isolating headphones find themselves similarly addicted to their benefit?

An Open Letter to Costco: Please Fix Your Password Handling

June 9th, 2020 No comments

(Editor’s note: This originally happened in early March, just before the ongoing COVID-19 pandemic lockdown began in earnest.)

To whom it may concern at Costco: The process for connecting one’s membership card to their online Costco.com account through your official mobile app is nothing short of an overwhelmingly under-engineered mess: a combination of unintuitive workflow, security practices which serve only to epitomize mediocrity, and business logic decisions that, frankly, are so obviously wrong that they should probably be outlawed.

Okay maybe I’m exaggerating and getting a little ahead of myself here. Let’s begin this once more without the vitriol:

Dear Costco,

We need to talk.

I’ve been a long-time member and nearly-weekly customer of your local warehouse for many years; and I recently made the mistake of losing my membership card. It should have been in my wallet, but it was not. The specifics of my idiocy are not relevant here: suffice it to say, I no longer had my physical card. I was unaware of this until last weekend when I arrived at my local Costco warehouse for my weekly grocery run and found that slot in my wallet to be bare.

“That’s no problem,” I thought. “I have all my membership details stored in my 1Password and can easily just get a replacement card at the membership counter. No big deal.”

This is where the an attentive audience might have heard the record scratch, and a narrator say: “It was a very big deal.”

Upon reaching the customer service desk, the representative was very polite and asked me to provide my photo ID so that she could give me a replacement. Unfortunately for me, my license expired last month and even though I successfully renewed it, its slot in my wallet was filled only by a temporary paper license from the DMV until I earlier today received the new permanent one in my mail. Without that photo identification, I could get only a temporary paper card that would allow me access to the warehouse, but then I would only be allowed to pay in cash.

…Cash? …In 2020? Are you actually serious?

To be fair, I do carry a small amount amount of cash on me for emergencies; but as this is my usual weekly bulk grocery run, I can assure you that this small cash cache would have been woefully insufficient for what I was going to buy. And I am not going to the ATM just for groceries. (Again, it’s 2020 after all.)

With a spark of insight, I realized, “That’s no problem. I can just add my card to their official mobile app and use the card that way.” Once again, the record scratch and narrator here are all but audible.

Adding the card to the official app seemed to be fairly easy: Once I had input my membership number and some identifying information — ZIP code and name and such — I was shown a notice that told me something along the lines of: “You need to visit a Costco warehouse to complete the verification in-person.” (I apologise here; I forget the exact text. Had I known at the time what I know now about this process, I would have been more diligent about taking screenshots and whatnot.) This seems reasonable: You want to ensure that the person adding that account is actually a member on that specific account. I understand.

I walked back to the customer service desk and requested the noted verification. The representative there took down my email address and said to follow the instructions in the email to confirm my account. Again, something that seemed, at the time, quite reasonable.

A couple of minutes later, I checked my email and instantly realized that this was to be the last reasonable part of my afternoon: The email I received had a link to complete my account setup and the following information text:

If you have an existing Costco.com account, you will need to create a new password. This will verify your membership number and link it to your Costco.com account.

This is utterly ridiculous. I asked the representative why I need to change my password to confirm my email address, and although she was very polite about it, she simply told me she wasn’t sure, but recommended changing the password by simply changing the last character of my current password to something else, like an @ symbol or some such.

First of all, this necessity to change password is a severe flaw in your design. I should not need to change my account password just to verify my email address. There are many good and obvious correct solutions to this problem; and any software engineer with basic experience in this area would suggest one of them here. For example, one possible user-friendly way to do this would be to have the user log in (if not already) and then input some secret single-use passcode that is sent to their email (like a one-time password or random alphanumeric token that they could copy/paste or some such). This could be made even easier by by having the email contain a login link with that code as a query parameter: it would require only one click from the user!

Please note that this is the way almost every major website that handles accounts does email verification: no password change required. Why? Because forcing users to go through yet another hurdle in your software means you will have fewer users. The math is quite simple: The less difficult you make your software to use, the more that people will use it.

Secondly, the entire purpose of me going in-person to this customer service representative was (presumably) so that she could put in my email address and membership number into their computer so that their automated system could send me the email for password reset. This is yet another piece of your workflow that is incomprehensibly flawed: I should not need to verify my email address in-person. I know this is the case because once she had the email sent, I was able to do everything else through my phone with zero other human interaction.

I’m already logged in to my Costco account, and that is keyed by my email address. Just like in the method I described above, Costco should be able to easily verify my email address by sending me some unique code or token that I can enter in a form or via some special URL.

Costco, you should not need to have me verify my email offline. It’s yet another hurdle in your software that I have to jump over, just to use what should be one of its most basic features.

Thirdly, forcing password changes like this serves only to promote insecurity. Not only does this make users more prone to using weak passwords to begin with, but it also encourages them to change passwords in a way that is very predictable — and hence, insecure. See Lorrie Cranor’s FTC blog post for a lot more details and linked studies. Her particular post deals more so with password expiration policies than single-instance forced password resets, but the crux is the same: Forcing a password reset when there is no good reason to do so inherently promotes insecure passwords.

With a heavy sigh, I figured I had no choice and so created a new password entry in my 1Password and set about to change the password so as to confirm the account. Lo and behold, I could not use 1Password’s auto-fill functionality to put in the generated random password. This is a bit frustrating, to be sure, but not every text input in Android yet supports this. And frustrating as it may be, clipboard is always an option. So that lack of auto-fill was almost never a showstopper… until now.

Not only could I not auto-fill the password, but Costco’s official mobile app and their website both prohibit copy/paste functionality in the “New Password” fields. For someone who tries to be reasonably secure online, this is a usability nightmare. By denying the ability to use both paste and auto-fill functionality, Costco, you are adding yet another hurdle to your software, this time in the form of a terrible dilemma: do your users trade away security for ease of use? Of course they should not have to. Being both easy-to-use and secure is the raison d’être for credential-management tools like 1Password to exist at all. NIST themselves even specifically recommend pasting from password managers:

Verifiers SHOULD permit claimants to use “paste” functionality when entering a memorized secret. This facilitates the use of password managers, which are widely used and in many cases increase the likelihood that users will choose stronger memorized secrets.

“Digital Identity Guidelines: Authentication and Lifecycle Management” (NIST Special Publication 800-63B) by Paul A. Grassi, et al. DOI: 10.6028/NIST.SP.800-63b

Okay, okay, so it’s not all bad, right? Just change my password and continue on? It’s only a one-time thing, after all. If only it were that simple. After creating a new random password and spending a solid three minutes meticulously typing it in twice to double-check it, I clicked “Update” so save the new password…only to see an error page appear and be prompted for a new password once more:

Password must include the following:
• Use between 8 and 20 characters
• Include at least one letter
• Does not contain blank spaces or the following special characters: < > ” \ . ,

This is yet one more hurdle your users have to jump over just to get basic functionality out of your software: in order to get through this quickly, most users will simply choose easily remembered (and therefore, easily guessed) passwords that meet the bare minimum of these guidelines. Moreover, by restricting the length and character possibilities of the password options, you are limiting the complexity of it. Once again, the math is straightforward: the longer and more complex the password, the more secure it is. The math here is once more nearly self-evident: the greater the entropy — that is, overall complexity — of the password, the greater the difficulty in guessing it through brute-force, dictionary attacks, or other means.

Thankfully 1Password has a “memorable password” option, so instead of a random character string which would be difficult to input from memory, I could create a password that’s a sequence of words and numbers (e.g., “Correct1Horse2Battery3Staple4“) which made it slightly less irritating to remember and type in, but my fourth point remains: Password restrictions promote insecure passwords. In fact, Jeff Atwood of Coding Horror summed it up quite nicely in four words: Password Rules Are Bullshit.

So in closing: Costco, please fix your password-handling and account-verification user experience flows. These are at least 4 flaws I found in barely one hour of using your app; and I can only imagine what other usability or security obstacles I could probably find with more time and effort. These flaws are ones not of code, but of architecture.

It’s perfectly fine — we all make our share of mistakes! But mistakes are made to be learned from, not repeated and left unchecked. If left as-is, these are and will be harmful to your customers from both perspectives of usability and security — two considerations that while seemingly disparate, should always go hand-in-hand. Not only does it promote insecure password usage, but in making your workflow actively hostile to the user, you are pushing away potential users and discouraging people from using the app at all.

Please fix these. Your users will thank you, because it will be easier and less counter-intuitive. Your IT staff will thank you, because it will be more secure. Your customer service staff will thank you, because they will not need to deal with as many account reset and usability issues.

And of course, I will thank you, because you will have acted positively on constructive criticism to enhance my experience with your software.

Here We Are. #BlackLivesMatter

June 2nd, 2020 No comments

I speak to you, the chosen ones.
With all our strength, we stand aligned.
[…]
We’re breaking the walls from inside…
…so rise to the sound of Revolution.

Excerpt from “Revolution” by Kamelot, from their album “Haven” (2015).

I’ve been pondering what to say that hasn’t already been said about all the series of unfortunate events that seems to be the trend in the United States. I have neither the courage nor the logistics to be part of the protests in person; but staying quiet about them feels like tacit approval of the very system they are protesting against. And this, at least, I cannot do.

However, it is difficult to know exactly what to write here. I want to help, but I don’t want to mistakenly “help” in the wrong way: I want to incite change, not just more anger. I want to promote equality and education, not violence and vitriol.

These recent events are merely the culmination of many decades of injustice and intolerance; and the ideal solution would be change in the underlying systems which allow these to continue so pervasively. But in addition to these systemic failures of justice, there are lot of other aspects of our leadership structure and personnel that are detrimental also; and I’d like to mention those in this post too. I contend that no one issue here is more important than the other. Rather, all are individually important for their own reasons; and I am remarking on them grouped together here only for the sake of attempting to express my thoughts more completely.

In the year 2020, we have at the forefront of sociopolitical power in our country and many others, people with very little competency and nearly as little accountability. And they are more often than not kept in their high offices by corporations and lobbyists who can effectively win any election just by throwing enough money at it, rather than by any merits of candidacy. Third-party candidates almost never succeed — even if they are exceedingly qualified and capable — solely because they are of a third party.

In the year 2020, during a global viral pandemic, we have a significant number of people who, despite such claims being thoroughly debunked by every reputable medical organization, are advocating against the safety and efficacy of vaccination, even though a SARS-CoV-2 vaccine would be — once properly developed — the only truly safe and effective way to return to some semblance of normalcy.

In the year 2020, when science has graced us with the capabilities of astronauts being able to live and research on the International Space Station long-term, collaborating between many nations to further humanity’s knowledge, and when we can video chat in real-time between these astronauts in orbit and people on both sides of the the planet simultaneously using pocket-sized always-connected devices that can also quite literally show us the breadth of all human knowledge…we have groups of people accepting outlandish conspiracy theories and protesting against the very existence of COVID-19, saying things like the world is flat, manmade climate change is not real, and that COVID-19 is somehow a hoax so that the governments can track their citizens better. (Of course it should not need to be said, but none of these are true. And, fun fact: if they wanted to track their citizens better, it would be far easier to do so using the always-on always-connected mobile phones that almost everyone has on their persons at all times. But hey, who am I to argue logic with those who refuse its clarity.)

In the year 2020, almost a century after the Civil Rights movement first began in earnest, there are still people who think that it is somehow okay to devalue other human beings simply because they are different: whether that is a difference of skin color, gender, or sexual orientation, or because they are of a different socioeconomic group, or because they are of a different culture or race, or for any other aspect of them that differs from a prescribed societal norm. (To be clear: this is absolutely not okay.)

And more recently in the year 2020, echoing many prior instances such as the killings of Ahmaud Arbery and Breonna Taylor and many others, we have police officers who, despite having sworn an oath “to never betray […] the public trust” and “to hold [themself] and others accountable for [their] actions” (source: IACP Oath of Honor), abuse their power to epitomize this intolerance through clear excessive force leading to outright murder — in this most recent case, the murder of George Floyd — and are often not held justly accountable for it.

And just a few days ago, after the United States alone reached over 100,000 confirmed deaths from COVID-19 and still has almost 2 million confirmed infected (source: CDC), we had the chief executive officer of the United States announce that our country would be leaving the World Health Organization, in order to continue his racist trend of blaming China for this disease. (Fun fact: China itself holds about 19% of the world’s entire population. So, yes, it is going to be a significant focus for pandemic efforts, on the simple basis that it holds such a large proportion of the world population. That’s just how epidemiology works.)

Let me be perfectly clear: None of this is acceptable.

Respect should be the default in our interactions with other people, not some reward earned through commonality of class or culture. Respect should never have to be earned. It should always be given.

And yet, here we are.

We should not be so entrenched in a political system that so readily divides issues across bipartisan lines. Parties should be debating what the correct solutions are to our socioeconomic and welfare problems, not debating whether these problems even exist at all. We should not have to vote for the lesser of two evils simply because the qualified third candidate won’t win.

And yet, here we are.

We should not, in the midst of a viral pandemic, be separating ourselves from the primary worldwide organization whose current overarching goal is to end this pandemic with a minimum of life loss.

And yet, here we are.

We should not have groups of people afraid to simply live out their lives, due to the high likelihood of being attacked by those in power who should be protecting them, just because they look or act differently.

And yet, here we are.

#BlackLivesMatter should not need to be a hashtag.

And yet, here we are.

People should not need to be protesting in the midst of a viral pandemic, that their lives are in danger from the very people who should be protecting them, by endangering their own lives even further as part of a (hopefully peaceful) crowd.

And yet, here we are.

We should not have our police officers armed to the teeth and attacking the very people they are sworn to protect, while our medical personnel are struggling to make ends meet with not enough PPE and ventilator equipment to help keep people alive through this global pandemic.

And yet, here we are.

We should not have such intolerance so hardwired into the justice and political systems that even the people who hold arguably some of the highest offices in the world are willfully ignorant and continue to encourage prejudice over progress, and wealth over well-being.

And yet. Here. We. Are.

To you protesters, please stay safe. Stay vigilant. Stay peaceful. You are bold; you are brave; and I stand with you, albeit virtually.

In Memoriam: Developer Shed Forums

June 30th, 2019 No comments

In late-2003, I was a high school junior loving every second of my AP Computer Science AB course. While researching something for homework one day, I found a neat little forum on the internet called Developer Shed where people helped each other to solve programming problems, talk about algorithms and problem-solving strategies, and generally just chew the proverbial fat in a mostly-friendly setting.

I was a fledgling hobbyist LAMP developer at the time — hey, it was a phase — and I enjoyed helping others through simple problems such as fixing logic issues, rudimentary database usage, and the like. In so doing, I found (as any novice programmer probably would) that by working through those problems, I was learning more about programming: both PHP and SQL specifically, but also generalities of debugging techniques, and how to think through problems more methodically. Yes, we had a lot of hands-on projects for the AP Comp Sci AB coursework; but this was yet another outlet for my code creativity. And more practice meant more programming perfection. I soon became an avid member there, averaging an hour or two and multiple posts daily for what would be the next several years.

The following April (2004), after a few months of posting, I was nominated into a moderator position for some of the forum sections that I actively visited — such as PHP Development and the Dev Shed Lounge (the off-topic forum). I eagerly accepted, of course. Being an active community moderator enabled me to directly act against many of the personae non gratae including trolls, spammers, and belligerent users; while also promoting the beneficial posts of more well-reputable users, and working with the rest of the moderation team to write needed FAQs and other such guidelines to keep the forums running smoothly.

In fact, it was this initial foray into community moderation that gave me the confidence I needed to properly fulfill my duties once I became a moderator of the Gentoo Linux forums the following December — a role I held for the nearly two years that I was an active Gentoo user.

My activity on the Dev Shed forums declined rapidly once the combination of full-time college, work, and extracurriculars started consuming most of my available time; but I still checked in on weekends and such for many years. Ownership of the forums changed hands a few times with no apparent significant impact; and my semi-regularity continued until about 5 years ago (?), when the original owner of Dev Shed sold it to Jim Boykin, CEO of Internet Marketing Ninjas.

With their new administrator team running the forums, many of the outstanding problems were resolved — such as creating more responsive templates — and we had very polite and quick feedback to ensure that the forums continued to run smoothly for a long while. They were incredibly supportive of our community, and especially of the moderator team whose efforts kept it running day-to-day. We even got a nice gift box from them that holiday season which included some t-shirts (two of which I still often wear to this day), a signed team photo, and an Amazon gift card. Cool!

Because of their responsiveness and general benevolence, I found myself on the forums a lot more over the past few years: not posting as frequently so much as just helping maintain everything: removing spam posts, banning troll users, etc. However, even this became an extremely-infrequent occurrence in recent months because my time would be so often better spent elsewhere: Dev Shed was pretty much the only decent programming-focused community back when I first signed up those many years ago; but that has long since been superseded by communities like first like OSnews and Slashdot, now Reddit and others.

And so, I found myself perusing Dev Shed maybe once or twice per month — a far cry from the near-daily I had formerly been. Because of my inactivity, I had been pondering retiring my moderator status for the past year or so; but something kept pulling me back. On one hand, it felt a bit unfair that I should stay a moderator for a community that I wasn’t as much directly a part of anymore; but on the other, I couldn’t just suddenly stop being such a significant part of this developer community that had itself been a significant part of my online life for over a decade.

So I persisted, and kept checking in very infrequently to keep up with site news, moderation queues, and some Lounge chat. But I never returned to posting much in any of the programming-specific forums. I just didn’t have the time or patience that I once had to write those would-be responses with the necessary due diligence.

Then, in late 2018, tragedy befell our once-thriving community. For whatever reason, the forums stopped being actively maintained: the administrators became far less responsive in fixing issues; many of our moderation team were online much less frequently, and people were generally not posting as much on the forums anymore. Rumor had it among some of the then-moderators that the administrative team was trying to rewrite a lot of the database and vBulletin backend stuff from scratch because the original owners had implemented a lot of fancy things as layers of kludges — a software house of cards, so to speak. But it seems that was never quite accomplished.

…Which brings us to the present. This past week, the entireties of SEOChat and Dev Shed forums were effectively scrapped after months of effort by Brett Tabke (from Webmaster World, also owned by Internet Marketing Ninjas) to try to modernize them; but unfortunately there were simply too many flaws in the old systems to reasonably fix. I do wish Tabke could have kept the old archive of posts if for no other reason than as historical reference; but I very much appreciate their months of effort to keep that archive, as futile as they seem to have been.

And so it is with a simple goodbye that I leave my Dev Shed past behind. That said, I cannot bid it adieu without mentioning several of the users there whom I befriended during my time as a moderator, and who helped make my stay in that community a pleasant one. I know that I am certainly forgetting many so I apologise that this list must necessarily be incomplete, but the handful that first spring to mind are:

  • SimonGreenill
  • ChiefWiggums1982
  • Sepodati
  • Scorpions4ever
  • B-Con
  • Nilpo

Perhaps our paths online will cross again; but until then, goodbye… Hmm, it seems odd that a short “goodbye” should suffice for something that was a part of my online life for such a long time (15+ years); but so be it.

So long, Dev Shed, and thanks for all the fish.

(Also, yes I will try to post more here; apologies for the long bout of inactivity.)

Open Letter to the Trump-voting American Public

November 9th, 2016 No comments

Dear America,

What the actual fuck?

I am ashamed. I am appalled. I am stunned. And I am speechless. I am disgusted to be an American today.

America, you stand on the precipice of electing to arguably one of the most powerful jobs on Earth not a qualified (though flawed) woman, but instead a man who, among his other terrible attributes

  1. spouts science-denying rhetoric, including having many times remarked that global warming isn’t a man-made concern, that it is a hoax started by the Chinese, and that vaccines cause autism — for the record: it is, it isn’t, and they don’t;
  2. has failed virtually every business venture in which he’s partaken, including declaring bankruptcy at least four times;
  3. has neither military nor political experience of any significance;
  4. has repeatedly advocated for violence as a solution to disputes including suggesting using nukes on enemies preemptively (!) and encouraging his supporters to punch protesters at his rallies;
  5. has repeatedly insulted and belittled women, handicapped people, LGBTQ people, Muslims, blacks, immigrants and many others;
  6. has been endorsed and held to high esteem by the KKK for his intolerance;
  7. has encouraged his supporters to bully voters at polling locations; and
  8. has staunchly been an opponent of LGBTQ+ and reproductive rights.
Let’s not forget that his VP candidate, Mike Pence, is arguably just as scary or possibly moreso: He has been outspoken against both Roe v. Wade and LGBT equal rights, including advocating for repeal of same-sex marriage; and has even suggested using federal funding to pay for so-called  “gay conversion therapy,” a malicious, wholly unethical, and entirely ineffective practice which is already (thankfully) banned in five states, including California.
 
Any single one of these should automatically be a red flag for someone of such potentially high office. But Trump (and in some cases Pence) embody all of these failures as a person and more; and with Republicans appearing to be winning the House and Senate majorities too, you’ve effectively removed even the checks and balances that are in the government by design to restrict such power. In addition to this, Trump’s candidacy has effectively legitimized the bigotry, xenophobia, and intolerance that we’ve worked so hard to rid ourselves of over the past two centuries…I guess the thought is that if someone of Trump’s stature can do something so horrible or cruel and get away with it, why can’t John Q. Public too? But this “us versus them” mentality is exactly the sort of fear-mongering that Trump is succeeding in spreading.
 
Just look at his record: The only person Donald J. Trump cares about is Donald J. Trump. If you thought he could “make America great again” even though virtually every political and economic expert worldwide is telling you otherwise, or that he could fix our economy the way he “fixed” his businesses, you are both mistaken and ill-informed. If you thought he could fix our immigration policies by closing ourselves off from the world and dividing us, you are again gravely mistaken and need to relearn basic United States history. If you think he can fix our healthcare issues by repealing ObamaCare, leaving 20+ million Americans without a decent health insurance option, then you are literally dooming many of these — your fellow Americans! — to death or disability simply because they can’t afford treatment. And if you think for one moment that he even is remotely qualified or deserving of the role of President of the United States even though he knows so little of the Constitution that he would be sworn to uphold and defend, then you are deeply, horrendously mistaken and I pity just how ignorant you truly are.
 
Do I agree with every one of Hillary Clinton’s policy proposals and ideals? No, absolutely not! (For example, everything I’ve read about the TPP just makes me despise it more and more.) But when it comes down to it, she has a decent amount of experience and knowledge to succeed in the role of President, which would have put her leaps and bounds above Trump (who has none). In addition, she had the support of Senator Bernie Sanders, former presidential candidate (and arguably someone more suited to the job than even she). I would have hoped that would be enough for those who voted for him in the primary…? But I digress.
 
Oh well, the long night is over and the election is done, right? Wrong. Wrong. Wrong. (Again.)
 
Congratulations, America. You’ve made your collective choice. I would have thought it to be a comparatively easy one, but apparently I have forgotten the error of your voting ways. In the 2000 and 2004 elections when you voted in George W. Bush and a GOP-heavy congress, you chose wrong; and those set us back many years of economic, scientific, and sociopolitical growth. I thought you had learned form those failures; but I was incorrect. A decade later and yet again you chose wrong. And the detriment to not only your own country this time, but to the rest of the world will likely be far in excess of anything we can imagine. This is going to leave a scar that time will not easily erase. I’d say to learn from history and not repeat this terrible mistake; but it seems you’ve twice failed to learn the lesson already.
 
We do have one saving grace, however: The electoral college is in place specifically to ensure that a dangerous candidate, even if victorious in the popular vote, does not become the elected president. I now urge the electors in those red states to do what’s right, going against the ignorance and idiocy of their own populace.
 
I hope you’re proud of yourselves, America. I’m not. I’m disgraced and disgusted by you. And when so many of you are willing to put such a dangerous and divisive man into power, I am truly scared of what the future holds for our country, for our world, and for humanity.
Categories: Politics Tags: ,

Open Letter to the VancouFur Convention: Bravo!

March 10th, 2016 No comments

Independent recently ran an article about how Syrian refugees in Canada got housed in [the] same hotel as VancouFur furry convention and the children loved it; and I felt this was particularly noteworthy not because of the perhaps obscure nature of such a convention, but because of the children’s experiences in it.

There are many furries in my groups of friends, both on- and off-line. Suffice to say, I know only a little of the furry community, as it’s not something I am a part of; but it reminds me a lot of the Brony community (of which I certainly am part) in some key ways: Sure, at a glance it may seem weird, crazy, and perhaps even from a misguided perspective, just wrong. But it’s nothing of these sorts at all. When you get down to its core, it’s just a group of people with similar interests being themselves and wanting to spread a message of tolerance and welcomeness, not the ones of hatred and fear that so many other groups try to promote in the name of so-called “righteousness.”

Amidst the culture shock of moving their lives to the other side of the world, these refugees have been welcomed with open arms and friendly attitudes. Many of their first post-move memories will be of these characters, just wanting to be playful and funny and pose for photos and whatnot — even memories of hugs being offered. These memories will not be ones of being prejudiced for their beliefs or hated for where they came from.

And that is a message that I believe the world needs to hear so much more of: Why must we hate each other because we’re different? Let’s instead embrace those differences. Work together. Play together. Laugh together. Grow together. Learn together. In doing so, we can learn more about each other, more about our own world, and more about our place as a humanity within the rest of this endless universe.

So to all the conventioneers and those involved in this VancouFur convention, I say thank you. Thank you for being so warmhearted. I’d imagine it’s an understatement to say that it was probably a difficult line to walk for a while; but thank you for showing by example how wonderful it can be to accept cultural differences, understand them, and welcome them. And perhaps a bit ironically, thank you for showing through your fursonas the goodness that can come of humans simply being kind to one another, not because it produces any sort of gain, but just because it’s the right thing to do. Well done!

Categories: Life, Uncategorized Tags:

Ingress: On Gameplay Goals And The Inefficacy Of Pineapples

January 28th, 2016 No comments

For those who might not know, I am an avid Ingress player. It is a fun augmented-reality game, which is to say that it overlays the map of the game onto that of the physical world; so in order to interact with items and points of significance in the game, you must be near them in the real world.

To make a long story short, the game has two teams, or factions, called the Resistance (blue) and Enlightened (green), for story reasons. The goal of the game is to capture and hold control points, called “portals,” and link them together to form triangular areas called “control fields”: areas surrounded by your faction’s portal links. Larger and more numerous fields give the faction more total points (in game terminology, “mind units”, or simply “MUs”). These are what determine your faction’s score, if they are still standing, at the end at the end of that cycle checkpoint (each 5-hour period of time when the servers tally the MU scores of each faction) . Players, called “agents”, use a variety of items that they acquire from portals by “hacking” them, to capture portals and upgrade them. Among these items are bursters (weapons used to attack enemy portals), resonators (which empower the portals and align them an agent’s faction), so-called “flip cards” (JARVIS viruses and ADA refactors, which forcibly convert a portal to be aligned to the Enlightenment or Resistance factions, respectively), and enhancements (called “mods”) to the portal itself, such as defensive ones like shields (which reduce some damage from enemy attacks), or utility ones like heat sinks and multi-hacks (which allow agents to hack gear from the portal more often) and link amps (which increase the maximum link range of the portal).

I had a provocation earlier tonight with some would-be allies which inspired this post, in that I had destroyed, captured, and created fields from so-called “pineapples” that they set up. It’s only recently that I’ve come to learn about this tactic (so named because they resemble the fruit in appearance); but in essence, one can capture an enemy portal, deploy all 8 low-level resonators onto it as close to its center as possible, fill its mod slots with otherwise useless things (like regular link amps), then use a flip card to transfer control of it back to the opposition. The goal of such a tactic is straightforward: resource denial. What could have been a reasonably well-defended portal is at any point later easy to destroy (since it has no defensive mods, and the resonators are all packed so close together). Furthermore, since it is low-level, it does not provide much useful gear. In theory, it forces the enemy to use their own flip card (which are rare) and destroy it before recapturing themselves, thereby expending weaponry and their own resources and time. While this may have been a viable tactic when the game first began many years ago, it no longer is. It is said in this game that the best defense is a good offense, and such a flawed tactic demonstrates this by failing to take into account five important aspects of gameplay.

First, portals provide equipment to both factions, and so forcibly keeping a portal at a low level serves only to reduce the total gear available in the game from that portal, thereby reducing item opportunity for nearby agents in both factions. And even when flipped, enemy agents can still upgrade all of the resonators, thereby producing a high-level portal from which any agent can then acquire good equipment. Admittedly, the portal will not be as farm-friendly without these hack mods to acquire items more often from it; but this detriment in farm is in fact a detriment to the farm of both factions.

Second, since the portal has all its resonator slots filled, it can still be used to create links and fields (albeit weakened ones), which add to the key scoring metric used in determining the victor at each 5-hour checkpoint.

Third, items which used to be very rare in game, including flip cards, are now much more commonplace thanks to the existence of MUFG capsules (which gradually duplicate their contents). Because of their steady duplication of items, the introduction of MUFG capsules is arguably the most significant change to the game in its entire history, even moreso than flip cards or ultra strikes. In fact, I have two of these so-called “muffins” full of flip cards, giving me one or two free JARVISes and a handful of free ADAs every day. Forcing an enemy to expend what are now reasonably commonplace items in order to destroy and recapture their portals is inherently counterproductive, as doing so gives the enemy faction AP and badge credits (two other scoring metrics in the game, used to increase agent levels).

Fourth, it fails to account for the existence of ultra strikes (high power weapons with a very small blast radius). Once flipped, pineapples by their design are almost stupidly easy to destroy with a few well-placed ultra strike blasts. And because the resonators are all very low level, this will work even through the mitigation of any shields that might have been installed. Again, all that this accomplishes is a bit of AP and badge credit gain for both sides.

Lastly, the goal of pineapples is usually to deny an enemy gear, and so it is done in small portal clusters that are known to be often enemy-controlled and used for farming (with mods like multi-hacks and heat sinks, which allow equipment to be gained from these portals more often). But one of the strongest defenses a farm has is specifically the fact that it is clustered: any portal whose resonators are attacked is likely to counterattack the offending agent, so by spacing resonators in the farm widely, any enemy agent that attacks them is likely to hit multiple portals and therefore be counterattacked just as widely. On the other hand, pineapples, once flipped, are easy to destroy with weaker low-range weapons (or, a few well-placed ultra strikes as noted above) rather than the more powerful but larger-range ones, thus reducing the total counterattacks done to that enemy agent. It is therefore more detrimental to the enemy agents to fully capture and deploy on their farm, and put on attack mods like turrets and force amps (which make the portals’ counterattacks happen more often and make them more powerful). And again, these can simply be flipped just as easily; and if an enemy did, he or she would not be able to replace these attack mods with hack ones, being just as counterproductive to their farm as pineapples were perhaps intended.

But all this is simply an aside: pineapples are not a viable long-term tactic in Ingress; and the only purpose they serve is to waste the time and resources of both factions, one in creating the pineapple, and the other in destroying it to claim it properly. The true issue that provoked this post was that in capturing and fielding from the pineapples that I mentioned earlier, I had teammates remarking to me in chat a few moments after the fact that they had “made those portals […] fucked up and ada’d [sic] for a reason.” That’s all well and good perhaps, but the entire purpose of the game is to capture, link, and create control fields from portals. This is exactly what I did between these 5 portals in question. And in doing so, I was reprimanded by members of my own faction for simply playing the game as it was intended. These agents even went so far as to accuse me of somehow being a double-agent, playing for the Resistance’s benefit. That crossed the line of being sensible discussion of tactics to one of inflammatory and blatantly false accusations, and it was that at that point that I stopped responding to any of the three agents involved. Tactical disagreements happen, sure; but I will not be unjustly accused of being something I’m not.

Because, after all, it’s just a game; and I’m not going to let myself stop enjoying something that for almost two years has forced me to get more exercise and visit more of my city, all because three ignorant agents from my own faction apparently don’t want me earning points toward our faction’s victory.

And if any of those three are reading this post, please take note of the following: Should you decide to continue making pineapples in those spots which have become part of my daily walking path between classes, I intend to keep upgrading them and making fields from them just as often. Whether or not I capture them first is dependent only on whether or not they are blue at that time. I do this not out of spite or malice; but rather as a way to earn points for myself and the Enlightened faction (which is, again, the entire purpose of the game).

Categories: Ingress, Technology, Uncategorized Tags:

Obituary: CurvyLooks

June 16th, 2015 No comments

Just over a decade ago, I took the reigns on a Fedora package called gnome-theme-clearlooks-bigpack. Among other niceties, it had many color themes and Cairo-enabled widgets for the Clearlooks (now Adwaita) GTK+ theme engine. But there was one and only one reason I took it: The Cairo_Curve theme.

This theme was a very smooth and rounded (thank you, Cairo rendering) but otherwise faithful reproduction of the Bluecurve color scheme and design philosophy (whether written or not) of just being simple and easy on the eyes for long periods of time. As you can imagine, this is great for people like myself who are using their systems for many hours at a time every day. As someone who used it on a daily basis, when it was orphaned I could not simply let it go unmanaged.

Time went on, as it so quickly does, and in mid-2007 I found myself a bit despondent: the upstream maintainers had all but vanished. What sources I had, I immediately mirrored onto my personal webspace; and I changed those in the RPM .spec file to match. I realized that if I cared about it enough, I should become the upstream contact myself.

And that is exactly what I did. That November, I ripped away every theme except for Cairo_Curve, as that was the only one I had any interest in, and formed the CurvyLooks project: A modest attempt to keep the Bluecurve-like color scheme and theme design for Clearlooks and essentially forward-port it to future versions of GTK+ as necessary.

Time again went on, however, and the chaos of life caught up with me. Newer GTK+ versions caused a few minor bugs (warnings about unused or invalid portions of the gtkrc file, for instance); but since it still more or less worked, I did little to fix them.

And time continued on. It was now July of 2011, and GTK+ 3.0 had just been released. I had already a release candidate of CurvyLooks that “worked” (though not well) together with the series of GTK+ 3 release candidates; but the distinction between “functioning” and “working well” can be a large one, as it was here. I fixed what I could of the theme drawing issues (such as opaque tooltips) and updated it to work with GTK+ 3 and the then-new Adwaita engine (which superseded Clearlooks). I released this as as CurvyLooks 0.4 RC2; and there it has stayed for nearly four years.

Except I also did something else. I also disabled the Dark theme, as I had become so accustomed to the idea of a bright background and dark text/foreground that it simply made no sense to me. In particular, some programs would use the Dark theme if it was installed, while others stayed with the “normal” variant; and that mismatch was rather frustrating.

A few short months later, I happily installed the Fedora 17 Beta and was thrilled with what I saw. In fact, the default Adwaita theme was almost exactly what I imagined CurvyLooks should be. I kept using that default but there was something…some je ne sais quoi about that Adwaita theme that broke my “easy on the eyes” rule. I couldn’t tell if it was that the contrast was too high or that the colors were not saturated enough or something else entirely but it just didn’t feel right. So I forced myself to try the dark theme. And I liked it.

No, scratch that. I loved it. Having long since grown accustomed to the light-on-dark theme on my Android phone, my UI tastes had changed rather drastically. To quote Morpheus from The Matrix: “Fate, it seems, is not without a sense of irony.” I enabled the forced global dark theme and time went on once more…

It was now July of 2012. GTK+ uses Adwaita as its default and the theme is bundled as a gresource tarball file within the engine itself. Hoping to update CurvyLooks, I started by writing a simple gresource extraction script to unpack those files so that I could base my new CurvyLooks version on a recoloration of that theme. But having no need for the theme itself anymore, as a user of the Dark Adwaita theme, I simply did not have the patience to work through how to implement it for this new format of theme packaging. I focused my time and efforts elsewhere, in Fedora and in real life. Thus time slipped into the present…

I suppose this end is long overdue; but such is one of the great lessons about flexibility and power of Free software: Just because the original maintainers disappeared, as long as I was willing to put in the effort, I could keep the project running myself. While my contributions to it were small at best, it was fun, in its own little way, to go through the process of setting up and publishing my own work. But it was just “working” and rarely “working well;” and I could no longer give it the due diligence to make it as awesome as it once was.

It’s only fitting that I should let time slip, once and for all, into the future; but without CurvyLooks advancing with alongside it…(Unless, of course, someone else wants to repeat this upstream initiative and maintain it themselves!)

The Cost of Introversion

June 25th, 2014 No comments

Ask any good psychologist or neuroscientist to explain the contrast between introversion and extroversion, and you’re likely to be told something akin to this: Introverts expend energy in social interaction and recharge by having solitary downtime, while extroverts recharge by being social and lose energy when left alone or with little to do.

But what is this “energy”? Sure, it’s easy enough to intuit. Clearly, extroverts are always so outgoing, very talkative, and need to be with other people. They excel at group situations and meeting new people, and become antsy and frustrated when left alone for any length of time. Introverts, on the other hand, function much better in one-on-one situations or with small groups of people they know, and tend to dislike smalltalk when it’s just to “network” with new people. In addition, introverts love having solitude for periods of time to recharge their internal batteries.

This analogy of charging/expending energy, while a bit oversimplified, is an accurate one. So then, why are large social situations so “costly” to an introvert? And why can they still “recharge” even when in large groups of close friends/family?

Let’s take a step back from this for a moment and look at how we interact in this society. We all wear our proverbial masks every time we step into the real world: hiding the reality of who we are and letting everyone see only the selves we wish to show.

As an introvert myself, I’ve come to theory that this “energy” cost in social situations is merely the necessity to ourselves of maintaining these masks. As we wear the masks and keep our internal filters and censors active, we expend more and more of our mental energy.

At least for me, this is why I “recharge” by spending lots of times with my close friends: Even though I’m being very social and involving myself with other people, it is with friends to whom I’d trust unfalteringly. I don’t have to keep any of my internal filters going or some such. I can just be me. I don’t have to hide who or what I am.

My theory isn’t very good at explaining the other side of this analogy, though. If this is the case, then why do extroverts lose energy by being alone and recharge by being so social and active? This is already beyond my understanding, and something I’d be mildly interested in researching further…But that’s a topic for another day!

Categories: Life, Science, Uncategorized Tags:

Some moments will haunt you; the right ones will inspire…

April 4th, 2014 No comments

[Originally posted as a Facebook note on April 4; retroactively posted to this blog days later. Note to self: I should really use this instead of FB Notes…]

To those who rejoice every time I change my Facebook relationship status for April Fool’s, your wanting to celebrate my intrapersonal success is very much appreciated. So I mark this as a success in its own way.

I’m not normally sentimental about these things; but this is a one-time specialty. Today, April 4, 2014, marks the one-year anniversary of my first date. Ever.

While I don’t want to write a sappy romance novel here or anything, suffice to say that asking her out in the first place was so ridiculously far out of my comfort zone, and was only thanks to the encouragement of amazing friends. Even though the end result of that date may not have been what I ultimately hoped, it forced me to break free from my comfort zone to really try to find my own happiness, rather than waiting for it to find me as I had done for so much of my life. To this day, I am eternally grateful to my friends for their advice and encouragement (and not just in relationship matters); but moreso I am grateful to my date (nameless here, for her sake) for her acceptance.

We all wear our proverbial masks every time we step into the real world: hiding the reality of who we are and letting everyone see only the selves we wish to show. But with her, it was as though I was reconnecting with an old friend, and that quick rapport of common interests and passion for technology really made that mask unnecessary.

Maybe it started as a simple infatuation; but for so long I had been lost (and often still am) in my own internal dialogue: constantly interpreting, analyzing and over-thinking everything. Ration, logic, and reason seem to work so beautifully for everything else in life; but not for such as these. My choir director so often advises to “listen louder than you sing”; and this seems so apropos to matters of the heart as well. When I asked her out, it was the first time in forever that I had seriously listened to my feelings louder than that dialogue. I broke free of wondering about how the question would be taken, free of the worry of negative result, and just did.

That initial crush is gone; and I am uncertain of the feelings that remain (some emotions defy analysis) …but I do know this: I am, and want to be, a better person by her having been (being?) in my life.

I’ll end this introspection here; I won’t celebrate this anniversary any more than this simple post, because its significance will fade as I grow to understand and embrace these more intricate emotions, bit by bit.

Categories: Life Tags:

2013: The Year of One Blog Post

January 1st, 2014 No comments

“♫ 525,600 minutes, 525,000 moments so dear…how do you measure a year?”

“Seasons of Love” (Rent)

As I begin writing this, 2013 will end within the hour. I suppose it’s only fitting to post something introspective on my blog, seeing as that’s how I am as a person. It’s hard not to be lost in my own thought sometimes. It’s comfortable in my own mind.

This past year has certainly had its ups and downs. I’ve sadly grown apart from some friends, but have made many new ones. Some of my friends have married or become engaged — and I couldn’t be happier for them! — and from my friends and the friendships we have I’ve learned so much more about others and about myself. I wish I could truly say everything I learned was good; but through good and bad I’ve become a stronger and better person. I’ve had successes which they have celebrated with me, and hardships which they’ve helped me through in more ways than they know. (It is here where I take another swig of this Smirnoff in toast to your awesomeness, friends!)

2013 has certainly had its milestones: first date, first time driving freeways, first metal concert, first time in Europe, first lucid dream, and so on. I could copy/paste so much more from my diary; but suffice to say I’ve made many significant choices about my life and the man I want to be….no, the man I am becoming. In the same vane, I’m sure 2014 will have its own torrent of emotions, insights, and personal growths. I venture into its unknown with an open mind and an eager heart.

So long, 2013 — It’s been a blast!

(Hey, it just ticked midnight! HAPPY NEW YEAR EVERYONE!)

Categories: Life Tags: , ,

Poem: Insomnia’s Caress

December 4th, 2012 No comments

Having trouble sleeping for whatever reason, so I wrote a short freeform poem to help my mind relax a bit. I call it “Insomnia’s Caress.”

Insomnia’s Caress
©2012 Peter Gordon

Rest betrays my weary soul;
Eyes shut, mind wandering.
Finding neither dream nor rest,
I wonder if it occurs at all.

Hours pass, until the dawn
When light breaks through the veil
I awake to the noise of day,
and rise from the embrace of sleep
to face the world, another time anew.

Creative Commons License
Insomnia’s Caress by Peter Gordon is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Categories: Life Tags: , ,

Happy Equestrian New Year (And: Thank You, Lauren Faust & MLP:FiM Team)

October 10th, 2012 No comments

Dear Lauren Faust,

Two years ago today aired the series premiere of this show you created: a show that would forever unite millions of fans – both men and women, adults and children alike, myself included – and change their lives for the better. From the inspirational characters to the wonderful artistry, from its excellent musical numbers (thanks Daniel Ingram) to the brilliant voice acting work all around, My Little Pony: Friendship is Magic has touched the hearts of so many, so quickly. And I your fan, cannot thank you enough.

To be honest, if two years ago you’d have told me I’d today be a fan of My Little Pony, I’d probably have laughed and made some snide, sarcastic retort. But since then, these colorful and playful bunch of magic ponies have stolen this geek’s heart.

I must admit feel a bit like Twilight Sparkle in the “Winter Wrap Up” episode: I can’t draw or do anything artistic at all; I am not imaginative enough to make fanfiction; and I won’t even dare to attempt a Pony Music Video or any such feat, since it would probably just be a waste of bandwidth. So how do I be a productive brony? I hope in lieu of anything fancy or creative, these words will suffice to demonstrate some iota of that gratitude.

In closing: Thank you, Lauren Faust. And thank you to the wonderful team of artists, voice actors, musicians, and other staff behind My Little Pony: Friendship is Magic. It’s been an absolutely fantastic first two seasons, and I eagerly await many more. (Oh, lest I forget, and thank you to all the creative fans who make the wait pass by with amazing art, videos, stories, and other media!)

If you would please, a brohoof!

(Pinkie Pie brohoof)

Aleedye’s Brohoof by ~MacchiatoJolt on DeviantArt (CC BY-NC-SA 3.0)

Yours,
Peter Gordon

Fedora Planet Feed

October 6th, 2012 No comments

Oops. It seems when updating my .planet file earlier, I copy/pasted the feed for my whole blog, and not solely the Fedora category as intended. I’ve adjusted that now, so the next time Fedora People runs it’s feed grabber, you should see this instead of my previous couple of posts (which were both not very Fedora-related). That doesn’t mean I’m any less interesting though — Feel free to read my blog at its full website for more! =)

Categories: Fedora Tags:

Passion, Not a Ph.D., Makes the Professor

October 5th, 2012 No comments

It has been said more than once that a good teacher knows the subject matter, while a great teacher is passionate about it. And nowhere is this statement more true than at a university level, where things like high class sizes, tenure, publications in academic journals, and other research opportunities can often cause professors to become rather lackadaisical about their teaching.

For a lot of professors today, a significant majority of their teaching comes down to their lectures. And while a professor may be very knowledgeable about that subject, if he or she does not know how to lecture well, it is ultimately the students who suffer. I’ve had a physics professor, for example, with a Ph.D in his field and decades of experience under his belt. He’s certainly a well-learned expert; but when he gave lectures, he spoke in a very soft, monotonous voice. And with run-on sentences everywhere, it seemed like he never paused to even take a breath. Not to mention that English wasn’t his native tongue, so he spoke with a slight accent. (This one I can’t fault him for; but that doesn’t mean it detracted from his lectures any less.)

Even when I was sitting in the front and center of the class, it was a mental strain to pay attention. Not only that, but his lectures were almost entirely him simply reading from his Powerpoint presentation, which he would post online after each class meeting. So in addition to the effort required simply to pay attention, there was always the mental trap of just reading those presentations on my own, outside class. Combine all of this, and it’s clear to see to how 9 shots of espresso could not keep me awake in that class. In fact, I had to withdraw from it; and I ended up taking Chemistry instead, the following semesters.

On the other extreme, I’ve had professors who are obviously passionate about their classes — for example, asking questions of the students, providing real-world examples, inviting lots of discussion, and really just having fun talking about the coursework. (And for the more awesome engineering professors, this often involves quite a bit of hilarious puns.) This happens even in more extracurricular things, too.

For instance, as part of my university’s Men’s Chorus, I find myself grinning from ear to ear after every rehearsal. Our conductor is fantastic. He’s so emphatic about the music we sing, and so emotive about everything we do in rehearsals and in our performances, from proper vocal technique to really nailing those more obscure rhythms and lyrics, and sometimes even to life in general. He’s also very encouraging and approachable. He clearly enjoys being at each rehearsal. And he clearly wants us to be better singers, and certainly, better people both on- and off-stage. He sincerely wants our choir to be more than just the sum of its voices — and you can see it in his mannerisms, his energy, the determination of how he teaches. (I suppose that in some ways, it’s a bit of an irony that one of my all-time favorite teachers is in a subject far removed from my majors.)

I hope that my fellow students (and former students) have had professors on that better end of this spectrum. For now, I’ll just have to hope that those end-of-semester evaluations are given their due considerations…

LaTeX: Adding Your Own Paired Delimiters

October 5th, 2012 1 comment

I’ve come to use LaTeX extensively for typesetting my Mathematics homework. It just makes things so beautiful. And like the XHTML/CSS split, it really does encourage strong separation of content from presentation. One of the things I first hated about it though, is that I grew quickly tired of using \left and \right with brackets, parentheses, or anything that needed to be automatically be sized to its content.

And, as any good engineering student might, I sought to encourage my own laziness by finding a clever shortcut. After a few minutes of searching Google, I came across the DeclarePairedDelimiter command in the mathtools package. Its usage is fairly self-explanatory, as I’ll let the following demonstrate.

First, you need to load the mathtools package in your document header:

\usepackage{mathtools}

Then you can create your own paired delimiters with the DeclarePairedDelimiter command:

\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}
\DeclarePairedDelimiter{\innerproduct}{\langle}{\rangle}

Finally, you can use these new commands in math mode to more easily group your expression. (Append an asterisk to make LaTeX automatically insert the necessary \left and \right commands when you need the delimiters to resize according to their content.)

If \(a \lt 0\) and \(b \gt 0\), then \(\abs{a} = -a\),
and so \(\abs*{\frac{a}{b}} = -\frac{a}{b}\).
The norm of a vector \(v\), denoted \(\norm{v}\), is
defined by \(\norm{v} = \sqrt{\innerproduct{v,v}}\).

As a nice bonus, it increases readability of the LaTeX source tremendously, since it gives those grouped expressions some semantic name rather than just being a bunch of formatting. For instance with the above delimiters, \left\lvert \frac{a}{b} \right\rvert is more to type, and a lot less obviously an absolute value, than the simpler \abs*{\frac{a}{b}}.

Happy hacking!

Categories: Science, Technology Tags: , ,

An Open Letter to Ken Ham (And: Thank You, Bill Nye)

September 4th, 2012 No comments

(I don’t normally post rants like this, but every so often I come upon something so frustrating to refrain from doing otherwise. Apologies for the tone.)

This is an open letter to Mr. Ken Ham, and a response to his YouTube video, “Ken Ham Responds to Bill Nye ‘The Humanist Guy’“, since comments are disabled there. Time indices with the quotations are approximate, and mark the end of that quotation in the aforementioned video.

Mr. Ham:

Before I even respond to the video content itself, I want to address one tiny issue: Comments are not enabled on your video. Why would this be? I believe that this is due to the fact that you KNOW in your heart that what you’re saying is neither sensible nor rational; and you simply want to prevent people from flaming you or posting any form of rebuttal to you as a reply. Well, thank goodness people like me have websites where we can post just about anything we want (within legal limits, of course). And here is my rebuttal to you, good sir: YOU ARE AN IMBECILE. Now, let’s examine the content of your video, and I’ll explain to you why I feel this way.

“In fact, Bill Nye doesn’t really understand science.” (0:57, 2:39, 2:42)

Things like this are stated multiple times throughout your video. And I must admit, I am a bit speechless. I don’t even know where to properly begin responding to that. Let me get this straight, then: Someone who doesn’t understand science could earn a Bachelor of Science degree (emphasis mine) from a private, well-reputed, and highly-accredited Ivy-League university? Someone who doesn’t understand science can develop a hydraulic pressure resonance supressor that’s still used in 747s today? Someone who doesn’t understand science can host his own TV show specifically teaching science to a young audience? Someone who doesn’t understand science can make a sundial that also helps with camera color calibration for the Mars probes? Look at Bill Nye’s record through academia and his professional career. OF COURSE that man understands science. He is a scientist. He lives it every day!

“I mean, Bill Nye himself actually is not a scientist. He studied mechanical engineering […]” (1:23)

Well, let’s see here. According to a Google Definition search, the word “scientist” means “A person who is studying or has expert knowledge of one or more of the natural or physical sciences.” So, let’s see if this applies to Bill Nye…is mechanical engineering a natural or physical science? Well, in fact, yes. ME is in essence the science of physical processes and how to apply them for benefits in technology. And does he have expert knowledge of it? Well…he has a Bachelor’s degree from Cornell,  three Honorary Doctorate degrees from Rensselaer Polytechnic Institute, Goucher College, and Johns Hopkins, many years of hands-on experience working for Boeing and as an aeronautics consultant, multiple scientific patents,  and has one of his inventions on the Mars rovers and another in most 747s still in use today (Source). I’d say that qualifies him quite well as an expert. So yeah, he’s an expert in the physical sciences. So, he is a scientist, by your own words. You’re 0-for-2 so far Mr. Ham.

“Bill Nye has an agenda […] to teach them they are the result of evolutionary processes; that they came from slime over millions of years.” (0:53)

“You can divide science into historical science that’s talking about the past, or observational science. That’s the science that builds our technology.” (1:07)

All science is “observational science.” This whole “historical science” talk is nonsense. Bill Nye is a scientist; and science is inherently observational. Science tries to learn and impart knowledge of the truths of the universe; and how do we do this? Through the scientific method, with painstaking attention to detail in reasoning and evidence. We observe what happens in nature and try to understand every tiny piece of the how and the why. And with the multitude of evidence we have for it — fossils, genealogy, tracing disease patterns, microbial growth, etc. — the theory of evolution is quite a sound one. (If you want proper historical science, try a field like paleontology or archaeology.) You’re 0-for-4 so far…

“I mean, the word ‘science’ means ‘knowledge.'” (0:58)

And Mr. Ham scores a point! Oh good. So you are in fact able to produce some iota of reason from that hole in your face.

“He says if you deny evolution to children, they’re going to have problems, because we need engineers. Well wait a minute. Engineering…and evolution? What has evolution got to do with engineering?” (1:19)

I’ll see your irrationality and raise you a “lolwut?”

The problem with denying children evolution is that in so doing, you’re denying them the very concepts of how to think critically. Of how to properly infer knowledge from some data. Of how to support that knowledge with further tests and experiments. Without these critical thinking skills, any attempt at studying engineering will fail before it can even begin. (Heck, I’d wager good money that most of the entire point of engineering is about finding clever solutions to problems in various related fields, like electronics, aerospace, fluid dynamics, architecture, etc.)

“I hope he did not apply any of his evolutionary principles to any of Boeing’s airplanes.” (1:32)

Well, in fact, he did. Not evolutionary processes. But sound technical and scientific principles. And with those he helped develop a hydraulic pressure resonance suppressor for the 747, still in use today.

“I’ll tell you what is real abuse, what is inappropriate for children: When you take generations of kids and you teach them that they’re just animals; [that] there’s no God; you’re a result of millions of years of evolutionary processes.” (2:12)

Call it abuse if you want, but I’ll repeat what I wrote above: Science is about finding and teaching the truths of our universe. Nothing more.

So you then proceed to acknowledge that we can observe and measure radioactivity while at the same time mentioning that bones and fossils aren’t found with photos or timestamps, so we couldn’t know how old they are. But of course, that same radiation-based technology couldn’t, you know, tell us how old those fossils are! (Le’ *gasp*!)

“He doesn’t teach children how to think critically.” (3:06)

Do you actually believe this? Seriously? A scientist who devotes his LIFE to educating the future generations of scientists…doesn’t teach them to think clearly? Are you really this daft?

“If evolution is true, I mean, it’d be so obvious to the kids that it’s true; but it’s not.” (3:29)

Apparently you are that daft! So, let me get this straight…according to you, stuff that’s true is obvious to school children? Hmm…let’s try this. The square of the length of the hypotenuse of a triangle is equal to the sum of the squares of the other two sides after subtracting twice the product of those two side lengths by the cosine of the acute angle between them. (This is the law of cosines, straight from trigonometry.) This is absolutely true; but is it obvious to children? Heck no. In fact, it’s barely clear to the math students when they first see it.

Okay, maybe you’re not so much a fan of mathematics so let’s try another one – this time from the realm of chemistry. The rate of diffusion or effusion of a gas is inversely proportional to the square root of its molecular mass. This is Graham’s Law, straight from a high school or college chemistry course. Again, this has been experimentally shown to be true; but is it obvious to children? Minus a few child prodigies here and there, I’d say this is definitely not an obvious result to kids.

 “You have to do what Bill Nye the Humanist Guy wants. You have to protect them from hearing anything about creation. You totally indoctrinate them. You brainwash them. You don’t teach them to think critically at all.” (3:50)

Indoctrination. Brainwashing. Those are some pretty good terms for teaching creationism.

“Isn’t it interesting how Christians are not frightened to teach their children about evolution?” (4:10)

Apparently you’re trying to make them so. And if not, why even have this argument at all?

“[…] and see why you don’t want Bill Nye ‘the Humanist Guy'” teaching your children.” (4:36)

God-willing, I’d love to have Bill Nye teach my kids science. When I was a boy, he was one of a few who really helped inspire in me a deep appreciation for mathematics and sciences, and I would come home from school eager to see another episode of Bill Nye the Science Guy on PBS. (Even nowadays, I try to catch episodes of Bill Nye’s Solving for X when I can. Sure, they’re usually topics I already know quite well, but he covers them in such neat ways, and has very clever and humorous demonstrations to show them.)

So, in closing, I’d like to repeat my opening remark: Mr. Ken Ham, you are an imbecile. It’s people like you that are holding back our society. Holding back our scientific progress. Stop with your lies and stop spreading FUD about things of which you know seemingly so little. Please disconnect your computers entirely from the internet, and make it a better place in so doing.

I would also like to end this open letter by extending a personal debt of gratitude to Bill Nye. If you are reading this, Mr. Nye, thank you for all that you’ve done for science. And thank you for standing up to religious weirdos like Mr. Ham over here. *thumbs up*

Respectfully yours,

Peter Gordon

Categories: Science Tags: , ,

Cherry-Picking With Git, For Fun And For Profit

February 23rd, 2012 3 comments

(This is more as a reminder to myself in the future, rather than a full-fledged posting.)

As I learn more about Git and how we use it in Fedora packaging, I keep discovering cool new things about it that I love. One particular aspect that I’m quickly growing to adore is the feature to cherry-pick between commits in related branches. Suppose I’m currently working on the master branch of a package which is kept in sync with f16 and f17 branches.

Now, a new version comes up or I make a patch to fix a bug. After committing the changes to master, I can easily copy those commits to the release branches with a simple cherry-pick operation:

$ fedpkg switch-branch f17
$ git cherry-pick master

This copies the most recent commit from the master branch into the current one. (See the Git documentation for more information on specifying commit IDs.) Compare this to CVS, where we had to manually diff the devel/ branch directory and apply that to each branch by hand…it’s so much nicer with Git. 🙂

Then it’s a simple matter to push the changes to the Fedora repository and run builds for them through Koji, by running fedpkg push and fedpkg build in each branch. Sweet!

Also, the fullscreen mode of WordPress’ new post editor is fantastic – I owe someone a beverage for that.

Now to get some sleep, so I can finish this Algorithm Analysis project tomorrow. Ta for now!

Categories: Fedora Tags: , , ,

Bugzilla Spam, Ahoy!

August 2nd, 2011 No comments

In an effort to organize my Fedora bug squashing, I’ve been going through all the bugs assigned or CC-ed to me on Fedora’s Bugzilla. The first thing I’ve done is to remove myself from the CC and Assignee of many bugs whose packages I no longer maintain or have interest in. Unfortunately, if you’re on these bugs CC-ed or otherwise, you’re about to get an influx of 200+ automated email notifications from bugzilla about these changes. My apologies! 😮