I've never been the type of person who can just take any kind of job I can find and be happy. I've tried and it just isn't happening for me. I'm too much of a dreamer and way too ambitious to do anything less than something that thoroughly excites me and motivates me to get out of bed every day. This is how we all should be. I truly believe the world would be a much better place if we all would actively pursue our wildest dreams with 100% total zealous passion.
For me, the last few years have been interesting, to say the least. In early 2011, I landed what was then my dream job of working as a Graphic Designer for a small ministry. I loved that job. I especially loved all of the people that I worked with there. My ambition, however, eventually got in the way of my happiness and ultimately lead me away. You see, while working there, I taught myself how to write JavaScript and PHP so that I could better support some of the web-based applications we used as well as design and implement more interactive websites and WordPress plugins. Learning how to code has been a long-time dream of mine. At least since I was a wide-eyed, eager kid who explored and learned everything I could about the Commodore 64 PC that my parents bought one year for Christmas. I was on top of the world, having accomplished two things that I had dreamed about since I was a kid: how to program and working as a professional graphic designer.
Shortly after I taught myself how to code and built a couple of side-projects, coupled with the big project I did at work, my best friend offered me a position as a web developer at the University of Texas at Arlington. Without thinking I immediately accepted and, after enduring a three-month interview and hiring process, I left my beloved position as a designer at the ministry, just shy of my two-year anniversary, and became an ASP.NET web developer at UTA. This would prove to be one of the biggest mistakes I have ever made. A little over a year after I began working at UTA my friend left due to bullying and general bad behavior from our boss. Once my friend left, I received the brunt of the "hate" from the same boss and my work-performance and job-happiness deteriorated quickly from that point forward. It was safe to say that I definitely hated my job.
Thankfully, while working at UTA, I managed to learn the very basic concepts of working with relational databases, as well as writing basic to intermediate SQL, in addition to learning the C# programming language. I was also responsible for maintaining the Graduate Studies PHP websites and internal tools, thus strengthening my knowledge of procedural PHP.
In the summer of 2014, after stomaching as much as I possibly could from my boss, I discovered that he had recently submitted retirement papers. He planned to leave in August, at which point our department would be disbanded and all web development duties would shift to another department entirely. I knew what this meant; I wouldn't lose my job, but I would not be doing any more web development, either, since the powers that be did not want to continue to maintain our current ASP.NET sites and tools and the Graduate Studies portal had recently been moved to the proprietary CMS that was maintained by another department, which happened to not be hiring any new developers. I had been attempting to work with headhunters in my area for 6 months, but had had no luck at all. My luck would soon change.
In late June, I was visiting a very close friend who worked at SoftLayer, in Dallas, which is owned by IBM, and shared with him the drama and suffering I had endured thus far. He encouraged me to put in an application and resume with IBM for a position as a Software Engineer working at SoftLayer. I did so and, a little over a month later I started my new job as a Software Engineer at SoftLayer, an IBM Company, doing back-end engineering for their ordering system, which utilizes a custom MVC, object-oriented PHP framework connected to an Oracle database. So far, I've learned a lot at SoftLayer. I've learned how to use and work with Git, and my knowledge of PHP, especially in working with its object-oriented features, and MVC has grown exponentially. Alas, things are not what they seem and I am far from happy or content.
After teaching myself to write code I realized that I could leverage my newly acquired skills to make more money than I ever had before. Ultimately, I have accomplished that. While I do enjoy writing code and am thrilled that I get to do it for a living, I feel as though I am not very good at it. It is taking me a good long while to be at a level that I can contribute new features and true bug fixes to our ordering system at work and it is putting me in a bad light. I finally realized that I need to ask some of the other devs on my team for help in getting my head around the general concepts and code-flow in our system. Programming is hard, make no mistake. Learning how a complex application works is just as hard. You can't learn on your own. Period.
My frustration was leading me on a very dark path filled with negativity, self-doubt, and would have ultimately lead to failure, as I would have eventually just given up and quit trying. The absolute difference between failure and success is knowing when to utilize the resources at your disposal, such as co-workers, online forums, and social media. You have to decide whether you really want to achieve success and, if you really want it, you have to decide that you are not going to give up, no matter what. If you make the decision to keep going you will eventually persevere, you'll demonstrate that you're willing to tackle a problem and see it through to completion, and you'll gain confidence to use in tackling bigger, more complex problems down the road.
I've shared my story in the hopes that it will inspire anyone out there, not only to chase their dream, but to not give up on it when the first major test of will and faith shows up. And make no mistake about it, that test will show up, eventually. Nothing worth achieving is devoid of massive challenges and frustrations.
Tuesday, December 16, 2014
Tuesday, April 16, 2013
Open-Platforms Vs. Walled-Gardens
I've been jabbering for quite a while now that I have been planning on switching over to full-time Linux use at home very soon. A few years ago, I used Linux at home full-time for about a year-and-a-half and was super happy. Then, I desperately needed to do something that was only possible in Windows, so I added Windows 7 Pro as a second-boot OS on my PC and so began the downward spiral.
Years later, after a 3-year stint with both Windows and Mac OS X (via a MacBook Pro, which I actually loved), I have been using Windows 7 full-time for the last two years. Then, late last year, after ordering it in October and finally receiving it two days before Christmas, I dove head-first into the world of Windows 8 RT via a 10" tablet from Dell. It has been the worst computing mistake I have ever made. It's definitely time for a change.
As I read an article discussing open platforms earlier this morning, I began to realize that what I want is not necessarily to switch to an open-source OS full-time but, rather, to utilize devices that run on open platforms which enable me to do as I damn-well please with said device. The distinction is clear and very important. Put simply, I demand to be able to do whatever I want to with the devices I purchase.
When I purchase a device, it is usually for a semi-specific purpose, or to fill a need. For example, my iPhone functions as a phone, but provides apps such as Google Maps, Foursquare, and Radarscope that fill certain, specific needs that make sense to have available via my smartphone since it is always with me. The problem is that, although the apps I mentioned are awesome, highly useful - and highly used - apps on my phone, the entire platform is closed so that, if those apps were not available via the iOS App Store, I would not be able to install them on my iPhone and thus utilize them to fill the needs that they subsequently fill. See? For that reason alone I will be switching to a high-end Android phone ASAP.
For now, I will hang onto my Alienware notebook, with Windows 7 installed, and continue to benefit from an open platform there. Yes, Windows 7 is open because you can install any software you wish to install and are not restricted to just using software from an app store. If the need ever arises, or my desires shift, I'll either replace Windows 7 with Linux or dual-boot. The Windows 8 RT tablet has got to go, however. Not only is it a fully closed platform but it is severely lacking in useful app selection. That tablet, unfortunately, doesn't even fill the need for which I bought it, at this point. And I refuse to even discuss the iPad. Not only is iOS a closed-platform, as discussed above, but the hardware cost is outrageous!
Thus, I am looking at most-likely purchasing either a Google Nexus 7, or possibly a Nexus 10 if I decide that I want a full-sized tablet. The cool thing about Android, by the way, is that I can get ALL of the apps I use most on my iPhone from the Google Play Store, in addition to being able to sideload apps to my heart's content.
Moving forward, I can guarantee that I will no longer purchase devices that are not built around an open-platform. I suspect, also, that as the lines blur between desktop machines and mobile devices, more and more people will also make the same distinction and choose openness over walled-gardens. Just ask Valve Software.
Labels:
Android,
Apple,
devices,
Google,
iOS,
Linux,
Microsoft,
open-source,
smartphones,
tablets,
technology,
Windows
Thursday, November 8, 2012
Friday, October 26, 2012
My Geeked-out Laptop
A fairly boring iPhoto of my Alienware laptop, but this post does serve well to test upload capability from the Blogger app on my iPhone.
Same Old Story
I hate that I can't keep a blog going long enough for it to grow and catch on with a core group of people. I say that not to be down on myself so much as to simply state the truth as it exists. It is the truth. I actually love to write and share with people. A big part of the lackluster blogging on my part is due to the lack of interaction from other people. A chicken-and-the-egg scenario, if you will. As another year winds slowly to a close, however, I find myself looking longingly at this blog and instantly thinking of the possibilities. Not to mention that I have a longing in my soul to keep it going. This blog still has the potential to be unique and fit a niche, I believe. I simply need to put forth the effort and "finish the course."
In all honesty, a lot has happened this year. I left my job as the graphic designer & web developer for a small, international ministry to take on a job as an Application Support Specialist (read: ASP.NET, C#, and SQL programmer) in the Student Enrollment Services Project Management Group at the University of Texas at Arlington. It was a major move, and it was not a decision that was made lightly, but it is the fulfillment of a long-standing dream in my life so, in the end, the decision was a no-brainer. And now I look to the future.
As my life comes into what I believe is a rich and full "summer season", I find I am thirsty for other outlets. It is time for me to really focus on something that is so radically different from what I've always pursued as a hobby in the past. I believe that the only way I can "succeed" as a blogger is to be real and simply combine my core passions into one large, cohesive whole and share my story with the world without any thought of receiving anything in return, aside from meaningful and intelligent conversations with anyone who discovers me here. I need to give serendipity a chance to find me. That means, ultimately, that I must set forth with no rules and keep this as a free-form experiment for now. I need room to grow and make mistakes so that I can learn and grow, but I do hope that you will stick around and hang on for the ride!
In all honesty, a lot has happened this year. I left my job as the graphic designer & web developer for a small, international ministry to take on a job as an Application Support Specialist (read: ASP.NET, C#, and SQL programmer) in the Student Enrollment Services Project Management Group at the University of Texas at Arlington. It was a major move, and it was not a decision that was made lightly, but it is the fulfillment of a long-standing dream in my life so, in the end, the decision was a no-brainer. And now I look to the future.
As my life comes into what I believe is a rich and full "summer season", I find I am thirsty for other outlets. It is time for me to really focus on something that is so radically different from what I've always pursued as a hobby in the past. I believe that the only way I can "succeed" as a blogger is to be real and simply combine my core passions into one large, cohesive whole and share my story with the world without any thought of receiving anything in return, aside from meaningful and intelligent conversations with anyone who discovers me here. I need to give serendipity a chance to find me. That means, ultimately, that I must set forth with no rules and keep this as a free-form experiment for now. I need room to grow and make mistakes so that I can learn and grow, but I do hope that you will stick around and hang on for the ride!
Saturday, February 25, 2012
New Passion Discovered
I know. I am late in posting to the blog this week. To say it's been a crazy week is an understatement. I am working on a few posts, including a concept for an on-going series and, hopefully, getting some tools in place to enable me to record my own thoughts about current tech news, and maybe even some reviews. In addition to all of that, I will confess that I have discovered Magic: The Gathering.
Actually, the game is not a new thing to me. I've known about it for years, but have never played it until just a few weeks ago. I am thoroughly hooked, to say the very least. It's scratching an itch that, until quite recently, I didn't really know existed. So, I will undoubtedly begin an ongoing article series covering my love of one of the greatest geek games in existence today.
Stay tuned!
Actually, the game is not a new thing to me. I've known about it for years, but have never played it until just a few weeks ago. I am thoroughly hooked, to say the very least. It's scratching an itch that, until quite recently, I didn't really know existed. So, I will undoubtedly begin an ongoing article series covering my love of one of the greatest geek games in existence today.
Stay tuned!
Thursday, February 16, 2012
Birth of a Geek, Conclusion
I couldn't stop looking at it. In all actuality, I couldn't really believe that I was seeing what I was seeing. And I couldn't stop looking at it. A brand new computer was sitting on a desk that wasn't there the previous day in our family living room. It was Christmas and I was so excited I simply could not speak, nor do anything but sit there and stare. That Commodore 64 was my virtual best friend for the next 4 years. I hated that I had to share it with everyone else, but oh how I cherished those times we did have together. For a while, I even learned how to create very basic programs with it.
Then, in seventh grade Computer Science class, I was introduced to the Macintosh, and so I learned how to create simple, basic programs for the Mac. The next year, my parents upgraded the aging Commodore 64 to an AMD-based 386 machine, and it lasted well into my high school years. By that time, I had moved on and was well on my way to becoming a graphic designer. I had forgotten all about my days as a fledgling computer geek. Shortly after high school, in late 1997, I became friends with someone who would become one of the most valued and most influential people in my life. We are still best friends today, and he is still very influential to me as a geek. He introduced me to many "Ways of the Geek", quite a few of which were very new to me, including a passion for coding.
After we had been friends for a few years, in 2002, my friend introduced me to the joys of web development. Back in those days, we created God-awful, table-based designs using Macromedia's Dreamweaver, Flash, and Fireworks software. Even so, those designs were cutting-edge when compared to other sites on the web, and the entire process spoke to me as a graphic designer and geek. Of course, I would go on a few months later to build my first PC, and so the seed that was planted began to sprout and grow. A few years later, in late 2005, I would finally begin to teach myself how to hand code HTML. I still created table-based sites, but the next year I was introduced to standards-based coding with XHTML and CSS. I wrapped my head around CSS and quickly became an expert standards-based coder.
I was always thirsty for more, though. I wanted to dive into PHP and MySQL, so I did. I still don't have a full grasp of those technologies, but that is from a lack of coding with them on a consistent basis. Real life necessities such as work and family filled my free time, along with spending time with my best friend. Yet, here I am, a decade later, still harboring a craving for all things software development and programming. I love my current job as a graphic designer, but beginning later this year, in August, I will be going back to school to learn software development and programming. I have not yet decided on a track, but it will be either Java and open-source oriented, or purely .NET and SQL Server. I will say that, at the moment, I am leaning heavily toward .NET, for reasons which I will not detail here.
But, that is where this blog comes in. So, now that you know my history, as well as my future aspirations, won't you stick around and see what else is on tap? I am, after all, only just truly beginning my journey!
Restore Deleted Bookmarks in Chrome
Here's a quick tip that just saved my bottom. In Chrome, if you accidentally delete a bookmark, or bookmark folder, you can easily recover it by utilizing Chrome's automated Bookmarks backup file. Here's how.
On Mac OS X:
Open Finder and navigate to your user account under Places, if not already there. Then, go to Library > Application Support > Google > Chrome > Default.
On Windows 7:
The process is the same, but the directory structure is different. Here's how to find the folder.
Open Windows Explore, then go to Computer > OS (C:) > Users > [your username folder] > AppData > Local > Google > Chrome > UserData > Default
On Linux:
*Note that I tested this in Lubuntu, but it should be the same for all users. If you are using Chromium, the directory name will be "chromium." If you are using Chrome, the directory will be "google-chrome."
Open a terminal and navigate to the following:
For Chromium:
user@hostname:~$ cd .config/chromium/Default
For Chrome:
user@hostname:~$ cd .config/chromium/Default
On Mac OS X:
Open Finder and navigate to your user account under Places, if not already there. Then, go to Library > Application Support > Google > Chrome > Default.
On Windows 7:
The process is the same, but the directory structure is different. Here's how to find the folder.
Open Windows Explore, then go to Computer > OS (C:) > Users > [your username folder] > AppData > Local > Google > Chrome > UserData > Default
On Linux:
*Note that I tested this in Lubuntu, but it should be the same for all users. If you are using Chromium, the directory name will be "chromium." If you are using Chrome, the directory will be "google-chrome."
Open a terminal and navigate to the following:
For Chromium:
user@hostname:~$ cd .config/chromium/Default
For Chrome:
user@hostname:~$ cd .config/chromium/Default
Inside the Default folder, you should see two files: Bookmarks and Bookmarks.bak. Make a backup copy of the Bookmarks file in another folder on your computer, then delete the existing Bookmarks file in the Default folder. Make a copy of the Bookmarks.bak and rename it to Bookmarks.
Restart Chrome and you should have your deleted bookmark(s) back!
Monday, February 6, 2012
Birth of a Geek, Part 2
At the time I thought it was the greatest thing that could happen to me. I mean, what computer geek wouldn't love working at Fry's while working on a degree? It only took a couple of months to discover that, as a computer geek, working at Fry's was not all it was cracked up to be. However, I did get to meet and converse with other computer geeks, some more "hardcore" than myself, some less so. It was also during my tenure at this big-box retailer that I came face-to-face with Linux. Sure, I'd seen and heard about the "Geek's Operating System" (my terminology) before, but had never given it more than a quick passing thought.
Then, one day, after transferring from the "front-lines" to the software department, I found I had a lot of extra time on my hands to just peruse the software being sold. Of course, this was at a time in the world when Red Hat still sold boxed copies of Linux and before SuSE became part of Novell. In fact, you could even buy a "boxed" copy of Slackware Linux at Fry's back in those days. Looking back I can say that I did indeed enjoy those few months that I worked at Fry's, to the extent that I could, at any rate. Hell, I actually still love the store itself to this day. I refuse to buy motherboards, CPUs, RAM, hard drives - anything, really - from anyone else. Toward the end of my days as a Fry's employee, one of my co-workers presented me with two CDs containing the latest version of SuSE Linux (unfortunately, I do not remember which version it was, now, but it was the last version to come out pre-Novell). I went home after work that night and immediately installed it as a second OS alongside Windows XP Pro on my PC. The rest, as they say, is history. Thus began my trip down the rabbit hole, so to speak. I was hooked.

That version of SuSE Linux came with KDE as the default desktop choice (I honestly don't remember having the option to install the Gnome desktop instead. If I am wrong about this, please correct me), and I fell in love with it. Of course, I would later move on to RedHat/Fedora and the Gnome desktop. Such is the way of things in the world Linus built. I remember the installation was surprisingly pain-free, especially as a second OS on a PC filled with hardware intended for gaming in Windows. The sheer volume of included, high-quality software, out of the box, was the other thing that was a very pleasant surprise. From that moment forward I became a lover of all things open-source. I could easily see the power and flexibility provided by "Free and Open-Source Software", hereby referred to as FOSS in this article. Aside from gaming, I quickly discovered that I could do anything that I normally did in Windows, such as chat online, surf the web in a modern browser, or any other geekery. Plus, it was fast!
It wasn't long before I realized I had stumbled into a unique opportunity to grow as a geek and pursue the "higher calling" of becoming a Linux-savvy professional. And so, rather naively, I sought out all I could find on how-to become a pro Linux tech. One large life-mistake later, in addition to moving away from Dallas to Houston during the summer of 2004, my dream came true. I got a job as a Web Technician at EV1 Servers in Houston where I was thrust into the very heart of IT geek culture. I was taught Linux and learned how to provide tech support for Linux servers and I loved absolutely every minute of that job. I will always look back on it with great fondness. That job was short-lived, unfortunately, due to that horrible mistake I mentioned above, as I was forced to move back to Dallas a few months later.
I still love and use Linux to this day, though. I've grown leaps and bounds in my knowledge of it, and have learned how to configure some of the smallest details and settings in various Linux distros, although the *buntu distros are my current go-to, with Lubuntu being my overall favorite for everyday use. Sorry, no discourse here about the perceived pros or cons of the Unity desktop in Ubuntu. Gotta keep some things un-aired!
A few years ago I began to rediscover my old, childhood desire to immerse myself in the world of software development, thus becoming what I equated as the "Ultimate Computer Geek." Linux will do that to you, and it's not an entirely bad thing, to be honest.
Check back next week for Part 3, in which I conclude this article series!
Monday, January 30, 2012
Birth of a Geek, Part 1
I will always look back on my days as a fledgling computer geek with great fondness. I had clearly marked a line in the sand that represented the absolute limit of my comfort zone at the time, and then dared myself to cross it, unabashed, full of confidence. I wanted to be elite; to be a true computer geek. Sure, I had spent a few months experimenting with an old Compaq Deskpro En business desktop that had been given to me by a close friend. I cut my teeth on that thing, really. I learned how to upgrade my RAM from 64MB to 128 MB; I installed a discrete PCI-based graphics card (the machine had no AGP slot); and I learned everything I could about Windows 2000 Professional simply by tinkering, experimenting, and often breaking it to the point that I had to reinstall and start from scratch. I had a master plan, though, and it began with the research and planning toward building my own computer. To me, at the time, that was the initiation ceremony. In my own mind I could not possibly consider myself to be a true computer geek if I had not built my own rig from my own carefully drawn blueprints.
I began with a copy of the current issue of Maximum PC, back in 2002. That issue was the Holy Grail for me at the time, because the main article was a complete guide to building your own rig, including recommended parts and practices. I planned for weeks. A few months, actually. Cash was tight so instead of going all out for a top-of-the-line case, I went with a simple beige box. I cared little for aesthetics at that time. All that mattered was having my own computer that I had built myself. The one area where I did splurge, however, was in CPU and RAM.
I clearly remember the day when I made the drive to Addison to a "hobbyists" computer parts store where I made my first purchase for the rig: an AMD CPU. It was a Thunderbird 1.1 GHz chip and I put that thing through its paces over the following couple of years. For RAM I went with 256 MB of either Corsair or Kingston (I can't honestly remember, now, it's been so long since then), which was a respectable amount of memory at the time. Hard drive was a Western Digital 40GB drive and I used a 17" Dell CRT monitor that was given to me by a dear friend at work. And, of course, the only operating system I could conceive of using at the time was Windows 2000 Professional, although a few months later I managed to get my hands on a pirated copy of Windows XP.
I'll never forget assembling and testing that computer from those parts. I was on Cloud 9 and I had such an amazing sense of accomplishment. I went on to later add a discrete graphics card and other small, incremental upgrades as necessary. That rig carried me through the "Golden Age" of gaming, as I often refer to it. Others may know it as the time of the Quake 3 engine's reign over the world of computer games. I played and mastered Quake II, Quake 3 Arena, Warcraft 3, Serious Sam 1 & 2, and Neverwinter Nights with the aid of that first "Frankenstein" rig. I also continued to push my knowledge of Windows XP system administration. In fact, I learned all I could about software and operating systems. Those were the good ol' days. Even though I look back on that period with great affection, they were definitely awkward, in a way. And, I was quite aware that an evolution must take place at some point. So, it seemed quite natural to me when, in late 2003 into early 2004, I began to look longingly at Linux. And thus began a new phase in my life as a computer geek, when I pushed myself to the next level again and began an insanely fun pursuit with a very specific purpose and goal in mind.
Check back next week for Part 2 of this ongoing series!
Sunday, September 18, 2011
Custom BASH Prompt in Ubuntu 11.04
Here's a quick tip for anyone who would like to customize their BASH prompt in Terminal. First, open a Terminal session, and list the contents of your home directory, making sure to include the
'-a' option to see hidden files:
user@hostname:~$ ls -alh
You should see a file named .bashrc. This is your BASH configuration file. Open the file using gedit:
user@hostname:~$ gedit .bashrc
Note: If, after running 'ls -alh', you don't see a .bashrc file in the results, don't worry! You can still type 'gedit .bashrc' (without the quotes) and it will create a blank .bashrc file in which you can paste the code seen below.
Once open in gedit, scroll down to around line 39, where you should see '#force_color_prompt=yes' without the quotes. Delete the '#', thus uncommenting the line and activating it.
Next, scroll down to around line 50, where you should see a section that looks similar to this:
if [ "$color_prompt" = yes ]; then
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\t\[\033[01;31m\] \d\n\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
**The default bash prompt is commented out at the beginning**
As I have noted in italics above, the default BASH prompt is commented out at the beginning, just under the 'if' statement. My own custom BASH prompt is the line below that begins with 'PS1='. You can ignore the second 'PS1=', as long as you uncommented the line I mentioned above. Feel free to copy my BASH prompt and use it, if you wish. If you'd like to construct your own, I recommend taking a look at this article from IBM for reference on the various BASH prompt variables available: http://www.ibm.com/developerworks/linux/library/l-tip-prompt/
That's it! Happy customizing and please feel free to share a screenshot of your custom prompt in the comments below.
Tuesday, September 6, 2011
Who's that!?
After over half-a-year of inactivity, I have once again reactivated this blog. Back toward the first of the year I was blessed with an opportunity of a lifetime in the form of a job as a graphic designer and web developer at a local, non-profit organization. Score!
Because I am the first ever graphic designer at this organization, I have been insanely busy getting graphics of all shapes and sizes up to speed here, in addition to getting my elbows greasy under the hood of the Moodle Course Management System. The main focus has been to launch an awesome new online school and it has been a fun, arduous, and educational journey but, by God's grace, the school launches in just a few short weeks!
Anyway, I'm ready to get back in the groove here with Socketbrain! My first order of business is two-fold: to build a strong branding and begin offering valuable and insightful content and articles. I may expand on that further in a future post, but the bottom line is that I will strive to update this blog with at least two new posts per week initially, and grow from there.
I'm excited about some of the ideas I have for this blog, as well as the direction in which I wish to go with it, and hope to get many of you involved!
If you're interested in contributing to the blog, please feel free to email me: kenreynolds78-at-gmail-dot-com.
Because I am the first ever graphic designer at this organization, I have been insanely busy getting graphics of all shapes and sizes up to speed here, in addition to getting my elbows greasy under the hood of the Moodle Course Management System. The main focus has been to launch an awesome new online school and it has been a fun, arduous, and educational journey but, by God's grace, the school launches in just a few short weeks!
Anyway, I'm ready to get back in the groove here with Socketbrain! My first order of business is two-fold: to build a strong branding and begin offering valuable and insightful content and articles. I may expand on that further in a future post, but the bottom line is that I will strive to update this blog with at least two new posts per week initially, and grow from there.
I'm excited about some of the ideas I have for this blog, as well as the direction in which I wish to go with it, and hope to get many of you involved!
If you're interested in contributing to the blog, please feel free to email me: kenreynolds78-at-gmail-dot-com.
Saturday, January 1, 2011
Geeky New Year
I've been immensely enjoying the Christmas and New Year holiday this year, mostly with family and friends. The biggest highlight was seeing "Tron: Legacy" in IMAX 3D. Awesome experience. Highly recommended! Anyway, today's post will be short, as I am still in the midst of celebrating and kicking back.
I wanted to share a website for all the hardware hackers out there. It's called Circuit Gizmos, and they can be found at the following web address: http://www.circuitgizmos.com/index.shtml Circuit Gizmos is not just about selling cool USB interfaces and motion detectors, home automation products, and electronic devices for hackers and hobbyists, however. They also have a page with some very cool projects, found here: http://www.circuitgizmos.com/wordpress/index.php
I definitely recommend this awesome site to any hardware hackers or hobbyists out there looking for cool products and projects.
I wanted to share a website for all the hardware hackers out there. It's called Circuit Gizmos, and they can be found at the following web address: http://www.circuitgizmos.com/index.shtml Circuit Gizmos is not just about selling cool USB interfaces and motion detectors, home automation products, and electronic devices for hackers and hobbyists, however. They also have a page with some very cool projects, found here: http://www.circuitgizmos.com/wordpress/index.php
I definitely recommend this awesome site to any hardware hackers or hobbyists out there looking for cool products and projects.
Monday, December 20, 2010
Installing VirtualBox in Ubuntu Netbook Edition on an Eee PC 1000H
After being awakened much earlier than I had desired this morning, I decided to make the best of the situation and sit down to install VirtualBox in Ubuntu Netbook Edition on my Eee PC 1000H. My main reason for wanting to install VirtualBox on my netbook was simply so I could install BackTrack 4 in a virtual machine running on my netbook for the ultimate portable pentest/security monitoring setup. Of course, running VirtualBox will allow me to create VMs for anything I need going forward. The process I followed to install VirtualBox on my Eee PC is outlined in detail below.
In order to be able to install VirtualBox via my preferred method of using aptitude at the command line, I had to first add the proper repository to my /etc/apt/sources.list. For my particular installation (Ubuntu Maverick), the repository to be added is:
deb http://download.virtualbox.org/virtualbox/debian maverick non-free
Once the repository has been added, the next step is to download and add the Oracle public key via the following command:
ken@hostname:~$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc - O- | sudo apt-key add -
The above command will simply return OK if it has completed successfully.
The next step is to update the software repositories, since we added the virtualbox download repository to our sources.list file earlier:
ken@hostname:~$ sudo aptitude update
The final step is to install VirtualBox via aptitude. One note here: I first installed virtualbox-3.2, as directed on the VirtualBox website. It installed successfully, however, when I looked for the VirtualBox application in my applications list, it was nowhere to be found. Curious, I typed 'virtualbox' at the command line and it advised that VirtualBox was not installed, but, I could install virtualbox-ose-qt if I desired. So, I followed the prompt and did just that:
ken@hostname:~$ sudo aptitude install virtualbox-ose-qt
This successfully installed VirtualBox and there was now an application icon for VirtualBox in my applications list. Plus, I could now start VirtualBox from the command line via the 'virtualbox' command.
That's all there is to it! In my next post I'll discuss the process of creating a virtual machine in VirtualBox and installing BackTrack 4 on it for the ultimate in portable pentesting and security auditing.
In order to be able to install VirtualBox via my preferred method of using aptitude at the command line, I had to first add the proper repository to my /etc/apt/sources.list. For my particular installation (Ubuntu Maverick), the repository to be added is:
deb http://download.virtualbox.org/virtualbox/debian maverick non-free
Once the repository has been added, the next step is to download and add the Oracle public key via the following command:
ken@hostname:~$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc - O- | sudo apt-key add -
The above command will simply return OK if it has completed successfully.
The next step is to update the software repositories, since we added the virtualbox download repository to our sources.list file earlier:
ken@hostname:~$ sudo aptitude update
The final step is to install VirtualBox via aptitude. One note here: I first installed virtualbox-3.2, as directed on the VirtualBox website. It installed successfully, however, when I looked for the VirtualBox application in my applications list, it was nowhere to be found. Curious, I typed 'virtualbox' at the command line and it advised that VirtualBox was not installed, but, I could install virtualbox-ose-qt if I desired. So, I followed the prompt and did just that:
ken@hostname:~$ sudo aptitude install virtualbox-ose-qt
This successfully installed VirtualBox and there was now an application icon for VirtualBox in my applications list. Plus, I could now start VirtualBox from the command line via the 'virtualbox' command.
That's all there is to it! In my next post I'll discuss the process of creating a virtual machine in VirtualBox and installing BackTrack 4 on it for the ultimate in portable pentesting and security auditing.
Tuesday, December 7, 2010
Geeking Out with PortSentry
I have been super busy over the past few months! Thankfully, life seems to be slowing down a bit, but not much. Yesterday, I interviewed for a position as a Support Engineer with FireHost in Plano, TX. The interview went well and the opportunity is a ground-floor opportunity, which is absolutely awesome.
Aside from that, I have been dusting off some of my rusty old Linux sysadmin skills and rebuilding my knowledge and skills in that arena. In addition, I am also dipping my toe into the IT security realm a bit. For now, I am familiarizing myself with some of the more common tools for Intrusion Detection and Forensics. Once I'm comfortable with those tools I'll explore exploitation and cracking.
The first tool I got my hands dirty with is PortSentry. I installed it from the Official Ubuntu Repositories yesterday evening and settled in for what I expected to be a long process of learning how to configure and optimize the portsentry.conf file. As usual, I installed via command line, using the following command:
ken@hostname:~$ sudo aptitude install portsentry
I backed up the default configuration file by running the following commands:
ken@hostname:~$ cd /etc/portsentry/
ken@hostname:~$ sudo cp portsentry.conf portsentry.conf.bak
*Note: I always leave the .bak files I create in place in the event that my custom configuration file ever becomes corrupted, deleted, or otherwise tampered with, thus providing a simple file to restore from.
Then, using an archived article from Linux.com, found at this link: http://linux.omnipotent.net/article.php?article_id=12540&page=-1 I began going through the configuration file one section at a time. To my pleasant surprise, I noticed that during the install, the configuration file was configured automatically. I only had to change two sections, one of which was optional. The first change was as follows.
In the IGNORE OPTIONS section, I changed the default:
BLOCK_TCP="0"
BLOCK_UDP="0"
to the more preferred setting of:
BLOCK_TCP="1"
BLOCK_UDP="1"
The final change I made to the configuration file was to uncomment the message in the PORT BANNER section. It's advised to leave it commented, but I felt better having a warning message display to anyone trying to gain unauthorized access to my home network.
Overall, the installation and configuration for PortSentry was completely painless, and I highly recommend that anyone interested in running a secure Linux system install PortSentry and utilize it as part of their security scheme.
Aside from that, I have been dusting off some of my rusty old Linux sysadmin skills and rebuilding my knowledge and skills in that arena. In addition, I am also dipping my toe into the IT security realm a bit. For now, I am familiarizing myself with some of the more common tools for Intrusion Detection and Forensics. Once I'm comfortable with those tools I'll explore exploitation and cracking.
The first tool I got my hands dirty with is PortSentry. I installed it from the Official Ubuntu Repositories yesterday evening and settled in for what I expected to be a long process of learning how to configure and optimize the portsentry.conf file. As usual, I installed via command line, using the following command:
ken@hostname:~$ sudo aptitude install portsentry
I backed up the default configuration file by running the following commands:
ken@hostname:~$ cd /etc/portsentry/
ken@hostname:~$ sudo cp portsentry.conf portsentry.conf.bak
*Note: I always leave the .bak files I create in place in the event that my custom configuration file ever becomes corrupted, deleted, or otherwise tampered with, thus providing a simple file to restore from.
Then, using an archived article from Linux.com, found at this link: http://linux.omnipotent.net/article.php?article_id=12540&page=-1 I began going through the configuration file one section at a time. To my pleasant surprise, I noticed that during the install, the configuration file was configured automatically. I only had to change two sections, one of which was optional. The first change was as follows.
In the IGNORE OPTIONS section, I changed the default:
BLOCK_TCP="0"
BLOCK_UDP="0"
to the more preferred setting of:
BLOCK_TCP="1"
BLOCK_UDP="1"
The final change I made to the configuration file was to uncomment the message in the PORT BANNER section. It's advised to leave it commented, but I felt better having a warning message display to anyone trying to gain unauthorized access to my home network.
Overall, the installation and configuration for PortSentry was completely painless, and I highly recommend that anyone interested in running a secure Linux system install PortSentry and utilize it as part of their security scheme.
Friday, August 20, 2010
Yikes!
I've really let this blog slip into obscurity! Not to worry, though. I've actually been brainstorming ideas for a series of post topics, and should be getting those typed and ready to publish over the next week or so. Aside from that, I've also been working on getting some infrastructure in place for SEO and really just streamlining this blog as much as possible for the best possible user experience.
In the meantime, I do promise to have a regular posting schedule in place very soon!
In the meantime, I do promise to have a regular posting schedule in place very soon!
Friday, July 23, 2010
Configuring GRUB2 in Ubuntu
Currently, my main Linux machine is my ASUS EeePC 1000H netbook, running version 10.04 of Ubuntu Netbook Edition. I love it, mainly because it is uber-upgradeable and super-portable. I can stuff it into my small Eagle Creek urban man bag with a day's worth of essentials to cover any computing needs that may arise when my iPhone just isn't enough.
Now, call me crazy, but I like to have my computers display the GRUB boot menu at boot time, even though I generally do not run a dual-OS setup anymore now that I no longer use Windows. My reason for wanting to see the boot menu mainly has to do with the fact that I like to compile and test different kernels every so often, plus I have easy, instant access to memtest86+, should I ever need it.
In the days of old (in this case, as recently as a year or two ago), you would edit the menu.lst file in Ubuntu in order to change the GRUB boot menu settings. Beginning with the previous version of Ubuntu, version 9.10, this changed due to the fact that Ubuntu was updated to run GRUB2. As a result, the configuration file is much different. Outlined below is the very easy process for configuring GRUB2 to show the boot menu upon system startup.
First you need to know which file to edit. In Ubuntu 10.04, for GRUB2, the config file is located at /etc/default/grub. To edit the file simply issue the following command:
ken@hostname:~$ sudo vi /etc/default/grub
The lines we are concerned with in the grub config file are GRUB_HIDDEN_TIMEOUT and GRUB_TIMEOUT, shown below. Note that your grub config file may look a little different.
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
In order to show the boot menu, add a '#' character at the beginning of the GRUB_HIDDEN_TIMEOUT line.
#GRUB_HIDDEN_TIMEOUT=0
This inactivates the line by changing it to a comment. Next, delete any values that are located after the '=' character, so that the line now looks the same as I have it below:
#GRUB_HIDDEN_TIMEOUT=
The above process is the key element to ensuring that the boot menu displays during startup, but we aren't finished yet. The final step in editing the grub config file is to set the amount of time that the boot menu will stay on screen. To do this, change GRUB_TIMEOUT=0 to GRUB_TIMEOUT=10, replacing 10 with whichever value you want the menu to display for in seconds. In my case, I have it set to 10 seconds.
Finally, to apply the changes that have been made to the grub config file, you'll need to save and close the file, then issue the following command:
ken@hostname:~$ sudo update-grub
That's it! You can restart your machine and the boot menu will now display at startup. For more information about configuring GRUB2 in Ubuntu 9.10 or later, visit https://help.ubuntu.com/community/Grub2
Now, call me crazy, but I like to have my computers display the GRUB boot menu at boot time, even though I generally do not run a dual-OS setup anymore now that I no longer use Windows. My reason for wanting to see the boot menu mainly has to do with the fact that I like to compile and test different kernels every so often, plus I have easy, instant access to memtest86+, should I ever need it.
In the days of old (in this case, as recently as a year or two ago), you would edit the menu.lst file in Ubuntu in order to change the GRUB boot menu settings. Beginning with the previous version of Ubuntu, version 9.10, this changed due to the fact that Ubuntu was updated to run GRUB2. As a result, the configuration file is much different. Outlined below is the very easy process for configuring GRUB2 to show the boot menu upon system startup.
First you need to know which file to edit. In Ubuntu 10.04, for GRUB2, the config file is located at /etc/default/grub. To edit the file simply issue the following command:
ken@hostname:~$ sudo vi /etc/default/grub
The lines we are concerned with in the grub config file are GRUB_HIDDEN_TIMEOUT and GRUB_TIMEOUT, shown below. Note that your grub config file may look a little different.
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
In order to show the boot menu, add a '#' character at the beginning of the GRUB_HIDDEN_TIMEOUT line.
#GRUB_HIDDEN_TIMEOUT=0
This inactivates the line by changing it to a comment. Next, delete any values that are located after the '=' character, so that the line now looks the same as I have it below:
#GRUB_HIDDEN_TIMEOUT=
The above process is the key element to ensuring that the boot menu displays during startup, but we aren't finished yet. The final step in editing the grub config file is to set the amount of time that the boot menu will stay on screen. To do this, change GRUB_TIMEOUT=0 to GRUB_TIMEOUT=10, replacing 10 with whichever value you want the menu to display for in seconds. In my case, I have it set to 10 seconds.
Finally, to apply the changes that have been made to the grub config file, you'll need to save and close the file, then issue the following command:
ken@hostname:~$ sudo update-grub
That's it! You can restart your machine and the boot menu will now display at startup. For more information about configuring GRUB2 in Ubuntu 9.10 or later, visit https://help.ubuntu.com/community/Grub2
Related articles by Zemanta
- Clean Up the New Ubuntu Grub2 Boot Menu (howtogeek.com)
- How to Restore Grub 2 As The Main Bootloader (maketecheasier.com)
Tuesday, June 29, 2010
Portal 2? Yes Please!
It would be an understatement if I said that I love Portal. It would be an even larger understatement to say that I believe Valve is the greatest game development studio of our time. Yeah, that's right! You listening over there in Mesquite, you id freaks? Doom, what? Quake, huh? Anyway, that's a post for another day. Today, just revel in the awesomeness of this Portal 2 preview from E3.
Sunday, June 13, 2010
iGoogle Custom Theme Woes
Update: Unfortunately, I never could get Google Gadget Editor to play nice with my custom XML file, so I have set this endeavor to the side for the time being, mainly in the interest of building my skills in IT Security, as well as refreshing my knowledge of system administration.
I've been working on creating my first, very own custom iGoogle Theme. Unfortunately, the Google Gadget Editor does not seem to want to open the XML theme file I've created. I will continue to work the problem and will update here with either a resolution and information about the theme, or a short obituary entry advising of my attempt's complete and total demise.
Stay tuned!
Sunday, April 18, 2010
Socketbrain has been reinitialized.
Please excuse my dearth of posts, lately. I switched to 10-hour shifts at work, which has taken some adjustment, and have also been enjoying some extra time with my family. Socketbrain has been reinitialized, however, and is back on track.
Not much has happened since my last post, other than the fact that I discovered my ASUS Eee PC's AC adapter does in fact still work. This was a pleasant, accidental surprise and, suffice it to say, I'm simply glad. Now I don't have to rely on my iPhone only for all of my mobile computing needs! This is good, considering the latest news from Apple detailing that owners of the original iPhone, such as myself, will not be able to update to the new iPhone OS 4. I'm highly irritated by this and think it is very short-sighted of Apple. Alas, it has sparked my desire to simply trade-up for an open-source-driven smartphone. Maybe I'll buy a Nexus One!
The only other thing of importance has been my decision to migrate away from CentOS - and Red Hat-based distros in general - to Ubuntu - and Debian-based distros - on my personal home server. Why, you may ask? Simple. I feel that Debian/Ubuntu is far more stable than Red Hat distros. This is in my own experience only and is not derived from any sort of testing. At any rate, I've come to prefer Debian/Ubuntu over Red Hat/Fedora.
That's it for the catch-up. More useful posts to come soon!
Not much has happened since my last post, other than the fact that I discovered my ASUS Eee PC's AC adapter does in fact still work. This was a pleasant, accidental surprise and, suffice it to say, I'm simply glad. Now I don't have to rely on my iPhone only for all of my mobile computing needs! This is good, considering the latest news from Apple detailing that owners of the original iPhone, such as myself, will not be able to update to the new iPhone OS 4. I'm highly irritated by this and think it is very short-sighted of Apple. Alas, it has sparked my desire to simply trade-up for an open-source-driven smartphone. Maybe I'll buy a Nexus One!
The only other thing of importance has been my decision to migrate away from CentOS - and Red Hat-based distros in general - to Ubuntu - and Debian-based distros - on my personal home server. Why, you may ask? Simple. I feel that Debian/Ubuntu is far more stable than Red Hat distros. This is in my own experience only and is not derived from any sort of testing. At any rate, I've come to prefer Debian/Ubuntu over Red Hat/Fedora.
That's it for the catch-up. More useful posts to come soon!
Subscribe to:
Posts (Atom)





