What I Miss About Twitter

Yesterday my calendar notified me that today (April, 27) is my 9 year Twitter anniversary, though I didn’t tweet until just over 3 months later.

It’s also just past the 2 month mark of giving up Twitter. I figured it’d be a good time to follow up on things I miss and don’t miss.

Things I miss

Things I don’t miss

  • Political discourse (or what it’s become recently)
  • Cursing Police

There are some other close friends and acquaintances that I miss, but most of them I interact with offline, in various slack groups,  or at work.

Overall, aside from the obvious holes (some more important than others), I think it’s gone well and haven’t really found a good reason to go back. At least not one that outweighs the cons. Still trying to get into the habit of blogging more regularly. We’ll see how that goes.

Fact Checking the Fact Checkers

So reading through the local paper this morning and I came across a “Fact Check” article from the Associated Press covering Trump’s address last night. Avoiding politics, facts are facts… however, opinions aren’t facts.

As I skimmed through the text a word immediately caught my eye. A word, if you remember back to grammar class, is a key tell for opinion, not fact.

UNEMPLOYMENT

TRUMP: “Ninety-four million Americans are out of the labor force.”

THE FACTS: That’s true, but for the vast majority of them, it’s because they choose to be.

That 94 million figure includes everyone aged 16 and older who doesn’t have a job and isn’t looking for one. So it includes retirees, parents who are staying home to raise children, and high school and college students who are studying rather than working.

They are unlikely to work regardless of the state of the economy. With the huge baby-boomer generation reaching retirement age and many of them retiring, the population of those out of the labor force is increasing and will continue to do so, most economists forecast.

It’s true that some of those out of the workforce are of working age and have given up looking for work. But that number is probably a small fraction of the 94 million Trump cited.

[Source] Is Obamacare ‘collapsing’? How much does immigration cost? Fact-checking Trump’s speech

That last sentence– “probably” where the writer interjects opinions into what should be an article free of opinions. That never should have passed editorial. Sadly the media does this constantly and it’s a real head scratcher as to why nobody trusts them. Stay objective and on point. Facts only, please.

Giving up Social [Media]

Since I joined Twitter in 2008, I haven’t written much here. I wrote about eighty posts since then, and about seventy of them were written between 2008-2012. That’s right– I’ve only written ten blog posts in the past four years. Even worse is that out of those ten, I wrote seven in 2013 leaving only three blog posts in the past three years.

Social media had taken over my life. It was easier to write short quips and have conversations on Twitter than it was to share thoughts here.

Twitter was nice for a while. It allowed me to meet new people. It allowed me to find and learn new things. It allowed me to share new things and get more traction. But it’s gone to shit. Granted, there’s always been some shit on Twitter; but now it’s festered into a cesspool I’m tired of wading into on a daily basis.

I’ve muted accounts. I’ve blocked trolls. But the magic is gone. The interaction held in the early days is gone. I’ve lost interest. The bad outweighs the good that’s left.

So with that said, I’ll be leaving my account there for historical reasons. I have a ton of favorites that I had more or less used as bookmarks at one point. People I follow can DM me (sorry not opening up DMs) and I’ll get an email notification. I won’t be tweeting any more from this point forward. My preferred method of contact is email if you have it, or the contact form on this website. To follow me going forward, there’s this thing called RSS

Thanks, and hope to catch you elsewhere in life.

Rights

I have rights, you have rights. My rights don’t negate your rights and your rights don’t negate my rights. It really is that simple.

Often times I see someone say things like “I have a right to breathe clean air” in regards to a smoker whose smoke is blowing into their house. In turn what happens is the offended person complains to the local municipality, or the Home Owners Association (HOA) if they’re in a neighborhood. Regulations end up getting passed, and then the person who smokes can no longer smoke outside their house.

But why does one person’s rights outweigh the other person’s? They don’t. But we’ve started down a slippery slope of who has more rights. And often times this ends up in court litigation. Sadly this is the wrong approach. But in an over-litigious society… I guess that’s what happens.

Why can’t we all just be respectful? Chances are the person wasn’t doing it intentionally. They didn’t know you had a problem. Why not have a conversation with them and see if you can come to some sort of amicable resolution? I understand this isn’t always possible, but it’s where we should start.

Attacking one person’s rights in favor of your own rights may sound like a good idea at first, because after all, it puts you in a higher position. At some point though, someone will come after your rights because they feel their rights are more important. And how will you feel when you suddenly lose your rights?

The key building blocks to a good society is getting along with neighbors, not being passive aggressive or litigating things in court as a first response. If we each tried harder to get along with those around us rather than fighting over little things, we’d be a lot better off than we are right now.

How Much Should WordPress Plugin Customization Cost?

I get a fair amount of project inquiries. One of the biggest things I see is people wanting small WordPress plugin customizations. I don’t mean small in the sense of change a line or two of code, I mean small in the sense of changing how part of the plugin works. Changes that may take a half day or up to maybe two days.

I even get requests that involve wholesale changes to how a plugin works, these types of changes can take up to a week’s worth of development time. Though this isn’t really “small” in my book, it usually still is in the eyes of the requestor. They don’t understand the mechanics of why a “premium” plugin costs $49 (or $99 for that matter) and add-ons cost $19.

Surely if a plugin costs $49 and an add-on costs $19, you should be able to do my custom tweak for like $15, right?

No. 

To make that assumption is to throw out basic principals of how things are made. The plugin may cost $49, but that wasn’t the cost to make the plugin. Hundreds, perhaps thousands of hours went into the initial plugin creation. The plugin developer makes this back on sales of the plugin. If 1000 copies are sold, they’ve grossed $49,000.

The same goes for add-ons. Depending on complexity, they can be made in a day, or over the course of a week or so. Selling 100 copies of one for $19 gets the developer $1900 towards the cost of development. Common-use add-ons are great. You generally won’t see an add-on that only 5 people may use. Either it’s more expensive or the developer would never make back the cost of building it.

I’m not going to complicate things at this point on how products are bundled and priced to add value and drive sales, lets just stick with basic math for the sake of this argument.

The custom shirt scenario

Have you ever looked at the cost to screen print shirts? The more shirts you buy, the cheaper the cost-per-shirt becomes. Sure you can get 1 shirt made, but it’s going to be expensive. The screen still has to be made whether you use it 1 time or 100 times.

But if you get 100 shirts made, the cost to make the screen is divided out over the shirts produced. The same goes for plugins and add-ons. The cost can be divided if it’s re-sold as a generic add-on, but this doesn’t apply to the single-use customization someone requests.

Now, when you contact someone to do custom work on a plugin and change how it works, you need to understand that you’re paying for time.

For a beginner developer this may be $35/hour. You might expect to pay closer to $100/hr for a seasoned developer, and upwards of $150 to $200 (or more) for an expert. Choosing a developer is a topic for another day, but keep in mind– if your customization is going to take a day, expect to spend more than $500 to make it a reality. You’re paying someone to make something custom for you that they aren’t going to resell.

Assembly Lines and Customizations

Henry Ford revolutionized the Auto and Manufacturing industries with the invention of the assembly line. The best part of the assembly line is that it works great when you’re doing the same thing over and over. Ford was able to assemble a Model T in 97 minutes.

The downside to the assembly line is that it didn’t allow much room for customization. If you wanted a custom product, it was usually still made by hand; and at the time, hand-assembled automobiles cost more than assembly line automobiles.

The Bottom Line

In the end, if you want custom work, understand the mechanics of your request. You’re asking for something custom that isn’t going to apply to anyone else. If you need something super custom, be prepared to pay for someone who knows the ins and outs of the systems you plan to use.

As the requestor, you have to afford the full development cost. If you can’t do that, assemble a solution based upon what plugins and extensions exist. That’s the inexpensive way out.

2014 Goals

Better late than never…

I had sketched out some goals I wanted to accomplish this year. I normally don’t bother because follow through on goals never ends up as expected. I figured maybe if I do a recap at the end of the year it’ll highlight points I failed at and how I can do things better. In either case, here’s the short list:

On the personal side I’d like to be more active. I tend to be active in the summer with yard work and tending to the garden. It’s nice to get that movement but it’s never consistent. I’ve gained a few pounds over the past 5 or so years and am nearing the top of the “good” area of the BMI scale for my height. The plan is to do some regular exercise (2-3 days/wk) as well as find ways to change up my diet and hopefully lose 20-30lbs near the end of the year. Current weight is around 165-170lbs and I’d like to get back to something more healthier around 135-145lbs.

I’d like to also book and schedule the honeymoon cruise that we’ve already had to cancel one or two times. Now that the kids are older it’ll be easier to get away for a week without them.

Lastly for personal goals, I’d like to make a habit of eating out with my wife, without the kids, at least one night per month. This shouldn’t be too hard to do, we managed 4-6 times last year. Consistency will make this easily attainable.

On the business side of things I have an internal sales figure I’d like to hit. Will report on that at the end of the year.

I’d like to get to at least 6 WordCamps this year, with 1 of them being international. 

I’d like to blog more regularly— I plan to offer some video tips and posts on workflows, etc. This will be implemented once I re-launch a new design of my business site. I’d like to shoot for 1-2 posts per week for the tips feature and as-needed on regular blog posts. Focus will be on content, not frequency.

Lastly, I’d like to find a way to contribute 1 day per week to WordPress core development, plugins, or other non-paying open source work. This will take some time to get worked into my schedule, but as long as I’m consistently doing it on a weekly basis by the end of the year and it’s sustainable (i.e. I don’t feel like it’s a chore always finding a spot for it on my schedule) I’ll consider this goal met.

Choosing a Web Host for a Project Should be Like Pairing Wine

Think about it– 

You walk into a fancy bistro for dinner. The chef has crafted a wonderful three course meal for his guests this evening. He’s carefully picked ingredients that compliment each other and make three wonderful dishes. Along with those dishes, he’s paired a wonderful wine selection. You eat your meal. It was delicious.

When doing web projects for clients, your role should be similar to that of a chef. It is your responsibility to pick the ingredients (plugins, themes, code) to make the dish (project) come together. But it doesn’t end there, they need a fine wine (hosting) to compliment it.

Looking at things this way gives a good illustration of all the pieces involved to launching a successful web project. Hosting should be paired depending on the scale of project you’re doing. You wouldn’t pair a light white wine with beef entree; the beef would overpower the wine. Likewise, you wouldn’t pair a heavy red wine with a delicate fish entree.

More often than not, I see hosting mis-paired for web projects though. With more and more specialized/niche hosts appearing it’s key to remember everything isn’t one size fits all. A host with a great cache setup might be good for content driven sites where the site is for the most part read-only. That doesn’t really work when you have a lot of moving parts like dealing with sessions (e-commerce) or geolocation.

Knowing how to pair projects with hosting will save you the pain of developing an awesome project for a client then falling flat on your face when rolling it live. I’ve learned those lessons before– the hard way.

Guilt and Control

Guilt, much like fear, is a controlling factor. Guilt and fear should motivate you instead of control you.

Remember, freedom is the power to choose right over wrong. By allowing an outside force to control your decisions, you are giving up your freedom to choose. Once you give up your freedom to choose you are no longer a free person.

Positive not negative. Right not wrong. Freedom not control.

Remember that.

(Note: I’m referring to the feeling of guilt, not the act of being guilty.)

What Drove Me to Git on the Command Line

This past Wednesday I had a chance to to my first #WDSLunch. Something we’re trying over at WebDevStudios– a brief session of hanging out and learning something new with team members. I presented a topic about Git on the command line.

I’ve been doing a lot of Git lately, and about 2 months ago, finally switched to Git exclusively on the command line. After showing off some of my workflows and answering some questions I had a revelation about why I had switched. It’s just easier.

Sure there are tools, like Tower, and SourceTree that help you do Git tasks in a GUI, but they cost you time and effort. That was a big thing to me. Eliminating time and effort, in most cases, boosts productivity.

When I used Tower, I was constantly adding repos. I needed to touch something temporarily, I’d add it in Tower. I’d do some stuff, make some commits, and then what? Sometimes the repo would stick around and sometimes I’d delete it. After a few months of usage, I had a ton of repos listed in the GUI. Some were active projects, some were old projects, and some were temporary repos that had since been deleted. It was a mess.

I’ve always been a fan of the command line so I tended to be doing things in it at some point during the day. Why not manage my Git repos there too? I mean, when you do Git on the command line, things are just “there.” There’s no GUI to set things up in, nothing to manage. If you’re in a directory that’s a Git repo, you’re good to go.

One thing that helped facilitate this was switching my shell to ZSH + Oh My ZSH + Agnoster. It makes things easier because it highlights when you’re in a repo, and it’s current status. This certainly isn’t the only setup like this, but it’s what I’m using.

Now I can just do Git. No need to open a fancy GUI just to add a repo so I can manage it. This alone has changed how I work, and even more importantly, how I think about version control.

2013 BBQ

It’s that time again– we’re just a few weeks away from my annual BBQ.  This year it’ll be on Saturday August 3rd.

Festivities will begin around 3pm and food will be served around 4:30-5pm. If the weather is decent and not oppressively hot, we’ll have a bonfire around dusk.

Now for the finer details–

What I’ll be providing:

  • Meat: Pulled pork, ribs, chicken
  • Plates, plasticware, cups, napkins
  • Ice, bottled water

What you’ll need to bring:

  • A side, desert, chips, iced tea, soda, etc.
  • It’s BYOB so bring an adult beverage of your choice if you wish.
  • Chairs. I have a bunch of tables and chairs, but if you have folding camp chairs, you may want to throw some in your car just in case.
  • We’ll probably set up a sprinkler for the kids, so bathing suits/towels if you want.

Please leave a note in the comments with how many people and what you’re bringing and I’ll update a list here so others know what’s already taken care of.

Thanks and looking forward to seeing everyone in a few weeks! ~Ryan

Address:
114 N York St
Etters, PA 17319
 

Update with RSVP list and what people are bringing:

RSVP – 41 total

  • Misc friends/neighbors – 18
  • Aaron B
  • Jayvie + 1
  • Travis T
  • Brad & April
  • Jason C + wife, kids
  • Aaron & Lindsay
  • Doug + Stewart clan
  • LJ
  • Dustin & Nicole
  • Michael & Steve
  • Camden + 1

Food

  • Mac and cheese

 

ramblings and more from ryan duff