Wednesday, April 19, 2017

TSA-Pre - take someone else's money and liberty, thanks

TSA-Pre is a such a con. TSA gets to take $100 bucks of your money for the honor and privilege of not tearing apart your luggage to find serious threats like the tube of toothpaste that’s more than 4 ounces. Recently I got put through a “pilot program” which meant people now had to take out their tablets and any electronics bigger than a cell phone.

The really insidious part of these increasing “security” measures is that they are effectively slowing down the main line, or the “happy lane”[1] as the TSA Chief John Pistole calls it. Why would a burgeoning bureaucracy add more silly measures? So they make you want to shell out the extra cash for the line with the smiling agent who doesn’t make you take off your shoes, make you take your laptop out, and you don’t get radiated by a microwave machine that probably causes cancer.

What effectively does this do to the main line for those who cannot afford the $100? They get increasing pressure and scrutiny and are more likely to miss their flight because some agent doesn’t like they way they look.


My credit card even has a program where I can get this for free, but I refuse. You aren’t taking my money or the freedom of people who can’t afford this luxury. Its not more secure, it further divides the haves and the have-nots, it puts more money into the pockets of an organization that has lied to us and isn’t regulated by the government. Nope, not this time and not ever TSA. Go take someone else’s money and liberty.

Wednesday, December 02, 2015

Clojure is cool

Fibinocci in a one-liner

(defn fib [n] (cond (= n 0) 1 (= n 1) 1 :else (+ (fib (dec n)) (fib (dec (dec n))))))

Polymorphism

(defprotocol Talkable (talk [self]))

(defrecord Cat [] Talkable (talk [self] "meow"))
(defrecord Dog [] Talkable (talk [self] "woof"))

(def c (Cat.))
(talk c) => "meow"

(def d (Dog.))
(talk d) => "woof"

(map talk [c d]) => ("meow", "woof")

Wednesday, April 02, 2014

Landed in Japan

Alright, time to blow the dust off this old blog and detail my travels.

Everything is going pretty well. I've had some difficulty getting a phone working because I can't sign up for an account without a permanent address, but its also hard to navigate around without a phone to see these places. Bit of a chicken and egg problem, but really it just slows stuff down a bit.

I landed at this place owned by a guy named Yasuomi who is about 35. He was a little hesitant at first with me but warmed up. He dragged me around town for about an hour trying to talk to 5 or 6 different phone companies about how I can get a phone for anything less than a 2 year contract.

Yasuomi shares his 3 room place with 3 or 4 people. Seems to be kind of a revolving door of roommates. One guy works away from home frequently who's room I'm using. Another guy is a German dude who works at a cafe and is mostly fluent in Japanese, but quit because his boss stopped paying him and his coworkers. He's a real character. The other couple Japanese guys are all pretty chill but I don't know them well. We were up fairly late drinking and just hanging out. Half the time they talk in Japanese, and then at some point some one will turn around and translate a bit.

I've been picking up a lot of Japanese already, somewhat to my surprise. I asked a guy which train was the one to Ikebukuro (where I am currently) and he told me how to get off this train after a couple stops and transfer. I might actually survive out here ;).

Today I'm going to meet up with a guy to talk about his company. Later, I'll be seeing a apartment in Meguro which is more central Tokyo, about an hour train ride. I'll ride back up to Ikebukuro and meet up with my Japanese friend from college. I haven't seen her in a long time so it should be fun. I think her and her American husband will be returning more permanently to Japan in not too long.

Labels: , ,

Wednesday, April 04, 2012

DMZ, Palace, and Noise Basement

Woke up at 6:45 to get breakfast
7:30am got picked up by personal driver to be delivered to Meyongdong bus
8:30am rode bus to Dorasan Train Station where the South Korean train tracks connect up to North Korea. Then we rode to 3rd Tunnel where North Koreans attempted to tunnel all the way to Seoul underground in a 7 foot wide passage way to send troops in to capture Seoul. We ended our trip seeing the Unification Bridge and then a last stop at the Amethyst factory which is mined from Korea.
Next we went took a cab from Itaewon where we were dropped off to the Palace near Meyondong.
Finally we arrived back in Hongdae and finally got some dinner at a Hof Bar which serves chicken and beer.
We bar hopped all over Hongdae including NB (Noise Basement). We also drove over to Gundam and found the NB there. I almost got in a fight with a bro over a girl, and met some cool Australians.

Labels: ,

Tuesday, April 03, 2012

Korean BBQ FTW

Reserved our DMZ tour for 4/3
Taxi’d out to Myeondong for crazy shopping throughout alleyways and huge malls
Got some amazing Korean BBQ for breakfast
Wandered around looking for inexpensive jacket, it was snowing
Ascended up N Seoul Tower
Took bus to Itaewon which is home to many foreigners
Got more Korean BBQ
Subway’d home
Crashed early to wake up early for tour tomorrow

Labels: ,

Monday, April 02, 2012

Landed in Korea

Got into ICN, got yelled at for not having my hotel picked out, hehe.
Took taxi to Backpackers Space Hostel in Hongdae
Met Cecil, nice French woman also at Backpackers Space
Went out to clubs and raged, drank our first soju
Raining pretty hard
Realized I didn’t bring a towel for the hostel

Labels: ,

Wednesday, June 24, 2009

Google Android is pretty super easy

I've been messing around with my new toy: a HTC Magic cellphone running Google Android. I was lucky enough to get one for free from Google IO last month and have just finally gotten around to actually writing a little app for it. I haven't done anything terribly difficult yet, but from what I have already accomplished in an hour, I can say it has been a breeze.

One thing that wasn't quite as trivial as I was hoping was making an alert dialog box to do some simple runtime debugging. Understanding how it works now makes this much easier, but here is my one-liner:

(new AlertDialog.Builder(this)).setTitle("An Alert")
.setMessage("Some message")
.create().show();

the "this" in my case is my current Activity which is the default class you make when you start a project which extends the necessary Context class (not directly though). This was inside an event handler (which was implemented as an anonymous inner class) so I had to make a named reference to "this" inside the Activity scope so it was the Activities scoped "this" instead of the anonymous inner class's.

Here is the whole relevant code:


package com.gleenn.android;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class GlennsFirstApp extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.Button01);
final GlennsFirstApp gfa = this;
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String twitterUsername = ((EditText)findViewById(R.id.EditText_twitter_username)).getText().toString();
String twitterPassword = ((EditText)findViewById(R.id.EditText_twitter_password)).getText().toString();
String statusMessage = ((EditText)findViewById(R.id.EditText_status_message)).getText().toString();
(new AlertDialog.Builder(gfa)).setTitle("Test")
.setMessage(twitterUsername + " " + twitterPassword + " " + statusMessage)
.create().show();
}
});
}
}

Labels: ,