Blog

Post
June 12, 2016

Have a Second Blade

I rediscovered an important career lesson in a manga where high schoolers try to kill their tentacle-alien teacher. An unlikely place, but I swear it’s worth it.

The important lesson is to have a second blade. That’s an edgier way of saying “have a backup plan.” Not a small one though. A backup plan for one’s entire career.

What’s this Weird Manga?

First off, the manga “Assassination Classroom” is a great read for many reasons: a great anti-hero teacher, surprising depth, and making me cry at least twice. But let’s focus on one chapter.

In this chapter, the teacher Koro-Sensei duplicates himself to tutor each student for exams (stick with me here). But the students say if they can assassinate him for the reward money, they’ll be set for life. Knowing this, their grades don’t matter. As long as they kill him, things will work out.

Koro-Sensei then, for some reason while making a tornado, gives an important lesson: the success of their primary goal isn’t assured. They may fail the assassination before the year is over. Someone outside the class may kill him. He could leave the classroom and avoid their future attempts. Most of these possibilities are totally outside their control.

In short, what they built their futures on is fragile. So they need at least one backup plan for their lives, or as he calls it, a second blade. Otherwise they’re not qualified to call themselves assassins.

How’s this Relate to my Career?

Having a second blade doesn’t just apply to killing an alien teacher. It has more relatable, less absurd applications, such as every career ever.

Take front-end web development. I could pour all my time and energy into it. Coding visible web components and creating new websites. I already do that a good amount now, so why change?

Like with the assassination classroom, most or all of this effort could be for nothing. It doesn’t take much searching to see why in my case. What if tools like The Grid go mainstream and automate everything? Too many businesses stick to social platforms like Facebook and Twitter instead of official websites? People only make sites with premade components or templates, like WordPress themes or frameworks? Businesses focus more on native apps instead of websites? These are already issues, and could do all the above someday.

Planning a second and third strike is important in case the first misses.

If I pour all my time and energy into that first blade, it’d go to waste. Then where would I be?

Having a second blade helps avoid this. If I assumed all the above happened, what skills would I fall back on? What would I wield instead? But the digital field has plenty of related options:

  • UX Design
  • Branding
  • Accessibility
  • Web privacy
  • Writing and content management
  • Expanding into back-end languages
  • Likely many more I don’t know

Get Your Second Blade

Thinking ahead is one thing, but thinking far ahead and for the worst is another. A second blade is more than a backup plan, it’s a backup plan for one’s entire career or life.

This is vital to assassinations since without a good backup plan, you can get killed. In real life, it’s so all your work doesn’t go to waste. Something beyond your control could shake things up, or destroy them, at any point. Without a second blade, you can’t fight back.

So whether you’re worried about your career, or trying to kill your tentacle alien teacher, a second blade is a worthwhile investment.

Post

The good and bad about web projects is they can get complex. It’s good because one can make incredible things limited only by imagination, free time, and lack of social life. It’s bad because overly-complex projects are hard to maintain, slowly break down, and eventually self-destruct.

For the sake of work and insurance premiums, complexity must be kept at bay. Not removed altogether, as we then couldn’t savor others’ bemused expressions when showing off our work. Coders just need to control and manage their project’s complexity so it scales without breaking.

This isn’t new info. The fun part comes when coders talk about how they control it. There’s no set in stone rules. Some are common, some are rare, all depend on the person.

In my case, I have eight general yet firm rules for my code. They keep it modular, editable, and easier to manage. I won’t scream them from the rooftops as the token to our salvation. But I’ll share them for other front-end coders looking to write or improve their own rules.

Plus my megaphone is broken and there’s no tall rooftops in my neighborhood. So let’s begin!

Thou Shalt Write Lots of Inline Comments

Informative comments in code seem like a chore. One that takes too much time, especially for projects with deadlines. This does not matter. For the love of a supposed God, write lots of comments.

I’ve learned their importance first-hand. At the start of the year I finished up a prototype. Earlier this month I had to make some changes. Looking through it was like going through a familiar maze after being spun around, blindfolded, and all signs were written in German.

No matter how obvious the code was to me before, enough time will take that away. Inline comments are the simplest, most effective way I’ve found to avoid this. For me, inline comments should be for:

  • Each page’s basic function - put at the very top.
  • Variables - what they’re used for and their unit of value.
  • Loops or functions - use, output, arguments, and examples.
  • Any complex chunks of code - to avoid future “look at it weep” situations.

Thou Shalt not Style Components Through Parent Elements

Modular CSS is written it can easily go from one project to another. Elements’ styles must be totally independent, or at least easily editable. A common way I’ve broken this rule is making important styles reliant on containers.

CSS Components must have styles completely independent of elements around them.

For example, let’s say I had a slider full of pirate ship pictures called a Pirate Slider. Normally the Pirate Slider is full width, but I made it half-width inside an article container. That’s convenient for this code, but now using it’s harder to use my Pirate Slider in other projects. That’s because code outside the component is effecting it so much. The component becomes more of a hassle to use.

Simple lesson from our Pirate Slider: don’t have any styles rely on container or parent elements. Especially widths, floats, padding, or margins, as they’re the most noticeable and volatile ones.

Thou Shalt Always Use Scoped Variables in Component Style Sheets

A common issue I’ve faced moving components from one project to another: it’s full of variables and values unique to that project. Restyling means going through the sheet several times replacing them, checking if I’ve missed any, finding some, and repeating at least three times. Imagine doing this every time a component is used elsewhere and don’t feel frustrated. I’ll wait.

The makers behind Bourbon’s Refills knew about this when making web components designed to be dropped into projects. All important values are held in unique, local scope variables atop the page. Changing the core styles is as easy as changing the variables.

.accordion-tabs {
$base-border-color: #dcdcdc !default;
$base-border-radius: 3px !default;
$base-background-color: #fff !default;
$base-spacing: 1.5em !default;
$action-color: #477dca !default;
$dark-gray: #333 !default;
$light-gray: #ddd !default;
$medium-screen: 40em !default;
$tab-border: 1px solid $base-border-color;
$tab-content-background: lighten($light-gray, 10);
$tab-active-background: $tab-content-background;
$tab-inactive-color: $base-background-color;
$tab-inactive-hover-color: darken($light-gray, 5);
$tab-mode: $medium-screen;

// Rest of styles and selectors go here

}

I don’t do this for every component’s styles, since it’s too much work. It has to meet these criteria:

  • It’s separate from the project’s base styling, like typography or colors.
  • It’s styled mainly with unique classes. At the very least, all first-level selectors should be classes.
  • It’s something likely to be used in other projects. A general-purpose menu? Sure! A menu built specifically for vegetarian pizza websites? Congrats on designing something with such an odd specification. Likely not needed elsewhere.

Thou Shalt Use the BEM Naming Convention

The previous commandment has one flaw: with all those class names, there’s a higher risk of some being the same. It also has a footing flaw during its tennis backhand, but that’s its own problem.

Anyway, my preferred way to avoid this is the BEM (block, element, modifier) naming convention. I won’t explain it here, as lately there’s been tons of articles doing just that. But I will say it’s very useful keep classes specific and organized, especially for components.

Thou Shalt Use Sass Maps for Global Variables

Before I used basic Sass variables to define global variables for major elements like typography, colors, breakpoints, and containers. But there’s lots of risks with this:

  • Naming things is tough, and so is remembering those names. The more global variables, the more different names you need, the harder using them gets.
  • There’s always the small, but still dangerous, risk of overlapping variable names.
  • The relationships between the variables can get complex, such as different colors or font-sizes. Capturing these in variable names makes them long and unmanageable.

I’d just accepted all this, but a BigEng article showed another approach: Sass Maps for global variables.

Now instead of a big, confusing list, they’re organized to clearly show their values and relationships:

$g-color-main: #00F;
$g-color-action: #F00;

$color-map: (
main: (
lightest: tint($g-color-main, 85%),
lighter: tint($g-color-main, 50%),
light: tint($g-color-main, 15%),
base: $g-color-main,
dark: shade($g-color-main, 15%),
darker: shade($g-color-main, 50%),
darkest: shade($g-color-main, 85%)
),

action: (
base: $g-color-action,
hover: shade($g-color-action, 15%)
),

mono: (
white: #fffefc,
black: #111
),
...
);

Referencing them is also more straightforward and flexible with functions.

button {
color: color(main);
background-color: color: color(main, lightest);

a { color: color(action); }
}

While every map needs it’s own function, it’s worth it for easier use and scalable management.

Thou Shalt Only Nest Classes, and Never More than One

Aside from reading too much manga on weekends, my only serious bad habit is too much Sass nesting. It starts simple: nesting one element in another. But the more changes I make, the deeper that nesting gets. Before I know it an element’s CSS is a nested clusterf**k with impossible maintenance.

.first-selector {
color: black;
font-size: 3em;

background-color: red;

.second-selector {
border: 1px solid purple;

.element {
@include position(absolute, 0 null null 0);
padding-bottom: 2em;
}

.element-two {

.some-text {
font-size: 0.83em;
text-underline: underline;

.that-one-element-you-need-to-change { //Good luck finding this
margin: 1em;
float: right;
}
}
}
}
}

This rule cuts this behavior off before it gets ugly: if you’re about to nest something inside something already nested, STOP. Take the extra minute to add a class and extra selector. It’s shorter than the extra ten minutes of tracking the element down in the aforementioned “nested clusterf**k” each change.

Thou Shalt only Bind JS to Data Attributes

A small yet important step to separate style and function is not linking JavaScript to classes. This keeps two scenarios from ruining a project’s code:

Function and style should always be separate, especially with classes

  1. A component’s class, or multiple classes, change. If the JavaScript is linked to those classes, it means going through all the related code and making changes. Repeat every time a class changes and tell me how fun that is.

  2. Two or more different components need the same JS functionality. If the class linking the JavaScript has lots of styles, it can lead to painful patches and workarounds to get the same effect without those styles. Example: Foundation 5.5.3’s modals are closed by clicking a .close-reveal-modal element. However, it also affects an element’s size, type, and positions it in the top right. Want a close button at the bottom of the modal? Not much fun either, I’ll tell you.

To avoid all this “fun,” link all JS code to attributes separate from styles. A simple rule is using attributes with a “data-*” name. But anything guaranteed not to overlap with CSS works fine.

Thou Shalt Put Tags and Their Content on Different Lines

This rule iss simple, easy to explain, and more of a personal preference. In a nutshell:

<!-- Write this in HTML -->

<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</p>

<!-- Don't write this in HTML -->
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>

Viola! With this little rule the content’s more organized and maintainable. The fewer large, hard-to-read blocks of code, the better.

General Rules for All Projects

These rules are meant to be specific but not too specific so they can work for any project. I won’t change each past project to follow them, but I will follow them as much as possible moving forward.

For any developer who hasn’t made similar rules for themselves yet, I encourage it as soon as possible. The sooner it’s done, the easier and more effective they’ll be. Setting your principles and standards up for yourself early means more improvement now and much better quality in the long run. Although don’t go as far as carving them into stone in your office - there’s always a chance some will change later.

Plus white boards are much cheaper and quieter.

Post

Let me begin by typing that while I once loved front-end frameworks like Bootstrap and Foundation, most of my excitement has faded.

I was a big fan while learning the front-end basics. But there comes a time in every front-end developer’s life when they need to lose their training wheels and build their site architecture from the bottom-up. One that meets their specific needs, and they understand enough to use flexibly. Ever since I got Plately together, I’ve been building on that and hardly use third-party frameworks.

But that’s no reason to dismiss them entirely. There’s still times where they’d come in handy for me or anyone else.

I like to compare front-end frameworks to religions. There’s a lot of options out there, with passionate and sometimes scary disagreement. Some people are ardent followers of one framework or a few, some don’t believe in any at all, and others chose the best parts of some without committing. What you ultimately choose comes down to your preferences, needs, and how comfortable you are with silk robes and animal sacrifice.

Lost track of that metaphor, but I have seven situations where I’d accept using front-end frameworks, for work or side projects. If it doesn’t match any of them, I recommend going with something totally custom.

1. You’re in a Hurry

This one’s a given. If a project has a strict deadline, using a framework with the basics built in may be the only way to save enough time.

You may ask: how much of a hurry do I need to be in? Simple: take the amount of time you’d have for a project that’d put you in a horrid panic fearing for your job. Then take off a few days. If you have less time than that, go for it!

2. You use Most of it

The biggest issue with frameworks is code bloat. Lots of elements and patterns are included that, if you don’t use, weigh your site down.

If you actually need that many components, then that issue’s gone. There’s no unneeded bloat since you’re working on a larger site that naturally has a larger codebase. But this means having a clear idea of what the site needs from the start…which isn’t always the case.

But what if you can code all those components yourself with less code? In that case, a framework may not work after all. If you have the time to pull that off.

3. You Cut out Everything you don’t use

Related to the above issue: if you’re not using most or all of a framework, but can remove the bloat of what’s not used, that works too. Many have Sass versions that let you add and remove components as needed.

However, if you’re using a remote CDN to pull all the styles and functionality at once, you’re out of luck.

4. You Customize it. A Lot.

Personally my biggest issue with frameworks is they give sites an “out of the box,” rushed feel. I know that’s more of a pet peeve, but is still worth mentioning. If visitors see the site’s had little effort put into making it, it risks hurting their impression of it. I acknowledge it’s not a huge risk, but it’s there nonetheless.

It’s why I prefer frameworks that are either bare bones or built on Sass - they’re easier to customize consistently. To me, a site uses a framework best when you can’t easily tell which one was used.

5. You’re New to the Front-end

As some back-end programmers discussed about front-end frameworks, they’re very helpful if front-end isn’t your thing. It helps them focus on the product and content without fretting over the CSS and UI.

I don’t think that should be the case for every site, but it’ll be the case for many. Not everyone wanting to make a site can add custom styles. Plus many developers with varying experience could be collaborating and need a common starting point. Those are good moments for frameworks to shine.

6. You need a Reliable UI

Many frameworks are built with user experience already in mind. Elements like navigation, carousels, buttons, and forms are made to be responsive and easy to understand. UI can be surprisingly tricky, as I routinely learn, so having this handled beforehand is a big help.

7. Your Client Already uses it

I don’t need to explain much. Inheriting a major project with the framework already built in? Unless you have a big, compelling reason to migrate away from it and justify all that work, you’ll be using it. And even then, it may be too much work to be worth it.

In Conclusion

I’ll wrap up this post with some frameworks I recommend based on past experience:

  • Bourbon is my top choice despite not technically being a singular framework. It’s four tools you can mix or match to build out a site: the Bourbon mixin library, the Neat grid system, the Bitters scaffolding styles, and the Refills component library. It’s very scalable and you can use select pieces on other projects. My own framework uses Bourbon and parts of Bitters, so they’re very useful.
  • Foundation is the only “mainstream” one I like. It has advanced functions, is scalable, and gives many options for setup and customization. I use it frequently in my work for a big client and, while it can be more confusing than others, is still reliable.
  • MaterializeCSS takes Google’s Materialize styling and turns it into a useable, enjoyable framework. I’ve used it mainly since I love the look and feel of Materialize, and others who do too should give this one a try.
  • Want more? I’ve got a whole Pinterest board of frameworks to browse through.

While I still feel that a personal, tailored framework made on their own should be an ultimate goal for front-end developers, the ones already out there are great starting points. Plus, who says we won’t be using one in some future projects?

Post

As a coder, college grad, and human that doesn’t live in a cave, naturally the Internet’s affected me a lot. And naturally it sometimes makes me want to beat me head against a wall.

Or a bookshelf. Or a heater if I’m having a bad day. Or the new office white-board if I missed a…the point is it makes my head hurt and costs money to clean.

Looking for a solution to cut down on my cleaning and medical expenses, I found a summary of Bit Literacy on Blinkist. It turned out to be so helpful I bought the actual book. The author’s core message in one line is:

Learn to let the bits go.

Bits refer to all general forms of info online. The common theme in most issues is being overloaded by bits. So people must learn to isolate the important bits and ignore the others.

I encourage anyone who uses computers or smartphones regularly (i.e. everyone not in a cave that lacks wifi) to read the book - Amazon even has a free Kindle version. Otherwise, below are four ways to let the bits go that stuck with me the most.

Get a Strict Media Diet

Imagine a Las Vegas all-you-can-eat buffet. Great food, a “variety of quality,” and you could never get through it all. Take that and make it a thousand miles long. That’s a highly scientific metaphor for all the information online.

This is only bad when people try to over-stuff themselves with it all. With so many sites selling themselves as being helpful or even essential, it’s tempting to try and read them all.

We rarely remember everything we read online. Pick the sites you forget the least and focus mostly on them and few others.

Do not do this. While lots of information out there is helpful, how helpful differs for each person. Take a few sites you know has content important to you and focus on those. Also gather others that occasionally have useful info and just skim them.

Trying to read and remember everything doesn’t work. It spreads a person’s focus and memory far too thin. Then it doesn’t matter if they’ve found a blog with the recipe for chocolate-covered bunny candies that turn them into sex gods - it’ll be lost in the haze of information overload.

Don’t miss the chance to eat candy and be a sex god. Let the useless articles go and focus on the important ones.

Empty your Inbox

If you have email, there’s a 98% chance you have too much stuff in your inbox. How much is too much? I define it has “anything more than nothing.”

Seem like a strict definition? It’s meant to be. An ideal email inbox is empty whenever possible.

I don’t need to explain how overlooked and bloated email can ruin one’s life. Someone already did in a perfect way for the Internet: a long, scrolling comic.

Thankfully, getting one’s email to zero is simple. Go to each email and answer these questions:

  1. Have you ever read this email? If not, delete it and unsubscribe from future updates if possible.
  2. Have you read it but likely won’t need to again? Put it into an appropriate email folder (or computer folder), delete it, and move on.
  3. Does it have an important attachment? Save it somewhere and delete it.
  4. Does it need an actual response? This is a scary thought, I know. Send a response as soon as you can and then, you guessed it, move or delete the email.

Please don’t use email as a to-do list. Too often it gets forgotten and then emails pile up again. That’s what actual to-do lists like Wunderlist are for. Let the emails go and get back to the clearly productive work on whatever last site you visited.

Use a Text Editor

Unless you have serious info requirements that only an app can meet, like making complex graphs and charts, don’t use them. Most info can be handled with a surprisingly simple tool: a text editor.

Microsoft Word’s main function is making documents print-ready. Word documents that aren’t printed are bulkier for no good reason.

This sounded crazy to me, and I’m a coder that uses a text editor on a regular basis. Use it for writing everyday stuff like articles, lists, work schedules, and all that? Isn’t that what tools like Microsoft Word are for?

But the book made some good arguments against relying on these too much. Take Microsoft Word for example. Much of it’s functions just make documents print-friendly. Have you had to print everything you’ve written on your computer? Likely a few things, yes, but unlikely all of them. Many were then saved to a larger Microsoft Word file for no reason.

Writing in just a text editor is a big shift, but brings flexibility to one’s computer. Text files are lightweight, easier to manage and backup, and can be more easily changed between formats. With information management changing so rapidly, this flexibility really helps. Plus text editors have many awesome functions for editing and removing text if used right.

Already have lots of files saved in Word and don’t want to migrate them all at once? Move them over as you open them instead. It’s a more gradual process that brings more important files over first. Whether it’s fast or slow, let the software go and focus more on the info itself.

Get a Typing Shortcut App

A typing shortcut app recognizes when you type several characters and replaces them with something else. For example, typing “sny” would replace it with “Sincerely Yours,” right away.

If you had the same reaction as me, your mind was slightly blown just now.

I didn’t know this software existed but have found it useful ever since. I got Typinator and only have a few shortcuts now, but it has still saved me much time and wrist pain. Add a shortcut for just about anything, save some time, and let the keystrokes go.

In Conclusion

The quote on front of my “Bit Literacy” copy was from Seth Godin, calling it ‘The Elements of Style for the digital age.’ I wouldn’t go that far, but it’s still a great read to at least get better perspective on digital living.

The best takeaway is still the simple lesson to let the bits go. It applies to web content, emails, apps, typing, and many others not mentioned here but are in the book. Get control of the bits flooding our lives so we can let the unimportant ones go and focus on the vital ones.

Keep that in mind when new bits try to enter your life. Are they truly needed? Are there simpler ways to handle this new info? Will it complicate your life too much? Consume too much time to be worth it?

If one is honest enough with those questions, it’s surprising how many bits can be let go.

Post

Like any person with Internet access, I’ve been exposed to the 2016 election. The one I followed the most was Bernie Sander’s surprising success, which made me think of one issue: entitlements.

I wondered, how would an ideal entitlement system work?

Know this isn’t a post advocating one party’s position over another. That’s an overcrowded marketplace and there’s too many requirements for me to succeed in it:

  • Spite
  • A condescending, dickish tone of voice
  • Rage, not limited to four or five-letter words
  • High level of attractiveness
  • Desire to alienate half my friends and family

The market is especially saturated this Election Year, as you’ve noticed.

So in this post, I’m looking at this without any present-day politics. This is pure philosophical pondering, no censors to block thoughts for the sake of the squeamish. Down and dirty free thinking. Let’s get to the action!

So…how to Define Entitlement?

The first question is obvious yet tough: how do we define entitlements? If I can’t do that, this is pointless. First stop: the dictionary.

Google defines “entitlement” as the fact of having a right to something. Seems straightforward, long as we know what it means to have “a right to something.”

So I looked that up and found a problem. Google’s definition of “right” is a moral or legal entitlement to something. Great, an infinite definition loop! It’s hard to define entitlements when it tries to use the same word to define itself.

So the “official” definition of entitlement is unclear. I’ll be using my own.

The first part: entitlements must be given to individuals by the state. If they’re given by family or friends by their choice, I don’t define that as entitlement. I define it as goodwill or charity. Entitlements must be collected by the state from all people (how much from each person is another post), then given to individuals the state choses.

For the sake of argument, entitlements given to people will be anything essential to living. Basics like food, water, shelter, education, health care, security, etc.

Then we’re at the hardest part of my definition: How should we give out entitlements? Make it universal or only to some? Who gets them and who doesn’t? Should anyone get them? Tough questions…

Answering that last part is what I want to answer in this post. I’m aiming for a definition of entitlements that helps everyone while still being moral and fair system. It needs to accomplish two things:

  1. Not waste entitlements on people who wouldn’t use them or could be argued don’t deserve them.
  2. Make sure all people who deserve entitlements get them.

How do we Give Out Entitlements?

First I’ll try a simple way to give out entitlements: people should have them regardless of circumstance. No matter where the person ranks economically, socially, age-wise or whatever, entitlements are something they will always get. Anyone who exists gets entitlements.

But this raises a question: do people deserve entitlements for simply existing?

This raises an obvious problem: people could deliberately do nothing their entire lives, be given all their entitlements, and not making use of them. It’s fair to argue that people who don’t add any value to society wouldn’t deserve anything from society. From through donations and charities, sure, but not the state. So I can quickly discard this way to give out entitlements.

Thankfully, my reason for rejecting this method leads me to my next one: What we’re entitled to is equal to the value we add to society. This is a better definition since the state has plenty reasons to help people making it better.

But there’s one issue I spot right away: What does bringing value to society mean? For the sake of argument, I’ll say it’s when someone consciously makes society better as a whole. Like repairing cars, producing thought-provoking art, informing or teaching the public, cleaning or repairing infrastructure, etc. Anything with a tangible, preferably measurable benefit to society.

Solved, right? No!

Even with my current definition has a big issue: the Problem of Opportunity.

The Problem of Opportunity

I’ve gotten as far as “people are entitled to how much they help society.” Leaving the specifics of how measure this aside for now (another blog post), there’s a huge issue: what if people aren’t able to contribute to society, even if they wanted to?

Lets say someone is born into a harsh life. They have little food and water, shelter is sporadic, and can’t treat common health issues. This person must work extremely hard just to stay alive, leaving next to no energy to contribute to society. The society they want to add value too makes it real hard to do just that.

To make my entitlement system work, people who want to add to society must be covered somehow.

Under my current definition, this person wouldn’t be entitled to anything and be left to struggle. My second criteria of “no risk of deserving people having no entitlements” is broken.

I’ll call this the Problem of Opportunity. Like I said, this problem makes my current way of giving out entitlements unworkable. Thankfully I don’t need to think of something different entirely, just adjust my current idea.

Three Kinds of Opportunity Issues

Thinking it over, there are three times when this lack of opportunity is an issue:

  1. The previous example, when someone is struggling so much for life necessities, they can’t add value to society.
  2. When someone who previously could add value to society no longer can, due to an injury or otherwise, and requires too much entitlements for their recovery. For example, they added X amount of value to society, but require more than X value of entitlements before they can improve society again.
  3. When someone is too young to add to society. These would be babies, toddlers, children, etc. People need time to develop before they can be independent, contributing members of society.

Thankfully, I’ve got a few solutions to address these three.

Fixing the Lack of Opportunity for the Young

This is a tough yet simple one. I’m assuming all people need to reach a certain age before they can consistently contribute to society. Up until that age they’re an exception to my rule. If their family and friends can’t give them the basics to survive, the state should make sure everyone in this age range (deciding that is another post) has access to the essentials, especially education. The better the education, the better a person can contribute, so it better be good.

I know the “giving children a good childhood education” position doesn’t seem controversial, but surprisingly it is. Likely because people in power don’t want citizens smart enough to question them. But once again, that’s another blog post.

Fixing Opportunity for the Older

The more complicated issue is a lack of opportunity for the other two groups. People who are in such bad circumstances, they’re too focused on surviving to contribute. These would be people in very poor communities, the homeless, the severely injured, or those in violent areas. How to fix this?

The “exception to the rule” solution I used for the young won’t work here. That only worked because there’s no other circumstances where the young could consistently contribute. People in these two groups could but can’t through circumstance. The solution here has to make sure people who can’t contribute through circumstance get their entitlements, and those who don’t through choice do not.

My answer is thankfully very simple: public work programs.

I’m taking a page from the New Deal, mainly the Public Works Administration. Citizens who lost their jobs were hired by the government to build infrastructure and do other jobs for the public good. My solution would make this a constant option for everyone. People in bad circumstances would always have the opportunity for a job, as long as they meet these criteria:

  • The job is either given directly by the state, or indirectly through another company that the state helps pay for.
  • People would always be able to get this kind of job, regardless of age or circumstance.

Public Works Programs must ensure everyone has a chance to work fairly for entitlements.

  • The job must add directly and substantially to society. Maintaining roads and bridges, for example, helps lots of people and is well-worth the investment.
  • People who can’t do certain kinds of jobs, like those with disabilities or recovering from serious illnesses, should still be offered ways to work. For example, someone with a physical disability could work in an area focused on intelligence or information gathering if needed.
  • It gives minimum entitlements for the person to keep living and working, including needed education to do it. I say the minimum since it would give an incentive to leave the job and independently add to society later on.

These would give people who couldn’t otherwise add to society a chance to, solving the Problem of Opportunity. If someone still chose not to, despite having the opportunity, they wouldn’t receive any. They wouldn’t be adding any value to society despite the opportunity to do so, and again I’d argue wouldn’t deserve entitlements anyway.

Entitlement Defined

This all seems to give me a solid definition. A quick recap of my points so far on my ideal way to give out entitlements:

  • Entitlements are only given based on how much value someone adds to society.
  • Those without the opportunity to do this must be provided a job by the state that gives them a minimum level of entitlements.
  • People who still chose not to add to society, despite these opportunities, receive nothing.
  • The only exception is people too young to add to society, and are entitled to life’s essentials until they’re old enough to do so.

In short, we’re entitled to nothing but opportunity. In my perfect world, this would be how entitlements would work (although I’ll likely revise it later).

Funnily enough, the current President (sort of) agrees with me. Democratic President Frank Underwood’s speech in House of Cards gave basically the same position (admittedly with a better accent and a sinister undertone).

Post

If I chose my least favorite effect the Internet has on people, it’s the fear of self-expression.

I don’t believe a person’s identity means much if they can’t express it, at least a little. Expressing views and ideas to others and seeing their effects make them meaningful. An identity based on helping the poor means nothing if you don’t actually help the poor. Even if that’s as small as increase awareness.

One would think the Internet, with so many ways to share ideas, would help. But for many it can have the opposite effect. Part of human nature is people will always disagree with a viewpoint. This itself isn’t bad, but is when disagreement gets so public, vicious, and commonplace. Express a view that people disagree with enough, regardless of logic, and risk massive harassment. There’s endless examples of people sending tweets that got them fired or created international scandal. Sharing views that did more harm than just a few people disagreeing. It can happen to anyone, myself included.

But is this really bad? Some expressed views deserve genuine outrage. Entitlement, blatant ignorance, racism or prejudice shouldn’t go unchallenged just because they’re sincerely held. It’s like saying a sincerely held belief that only black people get AIDs should be left alone. Even if it’s shared by a major US official.

Is there a balance? A rule for when to let expressions be and when to question them?

Maybe not. This statement implies some expressions should always be questioned and some never should. But are there expressions that should never be questioned? Claims we should never ask someone to back up? Religious beliefs to ask if they inspire morality or are outdated dogma? Political views to see if they just want to mislead or control people? Personal views to see if they’re reasonable or narcissistic?

George Carlin said people should be raised to question everything. Everything we accept without questioning gives someone a chance to exert control. Even things we were raised to accept, things we grow up loving or made to just accept as they are, deserve some skepticism.

Let’s bring this back to my original issue: the Internet creating a fear of self-expression. From my own reasoning it looks like there’s no way around this. Fear of excessive criticism and consequence will always be there.

The truth is there’s no way around this. Part of being an adult is accepting greater consequences for one’s actions. How one speaks is part of that. Kids can get away with offensive speech more often since they’re seen as “still learning” or “don’t understand what they’re saying.” Adults are expected to know what and what not to say. A freedom of speech comes with a responsibility for informed speech.

It’s also a responsibility I feel is important to accept and live up to.

In the end, damage done by standing by principles isn’t as bad as the damage done by not having any. I would rather be hurt by people disagreeing with my character than being an empty shell saying what others want to hear.