Wednesday, May 29, 2013

Subscription Software and the End of Used Games

This morning while drinking a diet coke and trying to fully wake up, I was browsing the tech section of Google News and stumbled upon an article regarding Adobe’s new Creative Cloud. To summarize, the article discussed how unhappy Adobe customers are, about moving from a buy-once license that never expires to a subscription model. This comes after last week’s Xbox One announcement and the subsequent rumors about the lack of used-game support. It seems like there are quite a few software companies that are pissing off their user-base. Why is this happening, and is it all...

Read my full article at

Friday, May 24, 2013

Wieght Loss Update

I reported a few weeks that my diet is going well. I can now report that I've made it to my first goal, 200 lbs! Starting from 215, (and 220 last fall), I've lost 20 lbs, and I'm still going strong.

One thing I've confirmed is my believe that it all comes down to math in the end. If you eat more calories than you burn, you gain weight. If you eat less than you burn, you lose weight. Granted, the body doesn't like losing weight and has lots of tricks to work against you. Slowing itself down metabolically, for example, and burning less calories just in life processes. But if you push through, things happen. It's slow though.

It's been almost 4 months now, and I still see almost zero difference when I look in the mirror. As it goes though, the percent lost with each pound goes up, so hopefully change will accelerate. The next goal I have in my sights is 170.

I did, unfortunately, have to lower my calorie limits starting next week. Since I weigh less, I need less, so the number has changed from 2194 to 2000. I'm rounding down a little because I've been way under the limit for several weeks in a row. The good news is that to maintain 170 lbs, even with very little exercise, the number is 2150. So when I get there, I can still eat a decent amount.

Thursday, May 23, 2013

Storing and Retreiving Dates - PHP

I had a bit of free time over the past week, and I started working on the final section I promised to convert to CMS for the CESAC website. This section involves the annual career fair, and to save down on the number of variables I looked for static relationships. The first thing that jumped out at me were dates.

For each career fair, there are four dates that need to be dealt with. Early registration, company info sessions, career fair, and post-fair interviews. The nice thing about these is that the latter three have a static relationship. The info sessions are always the day before the fair, and the interviews are the day after. Really then, only two dates need to be stored. This does pose an additional challenge of finding the next day and previous day of a specified date, but it's worth it to cut the inputs down by half. Less to store, less code, and less chance for user screw up.

The question then became, how do I best store the dates to save space and use the most efficient code in conversion for display. In previous sections of the CESAC website I'd stored dates as three separate numbers. Example:

September 18th, 2013 becomes: month = 9, date = 18, year = 2013

Not elegant, because one needs three inputs instead of 1, and three columns in the SQL table instead of 1.

I started looking for a better way and found a few ideas, none of which I really liked. I considered an idea of creating a single large number which would then be converted mathematically into the final three numbers. These three would then be converted using PHP date() function into the final display form. Example:

September 18th, 2013 becomes: date = 09182019

I still didn't like this, because it required some complicated mathematical code, plus a second step of the date() function. I finally gave up on storing as a number, and looked into characters. Storing as:

September 18th, 2013 = date = '9-18-2013'

This might be able to plug directly into date(), saving time. In the process of testing I discovered that if the input format was changed into '2013-9-18' (which makes more sense from a logical perspective), it could indeed be placed directly into date(), saving considerable time. Success for step 1!

This left me with the issue of figuring out how to get the next/previous day. I was hoping to avoid doing some custom function writing. It would require an array of the max days in each month, to figure out if the next day was actually the 1st. Plus a math function to figure out leap years. I was saved from this by the internet, and I found that the php function strtotime() could do it for me!

  $previousDay= date("F dS, Y",strtotime($specifiedDate." -1 day"));

The outputs into the correct format, and does the math for me, no matter what is the specified date. the final code, after pulling the raw data with a query, ends up being:

  $displayDateInfo = date("F dS, Y",strtotime($dateCF." -1 day"));
  $displayDateCF = date("F dS, Y",strtotime($dateCF));
  $displayDateInt = date("F dS, Y",strtotime($dateCF." +1 day"));
  $displayDateReg = date("F dS, Y",strtotime($dateReg));

Clean, concise, and with half the columns used up for storage.

Thursday, May 9, 2013

Why Same-Sex Marriage Will Destroy Society

1. Being gay isn't natural. Real Americans reject unnatural things like eyeglasses and oral sex.

2. Same-sex marriage will encourage people to be gay, just as hanging around tall people makes you tall.

3. Same-sex marriage will open the door to very strange behavior. People may even marry animals, since pets have legal standing and can sign a contract.

4. Straight marriage has been around a long time and hasn't changed at all. Women are property, blacks can’t marry whites, and divorce is still illegal.

5. Straight marriage will be less meaningful if same-sex marriage were allowed. The sanctity of Brittany Spears’ 55-hour just-for-fun marriage would be destroyed.

6. Straight marriages are valid because they produce children. Gay couples, infertile couples, and old people should't be allowed to marry because our orphanages aren't full, and the world needs more children.

7. Obviously gay parents will raise gay children, since straight parents only raise straight children.

8. Same-sex marriage is not supported by reIigion. In a theocracy like ours, the values of one religion are imposed on the entire country. That’s why we have only one religion in America.

9. Children can never succeed without a male and a female. That’s why we forbid single parents from raising children.

10. Same-sex marriage will change the foundation of society. We could never adapt to new social norms, just like we haven’t adapted to cars or longer life.

Wednesday, May 8, 2013

Dieting Update

Back in February, I posted that I am trying to lose weight and get healthier in general. I set the official starting point at 215 (because different weighing machines at different locations had given me a range from 212-217), and have gone from there. You may remember that my initial goal was 200 lbs, and my long term goal is 170.

It's been 3 months, and I can now report ... mixed results. In terms of weight loss, I've lost 11 lbs and am now at 204. That part part I'm pretty happy with, it's moving. In terms of fitness, I'm not doing so well. I've been working a 50 hour week and then spending most of my weekends traveling, over the past 4 months. Free time to go exercise is limited. I've tried to keep at least one hand in the game, but I'll admit that I haven't really done much recently. This summer my free time is going to increase, so I'll be putting a larger portion of it towards exercise.

That also should help with the weight loss hump I've been told about. The first ten or fifteen come off easy, but after that it slows down? Maybe so, but I've lost the first ten from basically just diet. When I start exercising seriously, that should help as well.

Calories aren't the only thing I've been counting though. I'm also watching saturated fat and sodium. 20g and 2g, respectively, are my daily guidelines. Like calories, I average them over a week and it's the weekly limit that I keep under. In fact, staying under saturated fat has made the calorie limitations much easier. There are so few processed foods that have lots of calories but not much saturated fat. Pasta is one, so it's a good thing that I love pasta. As to sodium, I just started it last week, and went over my limits. This week I'm trying harder to stay under, so we'll see how it goes.

Tuesday, May 7, 2013

10 Signs That You Are a Lazy Blogger

1.) You may have trouble finishing things.

Friday, May 3, 2013

Morality of Solution Manuals For College Homework

I recently got into a discussion with a former professor about the morality of providing college students with a solution manual to problems in a textbook. I’ve taken several of my emails and re-written them here, polished up a tad bit.


Background Knowledge: Many college courses use textbooks to help provide reading material, as well as assign homework from. Many of these textbooks have a companion solution manual, published by the same publisher. Most professors attempt to tightly control access to these solution manuals.

The Question: Is providing students with a solution manual morally wrong?

  • I submit that the point of taking a college class is to learn useful knowledge and skills.

  • I submit that students are taking the class of their own free will, and in fact paying to take it.

  • I submit that if a student fails to learn material, the only being harmed is that student. (No one else!)

  • If a student was taking classes just for themselves, there would be no need for anything other than learning. No need to exams; No need to prove knowledge to anyone. However, this is rarely the case. Most commonly, students take college courses in order to get a degree (and therefore a more profitable job). Since Purdue (or whatever university is in question) grants this degree on the assumption that students are really learning the knowledge that is taught, Purdue is putting their name on the line to say that X student does know X knowledge. Therefore I'll concede that X knowledge needs to be tested in some way. Hence we have exams.

  • I therefore submit that the purpose of exams is to test knowledge, while the purpose of homework is only to help students learn.

  • This affects our current topic (a solution manual to homework problems in the textbook). If the sole purpose of homework is to help students learn, then testing and proving knowledge should be no part of it (That should only come into play during exams). It doesn't matter if a student knows the material during or after homework. From this it follows that homework should not only not be graded, it should be optional. In a perfect world, homework would be optional completely, and if turned in would be checked to provide feedback to students; it would not be graded though. This would allow students the opportunity to learn, without punishing them for not learning fast enough.

    We don't live in a perfect world though, and there is also the consideration of how to we keep students involved. Many professors feel the need to force students to be involved. Hence homework is graded (and attendance is recorded). While I disagree with both of those, it's just the world we live in. We can mitigate them though, by making homework (and attendance) worth very little. And by dropping stupid homework policies like keeping track of how students complete homework. This brings us to the solution manual.

    With students that use a solution manual, there are three possible situations (One might argue that 2 and 3are the same, but I'll address each separately for the sake of logical completeness).

    1. Students attempt homework problems before looking at the solution manual, using it to check answers and help with areas they still don't understand
    2. Students copy word for word from the manual without first attempting the assignment, but still pick up a lot of the knowledge just through memorization and repetition.
    3. Students copy word for word from the manual without first attempting the assignment, and learn nothing.

    Lets examining all three of these possible scenarios.

    In scenario 1, students are learning the material without copying. I've found that most professors don't object to this, but also don't believe that it ever happens (assuming instead that students will always take the easy way, and that any other assumption is just nativity). Regardless of the frequency though, if no one objects, then it's not a problem.

    In scenario 2, students are copying, but still learning. I've found that this scenario too is assumed to be highly unlikely by most people. And unlike scenarios 1, I'll concede that it probably is. However, again regardless of the frequency, if the student is still learning, then it's not a problem.

    Finally, we have scenario 3 (The only area where there seems to be actual disagreement). These are the students who will look at the solution manual, copy word for word, and not learn anything. These students are the reason that professors for the most part try their hardest to remove solution manuals from general availability. But here is the thing. There's nothing wrong with students doing this, and here's why.

    If you look at my assertions 3 and 4 together, I submit that students who are learning for themselves are responsible only to themselves. Responsibility to Purdue only comes into play when Purdue is putting it's name on the line to vouch for a student. Since exams cover the testing and validation of knowledge, Purdue is covered. Therefore until a student takes an exam (during homework, for example), they are responsible solely to themselves, not to Purdue (and not to professors). If a student doesn't want to learn, then a student doesn't have to learn. It follows that if a student doesn't want to complete homework assignments or do complete them in a way that doesn't help learning, then they don't have to, and professors shouldn't be attempting to force them. It is the professors' job to teach students who are willing to learn, not to control students who are unwilling to learn.

    This covers all three possible situations that arise from students having a solution manual. If none of them are objectionable, then having a solution manual isn't objectionable. Additionally, another reason that banning solution manuals is silly is that going to office hours has the exact same result. Solutions are provided. And nearly every college course has office hours.