Biography
Eric Miller's Picture

About Eric Miller

At TribeMind, Eric is a managing partner, game designer, creative director, and Sanuk-wearer. He has a Bachelor's Degree in Graphic Design from the Rochester Institute of Technology and has lived in Nashville TN, Rochester NY, and Traverse City MI.

Website: Butter-Side-Up.com
E-Mail: Eric [at] TribeMind [dot] com

Blog

How to Delete Your Own Website... And not Even Notice.


7 November 2007. Wednesday. 12:23 pm.

Three days of accidental (and very avoidable) site downtime has helped me realize the benefits of dedicated hosting for each of my sites.

This site and a few others are subdomains of a root website. This has some benefits for me as a developer. It means I can control all of their server settings from one place, my databases can be shared when it's relevant, and I pay a small price per month for all of of the sites together.

The downside is that a full 'put' of the root site results in the deletion of all of the subdomains, since they're stored as subfolders in the web server's file system. It's actually a an extremely effective and hassle free way to erase all your subdomains, I've found.

Oops...

Works through IE 5.5


18 October 2007. Thursday. 10:37 pm.

Tested in some various browsers tonight, the site now displays correctly in:

IE 7, IE 6, and IE 5.5
Firefox
Camino
Safari

The layout is a little different in IE 5.0, and it breaks down completely in IE Mac. I have decided I've reached the point of diminishing returns in trying to support these browsers.

Wow! Problem Solved!


14 October 2007. Sunday. 9:09 pm.

I finally smashed the IE z-index bug, and it was quite the tricky one! I learned that two separate problems were at work, but they were similar enough that they looked like one unpredictable issue.

1 - IE handles z-index in a non standards compliant, ultra quirky way. The only way to figure it out is to throw z-indexes on things until they stack the way you want. I assigned a z-index to all the major elements on the site (header, nav, content, login, and footer). This solved the issue for me.

2 - IE doesn't recognize empty space in any element. This means that an LI with empty space won't maintain :hover, effectively killing any flyout menu. At first, I thought this was a z-index issue. It only became apparent when the nav worked only with a background color applied.

The solution? Tile a 1px transparent gif as a background for all of the #mainNav LIs. Bingo! Problem solved.

Two totally separate problems created what looked like unpredictable behavior because I assumed they were caused by the same issue. Today I learned (yet again) to eliminate every possible variable and solve one tiny problem at a time.

IE Z-index Issues


13 October 2007. Saturday. 2:57 pm.

I've spent the past day or so trying to figure out an IE z-index nightmare that is killing my navigation. Z-index is handled by IE in the most peculiar way. Things seem to be pulled in and out of stacking context regardless of whether they're positioned or assigned a non-auto z-index. I've even gone so far as to assign explicit z-index values to every element that would be affected. This still does not create predictable behavior, let alone solve the issue. I tried adding borders to relevant elements to see which things overlap which other things--this backfires in IE, which seems to render borders above content across stacking contexts.

I'm stumped. I've read this and I think I understand it, but it's not helping. Any visitors have any clues?

Blogs Relinked, Site Revamped


10 October 2007. Wednesday. 1:20 am.

I just finished re-linking the blogs to the updated, ported-back-to-PHP-from-RoR layout.

Every time I refactor something, it requires changes that weren't necessarily expected. Ultimately though, I think it's resulted in my files being much more organized behind the scenes.

I'm now pretty happy with the site. I added a bold new heading, made the subheading into an underline-type graphic, modified the paragraph headings, added a lot of pixel work, added a footer, reformatted the blog entry and edit visuals, added link sections, and updated the 'about us' sections. Everything looks very nice and consistent now, I think. I'm happy.

Captain Crunch Time


9 August 2006. Wednesday. 6:51 pm.

Time to get crackin. I need to pick a website layout by tonight, and implement it by tommorow. Whee!

Reformed Letters


9 August 2006. Wednesday. 12:58 am.

My final attempt of the night reformed some letters (the "R" most dramatically) to good effect, I think. I used the most reasonable of the spacings I had previously tried. The "D" wouldn't die if it were a little chubbier, or at least a little further out.

I like the way the new "R" fits in now. Much more round, but at the same time a bit mechanical. The "B" might use some of the same treatment, but that's a tougher letter, especially when trying to space it against that "I" attractively.

Capital


9 August 2006. Wednesday. 12:53 am.

Here I gave the ol' capital T and M a shot. They're capital in the legal name, right? Why not.

Looks OK, actually. I was surprised. The thing with this is that it's subtle. Too much looks absurd. This as it's pictured is OK, but the height shift isn't going to translate to a small scale, and will probably just look jittery and mistake-ish. Conclusion: no height shift makes a better, more legible, more scalable, and more use-able mark. As always, the great thing about all caps is that they can be flushed against anything and they make a pretty little box, with nice even lines.

That was the dorkiest designeriest thing I've ever heard myself type. I'm afraid now.

Even Heights, Crammed up Kernage


9 August 2006. Wednesday. 12:33 am.

For kicks, I wanted to see what the type looked like as compact as possible. The "B" was adjusted in, the "D" was resquished, and the negative was redistributed as evenly as possible.

This example really demonstrates the differences in the shapes of the letters in the word "Tribe" vs those in the word "Mind." Mind is compact and dense, while Tribe is... not exactly open and light... but loose, despite the tight kern. Interesting. Better united by a looser kern, I think.

Even Heights, Wide Open Kerning


9 August 2006. Wednesday. 12:24 am.

This version keeps the same even letter heights, but extends the kerning to space out the letters. Some letterforms (like the "B") were extended in places to complete the needed shapes. The "D" was also pulled out to widen it to a similar space as the other characters.

Probably too light and airy. I think extending a pattern like this out takes away from the value of it as a stamp/symbol/mark, which... is kind of the point. :)

Even Heights, Normal Kerning


9 August 2006. Wednesday. 12:21 am.

Even letter heights, normal spacing between the letters, even optical kerning throughout.

The "D" looks too squished out on the end. It was later extended.

Even Heights, Spaced Words


9 August 2006. Wednesday. 12:17 am.

The first re-do was focused on simplifing and straightening the letter shapes, as well as evening out the baseline and x-heights of the letterforms. This first attempt had me a bit concerned about seperating the word "Tribe" from "Mind," So I spaced the words apart. I'm OK with it, but I think it looks better together, as you can see in above posts, and is still completely legible. This is due to the fact that the letterforms of the second word are naturally very different: vertically oriented and mostly self-completed (except for the "D").

I've since dismissed seperation of the words as a priority, but this is what it would look like.

Re_tooled.


9 August 2006. Wednesday. 12:12 am.

The next several posts will detail the process of refining the original logotype, which was scanned in and traced in illustrator from the original india ink rendering. They will appear in reverse to the viewer, so some creativity is required in the viewing, but that is the limitation of this format.

This first logotype is the roundest, friendliest, "kiddiest" version. It has the most marker-y look. It's where I started, and I like it a lot, but the unevenness of the type's height, which is great for indicating the capital "T" and "M" of our company name, is interupting and does not look intentional. Also, the shapes are chunky and do not share the same thickness.

Based on the premise that a more even-stroked, level rendering would be more professional, high-tech, and progressive, I entered a stage of logotype tweaking, which follows above.

ToDo Techie


8 August 2006. Tuesday. 6:19 pm.

On a technical note, I have a list of things that I need or want to do to improve the blogging, image handling, and other back-end (hehe backend) aspects of this website. In the interest of getting them off of this post-it note, I'll list them here:


  • Add automatic copyright/branding to uploaded images

  • Make the blog entry from automatically save to a section variable (requires JS, I think)

  • Automatically parse blog text for links? Add a [make link] button? add a [highlight/title] button? Facilitate unordered lists?

  • Add team member biography sections with photographs to the top of each blog.

  • Improve the quality/method by which images are automatically scaled. I'm not thrilled with the quality because I'm seeing too many sizing artifacts. Is this typical of PHP image manipulation? I need to find out.

  • Return the user to the blog page that was affected after an add, delete, or edit.

  • Allow editing of image captions

  • Create an upload status progress bar for image uploads, and remove/extend the timeout for large images.

  • Check on image upload failure. It seems like no included image generates a nasty looking error, but this may be an isolated incident. It should fail gracefully if no image is included.

Drippy


8 August 2006. Tuesday. 6:09 pm.

Oh, this one is cool. I love it, mostly because the whole thing is on a layer style and I can now apply it to anything.

Don't think I'd ever use it for us here at TribeMind though. It is sophisticated, but in a kind of sushi/bamboo/vegan way. Maybe something like this for a specific aplication, or if the logo rotates/selects randomly on page load. Or, if it's on top of brushed aluminum. There's nothing more badass for a software company than brushed aluminum, right?

We Grow Pretty


8 August 2006. Tuesday. 6:03 pm.

My real purpose for the box around the logo was twofold:

1: Give the type something flat to sit against
2: It's a powerful way to make the logo adaptable. I can fill the box with different colors/textures/photographs for different situations.

This is a shot at filling the box with a plant-like environment. I like the distressing layer on this. I think it could work very well if more carefully applied for a final execution. Rougher, higher resolution chips and stabs and sanded edges would be nice.

Water Color


8 August 2006. Tuesday. 5:59 pm.

A shot at a loose distressing layer and a fire-like watercolor effect. Too froo-froo for a bunch of mean, professionals looking to take on the big boys of our industry. But it still beats the hell out of the fire effect :). And chrome. God help me if I ever chrome anything.

LogoPlay - Fire


8 August 2006. Tuesday. 5:57 pm.

Fire effect applied to the logo of a game company?!? No way! How original! How unheard of! How unparalleled! How never going to be seen ever again outside of this blog...

Mostly, an exercise in photoshop technique. This is a brilliant (I didn't come up with it) combination of a Wind Filter, Blending Modes, and Liquify.

Working image uploads!


4 August 2006. Friday. 6:01 am.

Well, I've got it! After a long night of figuring out the PHP GD library and file handling methods, I have given my users a way to upload images. Sweet! It creates a thumbnail dynamically, and limits upload sizes to a reasonable scale, too. All in all, I'm happy with this solution, and I was careful to functionalize the image and file management so that I can use any of them later.

There is one known issue with this upload system, which will be fixed soon. Any file of the same name that is uploaded will overwrite whatever was there first. I need to check for existing file names and increment the new filename until it is unique. Later on that :)

A great side effect of the site's development is that I am rapidly building a php function library, which I'm sure will be useful for any future projects I do.

Next priority is to port all of this great functionality to a new, more accessible, more professional looking website design. Can I do it before 9am today? Heh. Let's try it.

I should have already been this far this week, but it took me a LOT longer than I thought to get to a logotype treatment that I was happy with. It's easier when you don't care about the finished product as much, and is sometimes comes out better. Strange. Because I really wanted this to be perfect, it was very tough to get out. But finially, I'm happy with it.

You should be able to see the finished (box or no box?) logo and logotype over to the right, thanks to this new image-capable blogging system!

I'm so tired/up-on-coffee that I'm in that drifty half tired half not tired kindof crazy state. Almost my favorite :)

Link


27 July 2006. Thursday. 2:38 pm.

In the interest of compiling a list of links to places that we should be marketing to:

http://www.gamasutra.com/
http://www.devmaster.net/

More on blog entry saving...


25 July 2006. Tuesday. 6:00 pm.

I've been thinking about saving in progress blogs. I thought it'd be easy, and it should be, but I forgot something. Storing it in a session variable is great, but that requires a script to be called. I can't save something in progress. There's nothing in the blog entry form that can check for a user typing, or that can save the entry form when the user does something dumb like close the window, sneeze in the keyboard, or hit the power button.

It looks like I need to start detecting activity in a form, and implement some sort of autosave. Yikes.

Not yikes, I mean piece of cake...

Mmm... yummy cake. actually, that's a lie. Cake is boring. The food, not the band. The band is incredible (or was, their a bit stagnant now, but that's besides a point that was already besides the point). Pie is much cooler than cake.

To-Do Today


25 July 2006. Tuesday. 2:33 pm.

Today I am doing "Art Stuff." layouts for the website, material composites, photography, etc. I want to see and explore a lot of texture for this, and see what I can bring together. Texture of code, texture of nature, neural networks, root systems, layers upon layers of related non-concepts arranged together. Hmmm...

Brainstorming....


Roots
Wires/cabling/underground
Sewers (yeah, that's real positive)
Neural networks (as in your brain, smarty)
Circulatory systems (? not sure of the conceptual tie here, but cool, I guess)
Arrows/vector (say hello to massive time investment)
Patterns: Wallpaper, dirt, wood, brushed metal.
More later

Also, it seems I need to have the blog entry form remember what is typed in better. It remembers sometimes (like when there is an error) but not when the user does something on his own. The best solution seems like a session varaible (which is a lot of overhead, but can be controlled) that expires upon sucessful database entry or... what... 30 minutes? I don't know. Maybe one day? If it's only storing the last entry, a day long storage is probably OK, and might be nice, so people can leave and come back later. I think that's what I'll do.

Editing Blogs


24 July 2006. Monday. 6:31 pm.

Today I added editing capabilities for the blogs--delete and modify functions. It's something I didn't expect to add this early, but it ended up being the kind of thing that my "users" wanted right away. So it's done, and I'm glad. It wasn't as tough as I thought it might be, maybe because I'm getting the swing of PHP/SQL, and maybe because a 5 year old coulda dribbled spit into a pattern that accidently typed out the necessary functionality.

The basic requirement for this functionality is that I track the variables that hold the content for the blog text and title, so that they can be maintained for editing. this is nice too, because now if you forget to enter the title, the error message kicks you back to the blog entry page, but your body text will still be there. In other words, nothing has to be typed over again, which is always good.

http://www.phpbuilder.com/

http://www.zend.com/zend/tut/using-strings.php

Progress on C++ Wrappers


21 July 2006. Friday. 3:42 pm.

I've been looking at ways to include flash in C++ code, in order to optimize our development process. This is apparently a very common thing, and is called a C++ "Wrapper" for flash, a "framework," or a "host." I have assembled some links which relate to the topic. One in particular talks about developing flash games with C++ hosts, and mentions different options towards the bottom.

http://www.screenweaver.org

http://www.northcode.com

http://www.drizzle.com/~scottb/gdc/flash-paper.htm

Link to C++ wrapper stuff


21 July 2006. Friday. 3:14 pm.

I found a great link to C++ flash wrapper information
here.

20 July 2006. Thursday.

The end of the week really snuck up on me this time, and I have a lot to do on this project, not to mention the other two or three things I should be working on concurrently.

My priority for today is to set up formats for viewing the user submitted blogs, which are now getting added to the database beautifully. Now I need a system that sorts the entries by date, and outputs them in a nice format.

19 July 2006. Wednesday.

It's wednesday and the dev blogs should be finished, but they're not. I need better structure, or something. everything's getting passed around everywhere, and each page (like the one you're seeing now) is rendered by 5 or 6 seperate files. My architecture is not right, and I don't know if I want to fix it now, or fix it later. I think I'm gonna go with later, since the site layout will change dramatically anyway. But the challenge will be getting user-updatable blogging to function in this environment. Whee. I guess I need seperate relational databases for each user's blog, auto inputted dates and user info, imposed structure (something simple like this blog format), and editing capability. (whoah. editing. crap. I didn't think about that until just now. That means... a lot of extra.) How about for now, just creation. editing is unnecessary at this early stage.

So, for today... Set up the relational databases (at least one as an example), and create a process for new blog entry submissions. Just cronological order, nothing fancy, with a title and date header.

On a separate but equally important note (because music is art and art develops life), the Mediocre Show just introduced me to a Japanese Hardcore Band called "Envy." They're very cool.

It's the end of the day now. I'm so close. I have a database set up, and a form that dumps blog entries into it. It looks like it works great, but I don't have a page set up to view em. That should be a piece a cake. I was having some issues with special characters in the submitted text, but I can't recreate them, so maybe they've gone away? I'm not quite sure. I have to look into the storage of special characters in mySQL, and see if PHP messes with things as it's passing info to the DB.

http://www.sephiroth.it

18 July 2006. Tuesday.

Well, I figured out the problem with the mail() functionality. Who woulda thunk I need to actually have the e-mail address created before I can send mail using it as the "From:" address in the header. I thought that was just cosmetic. There isn't any SMTP authentification as far as I can tell, but it does need an actual account associated with it. Odd. I also went through the architecture of the site a bit and tried to streamline it. It's kindof a mess to handle this way, but if feels like the "right" way to do it.

17 July 2006. Monday.

So. I got this up. By this I mean the current framework. So that's pretty cool. I have php variables passing around section information so that my design process is streamlined. Everything needs to be written only once this way. No more recreating the navigation for every single page! Wheee! Plus, when I need to change something, I need only change one place! The difficulty of this setup though, is understanding the interactions of all the different files that now go into a single webSpread. But, I think I've got it. There are still some fuzzy spots around how things get loaded, and in what order, and how to maintain certain parts of a page while loading others (like the login section). I'm close. This will soon host the other dev's blog sites.

14 July 2006. Friday.

Today I'll be finishing up password selection (which means I have to verify that it is a valid and sufficiently complex password), and track sessions so that users can stay logged in. Then I will be ready to implement a developer blogging system.

So, password selection and verification now works, but the php Mail() functionality detonated itself. I changed nothing that would affect it, and spent hours trying to repair it. I even tried a totally seperate script that had worked before, but now does not. I can't get it to produce errors, but mail() returns nothing and no message is sent. !)#@$$. so, I'm looking at phpMailer, an addon class, which should work, if I can get the thing installed.

13 July 2006. Thursday.

I finished up the login system. It has basic functionality: registration, e-mail validation, password hashing and storage, lost password resetting, and password selection. Or wait, maybe not password selection yet. I still need to let users pick thier passwords, and also keep track of sessions so that users stay logged in across pages. Also, I need to have more advanced form data validation, like checking for real e-mail addresses and reasonable passwords. (what up, AJAX!)

The domain issues are sorted out. This domain now points to a folder/subdomain (my hosting provider created both, still not sure which is what and who is the "real" one) at www.butter-side-up.com

12 July 2006. Wednesday.

My first priority is to finish the user login/membership system, then I will add a skeleton framework for the site, assuming the domain issues have been sorted out. If they have not, I will either develop the logotype or extend the membership system to allow user blogging.

11 July 2006. Tuesday.

Moving TribeMind.com over to BlueHost.
Working with the new DB server, and becoming more comfortable with PHP db access.
The new DB is here. this is the future list of the users that are permitted to update the site.
Testing user login functionality on the new server, here.
Learned about hashes and one way encryption. This is absolutely fascinating stuff.

10 July 2006. Monday.

Back from the beach, and working again.
Signed up for hosting with BlueHost. They support ruby on rails, which will allow me to play with the framework in depth.
Installed phpBB, a chatter, and WordPress, they may be feasible as forum/blog engines for the developers.
BlueHost looks great--supports the domains and DBs we need, has integrated credit card support, and handles ruby/php5.
Working on PHP/SQL based user login and authentification. Tutorial here. My test here.

LINKS
http://www.butter-side-up.com
http://www.guistuff.com/
http://www.templatesbox.com/

29 June 2006. Thursday.

Started by reading philip geenspun's article's (admittedly old) on SQL and RDBMS. The guy's a hilarious smartass.
Went on to read this, which covers more modern topics like permissions and security.
Installed instant rails. Am playing. Got rails up and running with Derrick's help. Running thru this tutorial.
This article talks about "ajax on rails." Ajax request objects working in a rails framework. swank.
Ruby on rails is INSANE about file structure and naming. (*@&()!*!!!.

SQL LINKS
http://databases.about.com/od/sql/a/sqlfundamentals.htm

28 June 2006. Wednesday.

Working on PHP/mySQL installation. Here's the test.
Installed mySQL. playing with configuration and interaction with php.
Made a small test page to attempt PHP data entry to mySQL.
Here the database may be viewed. It works! WooooooooooooT!

27 June 2006. Tuesday.

Worked with JSP (what'r "beans" again?) and JScreator.
Made this test. It doesn't work. Neither does this date/time test

Got Ruby. Am Learning. Expect this to be in an all fancypants blog backend (hehe fancy backend) soon.

AJAX / JAVASCRIPT
http://dojotoolkit.org/
http://developers.sun.com/prodtech/javatools/jscreator/downloads/index.jsp
http://renkoo.com/login.php
http://www.sitepen.com/index.php

RUBY
http://www.rubyonrails.org/down
http://www.radrails.org/

 

26 June 2006. Monday.

Studied Ajax, Ruby, and mySQL
Evaluated game dev sites for content parallels
Investigated business models of successful multiplayer games
Drew up rough sitemap

WEBDEV
http://www.webpasties.com/xmlHttpRequest/xmlHttpRequest_tutorial_1.html
http://squidfingers.com/
http://www.ajaxmatters.com/r/welcome
http://www.onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html
http://www.maxkiesler.com/index.php/weblog/comments/60_more_helpful_ajax_tutorials/

 


username

password