Nathanwilson.com > How >


Contact
Interests
People
Thoughts
Work
Contact

About the Current Site:

Most of the code in this site is custom programmed in the UltraEdit32 text editor. However, it also makes use of several helpful software systems and languages, the creators of which must be wonderful people:

  • Windows XP Pro runs all software.
  • Apache is the server.
  • MySQL is the database engine.
  • PHP is the current backend language.
  • Code Igniter is an MVC framework that makes PHP more like Ruby on Rails, which I've been using since February 2007 and really like - a beautiful package.

Systematic Philosophy:

The site is a central part of an ongoing hobby to try to more formally study the "personal information sphere" and how it can be:

  • Dynamic: Keeping things current would take a lot of time, so I've tried to get the content and display so that anything can be tweaked with zero update repetition. Like other websites, it works by connecting data sources dynamically through a software engine to show different views in response to different inputs, triangulating information like a Rubik's cube.
  • Structured: All data is formalized and stored in structured databases using MySQL, and recalled and printed onto the page as needed.
  • Singular: Every piece of information is located in exactly one system, which dramatically simplifies creation and revision - all of these singular instances of concepts and facts can then be easily standardized, referenced, and category-based frameworks can be built. Most vitally, information forks are avoided as "updates" occur in one place only and are inherently propagated.
  • Modular: All data retrieval and display functions are carefully modularized in the appropriate language - the rule is that whenever a line of code or concept is used two or more times, it is carefully generalized into its own function that is then referenced.
  • Movable: Some time was spent writing a virtual file system to move things around on the hard drive and reorganize namespaces without breaking code. That way if you realize that something has a better physical location, you can move it without a second thought and the many references adapt.
  • Abstracted: Finally, another great deal of work was spent making an abstract data engine and content management system that would facilitate storage of unimagined media and relationships. It was interesting to think about what constitutes a "type", and what a semantic relationship really is. The goal was to abstract it enough to make all of the work extensible to update easily in discrete pieces to change with the times. Thinking about the abstraction process in this restricted domain has helped to focus my neuroscience thinking too.
© 2008 Nathan Wilson   |   Why   |   How