How to Hide Your JavaScript Source Code (Don’t!)

Just don’t. If you are trying to focus on hiding your trade secret sauce that you’ve written into your new single-page JavaScript application you’re just wasting your time. If you’ve coded the entire framework and all your libraries by hand then no one will be able to understand your code enough to steal pieces, they will do an entire copy of your website. The odds are however that you’ve leaned on some existing libraries, that more of the code in your final product was written by someone else entirely. That’s completely okay! For years now as developers we’ve stood on the shoulders of giants to create our finished work. Great libraries like jQuery, frameworks like AngularJS, layout frameworks like Bootstrap all give us a great and well tested path of least resistance to launch.

The idea that you’re able to protect your code through minification or obfuscation isn’t new. ActionScript decompilers started coming out much to the dismay of Flash developers and shortly after that the ActionScript obfuscators hit the market. Minification is the process of removing all extra spacing and lines from a file or set of files for the reason of saving space. Obfuscation is the process of making your code illegible, even going so far as to encode strings that are later decoded. Obfuscation can lead to introducing hard to debug issues, and only protects your strings from a first glance as it is simple enough to unencode the entire document and retrieve said strings.

It’s the strings that can allow anyone to see in your code what your trade secret sauce is. What combination of libraries you used in a project help make it unique, but the interconnecting code that brings them together is what make it a product. Each library has a certain set of strings in them that act as markers, version numbers, unique variable names that will allow those libraries to be identified even in a minified state. You can’t hide the recipe for your JavaScript application. So stop trying! There are also restrictions on certain libraries that ask for attribution, or that they remain as part of open source projects.

View source is the spirit of the web, being able to look at how the documents and applications are structure is part of how the World Wide Web became so popular. That low barrier to curiosity where you could simply inspect the client side code being delivered to you allowed for a generation of tinkerers to be born. Those same tinkerers went on to build the libraries that you have now brought together to make your application. Don’t focus on hiding what you’ve created. Focus on making the best product possible and be proud of the libraries and frameworks you’ve used to create your product. Without a herculean effort, no one will be able to discern a gem of code that you’ve wrote, pull it out and then profit off it. Stop worrying and get back to making sweet JavaScript applications.

Knowledge Alone is Not Enough to Succeed

I’ve been reading technical texts for years; ever since I saw dinosaurs come to life in Jurassic Park. I went to the library and started reading all the books on genetics a middle school library might have. I didn’t then and still don’t really know what I was reading, but I just kept reading for a while until my interest waned. Somewhere along the line I got the idea that this was how to be successful:

  1. Read non-fiction books
  2. Learn “useful” knowledge
  3. ???
  4. Profit!

I continued this trend when I first began my interest in computers. I tried staying away from books that covered a product (FrontPage!) since they moved so fast. I read several books talking about compilers, but I never got anywhere. I couldn’t find that piece to take the text in the book and run it on my family Windows computer. I was stuck programming on my calculator which taught me a lot of basics. None stop reading, I kept reading technical books and haven’t stopped for years. I just finished getting an MCSD that took four books. I’m so tired of working like this though, there has got to be a better way of making it in life. In my quest to master one thing I’ve become a polyglot programmer, never feeling certain if the path I’m on is the one that will lead me to the financial success I seek.

That’s what it ultimately comes down too, what technology can one become invested in that will take them to financial freedom they desire. Work for yourself, or at least remotely the majority of the time. Own a nice McMansion home you can decorate during holidays that has a two car garage in a neighborhood you can feel safe in and that has great internet speeds. I’ve found out the answer; there is no right choice.

I jumped ship on Flash development a few years back but even with that I could have continued and move into Flex and Air, both are still being used in enterprise development. That leaves me with trying to make educated guesses about which technology will enable me to reach my goal faster. Technology is wonderful and a kind of hell in that way. You can get work and complete a task in a myriad of ways. Too many choices can lead to over analysis and a paralyzing feeling that I’m making the wrong choice. There it is again, the fear that I’m making the wrong choice to get to my end goal.

There is no right choice, no one technology that will open a door that wouldn’t have opened otherwise. So long as you have your nose in a book and your head down learning you’ll never take enough action, you’ll never see the door open when it finally does. It’s not enough to learn something without acting upon it. So here’s to action over planning, to decisions over analysis in the new year. No one will see all the knowledge you’ve got and point you to that open door. Don’t wait, write, program, start something, because just knowing how to run a program won’t get you anywhere.

Work to get rich like someone has a gun to your head

Sensationalist enough? Maybe, it’s the polar opposite of the post I read today. I finished reading Hey, Guys, It’s Totally Okay If You Don’t Get Rich earlier today and I don’t think the guys and girls that are trying to get rich, make a successful business or make a difference in the world need to be coddled at all. They need to be pushed. Your family can be there to tell you that you’re amazing just the way you are but the rest of the world needs to push these obsessed men and women to make the things they are trying to make. If they want to become rich, push them to become rich, don’t tell them that their dreams shouldn’t be reached for. There are enough of people on Earth that have no drive to move forward to hold these driven people back from breaking down barriers, expanding to new territories and making the difference in life they want to make. Money does not equal happiness but that might just be the outward desire of the driven individual. Money gives you the opportunity to do almost anything you want, it enables you.

Don’t coddle and hold back our great and driven men and women from trying to achieve their goals at the expense of all else. Please push them forward into their success or pick them up from their last failure. Help your friends, don’t discourage them by telling them they aren’t cut out for their goals, there are a lot of rich folks that got just lucky. Remind your friend that they also need to stay grounded and aware of the present, you can have a lot of fun and really enjoy life on the way to riches.

Some folks like myself feel like I am working to get rich like someone has a gun to my head. It isn’t at the expense of my life that I work, it is for my idea of life that I work.