Wednesday, October 19, 2011

C-C-C-C-COMBO BREAKER

So, I am NOT going to talk about Project Euler. Instead, I'm going to simply about the HORRIBLE assembly program I've been working on for the past several hours. It's really not that difficult of a program, but our teacher did not really tell us how to do any of it, so I had to figure most of it out. Whatever, I guess I'll remember it better, but it still pisses me off. I would post the code, but I don't really want my teacher to somehow see it and think I stole it from myself (I wouldn't put it past him). Anyway, I'm out. Try not to ever take assembly if you can help it.

Peace.

Thursday, September 29, 2011

Project Euler - Problem Seven

This one took a little extra input from good ole Michael. Apparently, me and prime numbers just don't get along very well. It's like we hate each other without even knowing it. Here's the problem:
With Michael's help, I managed to get it done though. It's really fairly simple, so I'm going to just do like regular and put a few screenshots up.

After discussion with Michael, we decided that it would be best to have a list of the primes we've found so far. It'll start off primed with two and three. Everything after that will be found via the program. It'll do a number mod everything currently in the list of primes. If it isn't divisible by any of the primes, then that number is added to the list and it moves on to the next number.

This seems to work pretty well, considering that it doesn't take very long at all to run. It's pretty cool to put a little cout statement to print out primes as they're found. I've got on in my code here. It lets me know if it's working too!

So here are my functions:
primelist_zero simply zeros out the list of primes. I did this so that I can have loops that run while elements in the list are or aren't zero. There's probably a better way to do it, but this one works.
Next there's the is_prime function. The name on this one is pretty telling about its function. It just checks whether or not a number is prime.
You're starting with an increment of zero each time the function is called. This increment variable is used to know which element of primeList to mod by. If the number mod by any number in the primeList equals zero, then it exits the function call. Otherwise, it adds one to the increment variable and checks again.  It does that until it gets to an empty spot in the primeList, at which point the number has to be prime.

These functions are wrapped up in a nice little main:
If you've got any problems, feel free to ask!

Wednesday, September 28, 2011

Project Euler - Problem Six

These exercises are really helping my programming. This one took about fifty-five seconds of planning a a few minutes to write up. It's a bit spaced out to do in one screenshot, so I'll space it out a bit.

The code is fairly simple for this one. Here's the problem:
Now, I see two different functions there, but I don't know about you. I'm going to go ahead and declare them like this:
The functions themselves are very straightforward and didn't take much thinking through.
Add_squares adds the squares of all the numbers:
Square_sum adds all the numbers and then squares it:
Finally, I wrapped them all up in a nice main function:
Also....you'll notice that I got excited and forgot to change my cout statement....soooo...

So, that's it. Easier than pi!

Project Euler - Problem Five

Problem five was one of the quickest and easiest so far.  I'm pretty sure that the biggest thing that problem five did for me was  that it helped me find a really nice answer repository! So now I can easily check to make sure that I've got the right answer. Here's the link: projecteuler-solutions

Since problem five was so easy, I'm not going to even attempt to do a step by step breakdown. If anyone has any questions, just ask and I'd be more than happy to help.

Project Euler - Problem Four

OH GOD THEY JUST NEVER STOP.

So I'm on problem four.  This one is fairly simple, and is honestly a bunch easier for me than the prime numbers one was. Maybe that's just because I had an entire chemistry lecture to think about this one. Either way though, it's a fairly straightforward one.

In fact....I think I'll actually include a little lesson with this one. First, let's state the problem:

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.

The first real question is how we're going to check for whether a number is a palindrome or not. Everything else just falls into place after that.
Here's how to do it!

Modulus.

Whaaaa?

Really though. Modulus is just a division's remainder. So, mod ten should remove the last digit of a number. Check it out with some sort of math machine. 987654321 % 10 yields a result of 1. This means that you're able to get the last digit of the number if you mod ten. (HINT HINT)
So if you do n%10 to get the last digit, what do you do next?
Well...you get the idea. You do this:

rev = rev * 10 + dig;               // This will add the result to a number. (HINT: This is
                                                                 // going to be the opposite of the number you put in.
        num = num / 10;         //  This part will remove the number you just put into rev
                                                           

Now, you can apply this fairly easily into a function. I personally did mine as a Boolean function. I'll post a screenshot of my code below.

This one is the function:
This one is going to be the main loops that do the multiplication:
This one is the whole program:


Anyway, that's the solution to the fourth Project Euler problem. More to come? Maybe.



Project Euler - Problem Three

Let this be a lesson in why reinventing the wheel isn't always best.

I'll start with the problem:
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?

Now, that isn't too hard.  In fact, I had code that would do it fairly quickly. My downfall, however, was that I wasn't looking for any sort of help. I'd decided that I wanted to do it completely and all by myself. That's an honorable pursuit, and one that everyone should do at some point. Always relying on other people for help gets old.

There comes a time when you've got to realize that asking for help, or at least advice, isn't always bad though. My program ran so slow. It was rather clumsy and dumb, to be quite honest. I really didn't like it at all. So I started googling. I ended up finding a website that had complete and working C++ (and Java) code for running the Sieve of Eratosthenes. I picked the code up off of here, and it runs at least a bajillion times better than mine.

Now, is it mine?  Not even a little bit. The most I put into my problem three solution was really a few lines to print out a menu, and that isn't even necessary. Was it something worth doing though?  Yeah, it definitely was. Now, I know a whole new way to do prime numbers.

And trust me. It's cool. Read the link and give it a shot.

Friday, September 23, 2011

Project Euler - Problem Two

Recursion is so much fun. It's not the easiest thing I've ever tried to wrap my mind around, but it's fun.

Okay, so here is the solution to Project Euler's second problem.

The problem is this:
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.

So, you're going to need to figure out what this means.
int fib(int n) {
    if (n == 0 || n == 1) {
        return 1;
    }
    else
        return fib(n - 1) + fib(n - 2);


This is the code to find the fib of a number. If you put ten in, you'll get 89. Now, simply putting fib() of four million won't work. We want the sum of the even-valued terms.  In other words, we need something else to make it happen.

Personally, I used a do/while loop with an if statement inside of it.

You can see what I did here. The actual solution is 4613732.


Project Euler - Problem One Redux

So it's been a while. School is...well...school is hell this semester. But hey! It's all good, right? Today I decided that I'm going to sit down and relax my mind by doing some easy stuff. I couldn't let myself be unproductive though, so I decided to try and do some computer science studying. Sooooooo, I redid project Euler's problem one.  Except this time I also used recursion. It's pretty cool looking, and I'll walk you through how it works.

Okay, so instead of putting a big ole block of code, I just took a screenshot. Project One is simple enough, and if you actually want a big block explaining exactly what's going on, check out my first post.  Instead of the code itself, I took a screenshot.

You can see pretty much everything there. I tried to be all studious and comment it nicely.

Now, that works pretty darn well. Recursion makes it even cooler looking though.

Recursion is used whenever you can see that the answer to a problem is really just a smaller version of the problem.  Now, my computer science professor did say that it's not always best to use recursion.  It takes a lot of stuff to make a recursive call, so it probably shouldn't be used for just everything you've got.  As it is though, this function is so small that it really doesn't matter. PLUS IT IS SO COOL.

So, how does it work?

It's as simple as a function that calls itself.  To get to that point though, we need to figure out what the simplest case is. In the implementation that I'm using, the reasoning goes like this:
  1. We'll pass in the current position (a default of one) and the upper limit (which is 1000 for Project Euler).
  2. The simplest case, the base case, is if these two numbers are equal to each other.  That would mean that the number we are currently working with is the upper limit.
  3. Otherwise, we want to find out whether the number we're currently working with is a multiple of three or five. 
    • We can do this using the modulus  (%)  operator. It is the remainder of division between two numbers. If number A is a multiple of number B, then A%B should be zero (since it should divide evenly, thus without a remainder).
  4. Once we've establised that a number IS a multiple of three or five, we want to add it to the total. 
  5. Now we want to do the same thing again, except on a number that is one higher than our current number.
So, in pseudo-code:
If the current number is equal to the upper limit, return from the function. Else, we want to check whether the current number modulus three or five is equal to zero. If so, then we know it is a multiple of either three or five and should therefore be added to the total, so we return it AND we call the function again.

Now, think over that and see what you get. Here's mine!



If you've got any questions, please ask! This isn't exactly a tutorial on how to program, but it should guide you into how to do at least this problem recursively.


Monday, July 11, 2011

Google+ - Why It's Cooler Than You Think

Google, despite being the slightly evil quasi-ruler of the internet, is a pretty cool entity. Most things done by Google turn out well:  Chrome, Gmail, YouTube, AdSense, Blogger, Google Calendar, Google search, Books, Labs, Documents, et cetera.  It's a simple fact of the modern Internet that if you use the Internet, you use Google.

Google+ is the newest introduction to Google's impressive lineup. It is designed to be a competitor to Facebook, despite Google's previous failed attempts at social networking.

Google+ is "real-life sharing rethought for the web." Now, Google+ sounds pretty stupid really. Most Facebook wannabe's are dumb. It's hard to copy something as unique as Facebook and not either make it dumb or too much like Facebook. I'm pretty sure that Google+ has managed to find the right balance of sameness and differences.

Google+ has all of the standard stuff that you expect from a Facebook clone. Everything that you want from Facebook is there. But! There are other features that Google+ has that make it just a cut above the rest:
Circles
     Circles are pretty cool for the following reason:
Everyone has a Facebook nowadays. My mom, my girlfriend's mom, my bosses, and tons of other people important to my life are all watching me on Facebook. Now, I'm a good little boy. I don't do much that is too bad to be on Facebook. Sometimes though, I just want to say something that I'd really rather them not know. I can't differentiate who I let see stuff on Facebook without a lot of hassle, even with their Lists or Groups or whatever they're called.
Circles solve this problem. I can add people to certain circles, and then share stuff to certain circles. I've got people in circles that lets me share just certain stuff with them. That means that the status "I just hit a tree in my dad's truck" can be hidden from my family but seen by my friends who are good at fixing trucks. Or trees, depending on the situation. EITHER WAY THOUGH, the important thing is that I can have different people see different things.

Spark
    Sparks are just really cool little boxes full of interests. It's like you Google stuff from within Google+ and are able to share the link to your...Wall. I just realized that I don't really know what the Google+ Wall thing is called exactly. Anyway, Sparks lets you search for certain stuff and see just snapshots of it that will let you be able discover and share things easier. They're also cool because you can pin an interest to your Sparks page.

Viewing Your Profile as Someone Else
    Have you ever wondered how someone else views your profile? I have. Especially since Google+ has the Circles feature that lets you change who sees what, the ability to see how each person views your page is beyond valuable.




Now, I've got to go fry fish and read Eldest. (The final book in the cycle is coming out soon!) So I'll finish this post once I have time and know a bit more. As you can already see though, it's got some NICE features.

Plus, your mom isn't on it playing Mafia Wars. That's enough to make me love it already.

Saturday, July 2, 2011

A Laid-Back Post

So, I'm feeling pretty chilled out right about now. You know that feeling where you're kind of at peace with reality and just feel like kicking back for awhile? I'm there. So this post is not really going to be very long; I don't have a lot to say. I just kind of wanted to post a bunch of music that helps me stay stress free. So if want to be chill and remember that the world can sometimes be a pretty cool place, listen to the following, in order:






(P.S. If you aren't happy after this song, there's something wrong with you...)








Peace.

Friday, June 24, 2011

LeBlanc, The Deciever: A Review

Hello, friends. It's time again for a League of Legends Champion review. This time I have decided to review "LeBlanc, the Deceiver," a mage/assasin champion from Noxxus.


My first impression of LeBlanc was not as high as one might expect. I had heard several of my friends mention how amazing she was, so, when I logged in this week and saw her on rotation, I decided I might as well give her a shot. I started up a custom game and began by carefully reading her abilities and deciding how I wanted to build her. At first glance, her abilities did not really seem that useful to me, especially her ult, "Mimic" which cast a version of her last spell cast that does more damage. For me, this seemed like a rip off. I played for the first six levels with a growing sense of dislike for the champion, then I had to quit for reasons I cannot recall. However, I decided to give her another chance, and that was possibly the best decision I've ever made regarding this game. This time, I played past level 6, as well as studied her abilities a bit more closely. I began to realize how they could combo together, as well as a better order to purchase them in. It was at level 8, with nothing more than a Tear of the Goddess and a Blasting Wand, that I realized exactly how beastly she really was. I was able to nuke a Nasus three levels higher than me, and I had only one AP item. Soon, I came to understand EXACTLY how useful her ult is. So, without further ado, here is my guide to one of the most impressive champions I've ever played.

As I said LeBlanc's abilities are quite deadly, if you know how to use them. Her first ability, Sigil of Silence, deals magic damage to the enemy and places a mark on him/her for 3.5 seconds. If the target is affected by another of LeBlanc's spells while the mark is active, that enemy is silenced for 2 seconds and takes additional magic damage. Her Distortion ability allows her to teleport to a target location, dealing magic damage to nearby enemies. In the three seconds following the use of Distortion, she can teleport back to wherever she originally cast it from. Her third ability, Ethereal Chains, is a skill shot ability that, if it hits an enemy, deals magic damage and slows him/her. If LeBlanc stays within ranged of the enemy for 2 seconds, the enemy becomes unable to move and takes additional magic damage. Her ultimate, Mimic, allows her to cast a improved version of the spell she last cast, which does improved damage. Her passive, Mirror Image, causes her to become instantly stealthed for 0.5 seconds if she falls below 40% health. When she exits stealth, she creates a clone of herself that deals no damage and lasts for up to 6 seconds. However, this effect can only happen once a minute, but that is a ridiculously short cooldown for this ability,

When I play LeBlanc, I generally prioritize leveling her Sigil of Silence. Of all her abilities, save her ult, this one has the highest damage potential. Next I focus on Etheral Chains, as this ability allows her to slow an enemy and snare him/her. This is better then Distortion for chasing early game, in my opinion, as it allows her teammates to help, and it also allows her or her allies to escape more easily. It also helps later in team fights. So, my initial skill selection goes Sigil, Chains, Sigil, Distortion, Sigil, and Mimic. After this, I max out Sigil of Silence, and then focus on Etheral Chains. I don't generally start leveling Distortion until I have five ranks in Sigil and at least three ranks in Chains, but this my change with each game.

Her Mimic ability is really where LeBlanc shines. All of her abilities deal a high amount of damage, but with Mimic maxed, it does 40% more damage. That's a lot considering how much damage a Sigil of Silence can do. What's most impressive about Mimic is its cooldown time. At the start, it takes about 30 seconds until you can use it again. However, with the way I build her, I have it so that at level 18, it's only 15 seconds. That means every 15 seconds, she can kill almost anyone at full health. However, often it does not take her ult to be able to take someone down; her other abilities do quite well on their own.

LeBlanc is very dependent on understanding exactly what her abilities do and when to use them. One of her most used combos is to throw a Sigil on an enemy, and then hit him/her with Ethereal Chains. What happens is the Sigil deals damage, the become activated by the Chains dealing more damage and silencing the enemy for two seconds. As that happens, the enemy takes damage from the Chains, as well as becomes slowed. The silence from Sigil lasts 2 seconds, which is exactly how long it takes for the Chains to activate again, dealing more damage and rooting the enemy for two more seconds. This whole combo prevents the target from using any means of escape for four seconds, as well as significantly damaging him/her, making this a great combo for chasing.

Another deadly combo, the one I use to kill, is Sigil>Mimic>Distortion>Chains. The initial Sigil deals damage. The Mimic: Sigil of Silence deals 40% more damage and activates the initial sigil, dealing damage and silencing. At this point, the target is probably running, but in vane. Distortion teleports you to the target, dealing damage and activating the Mimic Sigil, which stuns and deals more damage (still 40% more than the other Sigil). At this point, even if the target is still alive and manages to throw of an escape ability (which is impossible as he/she is silenced), you can easily finish him/her off with Chains, since this deals damage and slows. Even the hardiest of tanks, who might SOMEHOW survive the initial damage of the Chains, cannot survive once they become activated, rooting the enemy, dealing damage, and allowing you to finish the job with auto-attacks or a now-useable Sigil if need be. The best part is, it will generally have taken you longer to read the first sentence of this paragraph than to kill the target.

I can honestly say I see no drawbacks to LeBlanc. There is nothing about her I dislike. Even her passive, which on many champions is often unimpressive, has helped me out many times. Often I have been close to death, and losing a third of my stacks on Mejai's Soulstealer, when my passive kicks in and allows me to escape.

Finally, I will finish off this guide by discussing how I build LeBlanc. The first ten or so games I played as her, I followed my generic build guide for mages: Archangel's Staff followed by Sorcerer's Shoes and Rabadon's Deathcap, which is generally where the game ends. However, I soon began to realize that this build was not fully capitalizing on her killing ability. She is an Assassin, and should be treated as such. So, I played around with a build, and this is what I settled on:

Start by choosing a Meki Pendant and two Health Potions. Because I normally choose Teleport and Clarity as my Summoner Spells, I don't have to get Mana Potions, as I generally do not run out of mana before I would normally recall. Getting Health Potions allows me to stay in lane against more harrasing opponents long enough to get the money for my next item. Next, I get a Tear of the Goddess and Teleport back into my lane. This is by far one of my favorite items, and I always get it first on any mage. Next, I get an Amplifying Tome and upgrade it to Mejai's Soulstealer as fast as possible. Generally, I avoid Soulstealer on Mages, just because it is such a risky item. However, LeBlanc can gain 20 stacks in a heartbeat, and keep them. After this I buy Boots of Speed, upgrade my Tear of the Goddess into a Archangel's Staff, finally grab Sorcerer's Shoes. Now I have three slots left, and the order in which I fill them differs depending on the situation. My three final items are Rabadon's Deathcap, Abyssal Scepter, and Morello's Evil Tome. Generally, I like to get Rabadon's first, then grab Morello's and finish with Abyssal Scepter, but sometimes I need the cooldowns from Morello's sooner, or I might need the magic resistance reducing aura of Abyssal Scepter first. Generally speaking, though, the order of these items is not that important, so just go with what you like best.

In addition to Rabadon's, Morello's, and Abyssal Scepter, you might consider the following items:

1. Banshee's Veil: If you're going up against people like Ashe, Ryze, or Annie, Banshee's Veil is almost a must have item. While the magic resist, health, and mana are always nice to have, they are nowhere near as important as the passive. Banshee's Veil prevents the next harmful spell that would be used against you. This means Ashe's ult, Ryze's snare, or Annie's stun, all of which can completely ruin your assassination, are blocked, allowing you to finish them off happily.

3. Rod of Ages: This is definitely useful if you seem to be targeted a decent amount and are unable to get your kills because of it. It comes with a nice amount of base AP, but also gives you some good health, as well as mana, which can work with your Archangel's Staff for more AP. These bonuses also increase for the next ten minutes. Generally, I avoid this item simply because it has to be built early to fully utilize it, which interferes with my other build. Also, I am generally able to get kills without having to worry too much about my health. Remember, only get this if taking damage is preventing you from getting kills. If you routinely get down to low health, but still kill your opponents, don't worry about it.

2. Zhonya's Hourglass: Generally, this shouldn't be necessary, but it might be at times. 100 AP is nothing to sneeze at, and the armor is always helpful. The only time I would see getting this is if you are constantly being targeted in team fights and are being killed before you can do anything. The activated ability of this item makes your opponents target someone else with their abilities, allowing you to drop back in once it's over and finish them off. However, if you know what you're doing, this shouldn't be necessary.

And finally, here's a few items you may think about getting, when you really shouldn't:

1. Void Staff: Under no cicrumstances should you get this item. Abyssal Scepter is an all around better item, having the same AP boost plus granting some magic resistance. And while Void Staff may grant a higher amount of magic penetration, Abyssal Scepter has an aura, making it apply to multiple enemies AND allowing those weaknesses to be utilized by your team as well. Always be a team player.

2. Rylai's Crystal Scepter: This item looks deceivingly useful, and on most mages, it is. However, on LeBlanc, it's pointless. If you're playing right, you should never need to have your spells slow the target. You already have a silence, a slow, and a snare, as well as the ability to teleport to your target. If you are still unable to catch people, you need to play someone else.

And that, my dear readers, is it for my second League of Legends champion review. I bid you all a good day and good luck.

Saturday, June 11, 2011

Inventory Management - Part Three

The title for this could also be: proof of not being an idiot.

I decided to go back to the VERY basics of what I could do for a bundle management system. Here is an extremely basic build of a system that could accept the very most basic stuff. It could sort of work though.

It still needs the ability to switch lengths halfway through the bundle, and it needs to have a much prettier output. Any step is a step though. I'll begin actually working on the classes and such now.

Here's the code:


#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
    // Declaring vars
    string bunk, species;
    int thickness, length, width;
    int sentinel = 99;
    int counter = 0;
    int bunkWidth[300];
    bool choice = true;
   
    // Prompts for input
    cout << "\nEnter Bunk Number: " << endl;
    cin >> bunk;
    cout << "\nEnter Species: " << endl;
    cin >> species;
    cout << "\nEnter Thickness: " << endl;
    cin >> thickness;
    cout << "\nEnter Length: " << endl;
    cin >> length;
   
    while (sentinel != 0) {
        cout << "\nEnter Width: "<< endl;
        cin >> width;
        bunkWidth[counter] = width;
        sentinel = width;
        width = 0;
        counter++;
    }
   
    cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPrint Report? (y/n) ";
    cin >> choice;
    if (choice == true) {
        cout << "Bunk Number: " << bunk << endl;
        cout << "Species: " << species << endl;
        cout << "Thickness: " << thickness <<"/4" << endl;
        cout << "Length: " << length << endl;
        cout << "Width: " << endl;
        for (int i = 0; i < counter ; i++) {
            cout << bunkWidth[i] << endl;
        }
    }
   
   
   
}

Thursday, June 9, 2011

HAXX0RED

Most people, at some point in their life, decide that it would be cool to hack a certain webpage. While the vast majority of us will never actually hack something for malicious purposes.  But it's still cool knowledge!

Hack This Site is a wonderful and fun way to learn a little bit about hacking and just general webpage security. I've finished the basic missions and I'm on the fourth realistic mission. I'm going to take a look at the programming ones in a bit.

Also, these little exercises have me getting all sorts of awesome addons.  Check out Firebug and Tamper Data. They're both really cool, and for more than just haxx0rs.

Monday, June 6, 2011

How to Survive Like a Man!

So, I'm pretty big on the outdoors. While I didn't get a chance to do much while in school, and work and Jonna is keeping me from doing as much as I'd like to now, I really enjoy going outside and doing stuff. Whether it's just walking around, building something, or fishing.

In the spirit of adventure, I'd like to impart some knowledge to you. You can't really learn a ton by just reading some guy's blog though, you'll have to go out and do it if you want to *really* know. Of course, sometimes it's just fun to think about it.

Today we'll be discussing the simplest thing I can think of. Walking. "Oh Linell! We know how to walk!" Believe it or not (believe it), there's an art to walking in the woods.  If you just start walking, you'll either end up lost or just plain tired out.  There's one simple, easy, and obvious way to fix this problem that most people don't think of.

Down here in the South, and in any land that isn't akin to flatland, then you're going to be able to find a ridge.  A ridge is just the crest of a hill that goes through the woods.  They don't always go exactly where you want to go, but you can usually find one heading your way.  Why should you try to walk along the top of a hill?

Because it's free of huge dips in elevation, it has less brush to navigate through, and there are generally trails created by animals on these ridges.  They're the highways of the woods, as my dad once said.  In fact, most roads that are curvy were built on top of a ridge, because that's the easiest path to follow through about 99% of everywhere.

So, if you're just wanting to take a walk through the woods, follow a ridge or two.  They're much easier to find and remember, and they'll make the whole trip more enjoyable.

Go for a walk and enjoy the natural beauty of the world!

Sunday, June 5, 2011

Sequels, Prequels, and all the other Quels.

For a bit of a preface, I recently got Netflix. This has at least tripled the amount of movies that I watch.

I've noticed a recurring fact.  If there is a good movie with a sequel, the sequel is likely to suck.  While this is DEFINITELY not always true, it happens.  A lot.  These seem to be a few signs that a movie will not be as good as the original.  For proof, see The Scorpion King 2 and Troll 2.

1) The movie features an "all new cast."  I'm pretty sure that this is fancy movie speak for, "we didn't have the money to hire real actors."
2) The movie's poster features a badly designed monster on it.  Monsters in the movie itself can be pretty crappy looking without the movie necessarily being terrible.  However, if the crew of the movie couldn't even take the time to make the monster pretty on the posters, it's probably a bad sign for the rest of the movie.
3) Here's the big one! If the sequel or prequel doesn't follow the first movie at all. If the movie is supposedly following or preempting another movie, then the movie should at least try to do that.  The characters should at least be present, and there shouldn't be major discrepancies.  For example, in The Scorpion King 2, the main character's story doesn't make any sense when compared to the Rock's role in The Scorpion King.
4) The title says trolls, but there are no trolls in the movie.  There are only goblins.  Just sayin'.



ALSO: A friend of mine has created a blog in which he reviews movies.  He's always seemed like a pretty smart guy, and I'm sure that it's going to be interesting.  I read his post was actually pretty darn good, and I read it all the way though. Check it out!

Wednesday, June 1, 2011

Orianna, The Lady of Clockwork: A Review

For those of you who don't know, I am a HUGE fan of the game League of Legends, developed by Riot Games. About a week or two ago, the wonderful people at Riot Games began revealing information about the new Champion, Orianna. The initial information was simply a reference to a techmaturgical (technological magic) ball, along with a sketch of said ball. My interest was immediately piqued, and I closely followed all new information that was released. As soon as I saw what her abilities were going to be, I knew I had to have her. So, I have been saving up my points from the past week and a half so that, no matter how much she cost, I would be able to buy her. I was extremely nervous when I found out she had been released today, and I only 5400 points. If she had cost anything but the top tier cost, I could get her, but there was still that chance. I anxiously waited as my client patched, seeming to take far longer than usual. As soon it was done, I opened it, logged into the store, and found that she was not, in fact, priced as a top tier. I was overjoyed, and I bought her and immediately began to play her. What follows are my initial impressions of her, both good and bad.

First of all, I would simply like to say that she is one of my all time favorite champions, and I have only played her once. However, I knew she was going to be before I even played her. I had created a custom game, and was at the character select screen. I clicked on her portrait, and like all champions, she spoke. I actually think I felt giddy, which, anyone who knows me well enough, knows doesn't happen for just anything. Her voice was reminiscent of GLaDOS from Valve's Portal series. Her voice was obviously female, but also had a metallic, hollow feel to it. The previews Riot had given of her had mentioned that she seemed to the other champions to be nothing more than a hollow shell of a person. Little did I expect to get that feeling myself simply from hearing her.

After playing her, my initial impressions were only reinforced. Her abilities suit her very well, and I believe they add something to the team that has been missing until now. Her main form of attacking is through a device called The Ball. Orianna's abilities take form as commands to the ball. Her Command: Attack sends the ball flying off to a point, damaging all enemies in its path. Her Command: Dissonance releases an AOE effect around the ball that deals good amount of magic damage and then creates a field which slows enemies by 45% and speeds up allies by the same percentage, though this effect diminishes over time. Her Command: Protect attaches the ball to herself or an ally, shielding her/him from a certain amount of damage, and passively increasing the armor and magic resistance of whomever it is attached to. Her ultimate ability, Command: Shockwave, causes the ball to release an AOE effect which deals magic damage, and then after a short delay pulls all enemies in the radius towards the ball.

Using her abilities can be very tricky, but it is well worth it. She is definitely one of the most difficult champions I have ever played, because you have to focus not only on your own placement, but the placement of the ball as well. However, your enemies have to do the same thing. Because of this, she has excellent lane controlling ability, if she is played well. Another of thing that makes her difficult is understanding how her abilities combo together. Her abilities, on their own, do a decent amount of damage. However, if you understand how to combo them together correctly, your damage output is dramatically increased. For anyone who actually wants to play her, I am going to post a few combos that I think everyone should know.

1. Attack-Dissonance: This combo sends the ball towards a point, dealing damage to all enemies it touches, and then releases the AOE damage at that point. This is a great way to kill an enemy in a turret, as they have very little time to react.

2. Attack-Protect: One of the more interesting aspects of Orianna's Command: Protect, is that, as the ball flies towards its target, it actually deals damage to enemies it passes through equal to a percentage of the shield's strength. In this way, it actually acts as a weaker Command: Attack. This combo allows you to very quickly hit multiple opponents, making it great for taking out minions.

3. Protect-Dissonance: This combo, shields the target and then creates the movement enhancing/slowing field. This makes it great for allowing Orianna or an ally to escape from enemies, or allows them to chase an opponent more easily, as they can turret dive more effectively with the shield.

4. Attack-Protect-Shockwave-Dissonance: This combo is a team killer, but only works if you have a tank. You initiate with Attack, getting some damage in. Then, use Protect on the tank, allowing them to survive a little longer. This works especially well with tanks like Amumu. Then you use Shockwave to pull all enemies towards the tank, allowing for AOE damage to be more effective. Finally, you finish with Dissonance to slow any survivors to finish them off.

These are obviously not all the combos you can do, but they are some that I think are incredibly important to remember. Just keep in mind exactly what each ability can do, and you should be good.

There are a few other good points I would like to talk about. For one thing, the range of her abilities is very impressive. She has one of the largest ranges I've seen, which makes her great for fighting around turrets, as well as chasing enemies. Also, the cool down times of her abilities is very reasonable, making it quite easy to spam Command: Attack.

Now, as with every Champion, Orianna does have her downsides. For one, she is incredibly mana hungry. Her attacks don't necessarily use a relatively large amount of mana, considering Morganas abilities generally cost more than 100 mana, but they are used very frequently, do to the low cool down time. While her Command: Attack doesn't cost much mana, spamming it as is necessary can easily eat mana. Also adding to this is the fact that, for a mage, she has a quite low maximum mana. In order to counteract this, I suggest getting an Archangel's Staff as soon as possible, really even before getting shoes.

Also, her passive doesn't really impress me. Her passive makes subsequent auto attacks on the same target do additional magic damage equal to a percent of her ability power. While this can be useful, it doesn't really do enough for me to really enjoy it, as far as I've seen. Granted, I've only played one game with her, but I don't see it really improving. I would prefer something to counteract her low mana, maybe something like Veigar's passive that increases mana regeneration per mana missing.

Finally, I'm not too impressed with how her ability power stacks with her abilities. From what I can tell, most of her abilities only use about 60% or so of her ability power. What this means is that, in order to really use her well, it is imperative to build her with a LOT of AP, meaning items like Soul Shroud or Frozen Heart which would really help her aren't able to be fit into her build as easily. All this really means, though, is that she's a glass cannon, which is nothing new.

All this being said, I am really impressed with Orianna, and look forward to getting much better with her.

In conclusion, I want to talk briefly about particular items that I think Orianna can use well.

1. Archangel's Staff: As I've mentioned before, Orianna is incredibly mana hungry. Archangel's staff increases her maximum mana every time an ability is used, which is quite often for her. In addition, it also grants some decent AP, as well as increasing your AP by 3% of your total mana, which is quite nice. Build this first.

2. Rabadon's Deathcap: This is one of the best AP items in the game, in my opinion. It gives a great amount of AP, plus increases your AP by 30%. Get shoes before this, but then build it as soon as possible.

3. Rylai's Crystal Scepter: This item gives a good amount of AP, plus some nice health, but it's real use comes with its passive. Any time you do magic damage, you reduce the target's movement speed by 35% (15% for multiple target or AOE) for 1.5 seconds. This means that your Command: Attack, Command: Protect, and your Command: Shockwave all now slow enemies' movement speed by 15%. I'm not sure if this speed reduction stacks with your Command: Dissonance, but if it does, ouch.

Well, that's it for my review. I hope you enjoy Orianna as much as I do. Peace.

Saturday, May 28, 2011

Inventory Management - Part Two

I've started fiddling around with an inventory management program. I considered trying to figure out how to work with SQLite, but I ended up deciding that it might not be worth it. I'm still iffy about whether or not the benefits are worth taking the time to learn how to do it.

I decided that I could probably just use a vector to store the width of each board in a bundle. I decided to just do a bit of testing by having a file with a bunch of "boards" in it. This file could be read into an array, and then each element of that array could be used. Right?

I just remembered how my vectors always screwed up. I don't remember how I fixed (or even if I fixed) this problem. I've highlighted a few things for you to look at.

Here's my malfunctioning code. Any suggestions? I'm going to look at it more later, but for now, I shall feast upon steaks.

#include <iostream>
#include <fstream>
#include <vector>
using namespace std;


vector <int> bundles(10);


void pieceCount();
float bdft(int, int);
float bdftM(int, int, float);
float bdftD(int, int, float);

int main()
{
    pieceCount();
    for (int i = 0; i < bundles.size(); i++) {
        cout << bundles[i] << "\n";
    }
   
    return 0;
}

// I believe that my problem is somewhere in here. As you can see, I've added a counter that should print
// out whenever it gets a new piece. It just keeps throwing a 1 out at me.
void pieceCount()
{
    ifstream infile ("bundles.rtf");
    if (infile.fail())
        cout << "The file opening is a failure.";
    while (!infile.eof()) {
        int counter = 0;
        int i = 0;
        int pulled;
        infile >> pulled;
        bundles[i] = pulled;
        i++;
        counter++;
        cout << counter;
    }
   
}


float bdft(int height, int length)
{
}

float bdftM(int pieces, int length, float height)
{
}

float bdftD(int pieces, int length, float height)
{
}

How I Write Code. And debugging. Sigh.

So, there are tons of things talking about all of the different kinds of code writers out there. I'm not sure what kind I am, but I'll take you on a brief overview of how I do stuff:

1) Identify the problem.
  • This one is a rather obvious step. If you don't know what the problem is, then you can't figure out how to fix it.
2) Write down what I think might fix the problem.
  • This can be as simple as a formula or as complex as...well....me writing a whole bunch of stuff. This step is important though, because it allows me to think through the problem. I usually don't identify everything that is going to be a problem during this step, but it helps avoid a bunch of simple stuff.
3) Rough draft of the program.
  • I just start writing. It's messy, ugly, and inefficient. But it lets me actually do some work on it. I can see what's going to work, what isn't, and what I need to rethink. 
4) Rethinking
  • Generally the longest step. This step includes going through my rough draft and figuring out how to fix problems, redesigning the program based off of my new ideas, and then trying to make it better.
  • This step is where the majority of the work should be put in, unless you're just good enough to not need the rough draft. If you're able to predict all of the problems and optimize your code without the rough draft step, then step two is where the majority of your work needs to go. If you're a mortal and need a rough draft though, you'll need to rethink. If you rethink it well enough, you shouldn't have a problem with making the program "pretty."
5) Pretty Code!
  • This is where you do the final draft of your program. This means that the code is as good as you can get it. Everything is neat, clean, and well put together.
6) Debugging
  • Even if you put a week's worth of thought into your program, if it's anything bigger than "Hello World" then you're probably going to have a couple of errors. They'll be fixed in this step.
  • Up in step four, I said "generally the longest step." The generally is there because debugging can take a LONG time. It doesn't always take a long time, and really well designed code doesn't take much at all, but it can take weeks. To fix one problem.
  • PRO TIP: Someone else who is competent with coding will catch the errors a whole lot better than you. Your eyes know what they're looking at and believe everything is right. A friend's eyes don't know why the heck you declared a function as void and are trying to return an integer.
That's just how I do it. It might not be the best way, but it generally works.

Tuesday, May 24, 2011

Inventory Management

I'm working at the sawmill this summer. Fun, right?

WARNING: This isn't all technical and stuff. It's an abstract of a program I'd love to make.

There is one very good thing about it though (besides being paid). I get to see industry at work. One thing I've noticed is how their inventory system works.
A rather brief overview is this: after the tree is sawed into logs and then into boards (and sometimes ran through a molder or some other sort of machine), it is stacked into a "bundle." This bundle can be anywhere from a couple of boards to a couple hundred boards. They can be three inches wide to like sixteen (some are even bigger). Currently, the length and width of every board is put into a machine. This machine then uses a formula to calculate the board feet and linear feet found in the bundle of lumber.

The little machine has tons of great options. You've really got to commend the amount of knowledge that these people (Forestry Systems, Inc.) had to put into their machine. My only complaint is this:  the sawmill does not seem to have any sort of system for using the data the machine gets.

The bundles are assembled into a load, as specified by the salesman. My dad figures out how to make the loads from available-or soon to be available-bundles of lumber. Once the load is tallied it is printed out and dad takes it down the the main office. The truck is loaded with the lumber and a invoice is generated based off of the printout of the lumber. This works, but I can definitely see room for improvement.

IMPROVEMENTS:
  • The system would work a WHOLE lot better if the office could see everything that has been tallied. 
    • There are lots of bundles of lumber that get tallied then not put onto a load. There are also tons of lumber that HASN'T been tallied that just sits around waiting to be tallied. If all of these could be tallied and put into a running inventory that the office (particularly the salesman) could see, then it seems that everything would run a bit smoother.
    • There would need to be some sort of way of keeping track of where the lumber was stored. This would be tricky because the lumber is moved a LOT. The lift drivers have to move some bundles to get to others. Keeping track of every little move would get really old really quick.
  • Having a few different "statuses" for the lumber. Let's say that a bundle is tallied. It's status could be "Ready to Ship." But then dad decides he needs it to get dressed. When the forklift driver gets it and brings it to the place that dresses (pretty much just smooths out) the lumber, the bundle number could be entered at that place. The status would then be changed to "Being Dressed." Once it was finished and back in stock, it would again be "Ready to Ship." The inventory would reflect that this bunk was now "Dressed" instead of "Rough."
    • Having this feature would eliminate the problem of dad having to run around all day trying to figure out where lumber was.
  • Other stuff. As you can see, this is a rather large category. I don't really know what all I want it to do exactly. I'll have to do more research. The main idea behind it all is that the lumber is tracked better and this tracking translates into people being able to see where the lumber is and what it's doing at all times. 
I'm going to start trying to watch and take notes on what a complete inventory system would do. There is obviously a ton of code that would need to be done for this. Not the mention the necessity of a GUI.

List of things I'd need to even start:
1) Knowledge of how to make a database. I'm thinking it wouldn't need to be bigger than 1000 entries for dad's sawmill, and it's the biggest in the Eastern US. I don't think anywhere would need more than that.
2) More information. I'll have to wait and see what they actually use and what they really don't.
3) Time. Duh.

Anyway, those are just my thoughts. If you've got any suggestions and such, please let me know!

Wednesday, May 18, 2011

I love the Food Channel.

I love the food channel.  That's probably because I love cooking. I mean....those two things go hand in hand, you know?

If you've ever watched the food channel much, you've seen the Barefoot Contessa. I hate her. She's just the worst person ever and I don't like her.

The end.

Saturday, May 14, 2011

My Updates are Cooler than Michaels.

My freshman year of college has ended.  Holy. Crap.

It somehow didn't manage to hit me until right now. I mean, I've got a few more years until graduation, but it's still a big step.  I just...it's weird.  In the best of ways.

So what did I learn in college?

Waaaaaaaaaaaaaaaaaaay too much for all the blog posts ever. But hey, I can relay a few tips to you.
  1. The first thing that people need to know about college is that it really isn't that different from high school.  Sure, there's more freedom and junk like that, but it's not different enough to change my opinion of school.  It may have been different for other people, but to me, nothing changed a TON.  It would seem to me that if you didn't like high school, you'll like college even less.  But hey, it might just be me.
  2. College is EXPENSIVE.  I'm sure you thoght you knew that, but you don't realize the full cost.  Yes, you'll spend $600 on books.  You'll blow lot's of thousands on school itself.  The cost that really sneaks up on you is the cost of living.  You'll want snacks for in your dorm.  You'll want to go out to eat and see movies with friends.  God forbid you want to go out on a date--assuming that you're a guy and will pay for everything.  Now, everyone doesn't spend a ton.  My roommate and I never bought snacks, but I did spend lots going out to eat and everything.  I probably spent $100 or so per week.  My roommate probably spent...$0-$25 per week.  It all depends on your personal spending habits.  I'm just saying: tuition isn't the only thing you'll be paying for.
  3. Did you know that studying works? It was a revelation to me for sure. In high school, I always just payed attention (kinda) in class.  Tests always had a nice 100 on the top of them.  College?  It's a whole lot harder.  You'll need to actually put effort into what you do.  Read the book, do the homework, study. You'll do a whole lot better for it.
  4. Buy an alarm clock and actually use it.  I know lots of people who overslept nearly every day. (Eyes on you Michael and Graham).
  5. Keep your packing light. Else, moving out will suck hard.
  6. Roll with it. You can't expect everything to go right all the time, and you're just going to have to learn to deal with it.
  7. Plan hard. Plan often. Plan well.  As numero six says, it won't always work. It doesn't hurt to try though. The more you plan, the more will go according to plan. It's just good for life.
  8. (And Jonna added this one while I wasn't looking) LUV YOOR GIRLFRAN WICH YOOR HOLE HART. SPEEND ALL YOOR MUNY ON HER.

Tuesday, May 10, 2011

Just an update...

Well, as you may have noticed, I do not post anywhere near was often as Linell. This is not because I do infinitely more interesting things with my time than he does (not saying that I don't *cough* *cough*), but more because I just don't often have a lot to say. More accurately, though, I completely forgot this existed over the past few days, and here's why:

1. Exams are a b****. I just thought everyone should know that. Now, I'm not saying that every college class is uber hard and you should be scared (for those of you yet to join the ranks of the tired, broke, and hungry), but at least one class a semester you get a teacher who makes you want to punch a Wookiee. For me, that has been history both semesters. Last night, as I was studying for this exam with my good friend Ryan, I realized that at least half the material listed on the study guide (yeah, we actually still get those sometimes. Like I said, college isn't EVIL) we hadn't actually covered, and the rest was mostly just mentioned in passing. So, after I'm done typing this up I'm going to study a little more for that.

2. League of Legends is the most evil creation known to man. Now, I confess to being a huge fan of World of Warcraft. I only have one level 85 and he's not even fully geared, but I enjoy the game greatly and play often, when I can afford the subscription. This being said, when I first tried League of Legends I hated it profusely. For those of you who don't know, League of Legends is a game based on a mod created for Warcraft III known as Defense of the Ancients, or DotA for short. Basically, it's a PvP game where each player controls a champion and fights alongside other champions, as well as minions, to try and destroy the opposing teams "Nexus." It has RTS style controls and each of the heroes has four abilities - three general abilities and one "ultimate" ability - that they can use in addition to attacking. Now, when I first played it, I understood it's merit: It had decent mechanics and the variety among champions and roles was pretty good, as well as having well done graphics, especially for a free to play game. However, the worst thing for me were the controls. I felt that if I was playing with point and click controls similar to an RTS, I should be playing an actual RTS - with full control of armies and buildings and the like. Hero combat, to me, should be carried out like World of Warcraft PvP. However, after playing a few rounds with a couple of friends who really play, I began to enjoy the game, which quickly turned into us playing it for 12 hours straight, two days in a row. I'm not proud of this, nor am I really ashamed of it, it just happened. This being said, that's 24 out of 48 hours that I didn't use for other, some might say more important, things.

3. Sleeping is fun, but apparently my body doesn't realize this.

4. Webcomics are the second most evil creation known to man. Specifically, the one that kept me from sleeping last night is the one I would like to mention. It's called The Fancy Adventures of Jack Cannon and it is by far one of the best webcomics I've ever read. The art is amazing, and the writing no less so. It can be found HERE. It's definitely now up there in my list of favorites, which include such other webcomics as xkcd, Cyanide & Happiness, and Manly Guys Doing Manly Things. If you have time (which you don't trust me). you should check it, and all the rest, out.

So, now I'm going to go study for a final for a teacher that makes me wants to kick dinosaurs in the testicles. Have fun, and I leave you with this:

Sunday, May 8, 2011

Off-Grid

Once per year or so, I just get an itching to go out in the woods and stay there.

I know I could do it.  I want to do it.  I just can't seem to find the time.  Since the summer between my junior and senior year of high school, I've either been at school or working.  These two things just don't lend themselves to a man living off-grid in the woods.  Plus, I just don't think Jonna would be okay with me if I lived in a hut without running water or electricity.  In fact, I rather doubt that she would visit.

But I really want to.  I've thought about it a lot.  Here's my plan:
I live in the middle of nowhere already.  Finding an abandoned spot to set up camp would not be a hard thing to do.  Finding one that would allow me to farm and have clean water would be harder, but I am confident that if I was given about a month to find a place, I could find a pretty nice one.  A week would probably be enough time even.
Secondly, I would need to bring a few tools.  I'm idealistic, not stupid.  I would want a few pots and pans, some utensils, an axe, a hammer and nails, a sleeping bag, and a bunch of other stuff I'm too excited to think about right now.  The list would be large, I admit, but I would be able to carry them in just a few trips.  I want to live off-grid, not like a caveman.
Thirdly, I would need plants.  Obviously, I would bring a good bit of food.  I would want to be able to be self-sufficient though, which would mean that I would need to bring stuff to grow.  Tomatoes, potatoes, beans, and corn.  I'm sure there are a few other things I would bring along once the time to go actually rolled around, but those are the ones that come to mind right now.  If I was going to be there long term, I would also want chickens and a greenhouse, maybe one like this.

How could I possible live with just a few tools, some food, and plants?  Simply.  My first order of business would be to set up a shelter.  A little hut wouldn't be hard to build, and I could live in a tent until it was finished.  I would need a method of collecting water (and probably a little stream and some filtration system).  And that's it.  Obviously stuff *will* go wrong, so I'll need a cell phone and/or radio too.  And a first aid kit wouldn't be a bad idea.  And a gun.  You can never go wrong with a gun.

But I really, really want to do this.  I'll probably never have the chance.  As far as I know, I'm planning on being a slave to consumerism for the rest of my life.  And that's fine.  It's just a wandering thought that I have always had, and probably always will.

*long, heartfelt, pitiful sigh*

Monday, May 2, 2011

A Note of Things to Come

So, yeah, it is my birthday. Woot. You know what I get? A paper on Ayn Rand, a Cal II test to study for, and a World Civ presentation to do. Great birthday, right?

Anyway, what all this means is that I won't be able to write the post I was planning to. However, later - meaning probably Thursday by the looks of things - I WILL get around to it. Basically, I'm going to summarize all the factors about Bin Laden's death that Conspiracy Theorists are going to make passionate love to. Should be fun.

Anyway, I leave you to go write papers and MAYBE get a short nap before class. Also, I will leave you with a video that always helps me when I'm stressed out; maybe you can use it too:

Osama Bin Laden Killed

"Today, our fellow citizens, our way of life, our very freedom came under attack in a series of deliberate and deadly terrorist acts," president George W. Bush said on September 11, 2001.  His speech continued to say that "thousands of lives were suddenly ended by evil, despicable acts of terror...The search is underway for those who are behind these evil acts. I've directed the full resources for our intelligence and law enforcement communities to find those responsible and bring them to justice. We will make no distinction between the terrorists who committed these acts and those who harbor them...None of us will ever forget this day, yet we go forward to defend freedom and all that is good and just in our world." (full speech)

Bush's goal has finally come to fruition.

If you don't want to watch the video, I'll summarize it for you.  Osama Bin Laden, the man who planned out and saw through the 9/11 attacks that killed 2,977 Americans, has been killed.

Bin Laden was found in a custom built compound about 31 miles north of Islamabad.  The compound had 18 foot tall walls topped with barbed wire, minimal outward facing windows, a series of walls on the inside to protect the occupants, and a seven foot tall privacy wall for the balcony.  Navy Seals hit the compound surgically.  In what I'm sure would make a good movie, four combatants inside of the building (including Bin Laden) were killed.  A woman being used as a human shield by one of the men was also killed.  Also contributing to the operations screen-adaptability, an American helicopter was destroyed due to mechanical failure.  There were no American causalities.

Using facial recognition software and DNA testing, the death of Bin Laden has been confirmed.  While it could probably be said that Osama Bin Laden is not as important now as he was in years prior, it cannot be said that his death is not a huge boost to American morale.  In a long and drawn out war, it is refreshing to see the man who started the ball rolling killed.

In conclusion, AMERICA.

Sunday, May 1, 2011

Guess What. I AM LINELL!

Guess what else.

Osama Bin Laden is dead.

Of course, these were some of the people we were up against:


(more news to come)(after I get back from celebrating via some very American food: Waffle House)

Guess What? I'm Not Linell!

Holy poop, this blog now has two authors. You know what that means? It means you get this cool interactive hamster, is what!


You can click on the screen to feed him, and you can make him get back on the wheel by clicking the center of it. I think I'm going to call him Baron von Hammstër. Make sure you take good care of him, otherwise he will do this:





Granted, that's a Guinea Pig, but the statement stands.

EDIT: Linell has just informed me that if you hold the food up so he cannot reach it, and move it back and forth a little, Baron von Hammstër will dance.

Saturday, April 30, 2011

Websites. How Do They Work?

Waldoff Group's Website

I'm computer savvy.  Give me something to do and I can figure it out.  I'm that kinda guy. 

Websites, however, just piss me off.  I've never really done any web design before, but hey, Mr. Milton is a great guy (who pays REALLY well) so I decided that I would give it a shot.  Here I am though, trying to edit his "Clients" tab.  And Dreamweaver just doesn't work.  What he wants me to do is simple.  All it needs is to have the clients listed in alphabetical order with their location beneath the name.  Simple as pie.

But Dreamweaver makes it so complicated that I want to throw my computer across the room in frustration.  I don't, because Macs are overpriced and I couldn't replace mine, but the desire is definitely present.  I'm still working on it, but if you've got any experience with Dreamweaver (or anything else that you can use to help me fix the problem for him) please, please direct me.

Also, it's a rather snazzy website isn't it?  I'm proud of the things I've done to it.

Rock Paper Scissors


I'm awake waiting for Taco Bell. While waiting, my roommate and I decided to indulge ourselves with stumbleupon.  As we stumbled, I can across a RPS Machine produced by The New York Times.  This machine is rather uncanny in its ability to predict what choices you make in selecting your throw.  Michael boasted that he could beat it.  Well, he didn't do much better than me.  But that prompted an immediate RPS duel.

And because we're comp sci majors, we obviously geeked it up. We kept track of each throw that we made, and would stop after a set number of throws to explain our logic. My throws were...terrible. BUT! There was a method.

We played three games. The first consisted of six rounds, the second seven rounds, and the third eight rounds.  In total, Michael had fourteen wins and I had two.  There were five ties.

Michael threw eight scissors, I threw four.  Michael threw eight papers, I threw thirteen.  Michael threw five rocks, I through four.  I also threw the bird a few times because I'm a sore loser.

In total: scissors was thrown twelve times, paper was thrown 21 times, and rock was thrown nine times.  With a little bit of math, 28% of throws were scissors, 5% were paper, and 19% were rock. Of the WINNING throws, 33% were scissors, 29% were paper, and 14% were rock.


While we haven't exactly cracked the code yet, and we've made it to Taco Bell and back now and the discussion is now more focused on how amazing the double layer tacos are, so we probably won't.  But it's still nice to know that we *might* one day.

And, as a treat for actually reading all the way through a post, here's a link to a helpful little guide to winning RPS. Now to memorize this while Michael is busy stuffing his face.

Friday, April 29, 2011

Chillout

Hey.

You're okay.

You'll be fine.

Just breathe.

I really like this song, and this story. There are plenty of days where it feels like everything is blurry from the speed life moves at.  Trying to juggle 19 hours of class, a girlfriend who lives an hour and a half away, two jobs, AND a social life isn't easy.  Stuff piles up quick.  Sometimes it's just nice to here that everything will be fine. 

http://www.zefrank.com/chillout/

ZOMBIEZ! Rough Draft

For my high school senior project, I had the ballsy idea to research zombies. It was actually really, really fun and I'm glad that I did it.

This is the rough draft of my paper. My teachers wouldn't accept 11 pages instead of 5 though, so some of the crappier bits were cut out for the final. It's not terribly shabby as it is, but my writing has improved a bit after a year of USM. Anyway, here you go!

Show/Hide