Programming, Thoughts

First Software Job

It's been awhile since I last blogged, but I just wanted to say how pleased I am with life at this moment. Since taking a 5 month hiatus from any strenuous work/code, I've decided to get back on the horse of life.

Trust me, taking 5 months off was one of the best decisions in my life. I FINALLY disintegrated my dependence from stimulants, and I evolved socially in ways I could have never imagined.

Coming out of college, I wanted to find the highest paying salary job possible -- $100,000 sounds just superb. But I realized there's more to it than just money. Sure, I could afford better cars, better booze, better food, but would I really be happy? Probably not.

I interviewed with over 20 companies for senior-level development roles. In retrospect, I was a little too ambitious. Senior-level software roles need their employees to deploy code from day one. I remember being asked to code a 20 questions AI on the spot, and just miserably failing. Not saying that all college grads should go for easier roles, but senior engineers need the experience to deploy quickly -- something that us juniors could accomplish, but in a much larger time frame.

Even though you would make a dick-load of money, ask yourself if doing your job is all that's important in your life. For me, the spare time away from work and the ability to hang out with my girlfriend all days of the week easily trumps any job which requires you to work 60+ hours a week.

Nerds need time away from the computer.. Ya know?

Standard
Programming, Thoughts

Heartbleed Bug & Conspiracy Theory

So for those of you who don't know, the heartbleed bug was recently exposed as a direct vulnerability in the OpenSSL library. SSL is the handshake technology which allows all websites to 'secure' their transfer of information via HTTPS. Ever see that green lock at the top of your URL bar?? Yeah, that means it's a secure connection.

Well the shitty part is that SSL connections are used in every single private technologies in our everyday life. This includes (but not limited to): email (Gmail), instant messaging services (Facebook), credit cards (Amazon/PayPal).. basically the entire web. What we thought was 'secure', really was vulnerable all along. (Here's a list of the top 10000 websites which are still vulnerable)

"The Heartbleed bug allows anyone on the Internet to read the memory of the systems protected by the vulnerable versions of the OpenSSL software. This compromises the secret keys used to identify the service providers and to encrypt the traffic, the names and passwords of the users and the actual content. This allows attackers to eavesdrop communications, steal data directly from the services and users and to impersonate services and users."

Sounds like a lot of technical mumbo-jumbo, but in essence, the Heartbleed bug allows any attacker/anywhere to access all the information from these 'secure' servers without anyone ever knowing anything was touched/accessed/tainted. Your passwords -- vulnerable; your emails -- vulnerable; your messages -- vulnerable; your ENTIRE IDENTITY -- vulnerable. Want to see how easy it is? Look here

You want to know what's the absolutely scariest part of this bug? Here's a short excerpt from BBC:

Google Security and Codenomicon - a Finnish security company - revealed on Monday that a flaw had existed in OpenSSL for more than two years that could be used to expose the secret keys that identify service providers employing the code.

Did you guys read that correctly? Read it again.. This vulnerability has been out for MORE THAN TWO FUCKING YEARS. Can anyone say conspiracy theory????

(More technical portion here) Essentially, the way SSL works is through certificate authorities (CA's) which are Queen Certificates -- these queens determine which sites/certificates are deemed secure (HTTPS). Why does this suck? Because the whole security of the systems and web is based off these Queens. Let's take a look (taken from here):

Queens

  • Symantec (Verisign, Thawte, Geotrust) - 38.1%
  • Comodo - 29.1%
  • GoDaddy - 13.4%
  • GlobalSign - 10%
  • Others - 9.4%

This is absolutely fucking retarded because 4 companies control 90% of the internet's secrets. Who the hell trusts 4 companies with 90% of all of your secrets???!!!!

Which brings me back to the conspiracy theory here. For 2+ years, the NSA/Government could have known about this bug within OpenSSL and easily exploited it to retrieve not one, but ALL OF YOUR INFORMATION without any of the consent of the larger corporations Google/Facebook/Amazon just to name a few. Remember that PRISM scheme in which every single large company released very similar statements to plug their butts from leaking??

Well guess what. There's been a fucking IV inserted directly in their heart, in which not only the USA, but any human being in the world can peek at your DNA. Heartbleed & NSA. You win.

PRISM: Please Remember I'm a Slave Mind.

Standard
Programming

Why you should use Angel List vs. LinkedIn

I'm a budding software developer. I have the most experience with full stack web development. Ruby on Rails, JavaScript, PHP -- that's my game. After filling out my profiles to the best of my ability, I've noticed something very significant. This is a comparison for startup and job opportunities for 2 places to market yourself (Note: I'm not a LinkedIn Premium member):

LinkedIn profile creation date: 03/02/13
LinkedIn connections: 518
Emails from companies/recruiters: 6

Angel List talent profile creation date: 02/09/14
Angel List followers: 30
Emails from startups/recruiters: 15

Bottom line: USE ANGEL LIST. Startups desperately need engineering talent like YOU. The best part: you get to see the salaries (and equity %) all upfront.

Standard
Programming

Job Interviews

Well I just absolutely bombed my Google interview, but this has been a great lesson for me in terms of finding full-time employment.

  1. Learning the material is half the battle. Coding is the other half.
  2. It's all about the pseudocode.
  3. Get a good night's rest beforehand.. Not just 4 hours of nap time.
  4. Don't be afraid to ask questions, and always ask for coding examples.
  5. Practice, practice, practice, and then practice some more.
  6. Recursion is always the key.
  7. Don't just pray for success based on your resume. Get your shit together and become an expert.
  8. Anyone can code, but not everyone can become a computer scientist.
  9. Use your education to your advantage! It's important that you retain what you learned (drinking isn't the solution for everything).

Just some food for thought. Glad that's over with though.. Now I have a full syllabus of all potential interview topics for all potential employers!! Thanks, Google!

In the end, I'm only concerned with the opportunities I'm capable of. Next stop, start-up interviews! Fingers crossed (emoji).

Standard
Programming, Thoughts

Procrastination

For as long as I can remember, I've always done things at the last moment.. Homework, tests, chores, jobs, applications, work -- anything that had any remote importance in my life always took a backseat burner until I decided to stop being a lazy asshole about it.

I'm not entirely sure where my procrastination originates from, but I know many of you have the exact same problem I do. Fortunately, I've so far been able to scrape by by doing the bare minimum. But I want to change.. I want to work hard, play hard, and not just on the weekends. Procrastination is one of my biggest weaknesses, and I don't want it to consume my life any further.

I need to approach each day as part of a longer journey, not just an ephemeral work bender. In the long run, small amounts of work each day ensures better quality of work, as well as a less stressful life. Slow and steady wins the race, and I am the fattest, laziest turtle out there. Patience and discipline my friends -- that is what I need.

Standard
Mathematics, Programming

Math and Computer Science

I'm currently working on my final semester at UC Berkeley, and although I'm an EECS major, I'm taking all math classes to finish out my minor.. Abstract Algebra, Real Analysis, and Number Theory. These classes are all proof based: something that I'm used to but not proficient at.

Having been in class for only 4 weeks, I can thoroughly say that the Mathematics and Computer Science mindset take the same kind of genius. If you can do one, then you can do the other. Although learning the language of Abstract Algebra vs. learning the syntax for NodeJS is drastically different, the algorithm and problem solving mindset remains the same.. The only difference is the syntax.

Coming from a computer science standpoint, mathematics has a lot more definitions such as isomorphism, groups, abelian, etc.. But at the end of the day, these definitions define your working groups for proofs -- your bread and butter if you will. They're isomorphic to the bread and butter of computer science terminology: linked list, array list, arrays, hashes, etc..

I'm having a hard time memorizing these definitions with all the things that are going on in my life, but this has been one of the most academically interesting semesters at my time at Cal.. More updates on math in the coming days!

Standard
Design, DIY, Programming

The Rewards of Full Stack Web Development

This summer I took the road far less traveled.. Having worked for Texas Instruments as my previous summer's Software Internship, I reaped the benefits of having a full time job. Hell, I was making almost 50k as an intern in a state with no state tax -- gotta love Texas. Fully paid living, endless beer, and beautiful Dallas babes.. Why did I even leave??

I don't want to go in depth on what I did for the company because I have a feeling I wrote some seriously wrong database query methods that could very easily be SQL Injected, but it was my first exposure to web development: Microsoft Visual Studio (VB.NET). HTML/CSS/Javascript, I figured out the basics, and I learned how to make serious web scrapers. I thought I was one badass software intern, lol.

I really do thank Texas Instruments for providing me with the opportunity to get started in web development, but all the work I did there merely scratched the surface of what Web 2.0 could do. Last winter, I decided to give Ruby on Rails a shot (shout out to Michael Hartl for one of the best, free, online Rails tutorial). Rails is fucking tough man.. It really did baffle me why they would separate the Models, Views, and Controllers just to render a simple static page. By the end of that tutorial, I still had no idea where to begin, but I had a much better idea of how the MVC interacted, and I also had a glimpse of how easy it is to make Rails dynamic.

And then this summer came rolling along.. I'm currently working part time to pay rent and booze, while working overtime on my startup product. tessle.com Being the only coder on a full stack development project is both physically and mentally draining, but I can safely say that I have learned 50 times as much as I did working for Texas Instruments. So without further ado, here are the rewards of full stack web development: You..

  • Master relational databases
  • Become a master of your framework
  • Understand Javascript and Frontend Development for all of the web
  • Firebug/View source on everything that looks remotely cool
  • Understand how to debug any and all situations for your application
  • Contribute to open source -- stack overflow, railscasts
  • Learn why github and heroku are absolute necessities for making your life easier
  • Appreciate how damn hard development can be
  • Evolve into a coding badass
  • Have a coding baby, one that you have nurtured for the past 6 months which you can proudly call your own... :')

Give it a shot. Even if your baby doesn't grow into anything, you will learn way more than sitting at a desk pretending to do work.

Standard
Design, Programming

Ubuntu Edge Won't You Be Mine?

Ubuntu Edge: The biggest IndieGoGo project to this date needs another 28.5 million in order to succeed. It looks extremely unlikely, but this would be my goto, drop-my-iPhone 5-in-a-heartbeat phone. Screw the MacBook Air, I just need a single mobile device to accomplish all my needs.

I currently use Google Voice, so the ability to text/call from my computer/phone would never leave my pockets, but on top of that, I'll be switching carriers to an unlimited data plan (screw you AT&T), so the ability to access data from anywhere will be crucial to me.

I'm a developer -- the only operating system I can develop on is Linux/Ubuntu.. The days for Windows should be left to bigger desktop towers to render all my games.. Having the ability to morph from a mobile device to a developing platform, Ubuntu Edge is what I once dreamed about.

The nerdiest and geekiest phone. Say Goodbye to the days of Apple/Google Voice, Ubuntu Edge won't you be mine?

Standard
Programming

Hashtags on Facebook

The day is finally here.. Facebook now has #hashtags. Now the next question: is it a Twitter killer, or does Twitter provide something more beyond the ability to create hashtags?

Facebook: this is awesome. The recent acquisition of Instagram combined with the ability to share photos and thoughts with hashtags now makes Facebook the premiere photo-sharing website. Take a picture, tag it, and share -- it really can't get any easier for girls to show off every single night out. With servers bigger than office buildings, Facebook has created a very addicting and powerful sharing resource. The only problem is the psychological factors involved with Facebook. It is your online identity. It's you, showing off how much damn fun and gaudy your lifestyle can be. It is the most superficial way to show off who you truly aren't.

So what's the problem? Is Twitter done or does it present people's online identity in a different way?

@Twitter: what better way to sort out 140 character thoughts, by means of the hashtag. The hashtag culture that has derived is full of useful #ideas or some #reallydrawnoutthoughtsforemphasis. Obviously, most of the hashtags created on Twitter or pretty pointless, but it's always awesome seeing someone else have the exact same thought or blurb as you. Unfortunately, Twitter will never amass the photo-sharing capabilities that Facebook possesses.

It's the chatter of the internet -- the background noise that occupies everything you do, but aren't paying attention to. On Twitter, people have a psychological sense of anonymity that Facebook can never provide. You can follow your friends and favorite celebrities without having to worry about a social reputation or who you're attempting to creep on. On Twitter, you are the background noise with zero fucks to worry about. It's anonymous, fun, drama-free, and flirty something that Facebook will never be able to accomplish.

Standard
Design, Programming

Add Disqus comments to WordPress and edit CSS

For those of you who have struggled using the Disqus WP Plugin, this guide is for you. I tried using the plugin, but no matter which stylesheets I edited, I couldn't edit the Disqus CSS since the stylesheets are located within an iframe tag. Anyways here's what I did to fix that annoying box/margin error.

Using this guide, I added this JavaScript code to the end of my functions.php file.

function disqus_embed($disqus_shortname) {
    global $post;
    wp_enqueue_script('disqus_embed','http://'.$disqus_shortname.'.disqus.com/embed.js');
    echo '<div id="disqus_thread"></div>
    <script type="text/javascript">
        var disqus_shortname = "'.$disqus_shortname.'";
        var disqus_title = "'.$post->post_title.'";
        var disqus_url = "'.get_permalink($post->ID).'";
        var disqus_identifier = "'.$disqus_shortname.'-'.$post->ID.'";
    </script>';
}

Next, I replaced comments_template(); in my single.php and page.php files with this code:

//comments_template();
echo '<div class="disqus-div">';
disqus_embed('YY');
echo '</div>';

Replace YY with your Disqus short name (typically http://shortname.disqus.com). Finally, I added this CSS to my custom.css file. Replace XX with the margins of your liking.

.disqus-div {
  margin-top: XXpx;
  margin-right: XXpx;
  margin-left: XXpx;
}

You can also add any other CSS you want to this class. Cheers, hope this helps someone.

Standard