27 5 / 2014
ryanado said: I'm attempting to follow your instructions for migrating RDS into VPC. How did you get around the need to GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' ? I get an access denied error.
I was just able to create a user and add the replication privilege, doing the following:
[mysql]> create user ‘testrepl’@’%’ identified by ‘SAFEPASSWORD’;
Query OK, 0 rows affected (0.06 sec) mysqluser@FOO.cqdc1rbnps8s.us-east-1.rds.amazonaws.com
[mysql]> grant replication slave on *.* to ‘testrepl’@’%’;
Query OK, 0 rows affected (0.03 sec)
I know that accomplishing this migration required that I was running MySQL 5.6. It might be that you’re running an older version which prevents this type of setup.
03 3 / 2014
Forward: One of the frustrating things about working with a cloud provider like Amazon Web Services, is that each service has to have a name. Each name is, of course, too long to use in everyday conversation, so they’re all initialized and acronymed until someone new to the platform has no idea what any of the letters mean. I apologize in advance and I promise I’ll try to explain all of the TLAs (Three Letter Acronyms) as clearly as possible.
In early 2013, I started using Amazon RDS (Relational Database Service) to manage old MySQL data for work. (RDS lets you pick a database engine (Oracle, MySQL, Postgres, SQLServer), gives you great flexibility with storage and scalability and manages backups and failovers transparently.) After a few months, I migrated the rest of our data and things have been great.
Recently (sometime in 2013), AWS made their Virtual Private Cloud platform the default for all new accounts, but this was after our RDS instance was created. At the Re:invent conference, AWS made it very clear that their VPC platform was the way forward and that anything new should be using it.
So here I am,
brain the size of a planet ready to start migrating other services to AWS, but our primary database is not in a Virtual Private Cloud and I shudder at the idea of having to redo everything in a few years when AWS decides that support for standalone instances goes away.
21 2 / 2014
FreeBSD, for better or worse, initializes through a series of scripts in the /etc/rc.d folder. The various flags and settings are set with a single file: /etc/rc.conf. However, there is another option!
You can also create a folder called /etc/rc.conf.d/ (third paragraph) and put discrete files named after their respective /etc/rc.d scripts. For example, to enable sshd, create /etc/rc.conf.d/sshd which contains:
The name of the file matches the startup script, /etc/rc.d/sshd, so it’s nice and obvious.
When I learned about this option, I began using that folder for all of my startup configuration files. I was left with a small /etc/rc.conf file that contained the hostname of the machine, default router, IP address allocation and (if necessary) the flag to enable routing between network interfaces. I knew that these variables could also be placed into discrete files, but it was not readily apparent to me what those files should be named. This setup makes automating system configurations with a system like Puppet or Chef much easier.
After some trial and error this afternoon, I’ve finally figured out the correct files for those last settings, which eliminates the need for the original rc.conf file.
defaultrouter=”IP of default gateway/router”
It took awhile to find these. Google and grepping through the startup scripts only helped to narrow things down a little, so I’ve put this up to help anyone else that might be searching for these answers.
21 2 / 2014
FreeBSD 10 ships with unbound as a local DNS resolver instead of BIND. There are many reasons for this and overall, it seems like a good move in the name of simplicity. BIND is a critical piece of the Internet and has frequent security updates, which is painful to maintain when all you need is DNS resolution, let alone the release engineering nightmare for the FreeBSD foundation trying to maintain a release schedule. You can still add BIND from the ports and keep it up to date on your own.
All that said, it’s quite easy to enable unbound in /etc/rc.conf or (as I prefer) /etc/rc.conf.d/local_unbound:
That’s it. Either reboot or start up unbound with:
# /etc/rc.d/local_unbound start
unbound will automatically set up a configuration in /var/unbound/unbound.conf that allows for resolution on the localhost. If you need to answer queries on a local network, you can add a few lines to this file. For me, it looked like this:
access-control: 10.0.0.0/24 allow
Obviously, use your own local IP and correct subnet. If you don’t explicitly add 127.0.0.1, unbound will no longer listen to the localhost. However, you don’t need add an access-control entry for localhost, as that’s allowed by default.
03 2 / 2014
"Grown-ups don’t look like grown-ups on the inside either. Outside, they’re big and thoughtless and they always know what they’re doing. Inside, they look just like they always have. Like they did when they were your age. Truth is, there aren’t any grown-ups. Not one, in the whole wide world."
The Ocean at the End of the Lane, Neil Gaiman
30 7 / 2013
Today I had lunch at the local Subway (The as in “one of the four”) and witnessed an interesting scenario.
The woman in front of me ordered a foot long turkey sub on white. As the artiste was creating his masterpiece, I could see this woman growing visibly distraught. Her shoulders slumped and her head started shaking back and forth, back and forth.
"Why did you take it from the bottom?" she asked as the sandwich craftsman laid slice after slice of mechanically sliced turkey.
He looked up, surprised, still laying slices. “I’m sorry?”
"Why did you take it from the bottom? Usually you take it from the top."
"I don’t know, I just grabbed some," he replied, implacably laying yet another slice.
"I don’t understand. I’d feel better if you took it from the top."
"It all comes from the same package. It’s all the same."
At this point, another artisan came over. “What’s going on?” she asked.
"I want to know why he took it from the bottom. It seems like he should just grab it from the top."
"It doesn’t really matter," the second sub whiz replied, "sometimes you just grab it from a different place."
"I’d really rather not have it from the bottom."
At this point, both of the creators looked at her blankly and then offered up yet another defense of the offending sandwich technique.
"Never mind, I don’t want it," said the woman and walked out with her head down. Both of the sandwich people gave me a "God, how crazy was she" look and then muttered to each other while they threw the sandwich masterpiece away.
So… what? Why bother relaying this story? I’ve been in customer service positions before and I know there are customers you can’t do anything about, but this woman? I’m pretty sure she wasn’t one of them. This was someone that a simple apology and an offer to start a new sandwich would probably have defused everything. But the employees were more concerned with defending their actions instead of pleasing a customer. There wasn’t even the slightest bit of concern or empathy in their response to her. I don’t feel like they did anything wrong, but I also don’t feel like they did much right either.
What do you think?
03 7 / 2013
"If I write a piece and it has to do with my walking from the living room to the kitchen and some funny things happen, the same funny things will happen every time. Those are my chords. On the way, I may do some different things, but I’m not forgetting where the chords are and I always hit them. I may change things, but the song is the same. The improvisation is always within that, and the timing is always different. You can’t sit there and watch Bill Cosby — I don’t care how many times you’ve seen the piece, unless it’s “Noah” or “The Dentist” — and beat me to the punch line. Because I’m not going there yet. It may take me two minutes, three minutes or 15 minutes in that piece to get to the kitchen. But the song is the same."
Bill Cosby, answering How did jazz influence your style as a comedian?
People usually call it pretentious to compare a non-musical process to music. Especially so with jazz. (“It’s the notes you don’t play” is an overused, hacky punchline.) But man, I compare my process to music all the time. Editing, especially, has to be musical in order to be great. So it gives me chills to hear the Cos say something like this.
Dad is great. He give us the chocolate cake.(via lonelysandwich)
02 6 / 2013
"No human being, when you understand his desires, is worthless. No one’s life is nothing. Even the most evil of men and women, if you understand their hearts, had some generous act that redeems them, at least a little, from their sins."
How do you square the fact that this character, oozing with empathy and compassion, is written by a man with such horrible, bigoted ideas?
22 5 / 2013
Thomas Jefferson extracted the teachings and life story of Jesus from the four Gospels and, over time, compiled these bits into a book that eventually became The Jefferson Bible: The Life and Morals of Jesus of Nazareth.
Gone are the miracles. Gone is the resurrection. Gone is any hint of anything supernatural.
What remains is a (short) story of a man who lived his life as an example of how things could be better. What remains are the parables that cast moral dilemmas into new light. What remains is the tragedy of people threatened by new ideas and how they lash out against the man they hold responsible.
Is it enlightening? No, not really. There’s, obviously, nothing new in this book. However, I found this distillation of the Gospel to be refreshing and also reaffirming. I’ve identified as a Christian as long as I can remember and while my belief in a God above has waxed and waned over the years, my faith (or perhaps more aptly, my trust) in the teachings of Jesus have never faltered. I believe in what he had to say and the ideals he taught and lived. I try not to get caught up in the contentious nature of the Bible as a whole and its conflicting ideas, but prefer to look to what Jesus said and how he lived. There is wisdom to be found elsewhere in the Bible, but the ground is shakier.
Now, I place no particular authority on Jefferson to deliver religious teachings, but the fact is, he had similar feelings to mine and he acted upon them. The product is a book that streamlines the Gospel story and reveals the bare essentials.
Saying all of this, I wish I could then, in turn, recommend The Jefferson Bible to anyone else. I can’t do that, at least, not without some qualifiers.
Jefferson’s source material (I assume) is the King James translation, which is difficult to follow at best and, at times downright inscrutable. The only reason that I was able to make it through as easily as I did, is that I have been attending church since I was a child and am intimately familiar with the source material already.
Also, I read this version of the book, primarily because it was so inexpensive. Unfortunately for me, it showed. There were lots of typos and printing errors. Sometimes I had difficulty deciding if a word was using an archaic spelling or was simply an error.
There’s no grand conclusion. If you think such a take on the Gospels is interesting and you have a passing familiarity with the Bible already, go for it. It won’t set you back much and it will only take an evening or two of your time.
20 5 / 2013