A Good Website

I’m thinking about universal rules for what constitutes a “good website”.

  • Stable infrastructure
  • Secure hosting and application development
  • Findable: good SEO – Search Engine Optimization
  • Usable and easy to adopt to: “Don’t make me think”
  • Responsive to different devices
  • Meaningful: typography, color and layout convey appropriate meaning

I could be wrong but everything beyond that is about art design (image selection), editorial issues (content selection and copy writing) and system design. Those aren’t universal “website” issues.

What do you think?

Post-publish thought: After publishing, I noticed that my post didn’t have a “featured image” – something that I try to include in every post for the expressed purpose of having a “good website”.  Maybe I should get a stock photo of a frustrated computer user but that seems cliché.

how we learn :: who we are.

skateboarding. programming. surfing. guitar. golf. woodworking. bird-watching. cooking. drawing. All skills that take time to develop. Aptitude is required but I want to unbox that a bit in this post.

This is soooooo general, but we often compare ourselves to others to get an idea of who we are.

“I tried and I’m not good at that” instead of “I could be good at that if I spend the time to learn the underlying skills required to perform at that level”. What I mean is you don’t learn to play songs on the guitar without first developing finger muscles, learning notes, chords and scales and how to read music.

Let’s take cooking. I’m a good cook. I learned to be good at cooking by watching cooking shows, reading cookbooks and committing concepts to memory. I have taken deep dives into many focus areas. For example, I spent a lot of time trying to define what makes a good scrambled egg and how to make them good every time. The goal is nicely seasoned, non-greasy, tender curds. I find that most bad eggs are a result of overcooking. Is it reasonable to assume that anyone can make a good scrambled egg? Yes. The person would have to pay attention to the several variables and focus on the goal. Not a lot of talent involved.

For a while, I have perceived certain professional ineptitudes as a lack of ability. I think this attitude doesn’t serve me well. I’d like to push myself to focus on some learning goals, for which, I will approach learning in a systematic manner.  Learning goals will be achieved with research and lab experiments. If I’m having trouble learning something, I’ll try to see if there is an underlying concept that I need to focus on in order to understand the entire task or learning goal.

That’s the point of this post. If I can slow down and approach learning in this way, I will learn a lot of new things. It sounds a little hokey but those new pieces of knowledge will be part of who I am.

Thus, how we learn is directly related to who we are.


Salesforce Project Completion

This year, I worked with Brown University to transition from legacy application and enrollment technology and their inherited problems to a new platform. We started from the ground up; facing legacy services approaching and surpassing their sunset dates.

We found replacement products available from a variety of vendors. The legacy backbone was Ellucian Banner. While Ellucian offered solutions in the same spheres as what we needed, we found that the systems didn’t handle the full lifecycle of the user. We decided to go with Salesforce.

We needed an application and an enrollment system. Standard products offered those with some handling of user records, but we went with a user-centered system and used TargetX for application and built a home-grown system for enrollment with a combination of our course catalog and a salesforce cart to manage registrations.

The key difference is central: who is at the center? a process or the user.

This was a major transition and we are still ironing out the details of how to integrate Salesforce data into our legacy systems. For example, we need to take Salesforce registrations and their associated costs and pass that data into our billing system. This is not a mindless transition. We need to maintain our legacy billing system while providing a new input from Salesforce. There’s a lot of technology supporting the transition but also a lot of stress that it is done right.

For now, it is a work in progress. I’ll have to talk about it more in future posts…


New Website for Bruno United

I went live with a rebuilt website for Bruno United FC this weekend. Designing the site involved restructuring the content so that it was organized in fewer pages and adding more marketing content to the homepage. By moving the navigation from a column on the left to a menu on the top, we had more area to design attractive pages with big pictures of soccer players.

Technically, we switched from Drupal to WordPress. The site was built on top of the Avada theme. Since we had a staging site with a different url during the buildout, we used the search and replace tool at interconnectit.com to replace the staging url with the production url.

lightweight local dev setup

In an effort to change old habits, a lot of my recent posts have to do with new tools and working with different processes. The nasty old habit, in this case, is working directly in production environments without source control.

Here is a set of steps to working locally in a really lightweight manner:

  1. create directory for development and navigate to it within the command line
  2. assuming there is a repos already in existence, clone it into said directory and make a branch to develop on
  3. git clone...
    git branch <name-of-branch>
    git checkout <name-of-branch>
  4. install dependencies (bower install)
  5. setup pre-processing:
    codekit (just drag the folder onto codekit)
  6. startup php local webserver in folder
    php -S localhost:8000
  7. make files, edit files, etc.

  8. commit changes to git
    echo ".DS_Store" >> .gitignore
    git add .
    git commit -a -m "message"
    git push --set-upstream origin <name-of-branch>
  9. thereafter, make changes and push them
  10. git add .
    git commit -a -m "message"
    git push origin master