A PHP Error was encountered

Severity: Notice

Message: Only variable references should be returned by reference

Filename: core/Common.php

Line Number: 257

Impiety.net - Archive
SGV Chrome Update

So I've been hearing from people that chrome no longer supports extensions provided independently of the google store. Thats pretty un-google-like, but for some reason they're not allowing you to do this anymore. I've changed the chrome download link (THIS chrome download link) from a .crx (the extension file type chrome uses) to a .zip.

What you're going to need to do is download this zip, and extract the folder inside. If you're using a mac, this will happen automatically; in windows you'll need to click on the zip and move the folder inside somewhere else (desktop is fantastic for this). This folder (which should be called NCSUSGVExtensionChrome) contains all the files necessary for the extension to work in chrome. From here, open chrome, go to the extensions page (tools -> extensions in windows, chrome -> preferences -> extensions for mac), and click the button that says "load unpacked extension" (You may have to click the check box for "Enable developer mode" at the top of the page to see this). This should open a file dialog. Browse to the NCSUSGVExtensionChrome folder you just downloaded and pulled from the .zip, and choose it. You should be good to go now! So, to review:
  1. Download the chrome extension
  2. If windows, unzip the file.
  3. Open Chrome
  4. Navigate to the extensions settings
  5. Check "Enable Developer Mode" if you don't see the "Load unpacked extension" button.
  6. Click "Load unpacked extension"
  7. Enjoy!
Quick SGV patch, Firefox v1.1 Release

Like I mentioned in the previous blog post, Firefox is a huge pain to write extensions for. I finally decided to bite the bullet and get the firefox extension up and running, and wow what a hassle. Seriously, I could detail just how awful it is to write an extension for firefox – what with its old, archaic structure, confusing and outdated documentation, and cumbersome installation. But I won’t. Instead, just Download and install the add-on here An important note to Chrome and Safari users: I’m really sorry, but you guys need to re-install the extension. I had a pretty stupid bug in the code, and it ended up causing some trouble for people with online classes. Also, the extension was not updating properly, so that’s fixed as well. Baring something catastrophic, you should never have to mess with this extension again – it will autoupdate as necessary should I find any other problems. You can grab the new guys below. You might have to manually uninstall the previous version again (sorryyyy). If you're unsure about how to uninstall the old extension, see the bottom of the previous blog entry for a quick breakdown of how to do it. Google Chrome Extension Safari Extension
Quick Schedule Grid View Extension Update

Hey everyone, just wanted to throw a quick update up here for anyone that didn't grab the schedule grid view extension update a few months ago when I put it in beta. The new version was entirely re-written in javascript, so you can refresh your schedule as you make changes to it. Its also much faster, and doesn't require a connection to my webserver. Additionally, clicking on the day of the week will show you a google map of your classes for that day. The firefox version isn't quite ready, but it will be at some point this week when I have a little more time to get around to updating it. For now, the safari and chrome extensions can be found below. OH, also: if your google map points you to downtown raleigh at any point, its because NCSU's building database is hugely out of date. For example, buildings on Cates Ave were listed with an address of "Katlyn Cates Ave" or something like that, which doesn't exist. Not sure why this is, but in any event if google maps gets a street it can't find, it approximates to raleigh nc (downtown raleigh). If this happens to you, post the building name here or message it to me on facebook and I'll update the version of the building address database in the extension. NOTE: You will NEED to uninstall the previous version from your browser for this to work properly. From now on it will update automatically from my website, but the previous version did not have this capability. Google Chrome Extension Safari Extension To uninstall in chrome (windows): tools -> extensions -> uninstall "ncsu calendar grid view extension v1.0" To uninstall in chrome (mac): Chrome -> preferences -> extensions -> uninstall "ncsu calendar grid view extension v1.0" To uninstall in safari: Safari -> preferences -> extensions -> uninstall "ncsu calendar grid view extension v1.0"
Impiety.net v3.0 LIVE

SO! It’s been a while! First off, welcome (back) to the new site! The re-work was a long time coming, and I finally found the time to get around to it this past month. Everything from the previous version of the site was THROWN AWAY and I started completely from scratch. I had some help from a friend called CodeIgniter though, which made rebuilding the site a hell of a lot easier. The old site was built entirely from scratch, without the use of frameworks, MVCs, etc.; All straight up, plain, unassisted php/mysql. And wow, what a lot of work that was. I know the most important rule of engineering is “don’t recreate the wheel”, but I learned so much from building the old site that I think the effort was completely justified. Not to mention that if I hadn’t spent all that time re-inventing the wheel, I wouldn’t be able to appreciate just how easy frameworks make things. I’m sure every web developer and their mother are already using some kind of framework, but just in case you’re not, start right now. Seriously, the code base for the site shrank exponentially, from thousands of lines of php to MAYBE 100 lines of function calls and simple math. Anyway, that’s my plug for CodeIngniter, and web frameworks in general. I’ll have some posts up about the process and some stuff I learned up some time this week, but until then enjoy the new site, drop a comment below, etc etc. Cliff out.
Schedule Grid View Extension v1.0

SAFARI USERS: As Safari does not currently have a built-in extension manager, you will need to right click "Save Linked File...", find where you saved the file, and then double-click on it to install. Sorry for the inconvenience, but Safari isn't going to let this be a one-click deal. (Also, should the file save with a ".txt" at the end, simply remove the ".txt" and then double-click and you should be good to go) EDIT: Wow, I'm glad to see so many people are excited about this. If you've downloaded an extension, or like what you see, consider sharing this url on facebook so others can have a chance to experience a confusion-free calendar. Remember, the more attention this gets, the more likely it is that someone important will take notice. If that happens, maybe we have a chance to see some real change in how MyPack works. Before I get into exactly how this all works, I'd like to share a few screenshots comparing the original schedule grid view to the one I've created. Old (Click for full-size Image) New (Click for full-size Image) Introduction So, a while back I decided that if OIT was unwilling to update NC State's MyPack Portal in any useful way, then I would take matters into my own hands. This blog will detail the first step I've taken, improving MyPack's "Schedule Grid View" and "Wishlist View" features. I've split this post up into a few different sections: Problems with the Original Schedule Calendar, How My Fix Works, and Installing Extensions For Your Browser. I understand that not everyone who reads this post will be interested in the computer science behind my solution, so if you fall into this category feel free to grab the extension for your browser from above and go about your day. Problems with the Original Schedule Calendar The problems with the original schedule grid view mostly stem from the fact that it is written using vastly outdated design principles. I'm not 100% sure when exactly it was written, but the fact that it comes from the packtracks domain as opposed to mypack suggests that it is quite old. Even if it wasn't listed under an old domain, there is another obvious clue - the entire schedule is one gigantic table. Now for those of you that aren't familiar with web design, you might not find any beef with this. "What's wrong with having a schedule in a table? That seems right thing to me", you might say. Well, when I say "table", I'm not talking about a table in the general sense. I'm talking specifically about the <table> html element. This markup essentially creates a box that you can place other boxes in - a very basic table. The problem with html tables is that they are very rigid, and are typically a poor choice when you want to create dynamic content (content that changes based on the situation). While the <table> tag has not been completely phased out, its usage these days is very situational; most people prefer to use a much more flexible series of <div> tags instead. But perhaps I'm straying away from the problem. The reason why tables are a poor choice for a schedule is because they force content to fit in one box or another, with no overlap. I'm sure everyone who has used schedule grid view before has noticed that their 11:20am-12:30pm class is listed as starting at 11am and going until 1pm. Or perhaps it has appeared that you have two classes back-to-back, when in reality they are a good 50 minutes apart. This is because the table rounds every class down to the hour, and then places it in it's corresponding block. For classes that don't start or end on the hour (i.e. almost all of them), this becomes a pretty big issue. Aside from this functional problem, schedule grid view lacks any kind of real aesthetics. Everything is grey and red. Classes are not color-coded, there are no visual separators for hours, days of the week, etc. In fact, most of the time I find myself looking at the small table at the bottom of the page that lists all my classes, rather than trying to sift through the actual calendar. Put quite simply, information is not easy for the user to find (this seems to be MyPack's theme - if the information is useful, spread it out and make the user hunt it all down). How My Fix Works EDIT: When I first wrote this extension, I did it a pretty unconventional/dumb way. I shouldn't make excuses, but it was one of my first forays into web and extensions at the time, and I did things in a way that was…unfortunate to say the least. I came back later and re-wrote the entire thing so it actually isn't completely retarded, and below I'll talk about how all that is set up. The extension uses a simple whitelist with the url of the schedule, so that the extension will only activate if you load that specific page. Once you hit the schedule page, the extension loads 2 javascript files. One contains all the code needed to create the new schedule, and one that contains a large array of every building address and code on campus (I'll talk about this more in a little bit). The javascript parses through the courses table at the bottom of the page, pulling all the necessary class information out and putting it into a nicely structured 2d array. Some simple calculations are done to determine where on the page each course should be displayed, as well as color coding everything and linking building codes to actual building names. After that, the body of the page is cleared and the script begins setting up the backbone of the schedule - the days of the week, dividing lines, etc. Once the static content is in place, the courses are loaded on top of it. The courses are now pixel accurate down to the minute, color-coded, and can be clicked on to go to the course webpage. Additionally, overlaps are detected so the user is aware if they have overlapping classes (which is useful for schedule creation as mypack does not inform you of overlap). Finally, the courses are grouped by day of the week, and the address' of those classes buildings are sent off to google maps to create walking directions. These can be viewed by clicking on the day of the week at the top of the schedule. Installing Extensions for your Browser If you've glanced at the screenshots, and feel like this improved calendar view is something you'd like to use yourself, you're welcome to grab an extension from below and install it in your browser of choice. Note that I have no idea if Internet Explorer uses extensions, and I don't really care. If you use Internet Explorer, stop. Just click on your browser of choice below (or at the top of this page) and you should be prompted to install the extension. Failing that, right click "Save Target As..." works just fine too. Chrome Extension Firefox Add-On Safari Extension
Comics are an odd medium

So, its been one of those days. And probably not the kind of day you're thinking of either. No, nothing awful happened. Sure, I've got a lot of work to do, but what else is new? No, today is one of those days where you are perfectly content with your life right up until you have a few minutes of down time. You get to just sit back and relax by yourself without any distractions. So you're sitting there, by yourself, and suddenly a wave of depression and malcontent washes over you for no immediately discernible reason. Which is doubly weird for me, because my life is going pretty damn well right now. For some reason, though, I just couldn't shake this crushing feeling of depression that my life was worthless. I can only recall of one other instance when I've felt like this without a seemingly valid reason - an instance that is completed related to today, and really the whole topic of this blog post: Comics. No, wait, I know that seems pretty nonsensical, but hear me out. As it has and probably always will be, printed word is always more powerful, more compelling, and infinitely more personal than any movie or tv show will ever be. What is it about books that forces us to make such personal investments in the dialogues they contain? Is it the ability to digest the words, sentences, paragraphs at our own pace? Is putting ourselves in the protagonists shoes easier - more inviting, even? Perhaps the elegant dialogue and descriptions, worded so carefully that our minds can fill in the gaps by themselves? Whatever the reason, it always seems so easy to find yourself personally invested in novella. Ten chapters in, and you realize you're infatuated with two of the characters, loathe another, and are eagerly awaiting the next major plot development. While I'm sure the reasons vary from person to person, no one who has sat down to read for pleasure can deny that they've felt this way before. It isn't that much of a stretch to suppose that this feeling can also apply to comics. Now I don't mean the kind of comics you read in the sunday newspaper. I'm talking Marvel, DC, etc. Spider-man, The Ultimates, Superman, X-Men, Batman, those guys. The kind of comics that hold overarching plot lines just the same as any science fiction novel would. For me, at least, this form of story telling holds a much larger sway over my emotions than just text - something I didn't even realize until more recently. When I was a kid I had no interest in comics. Sure, I watched the cartoons; spider-man, batman, x-men, etc. What I liked, though, was a good solid book, and believe me I read plenty of them. But now that I'm older, I've found that comics are an incredibly effective means for telling a story. Something about the still art - telling a story frame by frame - when paced correctly provides an incredibly immersive environment. Maybe when you read a book your mind is too busy creating the physical world the characters inhabit. Maybe with all these variables to imagine you don't quite form the emotional connection you could with the characters. Not so with comics; With the images already created for you, the only thing left to do is focus on the drama. Why do the characters act the way they do? What ties them together? How do they feel about the things happening around them? Comics ask you to create a lot of their depth - With only dialogue, what else could you do? You constantly weigh the main characters actions against your own personal views. With a book, you put yourself in the characters shoes; when their adventure ends, so does yours. With comics, you can't put yourself in the protagonists shoes - only compare their shoes to yours. When their adventure ends, all you have left is an empty feeling of disappointment. After constantly comparing yourself to this incredible person, you find yourself wondering how it is that, despite how awesome you felt your life was, you can't even come close to measuring up. Which brings me back to the beginning of this post - my feeling of seemingly random depression. The detail I purposefully left out, is that today was the day I finished reading Ultimate Spider-Man. The same for my other bout of random depression - the week when I finished Scott Pilgrim. After having watched Peter and Scott go through hell and back several times, I can only look at my life as more of a flatline. Is this an unrealistic comparison? Of course. Does it make it any less depressing that no matter how good my life is, I will never be unique or interesting like they are? Not a bit. If Peter Parker is Spider-man, the beloved super hero who swings from building to building, then I would be the random guy on the ground that shouts "Look its Spider-man!". Or maybe not even that. Comics force your nose up to the window of their world, where you can see all of the incredible things that happen, but without any of the feeling of accomplishment when the villain is beaten. Leaving you with only memories of extravagant things you can never trick your mind into experiencing for yourself.
Website Update

So after a very busy few weeks, I got a chance to come back and work on the website. If you haven't noticed already, I redesigned the site (man I really hope you noticed). I like the feel of the site a lot better now, and hopefully I'll have some time in the near future to mess around with some more jquery transitions and make things feel even smoother. I've been continuing to work with Illustrator, and I'm getting more and more comfortable with the basics of the application. Nothing about it is really intuitive (and I mean really not intuitive), but once you've worked out how to do things, they become pretty easy. Don't get me wrong, being able to sketch something out and then not understand how to reproduce it in Illustrator is pretty frustrating; patience here, as in everything else, is a virtue. I've also added an RSS feed. At first I was surprised at how simple it was to create, even from scratch. Once I remembered that RSS stands for Really Simple Syndication though, everything made a little more sense. As a final note, you can create an account here now, and your posts will show up in a fancy color. As soon as I get some carriage return issues worked out with my sql tables, you should also be able to edit any posts you've made as well.
Google Apps Question

So about a month ago I signed up to participate in a script hackathon for google apps. And just so we're clear, a hackathon is just an event where you try to create a program under a time limit. The word "hackathon" is commonly used because the program is thrown together in a small amount of time; not because there is computer hacking. In any event, I'm trying to brainstorm ideas so that by the time Saturday rolls around I want to have a pretty decent idea of what I want to make. I have one pretty weird/horribly specific idea in my head already, but rather than bias your thoughts with it, I'd like to see what you guys think. Here's the question: If you use or have used any of Google's apps before (maps, docs, etc), is there ever a feature that wasn't present that you wanted to add? Maybe doing something specific in google spreadsheets was a lot more convoluted than you thought it should be? Maybe you just have a cool idea? If so, post away in the comments section. If your idea is do-able, theres a very high likelihood I'll end up making it happen this saturday. What does that mean for you? I'll upload the result here, and then you'll be able to use it yourself! Won't that be cool?
Quick Update

I'm messing around with stuff with the site, so if something is broken or doesn't act right, it means that I'm in the process of changing things. Right now I'm trying to implement a quoting system similar to a certain board I'm fond of as its very minimalistic (and hence doesn't require a lot of fancy code or real forums, etc). Hopefully that should be up soon, I'm having some string parsing issues at the moment with it but ideally you'll be able to click on a post number to quote it, and your post with have a url in it that will redirect to the quoted post. Basically it'll look like this Anonymous - October 23rd 7:23:42 Post #243 Yeah but thats dumb Anonymous - October 23rd 7:32:12 Post #253 >>243 YOU'RE DUMB So yeah that'll be the first iteration of quoting once I fix the few kinks remaining, and obviously in the future I'll make it fancier etc, but for now I'm trying to get basic functionality without going after anything too complex. PS I added a ReCaptcha form for comments because some bots kept posting about how to get free copies of OEM windows 7. While I'm all for the free hits, its clutter I don't really need, and recaptcha is unobtrusive enough (in my opinion) that I don't think anyone will mind. UPDATE: Quoting now works, albeit somewhat sloppily. I think I'll learn me some javascript next so I can improve it. DOUBLE UPDATE: Quoting now works awesomely, I have no idea why I did it the way I did the first time; silliness, I guess. I also got rid of a potential future hassle where people could comment on blogs that didn't yet exist. Messages from the past would have been pretty cool though - too bad. I think I might start work on a new theme soon, or maybe try to add some standard bbcode stuff to comments so you can throw down your own links. maybe.
Various Links and Things of Interest

I figured I'd share a few things I've been enjoying online lately, mostly because you (yes you) were probably so bored going to facebook, closing your browser window, staring blankly at your computer for a few seconds, and then opening facebook again. Surely I can't be the only person who does this? In any event, heres some stuff to waste more time on.
  • 27bslash6.com - I know this has been around for a while, and for anyone who has known about it for centuries, I apologize, feel free to skip ahead to the next link. I first found out about this website through this email exchange, although when I read the story I had no idea it came from a veritable trove of like-minded emails all written by the same person (David Thorne). I have to say I enjoy his writing style immensely, and perhaps you will as well. PS though, as with anything on the internet, try not to get offended, his emails are morally bankrupt to say the least. If you are the kind of person who is trolled easily, this is not for you.
  • Mark Ronson- Bang Bang Bang - Apparently I've known about Mark Ronson for a few years without realizing it. A friend of mine showed me this song (as well as this one), and when I went to download his discography I realized I already had some of it in my itunes library and had been listening to it for a while now. I am a little ashamed of this, but as I recieved them through a modern age "mix tape" (read: a rar of random music) I didn't really keep up with artist names like I should have.
  • MC Frontalot - First World Problem - As some of you may (nor may not) know, I've been a huge fan of frontalot for a long while now. His most recent album (Zero Day) is, in my opinion, his best since Nerdcore Rising. Which is to say, fucking incredible. If you're the kind of person who despises (maybe even just dislikes) the direction popular music has taken, and are not adverse to listening to a bald man do things with the english language you never would have imagined in your wildest dreams, this is for you. (PS you can catch him AND mc chris November 19th at Cats Cradle)
  • Kingdom of Loathing - Here's one thats been around a LONG time. I played this comedy/text-based mmo/rpg hybrid for a while freshman year of high school, but coming back to it now I can appreciate a lot more of the humor. Based on an system where each action costs a turn, its addictiveness is mitigated by the fact that you only get a base of 40 turns per day. Of course there are ways to get more, such as getting drunk, stuffing your face, etc, but I digress. The humor is good, and its probably one of the few games you can play without glancing at the clock and realizing you've just spent 14 hours of your life watching numbers go up. I KNOW I'm not the only person who's done that before.
Anyway, thats all for now, hopefully I've helped you stave off boredom, even if only for a few precious moments.
What do you think?

So I've just recently posted the link to this website on facebook, and I'd like some comments/critique, etc. What would you like to see me add or change? I'd like to go ahead and get a second theme done that is a little less minimalistic than whats going on right now, but maybe theres something more pressing I haven't though of yet? Either way, add a comment below (inb4 1 comment, "website sucks").
Website intro (what to expect)

I started off doing this post as just the stereotypical "hi welcome to my blog" thing, but then I decided that nobody wants to read that. So instead I'll talk about what you can expect to see come out of this website content-wise over the next month or so. I've got a few things in particular I have already planned on posting here once they're finished, so I guess I can go ahead and list those.
  • A creepypasta story I'm writing
  • The first single for what will (possibly) one day become an entire album based on the ever so popular nerdcore hiphop.
  • More general bloggy-ness (hopefully minus the typically superiority complex that seems to inhabit most blog posts) including but not limited to:
  • Possibly other creative ventures I undertake (short stories, code, etc)
Hopefully that list is comprehensive enough to make you check back next week when my facebook status is "impiety.net - now updated!" or something similarly inane but ultimately interesting enough to click.