daily minutia on Twitter

  • http://twitpic.com/mr4a - Someone had a little fun with the monkey display. 15 mins ago
  • @storytlr There was a combination of Twitter downtime and and a Gnip upgrade over the last 36 hours. You should be ok now. DM me for help. 53 mins ago
  • Yay! They just replaced the broken anntenae on the marble snail on Pearl Street. I grew up playing on those animals. 1 hr ago
  • Enjoying lunch conversation with my coworkers and taking advantage of the gorgeous weather in Boulder. 3 hrs ago
  • @joshlarson I believe it is true that your nose is the only part of your body that continues to grow your entire life. 5 hrs ago
  • More updates...

I'm Ingrid Alongi, a developer in Boulder, Colorado. I'm currently a software engineer at Gnip. My world is now all about API integration. Diving into Google's data visualization API now. Previously, at OneRiot, I wrote web applications using Java/Wicket/CSS. I've also got a side project where I use CodeIgniter for PHP and absolutely love it. Diving into JQuery next.

I've been in the web development/interactive agency world for almost 10 years, with most of my experience in building database-driven web applications (PHP, ColdFusion) for consumer facing clients (e-commerce, email marketing, advertising, cms, etc.). Lots of strategy, lots of driving traffic back the web site types of stuff. Oh, and managing an amazing team of develoers.

I'm an electronic music snob, ex national level cyclist, I play violin and cello, and have an MA in Women's Studies. You can contact me at ialongi at yahoo . com.

Using ListView in Wicket

October 26, 2008, 10:31am by electromute

I’ve been spending a lot of time on Wicket lately for some exciting things that will be coming soon from Me.dium.  One cool trick I started using the ListView. If you’ve come from PHP or any other web language, you know the drill– display query data from the database on a web page.

Here’s a simple implementation of the ListView to help you get started. I’m going to take a list of employees and output them to the screen. This tutorial assumes you know the basics of how Wicket works. This is the portion where we’re adding components to the display piece.

EmployeesPage.java

(…)
List employees = new ArrayList();
//Now I’ll grab the output of the query and populate the ArrayList
try {
  employees = service.getAllEmployees();
}
catch (ServiceException e) {
  //write your handler here
}

//Now I’ll populate the ListView with the query results
add(new ListView(”employeesRptr”, employees) {
  private static final long serialVersionUID = 1L;

  @Override
  protected void populateItem(ListItem item) {
   User employee = (User) item.getModelObject();

   // image display
   item.add(new StaticImage(”profilePic”, new Model(employee.getPicture())));

   // name display
   StringBuilder name = new StringBuilder();
   name.append(employee.getFirstName());
   name.append(” “);
   name.append(employee.getLastName());
   item.add(new Label(”profileName”, name.toString()));

   // location display
   item.add(new Label(”profileLocation”, employee.getLocation()));
  }
});

Now for the display:

EmployeesPage.html

<span wicket:id=”employeesRptr”>

<img wicket:id=”profilePic” border=”0″ />
<p class=”name” wicket:id=”profileName”>Joe Schmo</p>
<p class=”location” wicket:id=”profileLocation”>location</p>

</span>

Enjoy!

Tags: , , ,

   Read More »




Using helpers in CodeIgniter

August 21, 2008, 7:28pm by electromute

I’ve been using CodeIgniter now for a new project I’m working on called Giftola. CodeIgniter is an MVC framework for PHP. I like CodeIgniter because it’s very lightweight, yet it offers some pre-built functionality to deal with some of the tedium (like form validation) of web development.

I’ve used other PHP frameworks in the past, and I find the way CI organizes files to be very intuitive and things are easy to find.

One problem with using frameworks is that often developers don’t actually utilize all of the features of the framework, often reinventing the wheel. In this post, I’m going to go over a very simple, but useful feature of CI, helpers.

Helpers are functions that are stored in a central location in the CI framework, and then utilized anywhere in the application. I’m going to demonstrate a simple helper I wrote called timestamp. Timestamp formats a date time string for SQL insertion. This helper allows me to ensure consistency across my entire application.

Here’s how they work.

CI has its own helper functions, which are located in:

/system/helpers

You can add your own helper functions to the following location:

/system/application/helpers

Your file must be named in the form: helpername_helper.php. In my case, I’m going to create a file called:

timestamp_helper.php

where I’ll write a very simple function:

<?php
if ( ! defined(’BASEPATH’)) exit(’No direct script access allowed’);

function timestamp(){
return date(”Y-m-d H:i:s”);
}
?>

I use this function most often in my Models, so I’ll load it up here. In this case, I have an event model, where I’ll use the helper quite a bit. So, I’ll load it in the constructor.

<?php
class Event_model extends Model {

function Event_model()
{
parent::Model();
$this->load->helper(’timestamp’);
}

}

?>

Finally, when I want to grab a timestamp, I simply call the function:

$data = timestamp();

A pretty simple example, but hopefully it will get you thinking on how to consolidate functionality that you use often into the helpers structure.

Tags: , , ,

   Read More »




Simple SVN setup on MediaTemple (dv) Hosting

June 25, 2008, 8:37pm by electromute

I just got myself a (dv) account at MediaTemple and set out to install SVN. I found pretty much nothing in their knowledge base on how to do this. I do this task so infrequently (but yet often enough to care), that each time I have to re-familiarize myself with how to set up Subversion repositories. Hopefully this post will save us all some agony when it’s time again to set up a new svn repo.

Contrary to some other blog posts out there, the (dv) hosting package actually DOES include Subversion, but you have to enable it through the developer tools [A complete list of the developer tools you get can be found here].

I have a brand new server and nothing on it yet, so I’m comfy doing this cowboy style. However, if you are adding SVN to an existing server, consider purchasing a snapshot that will preserve all settings prior to starting this process. Unfortunately, the free backup won’t do the trick.

Here’s how to do it

First off, be sure that you have an account that has ssh privileges into your server. This could be your ftp account or another ssh user you set up for these purposes. This can be done in the Plesk control panel (process not covered here but can be found via the MediaTemple knowledge base).

Log into your MediaTemple Access Control panel at https://ac.mediatemple.net

Go to the overview tab

Click on your primary domain

Click “Root Access and Developer Tools”

Click “Install Developer Tools”

Now that your developer tools are enabled, you want to enable root access so that you can administer your tools.

In the same area of the account center, click Enable Root Access

Now you’ve opened up a can of worms enabling root access. One of the ways to contain those worms is to disable ssh for root as outlined here.

Next, ssh into your server using the user account created prior to starting this task and run the following command:

% su root

You will be prompted for the password you created when you enabled root access. You have to install and configure svn as root so that it has the correct permissions to write/save/generally do it’s thing.

Create a new directory at /var/svn

We’ll pretend our new repository name is called reponame but you can choose any name you want here and this is what you’ll do each time you make new repositories that are served from this instance of Subversion.

Run the following commands:
% svnadmin create –fs-type fsfs /var/svn/reponame
% chmod -R 777 /var/svn
% svn mkdir /var/svn/reponame/trunk /var/svn/reponame/branches

Please note that I did not use Berkeley DB (instead I used fsfs as noted in the create command above). I have not had good experiences with Berkely DB and avoid using it, no offense I’m sure there’s a place for it and good intentions behind it.

Next, you’re going to do a little editing so use your favorite command line editor (mine happens to be vi):

% vi /var/svn/reponame/conf/svnserve.conf

configure the following items thusly:
anon-access = none
auth-access = write
password-db = passwd
realm = My Repo Yay

(ok, not really sure what realm is for other than it’s cute and displays when you checkout, but if you know a secret awesome benefit, please share!)

Next it’s time to create the authentication piece. Time for more vi

% vi /var/svn/svnreponame/conf/passwd

Each name = password pair must be in plain text. There are ways to set this up so that the passwords can be encrypted using Perl’s crypt but that is not covered here as this is the “Simple SVN setup” :-)

Finally you need to start your svn daemon. Please note that there are other options for svnserve and you should familiarize yourself with the documentation just to be sure.

% svnserve -d

So, there you have it. You have a simple Subversion setup on your MediaTemple (dv) server.

You can check out (or run similiar svn commands) from your local machine thusly:

% svn co svn://domain.com/var/svn/reponame/trunk

Note that your domain.com is yours and could also represent a subdomain if you know how to configure that.

There are lots of other fine tunings and tweaks you can do to fit your needs, but this is the Simple svn setup, no? Tools like Eclipse’s SVN plugin make it even easier to utilize this method in terms of password caching and the like.

Lastly, the grad school training in me wants to cite sources, so here you go:
Version Control with Subversion reference
gregsidberry.com
tonyspencer.com
MediaTemple.net (dv) Developer’s Tools and Packages Listing
An Introduction to the Root User
How to disable ssh for root user
MediaTemple backup options

Tags: , ,

   Read More »