### Archive

Archive for the ‘Technology’ Category

## 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?

Categories: Tags:

## 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.

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.

Categories: Tags:

## 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.

Categories: Tags:

## 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.)

Categories: 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: 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!)

Categories: Tags:

## 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: Tags:

## CurvyLooks 0.4 RC1: Almost GNOME 3-ready!

April 10th, 2011 No comments

After over three years, CurvyLooks has an update! Yes, folks – this time it’s for GNOME 3 support….well, almost. It is based heavily on the Adwaita GNOME theme (in fact, simply copied verbatim in many parts). Unfortunately, I’ve not been able to adequately set the menu item and notebook-tag coloring, so those parts still look a little bit ugly. I’ve been trying to tweak the Adwaita theme on a trial-and-error basis to see how to do this, to no avail. Contributions welcomed! 😉
Also, I need to post more often on here…this I have decided.

Categories: Tags:

## Slight E-Mail Hiccup

March 1st, 2010 No comments

Having grown more than a little bit tired of how slow Evolution is at filtering emails, I decided to try the new Thunderbird. (I say “new” because I have not used it since it was version 1.5-ish.)

Unfortunately, I accidentally decided to have them both open at the same time – my understanding being that IMAP is okay with multiple simultaneous connections. Apparently this is not the case between Thunderbird and Evolution, as I quickly discovered. Something clashed with something else somewhere along the code, and now much to my dismay my Inbox is empty. (Oops.)

Long story short, if you sent me an email since Saturday morning (which was the last time I thuroughly checked my email) that you need me to read and/or respond to, please resend it.  Thanks.

Categories: Tags:

## ThinkPad T500: Initial Fedora Report – Marvelous!

September 14th, 2009 3 comments

Well, after receiving my ThinkPad T500, I set about tweaking the pre-installed Windows Vista, and spent most of the weekend attempting to get it dual-booting Vista and Fedora nicely. For better or worse, neither Fedora’s GRUB nor Windows’ BCD bootloader would accept booting the other OS properly. I came to realize that I hadn’t used or needed to use Windows in over 5 years (even the server at work is CentOS), so It’s highly unlikely that I will need it in the foreseeable future. Just in case though, I can always run it in a VM. So, after burning the Product Recovery Discs, I wiped it all and installed Fedora on this wonderful machine. 🙂

I configured it with 4 partitions:

1. /boot (about 500 MB)
2. Swap (about 5 GB)
3. / (FS root, about 35 GB)
4. /home (the remaining ~210 GB)

As far as the hardware goes, everything appears to work out of the (quite literal) box. The processor’s throttling is automatically handled by cpuspeed and ACPI. The LCD was automatically detected at the appropriate resolution (WSXGA+, 1680×1050) and DPI (129), and graphics (integrated Intel GMA X4500HD) work very well – 3D, Compiz, and everything. Virtualization extensions (so-called “VT”) were disabled in the BIOS by default for whatever reason, but enabling them took only a few seconds and KVM works wonderfully (running an Ubuntu 9.04 virtual machine for a Linux class).

The TrackPoint(tm) and TouchPad both work splendidly, although the TrackPoint does take a lot of practice to get comfortable with. I’m tempted to disable the touchpad in the BIOS, since I don’t actually use it for pointing (and I often erroneously swipe it with my palm while using the so-called “nipple mouse” of the TrackPoint); but I do use it for the scrolling, so I’ve not yet found a happy medium. Suggestions appreciated.

The hard disk (Western Digital WDC WD2500BEVS-0) and DVD burner drive (HL-DT-ST DVDRAM GSA-U20N) are surprisingly speedy. I’ve already burned two copies of the Fedora 11 LiveCD and several data discs (backups) with no problems. The Bluetooth works well, and I can easily send and receive files to and from my phone through the included Bluetooth stack. The wifi  (Intel WiFi Link 5300 [AGN]) works beautifully with the included iwlagn driver, enabled by default. Also, NetworkManager makes connectivity trivial. (Thanks, devs!)

The firewire and PC Card slot also seem to work – they are autodetected and drivers loaded. However, as I have no firewire- or PC Card-based devices, I cannot verify their functionality.

I have come to quickly love the GNOME Power Manager stack. According to it, the battery on a full charge should last me about 5 hours. It keeps track of how much charge the battery has, how quickly I’m consuming or charging it depending on if I am plugged into AC power, etc. It even shows me a graph of my recent power history! Wonderful little tool. With the help of Intel’s fantastic PowerTOP utility, I’ve increased that computed estimate to nearly 6 hours. (!)

With regards to multimedia, things worked beautifully without me even trying. The built-in webcam works perfectly with Cheese, and the built-in sound works for both playback (surprisingly loud at maximum volume!) and recording (not fantastic quality, but it’s very good at eliminating surrounding static and other noises). I can’t wait to try video-calling someone with the recent Empathy enhancements!

All of the hotkeys – brightness-switching, volume control, playback/navigation, etc.) work as expected, and ACPI (with GNOME Power Manager) even automatically suspends when I close the lid – wonderful!

I’ve also noticed that the machine stays colder in Fedora than it ever did while running the preinstalled Windows. Maybe this is only subjective though, as I never checked the actual temperatures in Windows. Or perhaps Linux/Fedora is better at staying in deeper C-states for longer intervals. In either case, I can work with it directly on my lap quite comfortably.

One of the main reasons I decided upon the T-series instead of a similar R-series laptop was weight. Even with the battery installed, it is only about 5.5 pounds. (That’s about 2.5 kilograms for the rest of the world who use a less-insane system of measurements.) This is quite comfortable to carry with me around school and work without tiring my shoulder.

The only thing which I’ve been unable to test, aside from the firewire and PC card slots, is the dual-screen capability. According to the included manual, it should be capable of using the DisplayPort interface to attach a secondary screen (such as a projector) and automatically resize appropriately, with [Fn]+[Spacebar]. I suppose that if this does not yet already Just Work(tm), it will be fixed by the time I need to worry about actually using it though.

Overall, I love this laptop, and am extremely happy with my purchase decision. In fact, the only qualm I have with this wonderful computer is that it’s not yet decorated! Oh great lazyweb, doe anyone know where I can get stickers for GNOME, Fedora, Linux/Tux, et al., to adorn it with? 😀

Also: A huge THANK YOU to all of the developers who helped make my first Linux-on-a-laptop experience an absolutely wonderful one. I love it when things work so simply and effectively!

Categories: Tags:

## My First Laptop: A ThinkPad

August 24th, 2009 3 comments

Another summer has passed me by, and I still haven’t learned how to ride a bike nor how to swim properly. Alas, I suppose I’ll get to these eventually. I have kept one of my resolutions though. I finally splurged and bought myself a ThinkPad (specifically, a T500). I decided upon the following specs:

• Intel Core 2 Duo Processor P8400 (2.26GHz 1066MHz 3MBL2) 25W
• Genuine Windows Vista Home Basic (Will be used only to verify hardware functionality. Fedora will replace it thereafter.)
• 15.4″ WSXGA+ TFT, w/ CCFL Backlight (137 DPI…sweet.)
• Intel Graphics Media Accelerator x4500HD with vPro
• 4 GB PC3-8500 DDR3 SDRAM 1067MHz SODIMM Memory (2 DIMM)
• UltraNav (TrackPoint and TouchPad)
• 250 GB Hard Disk Drive, 5400rpm
• DVD Recordable 8x Max Dual Layer, Ultrabay Slim (Serial ATA)
• Integrated Bluetooth PAN
• Intel WiFi Link 5300 (AGN) with My WiFi Technology
• 9 cell Li-Ion Battery
• 4 Year On Site Upgrade with 4 Year ThinkPad Protection

Thankfully, I found an excellent discount through the CPP (Contractor Purchase Program) which cut the cost from nearly $2,200 to just$1,400 (including shipping and taxes, state fees, et al.) – a savings of 40%! The 4-year protection plan was about 30% of the final cost. Well worth it, though.

As it is, this will be a life-safer, as I’ve been having a lot of intermittent hardware issues on my desktop: I get seemingly-random WiFi disconnects; DVD-burning often fails for no discernible reason, and my hard drive is on its last legs, so to speak. (In fact, just today I saw another 12 sectors go bad and need to be reallocated…its count is now at 177. The manufacturer maximum is 188!) – I’m all anxious and impatient now!

So, in the span of one month, I’ve spent almost $4,000 (tuition/registration fees, books/supplies, and ThinkPad). I think that’s quite enough for a while. 😮 Categories: Tags: ## Backup Strategies June 20th, 2009 11 comments With my primary hard drive (a three-year old WD Raptor WD740) having been on life support, so to speak, for the last 3 months, I’ve been a lot more diligent about keeping backup copies of my data. Every couple of days, I log out entirely and run a simple rsync script to copy my entire /home directory to a specialized partition on my secondary disk, which I keep at /mnt/backup for simplicity sake. While its parameter handling can be a bit quirky, I find that it is extremely useful for two reasons: The first more or less negates its quirky parameter handling: Clear and thorough documentation, with lots of example program calls The second is that it saves me a lot of time in copying the files. Similar to the DeltaRPM feature I raved about with Fedora 11, it copies over only the changed content instead of the entire directory tree. With my home directory at nearly 20 GB, incrementally updating my backup like this prevents a good 90+% of the data from needing to be copied again. In this way, I know that I have at least two copies of my data at any given time. A major plus to copying the directory tree as-is is that, once the drive does die and I replace it, I merely need to copy it over, without changing anything or unpacking huge tarballs and applying diffs, et al. The disadvantage to this is that I only have one consistent backup copy of my data at a given time, and that backup is on a hard drive in the same computer. So, should there be a massive system failure of some sort (knock on wood!), then I would lose my data for certain. I also intend to purchase CD-RWs for this purpose – that is, as an additional backup medium – in the near future. But for right now, the second on-disk copy suffices. I also want to setup a RAID system in my next computer build…but that’ll have to wait. 🙂 So this simple rsync method, as with any storage decision, has its benefits and downfalls: Pros: • Easy to configure; • Can be automatically run (e.g., in a cron job); • Updates occur via content deltas, not full copies; • Backup data is “as-is”, and can be used immediately after copying. Cons: • Only one backup copy; • Physical proximity to original data; • Requires space for an entire duplicate of the directory tree. For me, though, this method works out well. Do others have a similar system? Would you suggest any improvements/simplifications? I’d like to hear your thoughts on the matter! Thanks. Categories: Tags: ## Leonidas: On the Brink of Release June 9th, 2009 2 comments With Fedora 11 (“Leonidas”) released earlier today and Rawhide looking to the future, I find myself instead looking back at what has made Leonidas such an excellent release. With over 50 new features in this release (more than any previous release, I’ve been told!), it would seem logical that this staggering amount of new improvements would leave us with many majors bugs and issues yet to resolved – the more features we add, the less manpower/resources we can expend on each individually, right? Wrong. With so many test days and an amazing Quality Assurance team, we’ve hammered, smashed, pounded, banged, and kicked this release into a uniquely rich and stable Fedora experience. One of my favorite features of this release is Presto. Though not enabled by default, Presto allows users to use so-called DeltaRPMs to update the packages installed on their system. That is, instead of downloading the whole new updated packages, only the changes between the installed version and the update need be downloaded. Especially for large packages (such as some game data and OpenOffice.org) or those who are on a slower or pay-per-usage internet connection, this can be a very hefty savings both in time and cost. I used it immediately after installed Leonidas, and it saved me quite a bit on the initial updating: Size of all updates downloaded from Presto-enabled repositories: 14M Size of updates that would have been downloaded if Presto wasn't enabled: 128M This is a savings of 89 percent Win! The DRI2/KMS support has also been updated heavily and now works out of the proverbial box, at least for a large portion of Intel and AMD/ATi hardware. (This allows a proper composited desktop with 3-D and all. By default. VERY awesome.) Another excellent feature is that the installation now defaults to using the Ext4 filesystem where applicable. I must admit, I was a bit afraid of actively using this when I was first reading about it, due to all of the reports of data corruption people have experienced; but it seems those issues are long-since fixed, as I’d been using Ext4 for my root partition since Fedora 10. With Leonidas, I took the plunge and upgraded my /home partition (via Anaconda) from Ext3 to Ext4, and have yet to notice a problem. (For those wishing to do similar – and even for those not – I would still highly recommend keeping proper backups Just In CaseTM) Finally, while I could pinpoint each and every feature and how I feel it’s improved Fedora, suffice it to say that I don’t have adequate time to type out such a long rave. However, as much as these individual features improve Fedora on their own, it is their conglomeration which impacts us the most – the way things are so well-integrated and work properly “out of the box” (so to speak), the way that we as a community of many actively support all of this so well, the way we as a community so diverse handle bugs and packaging, the beautiful artwork and the amazing work of the Release Engineering team to distribute this blend of creativity so readily. I’d like to rehash those last few points: It’s the wonderful combination of the efforts of you countless contributors and users which makes Fedora so great. Thank you all. Keep up the impressive work. I can’t wait for what’s to come in Fedora 12+! Categories: Tags: ## Recent Lack of Availability May 27th, 2009 1 comment Err. If you’ve tried to get in contact with me over the past week or so (email, bug report, IRC ping, et al.), please excuse my complete lack of response. Having just finished final exams, I’d been very unproductively relaxing – playing video games, watching lots of anime, taking a short trip with family, and just generally doing as little “work” as possible – which included Fedora hacking. I really should have posted some sort of away message or “Offline for a while” email; but completely neglected to do so. Mea culpa. As I’m now officially on summer vacation (at least, until I can find a good job/internship), that will definitely change. 🙂 Categories: Tags: ## I’m…geekin’ out! May 8th, 2009 No comments Right, so I just got back from seeing the premier showing of the recent Star Trek film at the GardenWalk IMAX with a bunch of friends, and I’m completely geeking out. Yes, there were some plot flaws in it (such as the way Kirk defeated the Klingons in the “Kobayashi Maru” exam) but it was meant to be a bit of an alternate history, and I was thoroughly impressed with the movie as a whole. The actors played their roles amazingly well, but I especially liked McCoy (Karl Urban), Scotty (Simon Pegg) and Spock (Zachary Quinto). I was also quite pleased in that, as the limelights dimmed for the movie to begin, at least two other people in the theater joined me in shouting Qapla’! (Klingonese: “success”). There were no Klingons in this film, but that made it no less fun! On the other hand, I do apologize that schoolwork has taken up most of my free time recently, and will continue do so until the end of the semester (two more weeks), and because of this I’ve not been very active on the Fedora front. However, I hope to change that once classes let out for the summer. 🙂 Categories: Tags: ## Offline After Nearly 7 Billion Rotations April 8th, 2009 1 comment (That’s slightly more rotations than there people on Earth! :o) With Spring Break giving me some much-needed time off from classes, I had some time to install and test the recently-released Fedora 11 Beta. While I do think there are many minor issues (such as Urban Terror having no sound and not being able to quit), there are many awesome improvements over Fedora 10 already. Among these are such niceties as DRI2 & Kernel Mode-Setting support for Intel video (enabled by default!), DeviceKit, and the obvious benefits of GNOME 2.26. However, one thing that I noticed over the past weekend (looking through the awesome new Palimpsest disk utility) is that my secondary hard drive (a Western Digital WD740 Raptor) has begun to show its age after nearly 4 years of trusty service. The automatic block-reallocation and CRC error counts were already listing as “Failing” and just about everything else in the SMART self-test results are listed as “Pre-Fail.” Thankfully, it persisted long enough to backup my entire home directory to the primary disk (a 40GB Maxtor something-or-other). However, this backup has made that primary disk – which I have partitioned with everything else) almost full, with only about a gigabyte free. (That was close!) So, until I can get that replaced, I’m going to be getting my work done on my parents’ computers and those in the school labs – which means I’m not going to be able do anything Fedora-related other than simple bug-triaging for a while. With schoolwork and other duties now, it’ll probably take me about a week or so to order the new drive from NewEgg, have it shipped, and properly install it in my PC. I do apologize for any inconvenience this may cause; but as I’ve said on prior occasions, hardware and I seem to have a very love/hate relationship. :-/ Categories: Tags: ## Accidental Fixes February 22nd, 2009 No comments “If debugging is the process of removing bugs, then programming must be the process of putting them in.” (Edsger W. Dijkstra) After fixing the notification-daemon bubbles (thanks, Martin!), I spent some time perusing through some of the other GConf settings and found another rather interesting gem: /desktop/gnome/interface/show_input_method_menu which is set to off (False) by default. Now, for the longest time I’ve had trouble in Xchat-GNOME (my IRC client of choice) with getting Japanese input to work properly. There was no preedit text or conversion from Romaji to Kana/Kanji. SCIM/Anthy just wasn’t being used at all! But changing this one item, it’s easy now to get SCIM working as it should, but selecting the “SCIM Bridge Input Method” from the context menu. Granted, it’s definitely not a correct or long-term fix by any means; but at least now I’m not given the inconvenience of opening up gedit or some other application to switch back and forth when I want to IRC in Japanese. Yay! I should probably go package up that new Midori release now. 🙂 Categories: Tags: ## If a PC speaker beeps in a Fedora system and no one is around to hear it, is it still annoying? January 24th, 2009 4 comments Paul, John, and Joeren, I find that beeping so annoying that I simply eliminate that module entirely rather than disable it or blacklist it. To ensure that each new kernel update has its pcspkr module also removed, I append the following to the /etc/rc.local file. rmmod pcspkr ||: rm -f$(modprobe -F filename pcspkr) ||:

I suppose one could make an RPM whose sole purpose is to keep that in a trigger scriplet for each kernel update, but that might be just a little bit overkil.

Also, a great big Happy Birthday to Max Spevack! 🙂

Categories: Tags:

## New Year, New Blog

January 23rd, 2009 2 comments

Well, wwwaaayyy back in October 2007 (!), one of the reasons I citied for moving away from a self-hosted blog setup in the first place was “integration with external services.” It’s been well over one year since that time and I still have no idea what services I was referring to. However, I’ve decided to move my blog back to my own domain because of the much finer control of the content and its display. (It’s no longer “my blog on some website” but instead “my blog on my website” mainly.)

I tried yesterday to import the posts and comments from LiveJournal, via both WordPress’s LJ-XML importer and the script that Jeremy linked to. Unfortunately, the results from both of these attempts were only mildly successful. (Indeed, I call them “successes” only because the posts’ content was properly imported.) So for ease of my own workings, I’ve decided to leave those on LiveJournal until I can figure out a more appropriate method to transition them to this blog setup.

Everything should be more-or-less functioning the way I want now; but do let me know if there are any problems with the move. (And don’t forget to update your bookmarks/etc.!)

In closing, next time I decide to stop posting for a month, I kindly ask that someone poke me incessantly. Thanks. 😮

Categories: Tags: