mylifeiscode

The life and musings of a software developer.

Chris 2.0

So lately I've been trying to change up my life a bit for the better. Not that anything has been bothering me or is inherently wrong in the way I'm doing it so far, I just want to switch it up to make things interesting (and sure, there's a health benefit as well).

First, I'm trying to get to bed earlier and get up earlier so that I can go for a morning run. I tried it once a few weeks ago and have never felt so awake and alive! It's easily the best way to start my morning, and after trying it again Monday I didn't even need my morning coffee! Besides that bit of exercise, I'd like to start going to the gym again for leg and arm days, but that's something optional and not part of the aforementioned life-changing plan.

Second, I want to either code or write a blog (like this one!) every day after work. I used to spend all of my time in the evening playing League of Legends, and after CLG got 3-0'd by Curse I felt it was a good time to take a break from the game (I was so sad...). I uninstalled League of Legends to remove the urge to play it (well, to make it more difficult to play - the urge is still there). We'll see how long I can last.

Finally, I'm going to start saving more money. I started by getting groceries and reducing how many times I go out and eat - so far we've cooked and ate at home here for the past few days (with one exception). I'd like to save up enough cash to eventually put down on laser eye surgery, some dental work, and other random things that pop up that I need extra cash for.

Oh, and on another note, I went from 184 lbs to 162 lbs in about a month and a half. I never had much of a belly (just a tiny bit of pinchable fat), but the fat is almost completely gone now and I want to lose the rest of it and work on building and toning muscle.

I hope to have more of this site developed by the end of this week, so stay tuned for updates!

CakePHP 3 - it's alive!

Okay, so my blog is finally up and going on the latest version fo CakePHP 3, which is the 3.0.0 beta released this past Saturday.

In my life I have never had so much trouble getting a framework installed. It has been complete and utter hell since my co-worker suggested switching to it for the project we're on at Pharmedio, where I work.

It seemed fairly simple at first. I downloaded the .zip file as normal from their site, but then noticed half the files were missing and Composer files were inside. "Ah, they're requiring Composer now!" So I went and installed Composer so I could set up the site. After installation, my local server (XAMPP) threw some PHP5-intl errors, saying they were missing.

I went and enabled the PHP5-intl extension in the php.ini file, then my XAMPP exploded with 15 errors telling me some icu files were missing:

icuin36.dll, icudt36.dll, icuio36.dll, icule36.dll, iculx36.dll, icutu36.dll, icuuc36.dll

Thanks to a user having the same problem on StackOverflow, I was able to fix the errors by copying those files into a different directory. There was probably an easier way to go about it and add some PATH variables somewhere, but I was in a hurry and getting more impatient by the minute.

So phew. It was up and running. I read the blog tutorial on the CakePHP website and fell in love with it pretty fast. No need for past tense, I suppose - I'm still in love with it. CakePHP 3 is super clean, man. The controllers, the views, everything. Functions that normally took 20 lines take like 11 now. I'm mostly a front-end developer at Pharmedio, (so my knowledge of backend controllers is a bit limited) but there's no worries here because it's incredibly easy to pick up and get the ball rolling. This blog itself is built on their blog tutorial and their users tutorial, actually.

So after I toyed around with it, I thought "I'm going to get this thing installed on mylifeiscode.com, and replace that old Joomla site I have there." I was worried about the issues I ran into with Composer and intl, but figured I could work my way around them.

So I try installing it on my old website server, hosted by Rochen. I didn't have access to SSH, so I had to open a ticket with them to get it enabled. They asked what I needed it enabled for, and I said I was going to get Composer and Git installed so I could pull down the new CakePHP 3 website I'd been working on.

Nope! Not allowed. Wait, let me get the responses from my email real quick:

Chris, this (Composer) is not something we're able to allow to be installed on any of our shared servers.

Damn.

So I look into installing it without Composer, since my buddy Nicky at work said it was possible. With his help, I found a version of it that didn't need Composer, installed it, and...

Boom. Ran into another missing class error, associated with intl again. So this time I'm really excited and I think, "Okay, great! I'll just get intl enabled on the server and we're good to go!"

Wrong. I ask the support at Rochen if they'll enable it, and get:

Hello Chris,

Unfortunately, we cannot modify the PHP configuration in a shared environment. In order to control the PHP configuration, you would need either an MCS or an MDS solution.

Crap! No dice, again. So I just can't use CakePHP 3 on any of my Rochen servers.

Fortunately, my boss comes in to save the day. He says, "Hey, I can give you some server space on my site if you need it!" He sets me up an account and I try it out - this time I run into some SSH errors before I can even attempt the CakePHP 3 stuff. On all of his sites the SSH runs fine, but for some reason on mine it goofs up. I tell him not to worry about it, and instead go to GoDaddy.

I cautiously ask support before purchasing a hosting plan. "Do you guys support Composer and PHP5-intl on your servers? I need this to run CakePHP 3, which was just released as beta this past Saturday." Fortunately, they do support it, and I get an account set up right away.

I pull everything down from my servers, get giddy with excitement, and...

Bam. Another freaking intl error. So I ask support to enable it (which they should have done to begin with when we were chatting about it, but people make mistakes, so that's fine). The guy on support fixes the error and enables intl. Yes! I refresh the page, and...

PDO class not found

DAMN IT. Okay. Let me get support again. The guy says, "Hmm. This is beyond my scope of support. You'll have to contact tech support at support.godaddy.com. (Where...was I to begin with?) So I finally say:

Me: "I think that error can be fixed by typing 'yum install php-pdo' then 'service httpd restart', but I can't use those commands through SSH for some reason."

Support: "That command is not available with our shared server hosting." (REALLY?!)

Me: "Hey, can I just get Composer installed on the server? I think this will clear up a lot of these library issues."

Support: "Sure, you can install Composer."

Me: "...can I use the basic 'curl' then?"

Support: "Yes, that is allowed."

Okay, great. Finally. I install it through curl and get Composer setup. I create a new CakePHP 3 project, port some files over, and finally - the site is live. Here I am. Holy. Fucking. Shit.

It took a few days of support, but it's finally up. This better be worth it!