The JetBlue Experience
I recently wrote (twice) to JetBlue about my experience with their services and systems. Both of which seem chock-full of fail. Here are the two stories:
I recently returned from a weekend in Vermont and possibly the worst customer service experience I’ve ever had.
Last Wednesday, I was originally set to fly out of Dulles at 6:30 PM from gate B66. However, when I arrived at the airport around 5, I noticed that the departure time printed on my ticket was 7:45 PM. Given that, I assumed I had plenty of time to work and eat prior to my flight. When I arrived at the gate at 7:15, I was informed that my flight had departed at 6:30. I was irritated, but calm. I asked if it was possible to get a seat on the flight to Boston and, upon arriving, I planned to drive to Vermont. At this point, the gate supervisor(?), Norman, became belligerent and blamed me for missing the flight and informed me that the plane could leave at any time and I should be waiting patiently at the gate. He said he could put me on the flight to Boston for $100 extra. At this point, I walked away and called JetBlue to file a formal complaint, not because of _what_ he was saying, but _how_ he was saying it. Someone in his position who is supposed to diffuse customer aggravations shouldn’t be agitating customers more. His position/promotion was nothing short of a mistake.
Eventually, I spoke to manager, Anya, who filed the complaint and tried to help me out my current predicament (i.e. stranded in DC). Since I booked my ticket with points (NB: I had no idea what kind of debilitating situation to which that would lead), I was transferred to the TrueBlue CSR, who proceeded to book me on the Boston flight and “fix” the problem (NB: “fix” is surrounded by quotes because the “fix” cost another 7000+ points and led to even more problems, which I will talk about in my next SpeakUp correspondence).
In closing, I have two questions:
- Since the person in charge at the gate deals with irate customers day-in and day-out, shouldn’t they be someone with a personality that diffuses rather than exacerbates the situation?
- Why print the delayed time on the ticket? Travelers are already expending large amounts of time dealing with the various agencies within the airport, the illusion of additional time is a boon for some and a bane to others, but giving accurate information that avoids negatively affecting the customer is the only real solution.
I will follow this correspondence with the details of my return trip. Thank you.
My second story:
I recently wrote into SpeakUp about my original trip on August 24th up to Vermont and how I was severely disappointed with how JetBlue handled my situation and inquired as to why incorrect/inaccurate information was printed on the issued airport ticket. The initial leg of my roundtrip flight from IAD to BTV was rerouted to BOS…or so I thought.
While I was in Vermont, just before Hurricane Irene hit, I received an email on August 26 that said my return flight to IAD had been preemptively cancelled and rebooked for Tuesday AM. Though a bit miffed about the lost work time, I decided not to cause any issues.
When my wife and I sat down to check-in to our flight, I noticed that only her name came up on the confirmation number. Thinking there was some mistake, I called JetBlue, which, incidentally, turned into a three hour phone call that ruined lunch with some friends. I was then informed, after more than 30 minutes on hold (after the initial hold time) that I needed to speak to another TrueBlue CSR. The TrueBlue CSR then informed me that I had cancelled my return flight which is why I didn’t have a ticket.
To borrow a line from Fight Club: “We have just lost cabin pressure.”
At this point, I could barely contain my anger. What I was hearing at the time was: “You missed your flight from Dulles to Burlington, though no fault of JetBlue, and you decided to go to Boston, one-way and pay an extra 7000+ points to do so, just so you could rent a car for $130 (plus fuel) in order to spend 3 hours to drive to Vermont, finish the weekend and send your wife home by herself and strand yourself there.” I mentioned that to the CSR and was even more irritated when it seemed like she was blaming me for my predicament (NB: I will concede that I was furious at the time and was possibly taking what she was saying a bit too literally). She reinstated my old flight and said that she could get me on a flight to JFK on Tuesday, but I would have to wait until Wednesday to get back to IAD. I asked if I could get a train ticket from Penn Station to Union Station. I was informed that JetBlue does not purchase train tickets. I asked if I could be rebooked on another airline in NYC. I was informed that JetBlue only partners with American Airlines and they were no longer taking anyone else. Defeated, I said “fine” and went back to eating lunch with the one friend who remained through the debacle.
We eventually realized that we would spend more money with me being stranded in NYC, so we decided to spend the $230 (plus fuel) rent a car (again) and drive from BTV to IAD, where our personal car was located. We arrived home at 5:30 AM and proceeded to work the next day. This is why I vehemently correct people when they ask: “Were you stranded in Vermont because of the hurricane?”
No. I was stranded because of JetBlue.
I’m currently part of the TrueBlue program. I have the JetBlue American Express card. I was a loyal customer of JetBlue, almost to the point of zealotry (i.e. “If JetBlue doesn’t fly there, I probably don’t need to go there.”). The TrueBlue system changed and became less alluring, which, in turn, made paying the annual fee on the JetBlue card rather unsavory. I need to reevaluate my relationship with JetBlue.
Not my finest prose/storytelling, but the exercise was cathartic. Now…we play the waiting game…
No commentsAarron Walter at An Event Apart
Listening to Aarron Walter talk at An Event Apart about entrepreneurship and doing things “on your own time,” I was reminded by this quote by Charles Bukowski:
“If you’re going to try, go all the way. Otherwise, don’t even start. This could mean losing girlfriends, wives, relatives and maybe even your mind. It could mean not eating for three or four days. It could mean freezing on a park bench. It could mean jail. It could mean derision. It could mean mockery — isolation. Isolation is the gift. All the others are a test of your endurance, of how much you really want to do it. And, you’ll do it, despite rejection and the worst odds. And it will be better than anything else you can imagine. If you’re going to try, go all the way. There is no other feeling like that. You will be alone with the gods, and the nights will flame with fire. You will ride life straight to perfect laughter. It’s the only good fight there is.”
This resonates with me, though, due to social pressures, it’s very difficult to do.
This is just a quick thought. Hopefully, I’ll be able to flesh this out later.
1 commentStephen and Education
I just sent this to Comedy Central regarding The Colbert Report:
I was curious why Stephen hosts people like Michelle Rhee and Geoffrey Canada, but hasn’t brought on Diane Ravitch to show the other side of the argument. It’s strange to me, since Stephen has, on numerous occasions, made a name for himself by publicly showing the other side of various controversial arguments…sometimes in the presence of Presidents he’s calling out.
If I get anything back, I’ll be sure to post.
No commentsMy Favorite Spool Presentation
Complete, with audio, by the brilliant Jared Spool.
Working with Git on Dreamhost
Preamble
Though I gained most of these insights by reading this very informative site, I need to retype things in my own words to catalog my own trials and tribulations while satisfying my own thought process (or lack-thereof). Mind you, I’m not adding much (if anything) to the original post…just my own perspective and tailored to a Dreamhost environment.
Prerequisites
No one likes passwords and all of the baggage attached to them (e.g. typing them, changing them, etc…). To avoid typing passwords when connecting to the server (which becomes a requirement/necessity for git a bit later on) we generate public/private keys using ssh-keygen:
$ ssh-keygen -t rsa -C "user@email.com"
NB: I’m not going to go into the particulars of RSA. Wikipedia has a pretty good primer.
Executing the command generates a sequence of password requests followed by the generated key fingerprint and randomart image (example output shown below with sensitive bits removed and set off by asterisks):
Generating public/private rsa key pair. Enter file in which to save the key (/Users/username/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/username/.ssh/id_rsa. Your public key has been saved in /Users/username/.ssh/id_rsa.pub. The key fingerprint is: *fingerprint* The key's randomart image is: *randomart*
You’ll need to move ~/.ssh/id_rsa.pub to the server as it will be needed later in the process.
Setting Up Gitosis
Before starting, it’s important to note 2 things:
- Wherever you put Gitosis, it will take over the account preventing you from ssh-ing into it directly.
- When you connect to the repository, the full path to the location where the files are kept is not necessary (and it will fail).
All of the following instructions take place on the server hosting the repository. First, create a src folder to store all the bits of code:
$ mkdir ~/src $ cd ~/src
Download the latest version of git:
$ wget http://kernel.org/pub/software/scm/git/git-1.7.0.2.tar.gz
Decompress the file:
$ tar -xvvzf git-1.7.0.2.tar.gz
Change to the new directory and install:
$ cd git-1.7.0.2 $ ./configure -prefix=$HOME/local NO_MMAP=1 $ make $ make install
NB: Your prefix path may be different depending on your preferences. You’ll want to specify the root of the directory that contains (if they currently exist) the bin, lib, and similar directories.
Create a directory to contain localized Python additions.
$ mkdir -p ~/local/lib/python2.4/site-packages
Add these additions to .bashrc and .bash_profile:
# lines for gitosis export PYTHONPATH=$HOME/local/lib/python2.4/site-packages/ export PATH=$HOME/local/bin:$PATH
Before installing Python setuptools, you can add a .pydistutils.cfg file that adds a bit more fine-grained control to this (and future) installation. You can create this file with your editor-of-choice or by executing the following lines:
$ echo "[install]" >> ~/.pydistutils.cfg $ echo "install_lib = ~/local/lib/python\$py_version_short/site-packages" >> ~/.pydistutils.cfg $ echo "install_scripts = ~/local/bin" >> ~/.pydistutils.cfg
The previous lines create a .pydistutils.cfg which looks like this:
[install] install_lib = ~/local/lib/python$py_version_short/site-packages install_scripts = ~/local/bin
As an example, in an environment using Python version 2.4.4, libraries would be installed to ~/local/lib/python2.4/site-packages.
After setting up the optional config, install Python setuptools (setuptools-0.6c11-py2.4.egg was the latest version at the time of writing):
$ cd ~/src $ wget http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c11-py2.4.egg $ sh setuptools-0.6c11-py2.4.egg
Install the latest version of Gitosis:
$ cd ~/src $ git clone git://eagain.net/gitosis.git $ cd gitosis/ $ python setup.py install --prefix=$HOME/local
Using your publickey, initialize Gitosis:
$ gitosis-init < id_rsa.pub
There still remains one minor problem: the permission on the post-update hook:
$ chmod 755 ~/repositories/gitosis-admin.git/hooks/post-update
NB: This issue was supposedly fixed with a newer version of setuptools, but I still ran into the issue.
Now, everything should be configured correctly.
Using Gitosis
Gitosis, by default, puts everything into a repositories directory. Git is used to administer Gitosis, so it’s necessary to checkout the Gitosis Admin project. On your local computer:
$ cd ~/your_projects_directory $ git clone user@domain.tld:gitosis-admin.git $ cd gitosis-admin
To add a repository or add a user to a group, the file to edit is gitosis.conf. Below is an example configuration:
[gitosis] # just for initial testing, set the loglevel to DEBUG loglevel = DEBUG # if none of the repositories are going to use gitweb gitweb = no # if git-daemon isn't running daemon = no # the default group [group gitosis-admin] writable = gitosis-admin members = user1 # another user group [group anothergroup] # the repository to write to writable = newrepository # refers to the previous group and adds another user for just this project members = @gitosis-admin user2 # a new repository [repos newrepository] owner = Some Owner description = Description of the project
The users refer to the keys in the keydir. If any new users are to be added to the project, their public keys must be added to the keydir and the names added to the appropriate groups in gitosis.conf. Gitosis handles all access control.
Push the new config changes:
$ git commit -am 'Added new group and new repository. Also added new user key.' $ git push
Everything should work fine. Now to add the new repository.
$ cd ~/your_projects_directory $ mkdir newrepository $ git init $ git remote add origin user@domain.tld:newrepository.git # add new files, commit, etc... $ git push origin master:refs/heads/master
The line git push origin master:refs/heads/master is only necessary the first time. Once the link is established, every subsequent push should just entail a git push.
Pitfalls During Installation
After configuring everything, I attempted to create a new repository. This is where I started running into problems:
ERROR:gitosis.serve.main:Repository read access denied fatal: The remote end hung up unexpectedly
The issue was a conflicting line in the authorized_keys file (i.e. an original key that I added to the server to ease the login process).
Then I ran into this problem:
fatal: 'repositories/newrepos.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly
I was adding the path repositories without realizing that referring to it was unnecessary.
The biggest issue I ran into, and it was extremely irritating since it returned false positives, was assuming the post-update hook issue was fixed with the latest setuptools. It wasn’t. During a push, it looks like everything is updating fine in git, but no changes are being made on the remote server.
Hope this all was helpful.
No commentsRegarding window.location
I ran across something new (at least, new to me) today. Using window.location.hash, if the same value is being assigned to the hash, the browser looks at it as a non-operation. The value needs to be reset first before reassigning the same value (e.g. for the purpose of resetting the view to the top of a dynamic list). I’ve noticed this behavior in Firefox 3 and Safari 3+.
I rarely write about coding issues, but it might be a good way to catalog my findings for my own reference. My apologies to everyone else.
Update: I thought this could use an example.
var hashVar = 'content-top';
// ASSERT: hashVar contains the same value as window.location.hash
window.location.hash = hashVar;
// Expected behavior: Window scrolls back to the 'content-top' id
// Demonstrated behavior: Window does nothing
The way that I solved this was to reset the window.location.hash value to an empty string before the reassignment.
var hashVar = 'content-top';
window.location.hash = 'adkcj';
window.location.hash = hashVar;
// Expected behavior: Window scrolls back to the 'content-top' id
// Demonstrated behavior: Window scrolls back to the 'content-top' id
Update 2: Apparently, Firefox, in the latest update, changed the behavior of the hash property. If the value is “zero-ed out”—if you will—the entire page refreshes. I’ve amended the script above so that hash is given a (hopefully) non-id value. Feel free to use a real word, but I didn’t want to take the off-chance of hitting an id I’m using.
2 commentsSuppression on Facebook
These two Facebook pages (here and here), the former of which has–ironically, perhaps–declared war on the latter, ignited quite a debate. Here’s a list of my initial thoughts before I start analyzing this:
- I don’t consider soldiers hired thugs.
- I am aware that some soldiers commit atrocities, which is a reality few people admit. Given the conditioning soldiers endure, coupled with varying levels of power over peers, subordinates, and/or civilians, situations (read: Abu Ghraib) similar to the Stanford Prison Experiment appear inevitable.
- I consider war an atrocity (though sometimes a necessary evil), but smaller governing bodies shoulder the blame for initiating it, not the soldiers.
- I am a firm believer in freedom of speech, almost without exception.
The Iraq war is a cauldron of controversy. It started with a retaliation in Afghanistan for the events of 9/11 and, under false pretense, spilled over into Iraq. Though history has yet to ascertain the damage, it may prove to be one of the most costly and unpopular wars, ever. The Iraq war sparked a ideological issue between those that whole-heartedly support the troops versus those who disapprove of supporting the greater cause and preceding events. The “Soldiers are not heroes” profile picture is a silhouette of Satar Jabar, perched on his box, alluding to one of the most politically disastrous events for the military.
The charge against “Soldiers are not heroes” (SANH) by “Petition to REMOVE “Soldiers are not heroes” from Facebook” (PTRS) is they are using “Hate Speech and Defamatory Comments towards Allied Service Members.” Hate speech, even if meant to result in physical harm, is still–with a few exceptions–protected by the First Amendment. Interestingly enough, PTRS mentions that they “[are] not against “Freedom of Speech.” In order to argue their case, PTRS needs to prove SANH’s comments are, either, defamatory or against Facebook conduct guidelines (which I haven’t read as of this post).
SAHN’s page states (discounting wall posts and links since the source may or may not be the views of the creators):
Does the thought of hero worshiping our armed forces make you want to vomit your spleen out?
Are you fed up of being told that soldiers deserve constant gushing praise?
Stand up and show members of the armed forces what you really think of them and their participation in needless bloodshed.
Though meant to be offensive, the above contains nothing that could be interpreted as hate speech. The group requests that its members wear t-shirts with extremely controversial slogans (e.g. ”Proud not to murder civilians for a living,” ”I was raped by soldiers and all I got was this lousy t-shirt,” etc.). Unfortunately, because of the satirical nature and debatable validity of these statements, it, again, would be difficult to prove any of these as defamatory. To clarify the group’s purpose, SANH’s page posted this in its “Recent News” section:
This group is a parody of the group ‘support your soldiers in uniform!!!’
http://www.facebook.com/group.php?gid=11911667121&ref=shareThis group is intended to point out the absurdity of the many groups on facebook that portray all soldiers to be heroes and shower the armed forces with unconditional praise.
Putting on a soldiers uniform and becoming part of a murderous organisation does not make you a hero.
Supporters of the group generally agree that the wars that our armed forces are participating in at the present time and in recent years are unecessary and unjust. Therefore we don’t feel that we should be pressured into offering ‘support’ to people fighting and killing innocent people for causes that we don’t believe in.
We recognise that the government are mainly to blame but also think that members of the forces need to take responsiblity for their own actions in choosing to support these causes. Soldiers have free will and the opportunity to not sign/re-sign up if they feel they are being asked to participate in an unjust war, so they also deserve a proportion of the blame if they choose to stay.
We also find it amusing how so many of those who claim to ‘protect our freedoms of speech’ tell us to shut up, or be duffed up.
“Soldiers are not heroes. They can be heroes, they can act heroically, they can do heroic things – but the act of putting on a uniform and agreeing to put your conscience in a lockbox for the next so many years does not make your life more important than others, it does not make your opinions and insights more worthy of respect than others, it does not exempt you from moral judgment. It does not make you a hero.
And we should not fall prey to hero-worship.”
http://whoviating.blogspot.com/2008/06/heroics.htmlLet’s protest against these group protesting against the protests against the forces ffs!!!
THIS GROUP ISN’T A SOLDIER HATRED GROUP, JUST A GROUP AGAINST THE HERO WORSHIP OF SOLDIERS.
After checking out the “Support your soldiers in uniform!!” (SYSIU) group, I have to agree that it’s a close parody, even down to a quip about the font and color on the t-shirts to keep them “uniform.” The debates on this news piece, especially regarding the soldiers’ free-will, post-enlisting, are fully open.
After a great deal of time and review, I believe PTRS is mistaken in their goal, especially if they believe their own claim to be pro-freedom-of-speech. SANH’s latest claim to be a parody and not a “soldier hatred group” seems believable. Hopefully, this Facebook skirmish stays confined within the Facebook realm and avoids the judicial system, which is always my fear when it comes to matters of freedom–or suppression–of speech.
1 commentAnother 5 AM
I don’t want to sleep.
OK…that’s not entirely true. At 5 AM, I wish I could sleep, but my mind’s too active and, seemingly, uncontrollable: I think about shows, past/current relationships (intimate and platonic), work, mistakes, random scenarios (real and imagined), etc, etc, ad infinitum…
Maybe “life’s too complicated,” “I make life complicated,” or some other unoriginal thought. I want the reality of an Iron & Wine song:
One more drink tonight as your gray stallion rests
Where he lays in the reins
For all of the speed and the strength he gaveOne more kiss tonight from some tall stable girl
She’s like grace from the earth
When you’re all tuckered out and tameOne more tired thing the gray moon on the rise
When your want from the day
Makes you to curse in your sleep at nightOne more gift to bring we may well find you laid
Like your steed in his reins
Tangled too tight and too long to fight
The warmth of Sam Bean’s voice and the beautiful simplicity of his lyrics entices me into an idyllic life of horses and stable girls.
Realistically, I need to be able to afford the stable, horses, and tall, female employees. Besides, could I really leave the comfort, the connectivity, and the knowledge behind? I don’t require much, though I think I need more. Love, food, and horses might be all that’s needed.
…and sleep.
3 commentsAnother Great Post
This is just another brilliant post by The Undecided Blogger. As usual, it’s thoughtful, accessible, and pertinent to both the coming election and the education system.
Check it out.
No commentsI Thought His Name Was Lower Case
Some poems stick with me. I’ve thought of this poem by E. E. Cummings since high school: anyone lived in a pretty how town. Though I don’t entirely understand the imagery (you can take that statement from the school of thought that says the author has a distinct message to convey), I like the poem for the same reasons I love Mike Doughty; there’s a rhythm and a resonance in the word choice.
when by now and tree by leaf
she laughed his joy she cried his grief
bird by snow and stir by still
anyone’s any was all to hersomeones married their everyones
laughed their cryings and did their dance
(sleep wake hope and then)they
said their nevers they slept their dream
I enjoy it based on how it feels when I hear the words and not because of a deeper understanding. Why do other people enjoy it? Or why don’t they?
2 comments