devinyoung

2 May 13

Project Argon – Building a Custom Linux Operating System

I’ve recently begun a new project that far outweighs any project I’ve taken on in the past. The task? Build an operating system. Yes, a full-blown computer operating system that can be run as a replacement for Windows, Mac OSX, or your favorite flavor of Linux. During the building process this will be called Project Argon.

I actually began building four days ago, but wanted to make sure it was actually possible for me to do before I went around posting it on the internet. Turns out it is actually very possible! I am on phase 2 of the project right now, which I will explain in a bit.

The initial planning was…well, kind of non-existent. There were a few things I was sure of and that pointed me in the general direction to begin phase 1:

  1. This is a Linux-based OS. That is a fact. Those who know me well know that I can’t stand Windows and for some reason Mac’s just feel uncomfortable. I’ve been using Linux (Ubuntu 12.04) exclusively on my main machine for about 6 months now and I can’t possibly see myself changing to a PC/Mac anytime in the near future. Linux is no longer only for computer engineers–Ubuntu is actually very user-friendly and quite comparable to Mac OSX in my eyes. Since Linux is open sourced, it only made sense to start by creating a bare-bones Linux OS and build up from there.
  2. This will be built separately from my main machine’s hard drive.  This was a tough one because it’s a bit of a lose-lose situation.  My main computer is a monster–Dell XPS 13, i7 processor, 8GB of RAM, 256GB solid state hard drive, running Ubuntu 12.04. It takes me six seconds to boot it up.  Six seconds.  My old PC took six seconds to realize I pushed the power button. But anyways, with my computer being this fast, it would tremendously cut down building time for me to develop directly on my hard drive.  That being said, that’s a whole lot of writing to be doing on a solid state drive.  Plus I didn’t want to risk screwing up my hard drive in the event that I mess up resizing partitions.  For a while I considered building the OS on a virtual drive, but ultimately decided on a 32GB USB drive.

There are four major phases of this project:

  1. Create a temporary file system using the bare minimum that will allow me to run a command line inside of my USB drive.  
  2. Log in to the temporary file system and compile each package individually.  The end result should be Linux at it’s minimum.
  3. Make the system bootable. This will officially make it an operating system.
  4. Build packages within the OS to make it usable

Fairly straightforward, nothing too surprising, but definitely easier said than done. As I mentioned earlier, I am already in phase 2.  Phase 1 went very smoothly and fairly quick since I was compiling packages onto the USB drive with tools that were on my main hard drive.  Phase 2 is noticeably slower since the libraries being installed are being compiled with tools on the USB drive itself.  That being said, speed has been the only downfall of phase 2 thus far.

I will try to keep posting progress updates as I complete major tasks or run into any issues.

This article was posted in: Linux
Tagged: ,

28 Mar 13

Chrome Censored – A Humorous Approach to Web Browsing

Scenario: You are browsing the web, perhaps reading your favorite blog. After you finish the article you scroll down the page and begin reading the comments, only to discover that two (or more) users have found themselves in a heated keyboard war against each other. More than likely, one of those users is a devoted visitor to the site, and the other is simply a troll that enjoys getting into heated keyboard wars. Regardless, the profanity would make your grandmother cringe!

Shelby: You’re just mad because you’re a $*&!@ !3&4#^*@
born_this_way993: #&$24@ shelby go to %@7^ with ur !@#$ frends u %#^2&56&!

Good gosh! What ever can we do about this? Introducing, Chrome Censored–a Google Chrome extension that turns profanity into humor. Remember our little fight between Shelby and born_this_way993? Well imagine visiting that same page and viewing this instead:

Shelby: You’re just mad because you’re a dag nab kangaroo pouch
born_this_way993: jinkies shelby go to houston with ur typewriter frends u exfoliating hungry hungry hippo

Oh, the joys of the interweb. This extension works best on static sites, as it simply performs a javascript replace method once the page is finished loading. I’ve found it doesn’t work well on Facebook since most of the content there is loaded via ajax as you move around the site. I’m also sure I missed some profanity words considering the vast amount of verbiage one could use to express their vulgarity on the web. Just writing the code made me sweat a bit.

You can grab a copy of Chrome Censored in the Chrome Web Store. Don’t forget to rate it and leave a comment!

This article was posted in: Goodies
Tagged: , , , ,

14 Mar 13

30 Jan 13

CSS Award Nominee!

I am proud to announce that a site I recently built with the Anchor Marketing & Design team in Fort Worth has been nominated for a CSS Award! The site was built for the Fort Worth Food + Wine Festival and launched about a month ago. Hats off to the Anchor team for a job well done!

Go ahead and check out the site at http://fortworthfoodandwinefestival.com and don’t forget to vote for us on the CSS Awards website!

This article was posted in: Uncategorized
Tagged: ,

21 Jan 13

Is PHP Outdated?

Like many web developers, PHP was the first dynamic language I learned to code. Looking back, it makes perfect sense. Virtually every hosting service, including many free providers, are PHP-enabled. I was able to get a free web hosting account, log into the dashboard to setup a MySQL database, and learn PHP the old-fashioned way–trial and error. I was able to do everything I needed to with PHP. Why fix what isn’t broken?

Once I began using MVC frameworks such as Codeigniter, I was able to do even more with PHP; and in shorter amounts of time! However, something was missing. If I can get the job done well AND efficiently with PHP, why do I constantly feel the need to try other dynamic back-end languages?

The fact is, PHP feels a bit outdated. Python (more specifically, Django) introduced me to built-in web servers. Rather than configure the local Apache server to run the code the way I need it to, I could simply type python manage.py runserver into the terminal and view my site on port 8000. PHP 5.4 has actually introduced this feature, but most frameworks have yet to implement a simple process for this.

I’ve recently begun using Node.js and I must say–I finally feel like I am using the most cutting-edge technologies available at my disposal. I am not a native javascript developer, but nowadays it is nearly impossible to get a decent website up and running without javascript. It only makes sense to write the back-end of your site in javascript as well.

Node Package Manager makes it incredibly easy to add dependencies to your project. Gone are the days of downloading jQuery plugins one-by-one and moving them to your public directory. Need a templating language for your app? Look for one in the NPM directory, add it to your JSON file as a dependency, and run npm install in your app’s directory.

Bower by Twitter, though still feeling a bit beta, shows the future of package management for front-end assets. A JSON file is all it takes to declare dependencies such as jQuery, Bootstrap, and AngularJS. Run bower install and your packages are conveniently stored in the components directory.

2013 sounds like a big year for PHP. With Laravel being the new go-to MVC framework for many PHP developers and Composer introducing package management, PHP is making some huge strides. But how long will that last before Python/Ruby introduce a new feature that PHP lacks?

Only time will tell. For now, I will continue using PHP for most of my static sites. As for web apps? Node.js seems to be the direction to head in.

This article was posted in: PHP
Tagged: , , , , , , , , ,

  • GitHub

    GitHub Octocat

    imdevin567 @ GitHub

    • Status updating...
  • © 2013 Devin Young Web