Uncategorized

Good Reviews

Give me six hours to chop a tree down and I will spend the first four sharpening the axe.
– Abraham Lincoln

Give me a week to send some Goodreads messages and I will spend the first three months writing the Javascript.
– Agon

Well, it’s done. I’ve finished the Alpha version of a Node.js application that I’ve cleverly named “Good Reviews“. It allows you to automate the sending of Goodreads messages about users’ reviews – you log in to your Goodreads account:

Log In

You go to a book’s Goodreads page and find its Goodreads id, that first number in its url (this link NSFW):

“https://www.goodreads.com/book/show/13453841-cum-for-bigfoot?from_search=true”

You slap that in here:

Add Book

Click on the book and you get this:

Capture3

Then you smack in a template for the message you want to send to your unsuspecting potential reviewers. The format string {{author}} will be replaced by the author’s name, in both the subject and body, so you can do stuff like this:

Subject: Hey {{author}}
Body: You, {{author}}, are my favorite blogger.

And that’ll get interpolated into

Subject: Hey Agon
Body: You, Agon, are my favorite blogger.

(if you’re sending a message to me, that is. Btw, please do!)

My message looked like this:

Ready to Send

And that’s it! You hit “send all” and a bunch of magic happens behind the scenes, formatting and sending these messages to however many hopefully-friendly reviewers the book you’ve chosen had.

That’s really all there is to it. For this particular book, I sent 7 inquiries (one for each of the 7 reviews on this book) and it took about two minutes.

Disclaimers:

  • Full automation requires an account with deathbycaptcha.com and some available credits there. This is the part where you might get your identity stolen, so don’t say I didn’t warn you. If you don’t have a deathbycaptcha account, you’ll have to solve each captcha manually.
  • I accept no blame for any hatred this generates, towards you, from the people you message. I’m honestly looking for connections and feedback, so I suggest you move along unless you’re doing the same. This isn’t intended for spamming.
  • For a handful of reasons, including:
    • Security
    • Performance
    • Laziness A “ship it” attitude
  • I decided to release this thing without multi-user, web-deployed support. Instead, you can just run the Node program on your local computer and not worry about me snooping your passwords or someone hacking my server and stealing your data or anything like that.

Plus you can hack teh codez to fix or improve any of the behaviors you find lacking, if you’re a programmer.

If you’re not a programmer, feel free to contact me with any feedback you have about this thing. I’d love to help you install and use it.

Here’s that github link again. Let me know what you think!

How to Make Your Amazon eBook Temporarily Free

No one has ever become poor by giving.
– Anne Frank

(Just kidding, I can’t use an Anne Frank quote without making a joke about it and I can’t make a joke about it without being an asshole.)

The essence of all art is to have pleasure in giving pleasure.
– Dale Carnegie

(Heh heh heh.)

Months later, I have finally finished my Goodreads-review-message-sending Nodejs app. ‘Finished’ is a relative term in the software world, and what I really have here is an unpolished “alpha” minimum-viable-product. It’ll take a week’s worth of posts to recap all that, but for now –

It’s time to make my book (temporarily) free, so the poor bothered Goodreads reviewers can download it easily and safely. (Digitally safe, anyway – they still won’t be safe from my potentially terrible writing and inconsistent paranthesis/period ordering).

Anyway. I knew that you can make your Kindle eBook free for up to 5 days, but it turns out I didn’t know how. Here’s how.

Enroll Your Book in Kindle Select

Amazon’s “Free Book Promotion” (and “Countdown Deals”, more on that later) is only available to Kindle Select subscribers. Kindle Select is basically Amazon’s exclusive digital distribution program. When you’re enrolled, you can only make your book digitally available on Amazon, and in return you get a higher commission in Japan, India, Brazil, and Mexico (heh) and if people read your book through Kindle Unlimited (think Netflix for books) you get a share of that money as well.

Before we proceed:

Kindle Select enrollments last 90 days, and can be canceled or renewed at that point.

The drawback to enrolling your book in Kindle Select is that you’re not allowed to distribute it digitally anywhere else, for any price. That’s no big deal for sales – but I was hoping to offer my eBook to reviewers in multiple formats, and that might be against the TOS – even though it’s free and not publicly available.

I’m actually not sure. This is what their FAQ says about it:

If my book is enrolled in KDP Select, can I still send copies of my book to proofreading and editing reviewers?

We do allow publishers to provide professional reviewers with a copy of the book by email for the purpose of editing, proofreading and helping with other quality improvements.

For this release, I decided to play it safe and only offer the book through Amazon. Sincere apologies to potential reviewers who can’t or won’t view it that way – when my Kindle Select enrollment is up, I can send it to you if you’re still interested.

If that all sounds reasonable to you, let’s move on. Enrollment takes effect instantly for a book that’s already on sale, and can be done from your dashboard:

I don't know what Kindle MatchBook is. Anyone want to tell me?

I don’t know what Kindle MatchBook is. Anyone want to tell me?

Schedule the Promotion

Once you’re enrolled, creating a new promotion is super simple. That “Enroll” button will be replaced by “Manage Benefits”, and when you click it you’ll see this:

Promotions

Click that highlighted button, pick which Promotion you want – in this case Free Book – and click the “Create a new…” link next to it. On the next screen you’ll pick your start and end dates (up to 5 days for the free book promotion).

Then you’re done. At midnight Pacific on the day you picked, your book will be free through Amazon.

Tomorrow I’ll show you how a hacked up NodeJS app can help you take advantage of your newly-free eBook. Then you’ll get to see my sales record, laugh at my wild underestimation of the complexity of programming tasks, possibly get your credit cards stolen by Russian or Chinese hackers, and finally see what’s next around here.

Review: James Altucher’s “Choose Yourself”

It’s another thing to actually go out and create opportunities for yourself. You’re definitely not going to find them reading a book.
– James Altucher

Continuing catch-up on my reviews after my hiatus – I finally got around to Choose Yourself, James Altucher’s seminal book about escaping the 9-5. This one’s been recommended by a lot of people and I immediately saw why, as it resonates with just about everything I write about here.

Without further ado: What I learned:

Without rejection there is no frontier, there is no passion, and there is no magic.
– James Altucher

The mediocre entrepreneur understands that persistence is not the self-help cliché “Keep going until you hit the finish line!” It’s “Keep failing until you accidentally no longer fail.” That’s persistence.
– James Altucher

Altucher chants several mantras throughout the book, and this is one of them – rejection is key to success. Rejection is how you know you’re pushing, it’s how you know where you need to improve and your only metric for whether or not you are improving.

This is the kind of message you can never hear too many times, so though I’ve read it and said it before, it remains an important belief – and I’m still not nearly good enough at chasing that rejection.

For our entire lives, we have been fooled by marketing slogans and the Masters of the Universe who created them. I don’t say this in an evil way. I don’t blame them. I never blame anyone but myself.
– James Altucher

This reliance on others has to come to an end. It was always a myth. Everything we hoped for. The society that we were told would be here, waiting for us, is completely gone and is never coming back.
– James Altucher

Sure, the world is wildly unfair – sure, it’s fucked you over in half a dozen ways before you’re even old enough to know what “fucked over” means. So what? You are the measure and the cause of your success (or failure).

So acknowledge the lies, the injustices, the traps, but only so you can adjust for them and keep moving forward.

And nobody says you get special marks in death if you wrote a great novel at the age of fifty. Or came up with a great chicken, or a way to stuff lots of people into factories. I’ve stumbled and fallen and gotten up and survived enough that I’m sick of goals and purposes and journeys. I want to cut out the middleman. The journey. The desperation and despair that focusing on “purpose“ entails.
– James Altucher

Hold your breath. Try holding your breath for just thirty seconds. That’s all it takes. Try it right now while you are looking at this line. Now…on the twenty-ninth second, do any opinions matter?
– James Altucher

I don’t think the point of life is to be happy, and no matter how much I achieve I expect to die dissatisfied. Sure, no one else gives you extra points in death for what you’ve done in life, but I give myself those points, and I’m the only judge that seems to exist anyway.

But it appears to be an observable fact that most people get more and better things done when they’re satisfied and at peace. The creative ache is fine, and we know pain pushes genius and poetry both – but if you David Foster Wallace at 46 you haven’t reached your full potential.

So like many things in life, true success here requires a carefully balanced paradox. You have to have some emotional stability, some peace, to achieve true greatness – but you also have to let go of achieving greatness to get that stability. Like an athlete who only makes truly amazing plays when he isn’t thinking about it too hard, you have to let go with one hand to seize with the other, and that’s strange.

I don’t think there’s a succint answer, here, so nudges in both directions are necessary, and the mental discord that might cause has to be handled.

External changes in your life are like the final ripples of the ocean that lap onto distant shores.
– James Altucher

Change starts within, and your outer life reflects your inner life sooner than you think. Altucher advocates a Simple Daily Practice (an idea I like and will be writing about more) to slowly change your internal life, and he asserts that external changes will come naturally when your internal state gets better.

It’s not The Secret bullshit – it’s that when you change your nature, your new nature automatically leads you to change your circumstances. I’ve seen this in my own life over the past two years, and I firmly believe it’s the best way to think about life changes.

(Check out the Simple Daily Practice)

My overall reaction: this is a riffing, freewheeling, self-referential kind of book. It’s much more about James Altucher than it is about you. In that way it feels similar to its predecessor, The Four Hour Workweek – it’s more inspirational fable than how-to book.

But that’s okay. If you haven’t figured it out by now, hear this: there is no how-to book for building the life you want, except for the one you write yourself. The claims of an easy, pre-mapped way forward are just marketing.

That doesn’t make this kind of book worthless. Every chapter is full of inspiring quotes and applicable advice, so as long as you don’t go into it expecting a blueprint for your own transformation, you’ll be satisfied.

Bonus Quotes:

In poker you can spot the amateur at the table if they complain when they lose a hand. They’ll look at the guy who won the hand and say, “You are so stupid! You played that hand totally wrong. You just got lucky.” And they might be right. But the reason that it’s an amateur (and insecure) move is because you WANT people to play the hand wrong. You want them to play the hand wrong every single time so that the odds stay in your favor if you don’t go insane. What do you gain from calling them out, educating them on their foolishness?
– James Altucher

Whenever some guy says something very hateful I imagine: what was it like the first time that person kissed his wife? Did a warm gush of chocolate fill his heart? Did he say to himself, “This second, I am the happiest man alive?” Did he have an erection? Did she kiss him softly on his lips and then his cheek and then his neck? And then, erection intact, did he log onto the Internet as “Guest” and post, “James Altucher is a fucking douchebag.”?
– James Altucher

There are no chains on me as I write this. But the feeling is immense: all I want is freedom.
– James Altucher

Too Much Too Young Too Fast

Too much, Too young, Too fast
I’m gonna drink it up while it lasts
– Airbourne, Too Much Too Young Too Fast

(Despite the hard rock quote, this one’s kind of journal-y. But as Socrates allegedly said, ‘Let him that would move the world first move himself’.)

I guess it’s time to address the elephant in the room. I’ve been on radio silence for about two months, with no advance warning. I’d like to tell you I was in the basement working on some great and terrible breakthrough; or at least that I was injured in a streetfight to save a baby and I’m still recovering. I’d like to tell you that I thought about the blog every day and tore my hair out because I couldn’t post.

None of those things are true, though. I’m fine, there’s no amazing new project about to be unveiled (quite yet), and my hair looks better than ever.

I stopped posting for two full months because, to put it bluntly, I was too happy. Then I was too sad.

My girlfriend moved out of the state a couple weeks ago – pretty much all the way across the country, to go to school.

I stopped blogging a few weeks before she left, and kept not-blogging a few weeks after that – her departure was the midpoint of this silent gap.

Without going into detail, what we were beginning to achieve in our relationship is something that’s been near the top of my bucket list for almost forever. We were filling a desire that, for me, was too big to even put on the list yet. I felt I had to work my way up to it.

But as they say – the wise man waits for his opportunity, but never hesitates. I saw the thing I wanted crossing my path and I seized it.

Before she left, I was just too content to want to blog. Don’t get me wrong – I still should have been blogging, but I was mentally unprepared for the loss of the hunger that drives me to this blank page every day. I’ve been lucky in my discontent – it’s much easier to do what you know you need to do when not doing it burns.

I still pursued my other goals. I still wrestled, read and wrote, worked on my finances and on selling my house. But none of those things involved changing myself. Here on the blog I’m really trying to unearth the foundations of my being so they can be examined and, perhaps, fixed. I don’t often achieve that depth, but even the surface posts are meant to be digging towards something beneath.

That digging takes a certain kind of destructive will. If you want to replant your garden, you have to be willing to ruin what’s there, for a while. Even if you plan on putting it back, there’s a phase where new construction always makes things uglier.

Do you follow? My mental garden was so pretty, with my girl by my side, that I wasn’t willing to dig it up to extract the broken glass and rocks that still sat beneath it.

Then she moved away. We’re trying long distance (because the things we had when she was here were worth it). That’s buried half a dozen new obstacles in my subconscious, and dredged up a few old ones that were buried too deeply to matter, before.

It also bumped “love life” back into the category of “things in my life that require significant work” – I had planned on waiting to achieve satisfaction in that area until finance, location, and other things were more settled. But as they say – a wise man turns chance into good fortune, and this has been a hell of a chance.

So for a while I had a few more pots than I had burners, and I let the blog get cold (you can tell by how stale my metaphors are. Puns are creeping in.)

These problems aren’t solved, but they’re balanced – and balance is enough to move forward.

The Obstacle is The Way

One does not overcome an obstacle to enter the land of no obstacles.
– Ryan Holiday, The Obstacle is the Way

I just finished Ryan Holiday’s new book, The Obstacle is the Way, and I was hugely impressed. The book is a collection of short essays based on lessons from the Stoics and historical figures who lived up to their ideals.

Read the book yourself. Read it slowly, and maybe multiple times.

But before you get time to do that, here are three of my favorite lessons from it:

Make Victory Inexorable

His victory wouldn’t be pretty, but it was inexorable.
– Ryan Holiday, on Ulysses S. Grant

Stop looking for an epiphany, and start looking for weak points. Stop looking for angels, and start looking for angles.
– Ryan Holiday

If you push long enough, and hard enough, everything gives way. In many struggles, the victory goes to the last man standing. Grant embodied this by refusing to acknowledge that a military goal was impossible. He’d try again, and try again, and try again until something got through – and the string of failures would be forgotten in the glow of victory.

Love the Grind

Behind mountains are more mountains.
– Haitian proverb

You should never have to ask yourself, but what am I supposed to do now? Because you know the answer: your job.
– Ryan Holiday

Some see obstacles as temporary, negative situations which we can escape by hard work, perseverance, or luck – and once they’re gone we’ll be productive/peaceful/happy again.

Holiday – and the Stoics and others he profiles – see them differently. The current obstacle you face isn’t an enemy and it isn’t a temporary condition. When it’s gone, the next obstacle will loom, and will seem just as daunting as this one.

Only by accepting – in fact, loving – life’s onslaught can we achieve our potential. Only by relishing each obstacle as it comes, from its initial intimidating arrival to its eventual defeat, can we really make a masterwork of our lives.

There will always be another obstacle. We are called to not only accept that, but to be grateful for ti and excited by the challenge.

Let Challenges Prove Your Worth

Only in struggling with the impediments that made others quit can we find ourselves on untrodden territory.
– Ryan Holiday

What will be revealed when you’re sliced open by tension and pressure? Iron? Or air? Or bullshit?
– Ryan Holiday

Following on the point above – one reason to be grateful for challenges is that they allow us to prove our true worth. Without difficulty, there is no excellence.

You do want to be excellent, don’t you? Then you should rejoice at every difficulty that arises. Each is an opportunity to get one step farther than those who quit here.

Bonus Quotes

Only self absorbed assholes think they’re too good for whatever the current situation requires.
– Ryan Holiday

It is given to me, to feel where the enemy is weak.
– Rommel

If thy faint in the day of adversity, thy strength is small.
– Proverbs

If you are not humble, life will visit humbleness upon you.
– Mike Tyson

Viris acquirit eundo – we gather strength as we go.
– Ryan Holiday

It’s a cliche question to ask:

What would I change about my life if the doctor told me I had cancer? After our answer, we inevitably comfort ourselves with the same insidious lie: well, thank God I don’t have cancer.

But we do.
– Ryan Holiday

A Brief Tribute to Failure (Or, Get Punched)

“No one seems to realize that failing is just the point.”
The LegionnaireA Word on Morality

“Nope. Has to be an inside kick.” We did the combo again. Left, right – step the wrong way, outside leg kick. “Damnit, sorry.”

“No problem man, go again.”

Left, right – then a long hesitation where I forcibly stop my leg from stepping the wrong way, followed by an awkward inside kick. My partner takes his turn, not much better than my own. I go again.

Left, right, step the wrong way, don’t bother throwing the wrong kick. Fuck me.

This repeats half a dozen times before I’m reliably throwing the right kick. There’s something about my balance that makes me want to step to the right after throwing a cross, and I’m in the bad habit of running with that.

Finally I throw the combo perfectly, at a good pace. The coach comes by and says “Give me the 1-2 leg kick like you were”. I do it, proud of myself for getting the timing and balance right.

He punches me in the head. Not hard, but hard enough to get the point across. My teeth clack shut. “Your dropped your hand on the kick. Gotta keep those hands up.” I nod, and on the next round with my partner I miss the kick but my hands are up.

Around the mat, everyone is doing this, more or less. Some of them have the basics down better and are going faster or trying to hit harder, but everyone’s consistently not doing as well as they’d like to.

That’s the point.

It’s a given that our brains hate failure, especially public failure. We’ll do a hell of a lot to avoid it – and for most people, this means avoiding things where the chance of failure is high. It’s why everybody gets hung up on what they did in high school, why we’re surprised when our work buddy quits to become a painter, why we say Bob “is creative” and Dan “is strong” as if these were built-in properties rather than developed skills. We don’t want to put in the tens or hundreds or thousands of failures it takes to reliably stop failing.

But we can use this terror/hatred of failure to our advantage. The human brain is a wondrously adaptable organ, and it will seek new channels when old ones are closed.

If you cut off your brain’s retreat – if you fully commit and take away your ability to quit (say, by jumping in front of a class of twenty to practice) – your mind will find another way to avoid failure.

It will scramble, desperately, to succeed.

If you want to keep your hands up, thinking about it, checking yourself, and drilling are fine practices. None of them will teach you as fast as a gloved fist to the face. Get punched in the head enough times and you’ll keep your fucking hands up.

Learn to see the gloved fist, the mocking laughter, the empty bank account and the breakup note for what they are. They are your Chiron – your Socrates – your Athena and your Parmenides. Failure is your cleverest teacher, and it has lessons you can’t learn anywhere else.

Getting Feedback in Hearthstone

The bad news is that 50 people died in a hotel fire; the good news is that we got exclusive footage.
– Jessica Savitch

I’ve written before about feedback. It’s so important for learning that it’s almost futile to begin your practice without it – especially in practices where the immediate result of your choices aren’t obvious.

When you find yourself in that situation – not being sure of the origin of your results – you can hugely speed your learning by finding a way to improve that feedback. Here’s an example:

For relaxation lately I’ve been playing Hearthstone with some of my friends. My favorite mode of play is called Arena – you draft a deck of 30 cards, one at a time, by choosing from sets of 3 at a time. Then you’re matching up with other Arena players and you try to win as many games as possible before losing 3. The more you win, the better your prize (though I’m only really interested in in-game gold used to play Arena some more).

There are a couple things that make Arena challenging. First, there are 30 individual decisions to be made during the drafting process, each with a huge combination of options and each influenced by the class you’re playing, the choices you’ve already made, and your predictions about what’s coming. There are a LOT of opportunities to help or harm your cause.

Second, while playing each game there are even more choices – what to play, in what order, usually 8-14 times a game.

Finally, you don’t often get immediate feedback about your plays – everything seems okay while it’s happening, and when you lose on turn 14 it’s not at all obvious that anything that happened on turn 3 had anything to do with it (though that might have been the deciding turn). Even worse, by the time you’re drawing and playing cards you drafted you probably have no memory of the draft itself, and what you could have done differently there.

So: You can win or lose games on turn 14 based on a card you played on turn 4 that you drafted 3/30, several hours ago.

This makes getting better almost impossible without some help. You’ll just never know why you *really* won or lost each game.

Until you wise up and feel the ground. In this case I needed a way to associate wins and losses with choices I’d made much, much earlier, so I could remember those wins and losses the next time a similar choice came around. I did it this way:

I downloaded Microsoft Expression Encoder, which records up to 10 minutes of video free (and also allows you to edit and merge them, neat.) Then I started recording all my Arena runs, and periodically I watch them and note the apparently pivotal moments of each.

Here was my first recorded run. I didn’t start this one until the drafting part was over, silly me – and I won’t bore you with the notes I took rewatching it. Still, I wanted to put my video where my mouth was, so here’s my video.

(NB: This also marks my first foray into YouTube uploading since I was a kid making smoke bombs. Firsts!)

I learned three times as much from watching this run as I did from playing it – and even my errors are positives, when I know they’ll be recorded for my later improvement.

Do you have an example of going out of your way to get feedback, so you can get better? Do you play Hearthstone (so you know how bad of a run that was)? Let me know by email or in the comments.

How to Break Promises

“Promises were like laws; smart men knew when to break both.”
– C.J. Hill, Slayers

You’ve seen a little bit of Scrivener stuff on the blog already – it’s the tool I used to write The eBook, and I use it to write anything longer than a couple of hundred words. There are a lot of guides to its use out there – blog series and even a solid-looking book (David Hewson is a bestseller and has a writing blog).

In the last post, I told you I’d tell you how to write your next eBook with Scrivener – but as I sit down to do that, I realize it’s not a good idea. I’m not an expert – I haven’t yet written a full-length novel with Scrivener – and there are actual experts out there telling you how to do it.

So I’m going to leave it to them. Google “Scrivener” and give it a shot – I promise it’s a hell of a lot better than Word, Evernote or whatever you’re using to write right now. It’s probably overkill for blogs (and it doesn’t help you with WordPress formatting anyway), but for long form stuff it’s great.

That’s not the only writing promise I’ve broken lately.

I also said here that I’d soon write a post about dealing with sleep schedule problems. I didn’t write that post, and I’m not going to, see the reasons above. I’ll figure it out eventually, and I’ll tell you how I did it – but that’ll probably just be a link to whichever brilliant solution I eventually stumble on.

This is part of the reason I dropped the Progress page – I have a bad habit of saying I’ll do something just so that when I do it later, I can check it off of a list and feel accomplished. I’m trying to get away from that – from mindlessly checking off lists, clearing inboxes, chasing that dopamine rush. That means not getting attached to post possibilities or todos that have gone stale.

So. The next post will be different from, and better than, either of those possibilities.