Posted by: Dylan | October 12, 2009

The Three Branches of…Hacking?

The number three is a very common number. When you start a sentence where you have multiple ideas, you will often find yourself saying, “There are three ways to think of it” or something similar before you’ve even fully formulated your list. Where this comes from is hard to determine, though three does seem a common number. (No joke, the exact time I’m writing this sentence is 3:03 PM CST. Which says more about not blogging during class then it does about the power of three.)

Of course, three is an oversimplification most of the time. There aren’t actually three branches of US Government (bureaucracy is the fourth branch, the media is the unofficial fifth branch, and let’s not forget various inputs and factors and federal and state governments, etc—you didn’t think that having classes on political science was pointless, now, did you?), but we still divide it into three branches because it’s simple, and makes the most sense for checks and balances and separation of powers and the like. And, while it may not be immediately obvious, we kind of divide hacking/technology into three separate fields as well: Computer Science, Computer and Electrical Engineering, and Information Technology and Sciences.

“But wait,” I hear you say. “Hacking is about programming. That’s computer science, right?” (By the way, if you still need a primer on hacking, see my about page and the websites I link to. Hacking ≠ cracking).  This might very well be accurate, but programming is no longer limited to computer science. From application programming and database programming to complex AI constructs and NP-complete algorithmic structures to HDLs (hardware description languages) and Prolog (logic programming), it has become impossible to argue that programming is a specific field of computing. Programming is now the core tool which all computer technology is centered around. Read More…

Posted by: Dylan | October 8, 2009

So it Begins…Again and Again

In case you haven’t noticed, I’m behind on my posting yet again.

I set off to write a blog in the same vain of an explorer or adventurer: without any clear sense of direction or idea, just a slight picture of a possible destination and a few ideas on how to get there. In the past few days, it has become increasingly clear to me that with college applications, homework, journalism, scouts, and so forth, it may be impossible for me to continue. So I began (again) to ponder why we blog, and realized that it is more than an extension of ourselves; it is a hope, however brief, to inspire, educate, and share. Blogging is a mutual learning experience, one in which the readers expect to learn from the blogger, and the blogger expects to learn both from the readers and his or her own posts.

In this last week I discovered two things: 1, that I cannot possibly keep posting regularly without interfering with everything else I need to do, and 2, that I cannot possibly stop posting. So, from this point on, I promise to update my blog (at least) once a week, on Mondays at 9:00 AM CST (I’m setting the timer for this, I’m usually in classes at this time and as such actually writing my post right before the deadline would be impossible).

Expect the next post this Monday, at exactly 9:00 AM CST. I have four topics I’m working on, so from this point forth, I’m expecting uninturrupted weekly posts.

Have a great weekend! Looking forward to an exciting year.

Posted by: Dylan | September 30, 2009

The Brute Force Algorithm

Applying to college, it turns out, is a lot like good software development. The standard, recommended way of doing things is to lay down your path first, figure out what you ultimately want as an end result, and design the program or list of colleges before beginning the development (application process). And, if the route I am taking and most of my friends are taking are any indication, it’s also a lot like programming in that most people don’t really focus on the design and end up with a program that has way too many features, or a college list with 18 colleges on it.

Don’t worry though, since this particular post isn’t going to focus on college applications. It just happens to turn out that the poor design of a college list is a good analogy for code optimization. A bit of background first though. The average amateur programmer knows what code optimization is but doesn’t consider it important to them or their code. Until Project Euler, I was the same way. Project Euler, for those who don’t know, is a mathematics and programming challenge which presents relatively simply mathematical concepts (which get more complex as the problems do), and challenges a user to solve them. There is no need to use a specific programming language, or for that matter even to use a programming language, though most of the problems require it. In addition to being a great way to learn to program or refine programming skills, it is also a very fun challenge.

In order to not spoil the fun of solving the more advanced problems here, I’m discussing Problem #3. I’m not posting the answer, but I am discussing source code and optimization methods, so have a crack at it yourself if you want before reading on.

Read More…

Posted by: Dylan | September 29, 2009

Refining and Redefining: An Explanation

I promised myself I wouldn’t do this.

For anyone keeping track, this is my third post. I made the first one in May, the second in July, and here it is, (barely still) September. One post every two months, and perhaps a few page views here and there. It’s not working. I wanted to figure out what I needed to do to make a blog, and in the process, I realized why so many blogs die: our thoughts are publicly expressed online, and the worry that they might appear wrong or inaccurate ultimately causes the deterioration of the blog. Read More…

Posted by: Dylan | July 19, 2009

Credentials, Please

I feel like it’s probably time for a well deserved update. I had planned to be updating more often, and hoped to even reach once daily, but unfortunately I hardly had the best laid of plans. As such, this post is reaching all of you long after I wrote it. I’m currently at Owasippe Scout Reservation in Michigan (7 miles east of Whitehall, somewhere around 20 miles north of Muskegon). I’ll be a staff member here for the next 7 weeks (starting June 20th, which has passed at this point), and then be spending a week at the National Order of the Arrow Conference (NOAC) at Indiana University at Bloomington. As such, I’m configuring several blog posts to auto-update at the first opportunity, which may at this point be well into my time at camp.

So, on to what I actually meant to talk about (I’ll cover some of the other stuff I mentioned in later posts). Being at camp has many benefits, and I love every single thing about it, from watching the morning sunrise over the staff row to swimming in the lake to simply sitting in my cabin during downtime and relaxing, perhaps playing cards with a few friends or doing a bit of writing. Of course, I have a lot of work to do, and I’m a dedicated staffer, but what’s important to me about the experience is that regardless of the type of personality the job attracts or the constant proximity to my work, I maintain a sense of identity, and let the unique aspects of my personality present themselves.

Identity. How we define our identity was a major point of my last (and first, and only) post, and it’s brought up on my About page as well. Who are we, and what makes each of us different from the next individual, and so forth: questions we may not ask ourselves every day, but certainly the questions from which all others we have stem, from all actions we take and words we speak come. How we identify ourselves is not just an important thing; it is the most important thing. After all, without identifying ourselves, how can we identify anything else?

I was working recently on a final project for my AP Computer Science class. The project I designed involved using the Google App Engine to create a credentials manager of sorts, which stored usernames and passwords for different websites. Relatively simple, but a fun app to code nonetheless. What we generally define ourselves by on the internet doesn’t generally go much further then a few basic pieces of data. Consider this: on most forums, all you can know a user by is their username and avatar. Maybe you can click on their name and a few loosely defined fields they filled out pop up: interests, hobbies, profession, and so forth. As a result, the more one uses the internet, the more sites the register for, and resultantly, the easier it becomes to have a predefined list of interests, hobbies, etc.

The problem presents itself when we consider that beyond this, most people have difficulties defining their identity. Personality, like so many other attributes of humanity, cannot be described by simple words. It is my belief that a person could not describe their entire personality using an extensive vocabulary and stellar writing skills, even by writing volumes of information on the subject. If we were to take every written work of a person, every thing they ever put on paper, we would still only have a single dimension of their personality. Sure, what we could obtain from this would be an immense load of data on this person, but only in a single context. Therefore, always remember that despite the many forms of expression and the many survey-like questions developed to mark one’s identity, only you can truly understand your identity, and defining that should be not a constantly present objective but an underlying element of your life, always present but rarely in conscious thought.

PS: I’ve been trapped by working at camp. Posts will be scarce this summer.

Posted by: Dylan | May 19, 2009

python print “Hello, world!”

Ahh, the obligatory first blog post.

Hello to everyone reading my blog, and anyone who’s insane enough to go back in the history and try to read every single post!

First, a bit about myself. My name is Dylan Nugent, and I’m a high school student. If the title and subtitle of this blog didn’t make it clear, I like programming, technology, and the open source/free software ideologies. I also love nature: I’m a Boy Scout, I camp at least once a month, my summer job is as a camp councilor, and I’ve climbed to 11,695 ft on Mt. Phillips at Philmont Scout Ranch in Cimmaron, NM. When I’m not programming or camping or doing homework, I’m probably practicing piano or guitar, working on writing something (be it a song, story, poem, etc), or reading. I don’t have a favorite subject because I love pretty much every subject (though my APs – Computer Science, Psychology, and Statistics – top the list). Most of my extracurriculars lie in Boy Scouts – I’m the Owasippe Lodge Treasurer for the Order of the Arrow and my troop’s Assistant Senior Patrol Leader – but I also am a part of my school’s Journalism team and take music lessons, among other things.

So, a bit about this blog. The title is “Hacker Hideout,” and for those who didn’t understand, that’s hacker as in someone who creatively tinkers with technology, enjoys coding, and believes in certain principles, and not a cracker, someone who illegally breaks into computers. Eric S. Raymond’s article, “How To Become a Hacker,” is a good starting point for those who don’t understand.

Great, right? I just started what has to be the elevendy-billionth technology blog on the planet, right? What makes my blog special isn’t the “Technology”, it’s the “Everything After.” I mentioned before a vast diversity of activities I participate in. Giving up all technology for three weeks to go spend time in the wilderness backcountry may seem atypical of a computer nerd or geek, and that’s because it is, to an extent. Being a hacker is about a lot more than just an affinity and interest for tech. My blog is about tech and being a hacker, sure, but it is also about living life to its fullest extent, enjoying yourself, and finding your passion.

So welcome to Hacker Hideout. I’m sure this blog will grow and become more defined in time, but for now it’s pretty much about anything I think of. I look forward to the feedback! (Keep in mind a general rule for feedback though: if it’s spam, inappropriate, or highly offensive to anyone, it gets deleted. I appreciate criticism and won’t censor it, including the “this guy sucks” post, but anything with a lot of swear words or offensive language will most likely be deleted, if not at least censored).

-Dylan Nugent

Categories