Github Pages and Submodules

So I had a slight problem with my personal page repo on Github. I had pushed a set of commits, which included a submodule (HTML5 Boilerplate). But the site wasn’t building. I contact Github support, and after two emails, the problem is solved! It’s either a problem with their build system and http:// URLs of submodules, or something specific to HTML boilerplate, but after changing the URL to use git:// and pushing, my site was successfully rebuilt. Yay.

Now if I can figure out how to run node on cloud9, I can start messing around with things even more.

Advertisements
Posted in programming | Tagged , , | Leave a comment

Adventures in Automation

I’m working on writing an automated build script for Belvedere, an automated file manager (it’s automation squared man). I’m writing it in AutoHotkey the language Belvedere is written in, mostly to avoid adding more build dependencies. It’s going okay so far.

I did run into a small hitch just a while ago. The installer comes with a help file in .chm format. If you’ve ever used Windows, it’s those help systems with the indexes, links, and whatnot. Normally, you compile the file manually with Microsoft HTML Help Workshop, but that defeat the whole purpose of AUTOMATED build script. I was going to ask a question on Stackoverflow, after some seaching across the ‘nets, when I decided to go exploring the HTML Help directory. Lo, and behold, I find the standalone compiler, hhc.exe. I know Microsoft’s a little notorious for leaving out important information, but I could have saved myself some time.

Onward to the next step!

EDIT: NOPE! I’m wrong. hhc.exe is not the compiler (I think it’s the decompilier). UGH!

EDIT 2: Yes, it is the compiler. I should go to bed now. Expect to see a fully integreated automated build script later today. Yay!

Posted in programming | Leave a comment

Extensions/Plugins are bad for development

You can also title this post “Browser Profiles are good for development”.

In the site I’m working on I’ve got a form (several actually, but there’s only one in particular that’s causing me no end of trouble). Yesterday after converting a single input field of type=”time” (since a. the output isn’t exactly super helpful and b. that input type isn’t supported in every modern browser very well) to three separate fields (two numbers and a select field for am/pm). After working out some kinks, the form supposedly still works.

Then Chrome decides to be a bitch and suddenly I can’t submit the form. at all. Nothing happens when clicking the submit button. Nothing happens when I hit enter when a field has focus. Nothing HAPPENS. What’s weird is this form is essentially the exact same form used to edit the data as well, but that form works fine… in Chrome. My guess is some extension decided to fuck up, and as I can’t be bothered to waste more time trying to find the damn culprit, I move on to using Firefox.

OH, but you see, that would be expect too much for things to work completely as I think I should. So the form for adding the information works fine in Firefox. BUT when I load up the information for editing, two select dropdowns display the incorrect value… despite being selected correctly in the the viewable source!? WTF!? Right?

Thankfully Firefox has profile management, and I load up a clean profile to test things out. Things work as they should so I’m assuming an addon is the culprit.

Anyway, lesson learned. And the Chrome team needs to add profile management like firefox does soon. (On  another note, supposedly Firefox will drop its native profile manager in the next version or so…why?)

Posted in Uncategorized | Leave a comment

Weird behavior in CodeIginiter

So, in the website I’m making for my dad, I’m using CodeIgniter as the application framework. It’s pretty nice in taking care of the stupid stuff I’d rather not think about, and extending the framework is super simple when you’ve got a reason to do so.

Recently, however I’ve come across something that’s weird. In one of my controllers, I’m load two different models in the constructor. Both models are extended from a custom Model class that extends the core CI_Model class. One represents a user, and the other represents a sale listing. Nothing too fancy done. In the custom parent Model class I wrote, I wrote a constructor function which sets the default table to look at. This works fine for the User model, but not for the Sales model. Not sure if it has something to do with my code or if it’s a result of a bug with CodeIgniter so I’m going to set up a small test case later.

Update: So I was wrong. I was extending the wrong class in the sales Model. Something else did come about while I was looking into this. For some reason. When Loading two models manually and right after each other, the first loses its table details. Don’t know why, as they should be two separate objects, but it’s easily handled by doing the work with first model, and then doing the work with the second.

Posted in codeigniter, programming | Leave a comment

Mockup of UGA Homepage

So on a whim, and as well as for practicing my web design chops, I decided to see if I could remake the UGA Home page using modern web design techniques, including a few CSS3 features.

Layout wise, the current site uses table based layout. My guess is they haven’t been able to afford a decent web designer to update the design. As far as the design goes, it’s actually not that bad. There aren’t extraneous features on the page and it is fairly clean, with a consistent color scheme based off the institution’s colors (red, black, and white). The implementation however is bloated, and as previously mentioned, uses a table for layout. Tables are meant for displaying tabular data folks. Well, I shouldn’t judge too much, I was guilty of such a “crime” only a few years back when I made the website for Thalians.

In bringing the design implementation up-to-date, I’ve learned a few interesting things. Namely, and surprisingly, Opera borks the layout, while IE9 does not. IE9 officially released this week, is Microsoft’s most standard’s complaint and modern browser to date, even having support for some features of HTML5 and CSS3. Sadly, they don’t support a few of my favorite properties like text-shadow, gradient, and a few others.

There are still a few issues with this mockup, but I think it’s a nice first effort for honing my skills.

UGA Homepage Mockup

Posted in Uncategorized | Leave a comment

New theme by me is live.

I’ve done some minor changes to the theme I was using as the parent (Portfolio Press), and I just put them live on the site. Most notable are the color changes. I added blue accents in the header & footer, and separated the menu using relative positioning, along with a border-radius style.

I wrote a function to generate a copyright notice, which you can see in the footer. This was probably what took me the longest, as WordPress doesn’t have the direct function to get the earliest post. Here’s the code below:

function copyright($arg0 = NULL) {
    $copyright_holder = $arg0;
    if($copyright_holder == NULL){
        $copyright_holder = get_bloginfo();
    }

    //  Get the first post and date.
    $first_post = get_first_post();
    $first_post_date = date_parse($first_post->post_date);
    $start_year = $first_post_date['year'];

    $last_post_date = date_parse(get_lastpostdate());
    $end_year = $last_post_date['year'];
    _e("Copyright © " . $start_year);
    if($start_year < $end_year){
        _e(" &dash; " . $end_year);
    }
     _e(" " . $copyright_holder . ". All rights reserved.");
}

/**
 * Retutns the earliest post of the blog.
 */
function get_first_post(){
    $args = array(
        'numberofposts' => 1,
        'orderby'       => 'date',
        'order'         => 'ASC'
    );
    $list = get_posts( $args );
    $mypost = $list[0];
    return $mypost;
}

The argument passed to copyright can be anything, but ideally should be the copyright holder’s name. You can even wrap it in a link like I did. If no argument is given, the name of blog will be used. The year range in generated by querying the earliest post via get_posts and the latest post via get_lastpostdate. The function account for the case that range falls only on a year. I’ll integrate this as easy to configure option within the admin interface later.

Edit: Fixed something that was giving warnings. I can’t figure out how to get the ampersand to appear.

Posted in Uncategorized | Leave a comment

Use Task Coach

So, I tried out the whole todo.txt thing, and while I understand the argument for using a plain text format, using the CLI script is a pain in the ass. Things break all the time. I’m tired of trying to fix it. Task Coach is what I’m using at the moment. It’s lightweight, fast, and simple or as complex as I need it, plus it’s cross-platform and portable. So It’ll be my go-to app for tasks and and timekeeping.

I think I’ve finally got a nice setup for developing my site locally. I’ve got a WAMP stack setup. Originally, I’ve tried doing this by having the server on another machine on the LAN, but it’s faster, less headache free this way. I do wish I could easily import the SQL database, but I haven’t a clue as to how to go about that.

Posted in Uncategorized | Leave a comment