Ionrock Dot Org

by Eric Larson

My Weblog

MyXAML

Today I read on osnews about a project called MyXAML. If you have been following any of the discussions about things like Mono and .Net, you would have stumbled on upon XAML. What is very nice (and a little scary) is that XAML makes creating a user interface for a program similar to creating a webpage. Recently, many designers and gurus in the web design/development world have chimed in the concept of separating content from the design and layout. This tactic is meant to produce a longer lasting site that can be easily updated and changed. On a small side note, I agree with this ideal, although I think web designers cannot separate real content nearly as easily as developers, due to the usage of databases. XAML then will allow someone to create a user interface in an XML based markup language and do things like apply style sheets. This is very good because it should allow designers and user interface people the opportunity to create a great interface while keeping the functional aspects under the hood. What is scary is it will allow designers and interface people to the opportunity to create interfaces. Let me explain.

If a designer can do whatever they want with interface of an application you quickly begin to see what has happened with the web with regard to site design. There is no consistancy between sites. This makes sense on the web but on the desktop this should not be the case. The desktop should be a concise and consistant medium to work with. This could potentially make every app become an entity in itself with regard to user interface and design. Imagine every application having completely different skins like winamp with totally different interfaces and I think you see my concern. Now, this is not saying that I think this is a bad idea. I think the words of Spiderman's Uncle Ben say it best, "With great power, comes great responsibility."

I for one am very excited about this kind of technology because it will make creating an interface simple and easy todo without needing to understand every aspect of GTK+/# , QT, wxWindows. It also allows for an interface to be created without Visual Studio, another huge plus. Overall, this will really make programming about making things work and designing about making things easy to use which is a great thing. Of course, since we all know how many people read webmonkey and designed their first webpage, we can expect to see quite a bit of scary colors and hideous backgrounds come into play. Hopefully people will have learned from others and these kinds of evolutions can be avoided.

Posted Thu Apr 29 22:04:52 2004 by Eric Larson

Documentation

I am going to write more... that is it.

Posted Sun Apr 25 22:17:11 2004 by Eric Larson

It is finally done!

I understand that many do not read my blog but for those that do, I wanted to explain where I have been for the past couple weeks (specifically this pertains to phpwcms and all the fine folks at the forums there who I have had little time to speak to because of the following). Well, it all started at the beginning of the semester in a class I am taking on databases. This is an intro course so the content was really meant as a refresher and more formal learning of the subject. This course is also an IST course which means that group work is a crucial component. The end result of this class is to be an expert DBA and create a large scale database driven website, similar to sites such as ebay, amazon, and wine.com. This project has been quite a task. I have spoke of the issues with the server I have had during the course of this project. And my group members were not always the most helpful. This truly was not their fault and probably more of my own because I set high standards for writing code and they had no experience with php making the web site and largest part pretty much all my own doing.

With that in mind, my group members really did the best they could to learn and to contribute to this area. They would write code based on templates I gave them and for the most part they were helpful the parts they did. The reason I say this is because if they read my blog I would hate to give them the impression that I did not appreciate their hard work and dedication to the project as well as dealing with me not always being the most talkative and helpful group member. A special thanks go to them who really did help even though they may not have written much code. Thanks!

Anyway, so we can see this was a big project... We chose to create an ebay site because it contained enough meat to really show off some serious db skillz. Really everything went very well with the project and there is not much to say. The server didn't work all the time. I did most of the php side of things and that is that. In any sense it is done and I can get back to thinking about other classes such as my calculus class which has been desparately needing my attention. This summer is the summer for phpwcms so look out.

If you want to check out my monstronsity of a project you can check it out here. Enjoy!

Posted Sun Apr 25 00:41:38 2004 by Eric Larson

Design and Me

My focus this summer is twofold with regard to my working. The first thing is to get better with customers, estimates, and design. Basically, I want to become a better marketer. The second focus will be to get better at programming. This second focus will really be more broad in scope since I need to get back into the world of compiling things to help ease the strain of the upcoming semester. I feel pretty good about the programming side of things because I really think that I am off to a good start already by working in general. On the design and marketing side of things I am a little more concerned. I find that when I do a design that I like, it really isn't much of my design. I am a pretty bad copycat when it comes to design ideas. I have yet to decide whether this is a horrible thing or a normal part of web designer life. I am positive I am not the only person doing this sort of thing so it is not the feeling of doing something wrong in practice that bothers me. It is the fact that I am not really creating anything that really gets my goat.

It brings me to the conclusion that I need a creative process. I relate this to database design, which while some may not consider it artistic, it definitely needs some creativity in the end. In database design there is a sure fire way to produce a relatively useful database. The people who are very good at this sort of thing can make the database exceptional but there is a strong foundation to build from that makes creating excellence a easier task. My aim then is to do the same thing for design. I want to develop a method to creating a design that may not be amazing, sets a good base for growth. This spans from color to code and encompasses everything from predesign ideas to a sweet css file. I want to layout my first attempt at creating this method of design, even though I am a big copycat, I have to start somewhere.

The first thing to do is establish and audience. This is the most important part of any rhetorical communication and web design is no different. The audience and/or use will be my guide designing the site. I will create five users who will go to the site and analyze it for their experience. Each user should have at least one special need that needs to be fulfilled. The obvious example would be a senior who needs large text, but we will need to be more creative than that. If there is time (pronouced money), real people should be enrolled to get real life examples of users. This can also be done to help create a test bed of personalities you can use for different projects (thinking ... "yeah this sounds a little like I know what I am doing... strange"). The end result of the user research will be to develop one description of how the site should feel and work. For example, "This site needs to convey a subtle hint of arrogance to convey extreme confidence while enabling personal relationships to each customer. The site should focus on graphical content due to the specific audience (describe here). Three words to describe the site are focused, bold, handsome." The three word "thing" there is a good use for yourself to remind you what the design should be doing. It also can help to keep your ideas in check with what the customer is looking for.

Now that the audience is established the next thing is color. What colors defines the look and feel of the site. I have read that picking three main colors is best but I am going to go out on a limb here and say five is the way to go. This allows for some hinting colors that, for myself, never seem to make it into the design. I will pick three and use three so for myself more is better, especially if they are different and provide contrast. Again, these colors should envoke or be used to envoke the feel of the site you created when you determined the audience. If they don't look exactly like the feel (if that makes sense) that is alright. It is just a guideline and quite possibly it is better to go with colors that don't look like the feel in order to gain a sense of difference from other similar sites or designs.

Now that we have a clear focus, some colors, and little money left, we start picking out design elements. These are things like typefaces, photos, effects, etc. that will be used in the actual layout. At this point I think there is the temptation to start messing with photoshop or your favorite image editor and start putting together some layout ideas and where things need to go. Hold off on this. It is better to develop this pallette of colors, and tools before painting than to start sketching and then have to go get paints as you see the need. I hope that metaphor makes sense because I just thought of it now and I think it might really be and important idea.

A little side note to empasize this. When I was in 8th grade we did a paper where we had to turn in all our pre-paper work such as notecards, bibliography information, and 4 rough drafts (that was a pain). While I don't think I ever did a paper like this again, I did learn that taking the time to get supplies and sources together makes for a better written paper. At the time it made it seem steril and boring but when I was done I very impressed with the result. The system in itself really helped to give a better product. Alright, back to this first draft of the design method plan.

One thing to think about in developing this pallette of design elements is where you are going to get these parts and pieces from. I have started taking my camera with me so I can take pictures if something strikes me as interesting. Many of these pictures are not worth a flip but I keep them all nonetheless to help build a library of pictures for designs. This is an easy way to get material together for designs. I am ripping this off from Web Design on a Shoestring. The book suggests that before you purchase stock photography and expensive fonts, consider working with what tools you have such as your own digital camera or creating your own fonts. What I am trying to say be creative when creating your library to draw from.

Now that we have tools, colors, photos, and a general feel I think now is the time to start a design. At this point the best thing to look at is the content going on the pages. This is a very difficult part. In my own experience text and content have been a struggle to get out of a client. I will ask for text and information and they will give me half a page and expect the rest of the site to create itself. But enough whining, this dilemma makes for an important point. If you know the client is going to welch out on giving up some verbage than make the design focused on having less text and content. The idea here is to analyze what content you have and how to organize it for the website. Also, consider future content because if you are like me you have this passion to make people update their own websites in the hopes that only original, interesting work will come my way. You never know when the client will need a huge photogallery along with 30 years worth of brochures on their website.

We have arrived at the point where the brush hits the canvas and the actual design can begin. This is where I am pretty lost and not sure where to go but hopefully all this pent up creativity that has been welling up through this preparation process will be at a boiling point where you are going to explode with creativity on your screen. Some suggestions on places to start are

  • The Menus - Is this structure many levels deep or will five buttons do the trick?
  • Divide Up the Page - Does the page need space for many different authors or is it for just one person to ramble?
  • The Background - I know most people just pick white and go from there but possibly another color or pattern would be nice.

As I said, I am not an expert by any means and this is a rough draft but I think this method really could help someone. I am hoping that someone is me. Please leave commments on what you think.

Posted Thu Apr 22 01:42:31 2004 by Eric Larson

Kill Bill

Tonight, Lauren and I went and saw Kill Bill Vol 2. Needless to say it was quite a film. I am not much of a film snob as I was when I was young. I have grown to love cheesy action movies seen on a humongous screen with a huge pop-corn and a soda that shouts restroom. Yet, deep inside there is still a desire to see films and not just movies. Kill Bill was this kind of experience. I especially enjoyed it because I have really wanted to try and learn more about design and art from a production standpoint (as in I want to "produce" art). Kill Bill was nothing short of an artistic master piece in the same vein as Andy Warhol. It makes fun of a genre of films that can only be enjoyed by a cult, kung fu. Yet in its playful poking fun, it manages to extract the very best elements of the genre to create art. I am not much of a critic so my analysis ends there. I can say that I recommend it and that it really shows Tarantino as an artist and not merely a director/writer. Ok, seriously now, that is the end of it. No more Siskel out of me.

Posted Fri Apr 16 09:13:14 2004 by Eric Larson

I need to blog more

Once again I seem to have a few moments to spare because the server being used for my project is down or at least not working very reliably. It is very frustrating since I am really trying to get things going with it. It is hard to develop momentum programming when you can't test things to see if the great ideas you had actually worked. In any sense it does give me a second or two to blog and that is a good thing.

I am very excited about getting back to Houston. Lauren and I have been practicing like crazy and working on new songs. I think we are really going to focus on writing new songs this summer. It is very frustrating to only get to really play about 4 months out of the year. The plan is that whenever I am done with school in a year or so we can all move someplace and really make a go at things. I know that sounds kind of like hitch hiking to San Francisco but in reality it makes sense. We have really grown since getting out of Houston. It is a big deal to be on your own at some point where you realize that your reputation is on the line. Your actions really do have an impact and finding that out can be pretty scary but in a good way. In any sense I think it will be good for Lauren and I to be out of academia and it will be good for Jeff to get out and see more of the world. On the whole, we are hoping the experience just makes us better people.

Of course we can live the crazy rock star life, I have to finish school. In order to finish school, I will have to get an internship. I started thinking about this pretty early and while playing with phpwcms and blogging I found WordPress. Since I have told this story before, the short version is that I found that the guy (Matt) who made WordPress works for a company in Houston called Verve. I had actually seen their site before and thought it would be really cool to work for a company that has more of a marketing and design background (COW is really more focused on development). So I emailed them about a possible internship. Since I am still a little unsure about my abilities and beggars can't be choosers I said I might be willing to work for free. This is, of course, a pretty nice deal since others have paid me handsomely for my services. In any sense after getting a response from Greg, who seemed to be interested in learning a bit more about me. I gave him a call and things went very well and offered to allow me to work on some projects while I am in Houston. This made me very excited to say the least. I really love working with technology and I need to develop my skills as a designer, so this should be very good experience.

I doubt I will get to do much design, but I have a feeling that I will have ample opportunity to see some very good designs and hopefully a little artistic talent can rub off on me. What I really want to do more than anything though is just to get to know more people interested in what I do. I realize that sounds a little petty, but I really like the idea of having many many friends (who wouldn't) that all like different things. I do have friends that are into design and things but none of them actually DO design (although I think they could). I also don't know many other web designers/developers who are really dedicated to the trade. COW has a foot in so many different walks of technology that, while I learn a ton, I don't get to learn as much about things like web design as much as I would like. So, to say the least, I am pumped.

So, I am back to school crap yet again. I am still waiting for the stupid servers to quit acting dumb by not letting me run my code. Someday I won't have to worry about these kinds of issues but for now I do and I have to make the best of it. Wish me luck.

Posted Thu Apr 15 07:56:15 2004 by Eric Larson

Penn State Servers Suck

I am going to go out on a limb here and say that Penn State has some really junky servers. I don't know what the problem or methodology they use when configuring these ultra expensive machines but I truly believe there is a flaw. I am not proposing that I know a good solution. I can set up a server pretty quick but we are talking of a basic debian gnu/linux webserver with a database and not much else. I don't have to handle 50,000 kids logging in and saving thier work on a distributed file system so I will give them a little slack. My issue is that I am making an Ebay type system for a database class. It has gone very well as far as planning the database and making sure we implemented a quality design. What has been a nightmare has been actually trying to use this database. Now running queries and making things happen has been very simple and easier than expected, but that is when we can actually log into the server and the database is up and running. We are using php and that is definitly a good thing. I feel comfortable with everything and I don't mind a little reading to learn the intracacies of db2. Of course when you have no idea if something works or doesn't work because you can't upload files or even ssh to the server that things become extremely frustrating. I will be immensly frustrated with this project if my grade suffers because there were some decisions made to use the PSU servers instead of just putting a box together that lived in the professors office. Thirty users, one webserver with LAMP and a heck of lot more stability and simplicity would be a refreshing change. Maybe I can convince my teacher to let me move it all to another server... I doubt it :(

Posted Sun Apr 11 02:20:31 2004 by Eric Larson

Just a little news

I am currently getting a little bit of a cold which is the worst thing to be happening right now. I have so much work to be doing and feeling like I am going to pass out at the keyboard is not going to be helping anything. I am getting things ready for the trip back to Houston and trying to get a bunch of work done. I be having a pretty crazy time because I have to move a site to another host, install phpwcms and making sure everything is working really well in a week or so. This week will fall right around finals week so it is just adding insult to injury. During that very same week I will have to get most things finished for COW and clean the house. I am not a happy camper. But it will all be worth it to get down to Texas, have a little barbeque, a little beer and enjoy the 100 degree weather.

Posted Thu Apr 8 22:11:48 2004 by Eric Larson

Invited to the Tables for Semantic Markup

There has been a good deal of talk within the design community about css only design. The most obvious complaint that many new to css find is that there is no easy way to make columns. While many css gurus disagree with me on this (no, I haven't spoken with any of these people... yet), I do not feel that it is an easy task. So instead of reviewing the numerous articles, templates, examples, etc., and offering the be all tutorial for creating columns to your hearts desire, I will instead speak a little database speak and refer to the lone tuples and relations that make up what many believe define what a column actually is. You may be guessing at the moment that I am going to contradict those designers that actually have something to show for thier design prowess and in this case you are right. But I do believe I have a very compelling argument as to why we need to take a better look at the "table" as an appropriate tool to create semantic mark up that makes sense in more worlds than the web alone.

To begin we will look at any web developers best friend, the relational database. I want to point out that the relational side of this is very important since without it we are merely speaking of an excel file or spreadsheet. In a relational database the planning is key to creating a database that is flexible, scalable and just plain old fun to work with. To plan an effective database one needs to think about the different relationships data has to each other. A good example would be a persons name and phone number. One person may have one phone number that is strictly their own. Another person might share a line with the whole family in which case each person would have the same phone number. We see a relationship there and it becomes very important to consider how to place this information in a database because it would be a tragedy to lose my phone number just because my wife leaves the database for whatever reason. Why is all this important to design you ask? Well, when you design a database you are focused on creating a good schema, or in other words what columns are going in what tables. A good design allows for amazing things to happen that you never thought about and that is what creating a database is all about, a full proof design that unknown data can happily live in. I know I still haven't answered why the heck this matters to designers and css in particular but give it a little time and we will see all things come into focus.

There are many ways to plan a database, E/R models, Object Oriented Models, Relational Models, MIUAYGA Model (Make It Up As You Go Along) as well as many others. Once you get your plan together you begin to test things out by looking how things relate and if there needs to be changes. What happens is you rearrange columns in tables to make things work and make data easy to access while making it hard to get rid of important info. To relate this all back to design, I want to make clear that designing a database revolves around columns in a very similar way that printing and the web has focused on columns. Columns organize and separate to make information clear to the reader. Columns can be used to provide different opinions or allow easier readability so a point is easy to understand. Without at least one column you have a big bunch of nothing and that is no good to anyone.

So now that we know how important columns are to our data both in the database and on our websites, I pose the question, why is it that in a datbase columns and rows meet to form tables and in web design columns and rows meet to form big piles of crappy designed, unsemantic markup? I agree that tabular data should be placed in a table but I want to know who is defining this tabular data. Who gave that guy/girl the right to tell me that my data should not be in columns or rows and that I had to divide my content up like crazy and play mind games with browsers just to make three stupid columns on a page that some browsers won't even display? Again, I want to make it clear I agree with the catch phrase of keeping tabular data in tables but I would argue that our content as a whole is meant to be in a table if it is supposed to be in columns. Just because a there are not numbers and stats doesn't mean that the data is not tabular. Any person who has worked with a database quickly sees that a database holds all kinds of data from simple text to binary files. All of it belongs to a column and a row and the world is a better place for it. Maybe we need to reconsider then why we have stripped our layouts of their needed structure and functional solution.

Now I realize this may sound like the words of a lazy developer who doesn't to take the time to learn the intracacies of css and its purpose to separate content from design. This is anything but true. I have been a staunch advocate of css to the point of making clear to my professors intro to html that their primitive views of using tables for layout were false and would end up ruining all the students chances of ever truly understanding the web and how it works. I was a believer in no tables makes for better designs, period. I found though that in my work I rarely had the time to make all my designs free from tables due to the limited financial capacities of my clients. When I began working more with issues regarding templates for content management systems and allowing for multiple designs to be created and maintained for many different types of data, problems quickly arose that would not seem to go away.

The obvious argument one can pose in the face of the developer who is making an effort to be standards compliant is that with examples such as css zen garden, there is no limit to how much one can do with css. While I do respect css zen garden a great deal (and I mean great), it relies on static markup. The problem with this is that very little companies pay thousands upon thousands of dollars to get 20 - 50 html pages that have to be updated by hand. Websites all over the web are created using databases and xml backends to store data. It is in the database that you will find the real division of content from layout and design. By placing your content in a database you have the flexibility to do whatever you like with the ouput whether you need the article in LaTeX or a simple html table. This example is most often the case for large sites that have enough content that really does need organized markup where css is truly a way of life to make changes anywhere near manageable.

This issue of designing web pages so they can handle any type of data is similar in the way databases must also allow for all data, both known and unknown, to be added. Where it is incorrect to use tables is the areas where you are not using the table for data. The best example of this is the dreaded spacer gif which is placed in a table to make sure things are spaced correctly. Another example would be the use of colspans and rowspans to make the layout correct. Yet another example would using tables having nothing in the cells and use a width or height to manipulate the design. The main point is that tabular data is not only data that needs to be in a spreadsheet but rather data that needs to be divided by the constructs of a table, namely the row and column. Since xhtml and css provide very adequatly for the instance of a row without many problems, it is really only the issue of columns that would even need to be utilized in most scenarios.

So, if you have kept up with this enourmously long rant, then congrats and you can start looking for something else to do in just a minute or two. The issue of creating columns using css has been solved many times over and while these solutions are all valid and admirable, I would still consider them hacks. We now criticize the use of javascript for our mouseovers since css provides a better solution. This is true because it is an elegant solution that is simpler, faster and easier to understand. But, when you consider the work and time spent on making columns using strictly css, I think we see the same kind of creative solutions that while technically viable and interesting, are still hacks. A table with three columns and one row is a much more elegant way to display three columns on the page. This is especially true if the data within the columns comes from a database or xml file. This is also where a table is more semantically correct as well since an actual table implies the use of columns when css and divs do anything but.

This brings me to my last point, the future of css. I do believe that a table is really not the best way to create columns. I agree that using a tool like css is a better solution but the problem at the moment is css does not offer this solution. We need to push the limits but I believe that forcing our friends over at mozilla to make the effort to render our css masterpieces correctly when the problem could have been fixed with 14 tags is just a little mean. Also, I do not like the idea of css that needs to decoded to make sense of everything (I realize that comments and structured css solves this but css is far from a programming language and should not behave as such). Some day css will offer the solution we need to create columns like our friends in the print industry have. Some day you will be able to make text break at the end of the window and head up to the top of the next column without breaking a sweat and without worrying about the size of the browser window. But until then, I think we should give tables a break and go ahead and use them for what they were created for, making columns and rows.

Posted Sun Apr 4 20:23:53 2004 by Eric Larson
Created using Python, jQuery and Emacs