Interview questions… for a PHP job

Last week I went through one and a half hellish days of interviewing candidates for my replacement – one position for PHP and another for the research coordinating. Larry and I talked to over a dozen people. It wasn’t bad, per-se, but I wouldn’t do so many all at once again. It really made me realize how the whole interviewing process must run like a well-oiled machine so it won’t kill you in the process!

We didn’t have a lot of people apply for the PHP job, but it was a good experience for me nonetheless. I gave each person 6 questions to answer as part of the interview so I could gauge where they’re at:

DFL major release!

Lots of news over here at the Digital Fish Library. We just moved the production, qa, and dev staging sites to our new servers over the weekend, and at the same time made some major updates public that will surely allow the website to grow with few pains over the next several months.

1) Family accounts: read-up on various fish families we have in our digital collection. Be forewarned that a lot of the content is not yet available because our editing timeline is a bit behind schedule.
2) Different browse views: peruse the collection by recent additions/edits, species name, family name, and soon by Order.
3) Habitat identification tags: quick visual reference of what types of habitats the fish are typically found in.
4) RSS Feeds! We now have an RSS feed of all recently updated species accounts. You can also plug it into your Apple RSS screen saver (how cool!): http://www.digitalfishlibrary.org/feed/. We have it running on the active display in our lab’s waiting area right now.
5) Lots more content (just about). We have a lot more content going up today. Stay tuned.
6) Cross-linking: We link back and forth between family and species accounts, as well as to the SIO MVC database and Fishbase.
7) Photos: we’re in the process of adding photographs of the fish to the species accounts. It just makes everything look nice and museum-like.

My last day on the project is Oct 23, but you can expect a few more minor updates before I leave.

Changing scenery… Downtown!

It was a bitter sweet week this week. I took a job with a company in downtown (San Diego), thus marking my remaining two weeks at UCSD. Sweet, of course, because I’m finally at the level where my skills are (very) marketable. Bitter? I’ve been in research for over four years now – under Dr. Lawrence (Larry) Frank at the Center for fMRI and the Center for Scientific Computation in Imaging. I’ve poured a lot of my life into the Digital Fish Library as the sole web designer/developer, and I can safely say it’s a project I’m proud of. Of course, there are things that, given the time, I would change about it – mostly to spruce-up the design aspect, but such is life and I’m pleased with my work overall.

It’s time to move on. Opportunity knocked and I took it. I’m excited to start at 212Interactive on October 25 doing PHP/MySQL development…

Mr. Fish Lite is coming

If you’re interested in the DFL project, you’ll be happy to know that German and I are tasked with a bit of a crack programming job in the next week or so. Actually, we told our boss the idea we had about making a “Lite” version of the data viewer program that runs through some fancy AJAX and DOM scripting, with a Java frontend on VTK for the image production.

Crash course on DOM here I come!



I just wanted to plug the php|architect (phparch.com) Magazine. It’s not too expensive and there are a lot of good articles each month.

One thing I plan on implementing to one extent or another is the PHP Clustering on Linux – comes from a set of articles by Joseph H. Kouyoumjian. Most likely I won’t use it exactly as described in the articles, but the idea will be useful for the load balancing approach on the new DFL web servers (and to some extent the imaging servers).

Another article worth looking at is the main feature this month (Vol 5, Issue 6): Total Eclipse of PHP Development: Banish your text editor to the dark ages! by Alexander J Tarachanowicz II. I’m already running eclipse for most of the editing needs, and it’s really something more people should consider, especially when faced with growing needs that your typical text editor can’t handle (or you don’t want to spend a load of change on other commercial IDEs).

Siggraph2006 Poster

We got the good news today: our poster for Siggraph2006 has been accepted!

Look for Interactive 3D Graphics for Web-based Data Analysis and Visualization for the Digital Fish Library (DFL). I likely won’t be there for the conference, but German will – he is the first author, after all.

DFL Publications.

Glossary links, anyone?

We’ve all been to those sites before – the ones that dubiously insert advert links on keywords throughout the page. It’s pretty annoying because they often have nothing to do with the reason(s) why you were on that page to begin with. So now here I am, telling you how to do it easily. But I assure you – my intentions are completely pure!

The task: Link glossary terms to some educational material (coming from a database).

1) Pull your list of terms from the database into an array. Call it $glossary_terms

2) Run a preg_replace command on your page content:

$updated_content=preg_replace('/b('. implode('|',$glossary_terms). ')b/i',$replace,$content);

3) Display the $updated_content link instead of the original $content.

preg_replace() takes either strings or arrays as input, which is really helpful in situations like this where you have an array of terms to which content gets checked against.
The b modifier signifies word boundaries (spaces, punctuation, etc).
The i modifier tells to a case-insensitive search.

Thanks go to xblue and MarkR on PHPBuilder.com for the pointers (especially xblue for pretty much just handing me the answer!).

Semantic Research: Knowlege Organization

My lab had the opportunity to meet with the folks over at SemanticResearch. Overall, definitely a very intriguing company. But first things first: their offices are located IN the MTv Real World San Diego house, which as some of you might know – is awesome! I really don’t know how they get any work done in such a great view of the harbor.

You may be here to read about the company, but I think you’re probably more interested in hearing about what they (and other companies like them) do. In its simplest form, you create a web, a network, between nodes (typically a noun) by defining certain pre-determined relationships between them (verb). By combining many nodes and their relationships you create something akin to a web. Its usefulness is seen when you find links between two unrelated nodes.

Here’s a brief example, of which I’ll use the following notation:

[John]---(friend of)---[Mike]
[Mike]---(friend of)---[Anthony]
[Anthony]---(owns)---[beach house]
[beach house]---(has address)---[123 Prospect, La Jolla]
[condo]---(has address)---[456 Pearl., La Jolla]

So what’s the relationship between these two seemingly unrelated homes in La Jolla? Ok – it’s pretty easy to see in this example, but imagine a social network with 5,000 nodes where you’re trying to determine the relationships between two individuals.

We definitely look forward to working more with SemanticResearch on incorporating some of their ideas into the DFL. We’ll have 800-100 fish, with several different habitats, and several other defined relationships (e.g., predator/prey, host/parasite, etc).

DFL site update

I’ve been making a lot of minor updates to the DFL website. I finally got around to making the site look decent in Internet Explorer. I really should have done it earlier. The only major rendering differences between the Safari/Opera/Firefox camp and IE is the location of the main page block: IE positioned against the left edge of the screen, S/O/F is centered (the way it’s intended). Essentially IE doesn’t recognize the align=center attribute on div tags to mean the div should be centered on the page. Oh well. You win some, you lose some.

Near-term plans:

  • The hierarchy algorithms I’m working on for my own personal (read: consulting job) use are going to be put to use to create a fish cladogram – essentially a tree diagram showing the relationships between different species of fish.
  • Carina is workring on writing and rewriting content for the site – make it a bit more user-friendly.
  • We’re going to be adding habitat profiles for all the fish in coming weeks. Among them: Fresh water, Pelagic and deep sea, intertidal, hard bottom, soft bottom, neritic, and continental slope.
  • Glossary of terms: Carina is collaborating with the Phil Hastings and HJ Walker on putting together a glossary of terms we’re going to be using on the site.

I’ll post updates as new features are added.

Digital Fish Library in the news!

The DFL is in the news again!

Included in the most recent updates: News segment from NBC 7/39 in San Diego, and the press release at the SIO website.

Also, link to our little spot in Nature (one of the most prestigious scientific journals in the world). Nature 440, 396-397 (23 March 2006)