./ codelitt aka Cody Littlewood

Rants, raves, and ramblings about technology, business strategy, and building cool things for the web

Hey Twitter, Why Are You Spoofing Your Own Users’ Accounts?

Twitter is spoofing users’ accounts in the Discover feed and I’m not sure why. Basically, they are promoting tweets in our Discover feeds by spoofing the reason for the tweet showing up in your personal feed. Twitter looks through your list of whom you are following and then adds “PersonYouAreFollowing follows AccountOfTweet” to the top of the tweet to validate the reason for putting this tweet in your Discover feed. This would be a relatively good thing to do if the tweets in my feed were from accounts that the people I’m following actually follow. The problem is, they aren’t. It’s being spoofed by Twitter themselves. I noticed the spam/spoof when I saw a tweet by a blog on Buenos Aires that supposedly the Pope himself follows in my Discover feed.

Twitter spoofs the Pope

I don’t know much about the papacy, but I kind of doubted that the Pope has a significant amount of time to read up on the tales of the ex-gardener of Nestor Kirchner. Sure enough, if you go look at the Pope’s profile, you’ll see that he only follows his own accounts for the different languages.

I then started looking for other inconsistencies and I found several. For example Louis CK, according to my Discover feed, follows both @huffingtonpost (unlikely, but whatever) and @AVTVClub. Taking a look at who Louis CK follows (1 account), this is obviously not true.

Twitter spoofs Louis CK

Another example of an account being manipulated is one of my personal heroes, Commander Chris Hadfield, a Canadian astronaut and most recent commander of the ISS. You can see from the images below and his following feed that his account is being spoofed as well by Twitter.

Twitter spoofs Chris Hadfield Twitter spoofs Chris Hadfield

Same with The Onion:

Twitter spoofs The Onions

It doesn’t happen with only sponsored accounts as shown here:

Twitter spoofs The Clubhouse

Now maybe none of these people mind, but maybe they do. Perhaps the Pope doesn’t want his followers to wrongly believe that he is following some random blog talking about a former Argentine president’s gardener. I doubt Louis CK wants people to think he is following the Huffington Post and their awesome articles about why Brad and Angelina are on the rocks. Maybe I’m wrong and no one minds, but either way, as a user, I don’t appreciate being lied to or misinformed. It’s seedy at very best.

Twitter has been working pretty consistently on integrating their revenue model of sponsored tweets, sponsored accounts to follow, and sponsored hashtags over the past year. However, these tweets in the Discover feed are not called out as sponsored interactions like the others. They are snuck in amongst everything else and they are inaccurate. At best it’s an engineering mistake. At the worst it’s spam and an inaccurate representation of their users. They also have received criticism for the amount of spam on Twitter. It’s pretty interesting to me that given this criticism they would spam their own system with inaccurate details.

PiFace Digital IO on RaspberryPi With Arch Linux ARM

I’m currently the process of building a RaspberryPi setup to basically control my entire home with a WebUI that I can access from anywhere. I need the capabilities to provide surveillance, control the lights, regulate temperature, and control my media centre/sound system throughout the home. Accessing these controls from any device remotely is a huge appeal; not to mention the convenience and peace of mind.

There are lots of open-source projects for XMBC which will take care of my media centre, a few surveillance projects, and a WebUI project so I figured I’d get started on the lighting and temperature. Luckily there is the PiFace Digital IO which offers a super simple input/output board and plugs directly into your RPi.

RaspberryPi with PiFace

There was already a library out there for the board, but I use Arch Linux ARM on my Pi’s. Arch doesn’t come with Python3, make, or gcc preinstalled and the library depends on these. Since I already was going to fork the PiFace library, I decided you add the dependencies into the install script to make it easier for others. It uses pacman to install the dependencies so you shouldn’t have any conflicts or issues.

You can find the PiFace library for Arch Linux ARM here.

Install git with:

pacman -S git

Configure git.

Clone the library:

git clone https://github.com/codelitt/pifacedigitalioArch

Change directories:

cd pifacedigitalioArch

And run the install script:

./install.sh

You may have to sudo if you are not already root. Answer “y” and hit enter when the install script prompts you if the packages are not already installed.

How to Setup Raspberry Pi via SSH With Arch Linux (No Monitor, No Keyboard)

The information provided will help you find your RPi on the network and get you connected and logged in via SSH to your RPi to begin your install and setup. Once you get to this step, check out the Arch Linux Beginner’s Guide and Arch Linux Installation Wiki for the best information.

Specs:

  • Raspberry Pi board
  • SSH on your Mac or Linux computer (Macs and most distros come with it preinstalled)
  • SD card loaded with Arch Linux - RPi Easy SD Card Setup (Could be Raspbian distro as well but change SSH login details in steps 8 and 9 to: pi (username) and raspberry (password)
  • Raspberry Pi connected via ethernet to network.

  • Plug in your RPi and give it about 2 minutes (just to be sure) to get fired up

  • On your Mac or Linux open a terminal. Both come preinstalled. Search “terminal” if you have problems finding it.

  • In the terminal window, search for the broadcast IP on your local network by:

ifconfig | grep broadcast

It should return something like this:

inet 192.168.0.3 netmask 0xffffff00 broadcast 192.168.0.255

  1. Copy the broadcast IP (Mine is 192.168.0.255) and then ping the broadcast IP with this:

Linux:

ping -b 192.168.0.255

Mac:

ping 192.168.0.255

It should begin to return something like this:

64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=46.7 ms 64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=74.1 ms (DUP!) 64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=69.8 ms

  1. Use CTRL + c to exit out of the ping

  2. Now to find which other IP’s are connected on your network (one of which is the RPi) run:

arp -a

which should return something like:

? (192.168.0.1) at 21:b3:17:94:f4:71 [ether] on eth0 ? (192.168.0.7) at f3:9e:df:e1:32:34c [ether] on eth0

  1. The first number in each line is an IP of a device connected to the network. Normal routers use what is called DHCP or Dynamic Host Configuration Protocol to “lease” IP’s to devices connecting to the network so they can be identified. If a lease expires or a device removes itself from the network then this frees up the IP to be assigned to a new leasee upon request. In most situations, routers assign IP’s starting from low to high and if your RPi was the last device connected you can make a reasonable guess that it is the highest IP.

Copy this number and use it for the next steps. If these steps do not work then it stands to reason that your RPi is one of the other (hopefully) few IP’s listed. So give those a try before asking a question in the comment section or on Twitter.

  1. In your terminal window run:

ssh root@192.168.0.7 (or whatever IP got from steps 6,7)

  1. It will prompt you for a password, so enter the default Arch password:

root

  1. All done. You are logged in via SSH to your Raspberry Pi and now can continue with installation as normal.

Best Digital Agencies in NYC - How to Find and Choose the Right Agency for Your Needs

TL;DR- Find the best digital agency by looking for a company with experts, full service (interactive) capabilities, people with strong strategy and business acumen, the right size amount of people, a trustworthy crew, and a passion. I personally recommend Uber Digital.

Everyone wants to find the best digital agency (or agencies) for their business, but once you actually start actively searching weeding out the cruff becomes a much more daunting task…especially since anyone on the internet can really say anything they please. Finding the best digital agency in an over-saturated market like NYC can be an absolute pain in the ass. I’ve worked on both sides of the market. I’ve worked for a large Fortune 500 trying to find a digital agency of record, and I’ve worked for a digital agency. Right now, I sit somewhere in between as a consultant where I’m neither client nor agency, but work closely with both. Here are the things I look for and major watch-outs:

Experts

This seems like such an obvious one, but I can not stress it enough. The agencies I usually steer clear of are the ones who are constantly pitching me something. I’m usually on the bleeding edge, but agencies that can teach me something new, offer new insight, and are able to build connections through networks of ideas are the agencies that will deliver real value in the end. If an agency is annoying you with their pitch, how will their marketing, design, or digital assets be perceived by your customers.

Full service (aka Interactive)

Actually I really hate the descriptor “interactive” to describe an agency or firm that can do everything because it’s really an awful use of the english language and is corporate language that has been diluted into nothing. That being said, you want someone who can deliver on your needs. Whether it’s NDAs, RFPs, on-boarding education, or countless other items every agency that you have to bring on inherently adds another layer of complexity and time. You want a shop who just can get things done and done well. A shop who envelopes strategy into a fully integrated execution is going to be far more valuable than a shop who just builds your specs. A shop that can look at all aspects of your business, help you identify opportunity, develop a strategy, develop wireframes for a website and storyboards for a video, then execute and provide you with these beautiful assets in a neat package is a shop I will hire every single time.

Strategy and business acumen

I could possibly put this into the section above, but it’s honestly so important that I decided to keep it on its own. There are hundreds of agencies in NYC that can execute (how well they execute is a different matter). The problem with digital agencies is that it’s honestly such a new game that they get too wrapped up in what is going on in their world that they forget that there is still a business to run. Usually this means they want to build something shiny, but not for the right reasons. Chasing shiny is great for brainstorming, but unless you can tie it to actual business value, then it’s a just an exercise and wasted money.

Size matters (but not the way you think)

There are many big names in digital agencies (particularly in NYC), but unless you are spending $1 million on a project with them, chances are that you’re going to be getting a B team with a large agency. Even if you are spending $1 million+, you are a new client. Agencies tend to take care of the clients that are directly tied to steady cash flow. Over time you may transition into an A team, but you certainly won’t be getting it at first. With a small (but ample) agency, they don’t have room for B teams. B players are quickly weeded out and let go. Junior members of the team may grind their teeth on a smaller project, but everything is ran through a Senior employee with years of experience who guarantees that the quality of work meets their standards. Now small doesn’t mean stretched. You want to be careful and make sure that the team can handle the workload (or hire to accommodate for it). Steer clear of agencies who are one or two man shops if they have other clients. This can be dangerous. If you have a massive project, make sure there is at least one Senior person for every area of expertise (design, strategy, technology) and the employees to handle the workload. Many medium sized firms have small branches in different locations, but as a whole they have the team to support your needs.

Trustworthiness and personality

These almost go without saying, but quite frankly there are a lot of slimey players since this is a relatively new industry. You’ll get the “social media marketing experts” and the spammy snake oil salesman on far too often of an occasion. Look for people who you would like to go out with for drinks. You will be spending a lot of time with these people. You want someone who you can trust, both to get the job done and to be looking out for your best interest. Finding a digital agency who is genuinely concerned with the best interests of your business is going to pay off in dividends later on. Ask for references and press the references, particularly of companies who hired the agency to do the type of work you’re interested in.

Passion and adventure

Now this is kind of an x-factor. There are so many ways that you could spin this or adjectives that you could use, but it comes down to how excited the team is to work with you. Engaged and passionate digital agencies are going to produce better work for you than anyone else. They’ll pour their thoughts, their personal research, and their ideas into your project which is what you want in the end. You’re paying for creative minds who have applied these talents to the business world. Look for programmers who contribute to the open-sourced world, look for designers who have a personal website where they try new things, and look for agencies who are passionate about what they do.

How do I find this perfect agency?

Now how do you start your search? I go off of personal recommendations, investigate campaigns or sites that I thought were well done, and I use Google. My personal recommendation is a digital agency called Uber. They started off in London, but have a great office in NYC. Disclosure - I am biased, because I work with them every day, but genuinely everything that comes out of Uber is just top-shelf material for Fortune 500 companies to more medium sized brands to startups alike. They meet all of the criteria which I look for in an agency of record, and have produced some of the best work I’ve seen in the industry.

Did I miss something? What do you look for in a digital agency? How do you start your search? Leave a comment, or squawk at me on Twitter @codelitt

The Most Powerful Countries of the Next Century Will Be Determined in the Next Decade by Technology Access, Freedom of Information, and Ideas

Disclaimer: It’s been awhile since I’ve written on anything worthwhile, but this theory is long in the making. It’s more complex than a few pages, but I try to break it down into something manageable to read.

Power, geopolitical, economic, and democratic success of a country over the next century will not be determined by military power, oil exports, Wall Street, religion, or cash. The most powerful nations of next century will be determined within the next ten years by the technology access, freedom of information, and ideas. This is the dispersion of power which is shifting from centralised points –where we once saw monetary power and military power as the key indicators for success– to a more decentralised model which relies on what experts are calling “soft-power.” This soft power translates into something very real when harnessed, and the steps made over the next decade will echo in the next century as a precedent and foundation for success.

What is power? Power is the ability to make others do what you wish by exerting force of some kind. Power is having influence. Traditionally this force has been in the hands of militaries who threaten lives (the stick), or in the hands of the wealthy who pay for things to be as they wish whether it be through contributions, manipulation, or out-right bribes (the carrot). Soft-power is a different approach. Under this model the force of power is more subtle and a type of downstream engagement where power has a bottom-up effect. The top of which is the international arena. This power is in ideas which others can hear, convert to, and take action upon. The reason for this dispersion of power is overly blatant and obvious– the access to communication, technology, and the free net. Only a few decades ago if a person wanted to simultaneously communicate with all four hemispheres they could; however they had to be extremely wealthy or high up in the military to have access to the technology. Now a 14 year old girl can have millions that have access to her ideas and whom are actively engaged.

People assume that the shift in power will be linear, but history is not linear. History is made by a volatile plot line which has peaks and valleys. Our models for economic power also do not demonstrate the shifting geopolitical climate, elections, shifting policies, and external forces. For example China’s rise to power, if kept on a linear path, will outpace the United States financially in 10 years, and double the US in 20 years. While it is clear that China is rising, the interest of the Chinese government is not to increase it’s citizens’ GDP by a great margin. It is in the best interest of the Chinese centralised government to rise to be the greatest economic power, but not with a well-spread GDP which as history has shown leads to huge shifts in ideologies. The other barrier is their access to information. The Great Firewall of China is China’s worst kept secret. The interesting aspect to look at is the ingenious methods for which the Chinese have figured out how to circumvent this censored internet or post in it. The average Chinese person I’ve met in the last 5 years know’s how to secure VPN access and tunnel out of the Great Firewall. They also use an interesting combinations of onomatopoeias and alliterations so that banned words and phrases don’t get automatically flagged by censorship web-crawlers. Much like the Arab spring, the general populous is growing more restless with these measures and is having more access to new ideas. A decent spark would not be inline with the Chinese economic model as of now and would undoubtedly set them back from this linear path to #1.

This is not to say that China will have to become like the west to rise to power. China is not like the west, and will never be like the west. It is absurdly over-simplified when we in the west think that China’s greatness will be tied to their adoption of western culture and practices. China will rise to power quickly because of their technology access and infrastructure. Not without mention is the Chinese government’s commitment to investing in technology. What will stall them will be their freedom of information. This barrier may be lowered, but we won’t see a large change in this area for at least another 5 years. This will continue to be the Chinese version of a father’s sin. Every super-power comes with their fathers’ sins, and this is undoubtedly China’s. They will continue to pay for this and see the effects echo into the next 25 years.

Access to information and a better educated demographic begets better decision making. The record speaks for itself. The very obvious ones seem more foreign like the recent reelection of Hugo Chavez. Decidedly poor choice given Chavez’s inability to keep his people safe, a widening class gap, devaluation of their currency, and wide-spread crime. Yet even with these facts, the lower-class still voted for Chavez because of no access to free information. Access to television, controlled by Chavez, and state-run newspapers is where the majority of people living in low-income barrios get their information. People in Venezuela with more access to free information (the Internet) and who are monetarily gaining from Chavez decidedly voted for the inspiring opponent, Henrique Capriles. This location and election may seem a bit distant and unrelatable to some though, but the record speaks for the United States as well where low-income families gathering most of their information from the television and radio shows in 2004 reelected George W. Bush who had clearly shown his distaste for lower-class citizens.

So what’s the solution? Clearly dispersion of power makes most governments nervous, but everyone wants to be at the top. We know that the wheels are already in motion, but most governments don’t know what to do. The solution isn’t to fight the power shift, but rather to manage it. If you can manage the power dispersion you get to be involved. Your citizens are going to play this Monopoly game with or without you – I suggest you be the bank. The solution for developing countries to make their mark over the next decade and make a sustainable rise to power is not only to allow access of information to their citizens, but enable their ideas. Ideas and information are the cornerstone, but without the bricks and mortar to build upon these that’s all they’re ever be - a cornerstone that marks what could have been. Developing countries, particularly in Latin America, can harness what is already in the works.

The first step is to eliminate the fear of ideas and change. There are two paths to take. Governments can fear the dispersion of power to the people and fight it. This is likely their first choice, but they won’t win. What everyone should have been talking about with the Arab Spring was not the the change that this had on the region in the Middle East. What we should have been examining is the fact that if this can happen in an area which has been historically plagued in the past 100 with theocracy and dictatorship, then this can happen anywhere. The leap it would take for a Latin American country like Ecuador or Colombia to manage dispersion of power and break historical molds is nothing in comparison for the leap it took for the Arab Spring to happen. Latin American countries historically do have centralised power, but what they do not have hanging around their necks is fear of their government. Latino culture champions controversy and difference in comparison to the Middle East. So instead of fearing and fighting the dispersion of power, these governments should be focusing on embracing it and managing it. Dispersion of power is going to happen. Think of it as splitting up stock options. The percentage that you get at the end may be less, but if these additions increase your valuation then 10% of $1 million is better than 20% of $200K. The winners will be on the side of the aisle who could part with a little power in exchange for a larger pie. The losers will be on the side of the aisle that resisted change. They might have their control, but they will not have real power.

The second step is to put technology into the hands of the people. A government that spends $1 million on purchasing Raspberry Pi has just enabled 30,000 of it’s citizens to put their ideas into action. Gone are the days where ideas needed investment, manufacturing facilities, and powerful friends. Now for the price of $35 you can put a computer in a college student’s hands which they can use to talk about their ideas, read about others’ ideas, and most importantly build their ideas. Spend another $2 million on investment for young companies in your country that are building things that matter to your citizens and improve their quality of life. Then take 10%, only 10%, of your military’s defense budget and begin to allocate it into technology instead of new weapons. Not only will you begin to see young companies blossoming, improve your citizens’ quality of life, and inject cash flow into your economy, but you’ll end up with a better educated public. Some of these young college students are your next soldiers in your military writing code to protect and defend your nation.

The fact of the matter is that the wars that matter will no longer be fought in trenches, in Middle Eastern cities, or in jungles in some far off land. The wars that will be fought that matter will be governments with the smartest technologists, hackers, and makers in the business. Power will no longer be determined by your military strength, because the top military in the world isn’t going anywhere if a 25 year old soldier of your adversary with nothing but a computer just disabled your SATCOMS (satellite communications). If you doubt that this is true, take a look at the Mandiant APT1 report on Chinese Cyber Espionage. Take a look at the tech industries skyrocketing stock prices and 29 year old billionaires. Read the news over the next year and see the percentage of new companies, ideas, and people that are shaking the globe. Then try to come tell me that power doesn’t lie within the technology you place in your citizens’ and in your military’s hands. Power, in every sense of the word, is having influence. The most powerful countries of the next decade will be determined by technology access, freedom of information, and ideas.

Now who will these countries be? Right now it’s up for grabs. The US will not be number one. There are to many stifles to technology enablement, heavily entrenched corruption, and an arrogance that doesn’t allow for change. China? It’s doubtful. While they have all the tools, their in for a rock 5 years once the crescendo of a better educated populous and access to information meet the centralised governments heavy hand. Whenever power shifts, historically we are in for turbulent times. The exciting part of this is that it’s honestly up for grabs. Shifts in power almost certainly mean war, diplomatic contention, and economic turbulence, but the countries that don’t focus their energy in fighting it, but rather managing the power shift will be the ones that come out on top. The west had better get used to the idea of at least 2 Latin American countries coming out in the ring. Mexico, Colombia, and Brazil are all in the running right now, although Chile is making a good effort on investing in technology (albeit unfocused on its own best interest). All the money and military power in the world isn’t going to silence ideas. It will not stop the shift to soft power in the modern world.

Ruby on Rails Launch Page for Multiple User Types - Open-Source

There are quite a few options for one click pre-beta launch pages for the startup world right now. Launchrock is the first example that leaps to mind and they  really do an awesome job, but we ran into the problem that we have a two-sided market. Here at Backstagr, we needed a prelaunch page that represented that. Specifically, we needed multiple user types to be able to signup and indicate which user type they were for our records. First of all, we want to be able to deliver them a customised experience when they come back to sign in for that first time, and secondly we want to see the interest level of both sides of the market. Since we couldn’t find a good solution out there that allowed for multiple user types, we did what every good development team (in our humble opinion) should do– we built the tool and released it into the open-source world for anyone to tweak, fix, test, and use.

I’ve completed the back-end server/database (and VERY BASIC front-end) side of things, and over the next couple weeks the talented Mike Babb will be adding the much needed front-end styling and Vicky Jaime will be adding some design. Once we have those two items completed, you’ll be able to see a working example at the Backstagr homepage.

When Mike adds the front-end styling, you’ll probably want to keep the styling, but utilise design assets which match your own brand. Other than that, and a few tweaks to the setup_mailer.rb/database.yml files, you’ll have a working multiple user type launch page for your startup with just an hour of setup. Please feel free to fork the repo on Github, make pull requests, or submit issues. We all have full-time day jobs, so we only get nights and weekends to work on these things, but I’ll do my best to keep up on them. Without further ado, here is the link to the repo!

Follow us on Twitter: @codelitt @mikegbabb @vickyjaime and @backstagr

Creating Ubuntu LiveUSB on a Mac Problem & Solution!

The Ubuntu site has excellent documentation, but I kept running into an error when it came time to mount the image onto the USB so that I could have a LiveUSB ready to go. This slimy error read, “The disk you inserted was not readable by this computer.” It would happen everytime I tried to execute sudo dd if=/path/to/downloaded.img of=/dev/rdiskN bs=1m.

I had quite the search trying to find a simple solution for this. I attempted to mount the image multiple times and nothing seemed to with the USB full partition set as MS-DOS. The fix was quite simple and a small program that does all of the steps for you once you’ve downloaded the OS from the Ubuntu site. Just go to http://penguintosh.com/ for the readme or download the program directly at http://www.mediafire.com/?rctco14mzjayaa9. The program comes with detailed instructions and handles the entire process for you. Let me know if this is of any help!

Follow me on Twitter

Life: Put Into Perspective

Whether you’re working at a startup, attending university, or working for a massive corporation we all find ourselves being buried by stress and huge workloads. It is unfortunately part of being a professional, however, I’ve always thought it shouldn’t drown out the more important things in life. I wrote last time on a similar note, but recently I stumbled across some incredibly insightful information which hasn’t left my mind since I read it.

It is extremely easy for me, and many of the people I know, to get so wrapped up in what we are doing that we forget to give put life into perspective. Through a series of events, I found an article by a nurse named Bonnie Ware. Ms. Ware collected the regrets that her patients told her as they were on their death bed. Reading this profoundly put into perspective which items in life I should worry about, and which items probably don’t matter. Here are the top 5 regrets before dying in summary (click here to read them in full):

  1. I wish I’d had the courage to live a life true to myself, not the life others expected of me.
  2. I wish I didn’t work so hard. (Not one patient ever said, “Man, I wish I had spent more time at the office.”)
  3. I wish I’d had the courage to express my feelings (both positive and negative ones.)
  4. I wish I had stayed in touch with my friends.
  5. I wish that I had let myself be happier.

The most astounding thing to me, albeit simple, is that every single one of these can be influenced by choice. Paul Graham originally lead me to this article with his “The Top of My Todo List” where he sums these all up into actionable todo items:

Don’t ignore your dreams; don’t work too hard; say what you think; cultivate friendships; be happy.

None of these items are terribly hard to achieve, but we so easily forget to do them if we don’t put our daily lives into perspective every day and remember what actually matters in the grand scheme of things. We’ll all probably have a few regrets when we die, but we can make damn sure that they aren’t the ones aggregated by Ms. Ware. If you look at life with this perspective, day to day struggles and stress seem rather minor. I’ve never met anyone who told me they wished they worried and stressed more.

The Art of Giving Life Everything You Have

Among my many eccentricities (and believe me, there are many), is the tendency to devote all that I can to any given effort and to hold onto my ideals with an iron grip. This happens in many different facets of my life; work, side-projects, education, sports, politics, friends, family, and more recently love. As with any quality, being so idealistic and giving everything you have has its upsides and downsides. The downsides are probably many and I couldn’t count them all here if I tried. It makes me see the world very black and white sometimes. At other times I impose my values on others’ actions. I also probably can become very fixated on details if I’m not careful. However, among all of these possible downsides I wanted to write about the upsides and my reasoning behind this way of approaching life so here it goes:

You can’t always determine what opportunities present themselves to you in life. It’s a sad fact that some of us aren’t fortunate enough to have all of the opportunities that we wish we had in life, but you can determine what you do with these opportunities. If I look at my life, the pivotal moments have not been which opportunities I’ve had, but rather whether I decided to take the opportunity or not, and how much I was willing to devote myself to the opportunity. Opportunity and freedom are important in life. Never does the same opportunity come to us twice.

This of course leads us to regret. Never in my life have I regretted trying something new; never have I regretted sacrificing something small for something else much greater in my life; nor have I ever regretted giving an entire portion of myself to an effort. I’ve never regretted failing, and if I could go back and do my life all over, I’m pretty confident I would have done things mostly the same when it comes to taking an opportunity. Do you know what I have regretted though? I’ve regretted not trying something because I was afraid to fail. I’ve regretted and will regret till the day I die any instance where I was afraid of the consequences so I held myself back instead of attempting to achieve something more in life. I can live with failing. I’ve failed before. I’m going to fail again. I’ll probably fail at something today, but at least I will know that I gave it everything I have and that I wasn’t scared of life. I can’t live with decisions where I tried to play it safe because of fear of the unknown.

If there were one quality that you could say seperates humans from animals, what would that be? Our capability of speach? Our capability to share ideas? Our capability to build relationships from one dataset to another? How about our IQ? I would say that the line is drawn in the sand between humans and animals at exploration. We are inherently explorers. We came out of the cave, we saw fire, we crossed continents, we took on the high seas, we developed industrial nations, we invented electricity, and we set foot on an extraterrestial satalite rock known as the moon. How many of these accomplishments could we have achieved without the willingness to devote ourselves to an effort and to accept an opportunity? Not one of them. We would have stayed huddled in our cave.

Why do we find the story of Romeo and Juliet so romantic? I guess if we look at it logically it’s the story of two rich, spoiled 13 year olds who decide they’re in love, send both of their families into a war against each other, and then kill each other when they can’t be together…but we still find it romantic. The romance is not in the love story, but rather in the tragedy. Taking an opportunity and a risk on a love that was next to impossible and then devoting so much of themselves to the relationship that they could not bear to live without each other is the where we find the romance and the beauty of Shakespeare’s most famous work. What great companies were founded by entrepreneurs who didn’t give their opportunity a shot and then devote that entire portion of their time, blood, sweat, and soul into their effort? The list goes on and on. None of the greatest things in life would ever be accomplished if we aren’t willing to sacrifice, take opportunities, and give everything we have to make it possible.

I don’t think that your entire life should be devoted to ONE effort. You need balance. That balance for me is my projects, my life, my love, and my family. For someone else, they may split it into other sections. There is no right answer, but balance is definitely necessary. Once you figure out that balance though, you have to give everything you have in that section of your life to the efforts that fulfil your heart, mind, and soul.

So while devoting everything I have to the different efforts in my life may not be the norm or what a casual observer would decide, I will continue to do it till the day I day. One thing that I know for sure is that I can not stand for mediocrity. My work, my life, my family, and my love will never be mediocre. We have to fight mediocrity and “average” at every point. It is unacceptable in every form and fashion. Every project that I’m passionate about has my devotion. Sometimes they may fail, but at least at the end of the day I’ll have no regrets. To me that is comfort. There is a massive amount of comfort in never wondering what I could have accomplished or experienced if I would have given all that I had to an effort or taken a chance on something that I believed in. It may have its pitfalls, but I’ll sleep well at night and I’ll be happy.

-C

Updated Ruby and Rails and Still Can Not Parse Yaml With Psych? Here’s My Fix:

Today while updating the en.yml file for my rails app, I hit a snag and continually kept getting told that the yaml could not be parsed by the new parsing engine Psych. I was already updated to Rails 3.2 and Ruby 1.9.3 so this problem was supposedly fixed when you look at the documentation. Still, I could not get past parsing errors for one simple line of code.

I looked for answers everywhere only to find people saying to “force Rails 3.2 back to the Syck parsing engine.” I really hate relying on outdated and unsupported engines whenever I can avoid it. It took a couple ABSOLUTELY INFURIATING hours, but here’s what worked for me:

  • Open up config/boot.rb require yaml and define the parsing engine as Psych. It should contain something like this:

https://gist.github.com/1912763

  • The next thing that you need to watch for (if you’ve changed your en.yml file at all) is that you’re using the correct amount of spaces for the yaml syntax. There should be two spaces in between lines. I was hacking together a solution so my error message says “Password” instead of “Password Digest.” And yes, I understand that this is a hacked together solution. If you don’t have the correct syntax for the yaml code then you will get an error similar to an “Undefined Method” error. Here’s what my code looked like with the syntax:

https://gist.github.com/1912780

Edit: I’m now having trouble reproducing the errors, so there may be another item to do. The only other item I did was installing and uninstalling the psych gem. I realised that the gem doesn’t need to be included because the engine is already included in updated Ruby and Rails.

If you have any questions or think this is completely bogus, leave a comment. :)

-codelitt