ben robison
when only more words will do
Is your web site a sucker?
The article that prompts this post is Biggest Mistakes in Web Design 1995-2015. If you’re easily offended, this post may not be for you. If the references to the quality of your web page doesn’t offend you, Vincent’s sense of humor may. The article also serves as a decent index to the many articles he’s written.
Many have probably heard about Web Pages That Suck. I think I first ran across it several years ago, but largely forgot about it. A few months ago, I ran across it again. Most of the content was new to me, so I looked through it and read a few of the articles. If it’s late at night, or you’ve got a few geek friends crowded around, you’ll really get a kick out of the 10 Worst Web Pages in 2006.
Some of the things that people are doing with their website are absolutely appalling in their horribleness (yes, I made that word up), but some of the other things that people do wrong are rather subtle, and I find myself falling into the traps sometimes.
So, if you’re wondering how bad your web site sucks, you can head over to the checklists to analyze your own site. Checklist 1 is a list of things that mean your website definitely sucks. If you check a box, then your site sucks. Checklist 2 is a kind of conglomerating thing. It’s hard to tell how many of these you can check before your web site qualifies as a sucker. After looking at the checklist, head on over to What do I do now? page to find out how to fix it.
On a completely different note, my website seems to have finally made it into somebody’s spam index, and Akismet really earned it’s keep over the weekend.
Model Driven Architecture [part 1]
Model Driven Architecture (MDA) is one of many buzzwords you’ll hear in software development circles. It’s actually more than one word, but nobody ever says buzzphrase, we’re much more excited by buzzwords. This article is by no means meant to be a comprehensive resource, it simply represents my attempt to wrap my head around the concept.
Model driven architecture is an attempt to focus information systems on business problems rather than on the technology itself. The idea is that by defining our data and our processes in a certain way, that applications can be written by computers instead of programmers.
The models we are talking about here are significantly more complex than a class diagram or a sequence diagram, but at heart are really providing some of the same information. You can define the types of data your application must represent and you can define how different entities in your system should interact. Then if you define everything properly, a super special computer program can actually generate a functioning application for you.
The main standards behind MDA are mostly developed by the Object Management Group (OMG) which they seem to produce at an astonishing rate (see this list if you want to be impressed). In reality, these computer generated applications are probably better used as a starting point rather than a polished final product, but a good deal of the time investment in creating a new application can be done for you.
Principles
There are a few principles that underpin the model driven architecture. From an IBM article on the subject:
- Models expressed in a well-defined notation are a cornerstone to understanding systems for enterprise-scale solutions.
- The building of systems can be organized around a set of models by imposing a series of transformations between models, organized into an architectural framework of layers and transformations.
- A formal underpinning for describing models in a set of metamodels facilitates meaningful integration and transformation among models, and is the basis for automation through tools.
- Acceptance and broad adoption of this model-based approach requires industry standards to provide openness to consumers, and foster competition among vendors.
If that made any sense, then good on you. Here’s the benrobb version.
- Defining your data makes it easier to understand, especially when there’s lots of it.
- Our really cool MDA tool lets you turn your model into different types of applications in different languages.
- This will get even cooler if we can get lots of people to do it.
Value Proposition
The main value I see is that it allows you to seperate the design from the architecture, the business from the technology, or in the words of CARE Technologies (OptimalJ creator), the “what” from the “how.”
Compuware (OlivaNovA creator) lays out these values:
- accelerate productivity—cut development time by 40 percent or more
- enhance maintainability—simplify maintenance and refactoring tasks, reducing time and cost
- increase flexibility—respond rapidly to business and technology change
- ensure quality—promote and enforce best practices and industry-proven code standards
- streamline integration—leverage and optimize existing technology investments
- synchronize requirements with code—trace business requirements to application code implementation
We all know that technology changes faster than most business processes, and MDA provides a way to allow you to keep your business processes, but also keep up to date on your technology.
Vendors
OMG maintains a list of vendors of MDA products. Of the vendors on this list, I’ve actually heard of a few:
- CARE Technologies - OlivaNOVA The Programming Machine
- Compuware - OptimalJ
- IBM - Rational
- TenFold - BusinessTransformation & TechnologyTransfer
Criticisms
These are simply coming from Wikipedia, but there are a few that I think are important to mention here.
Vendor Lock-in: Although the idea behind MDA is to free you from the worry of technology and code, using it does lock you into a specific vendor, because at this point in time, none of them are interoperable.
Incomplete standards: some of the technical standards involved have yet to be implemented in standard way, and some have not even been defined yet.
Expertise scarcity: Modellers/MDA Architects are in much scarcer supply than your average (or even above average) developer.
Conclusions
Well, that’s all the time I’ve got now since the baby needs her shower. Part 1 has really focused on what MDA is, what it does, and who is doing it, but in Part 2 we’ll take a look at some of the things you might want to take a look at if you (or your organization) is looking into doing something with MDA.
Secret Sauce & Choiceskills.com
There have been millions of articles about Google’s secret algorithm for ranking pages and prioritizing content to give to users. This article is simply one more in a long line of people trying to figure out how to do it.
With so-called black-hat ranking tactics (spamming, cloaking, link farms, google bombs, etc.) becoming more taboo, there is more and more emphasis on the legitimate and accepted ways to get your pages to rank higher in Google’s search.
Matt Cutts is a senior engineer at Google and has apparently become the default liaison with the webmaster community. He says that the best way to get your page rank up is to ignore your page rank and focus on your customers. Figure out what your customers want and then create buzzworthy content, vital content, or something that provides a service or a resource to users. Create the kind of content that users want to bookmark and your ranking will climb.
We’ve recently begun working on another project in the web analytics class. A local businessman has written a few books about character education and teaching social skills to children. He’s quite passionate about the subject and it’s absolute necessity and he’s created http://choiceskills.com to sell his products. It’s a small business mostly receiving traffic from Google pay-per-click campaigns, and in it’s own little way, it’s profitable.
Until recently. His web host provider went out of business and he was forced to move over to a new host. In the process of doing that, some links broke, and there were some other issues, but suddenly all orders came to a grinding halt.
The web analytics class is now responsible for reviving the site, growing revenues, and making this into a viable business. I’m actually really excited about this. So with these thoughts floating around in my head, I’ve started to do some thinking.
The first thing to do is figure out what markets these books appeal to. I believe we were told that the bulk of sales that used to occur were from school districts, but doesn’t this seem like the kind of content that would be suitable for parents to teach their children as well?
What kinds of searches does our local businessman want to end up at his site? Which keywords is he buying? If he wants to drive more traffic, how can he use the secret sauce to create a buzz? Would creating a blog about the major topic of the site help bring traffic? I know that Google brings a lot of traffic to my blog, and while I have looked at some of the results, I haven’t taken any special measures to climb the ranks.
Choiceskills is a static site right now, and doesn’t show up anywhere in the top ranks of searches that I thought were relevant. A static site isn’t going to be moving anywhere quickly. Maybe something dynamic could help bring people in.
In addition, perhaps he could partner with some of the sites that do show up at the top of relevant searches. Googling “character development” brings up all sorts of sites that look like they’d be willing to provide links to drive traffic.
One final thing to wrap up my initial thoughts that I don’t want to come off wrong. I know this is a legitimate business because I’ve talked to the owner about his plan and his business, but if I didn’t know that, I wouldn’t spend my money on the site. It just doesn’t look like the kind of site that I would trust with my credit card number. Perhaps giving the site a more professional, business-style template could help things out a bit.
In any case, I’m excited to get moving on this latest project and build this business. Seriously, how often do you the opportunity to do fun things like this?
Rails & MemcacheD
Well, after spending a few frustrated hours on Saturday, I’ve got a working application that uses memcached. And when I use the word application, I use it very loosely. It’s basically a page that sets the current time into the session.
Now originally I followed this tutorial and installed the necessary gems in order to cache the ActiveRecord objects into memcached. I followed all instructions exactly as instructed, but starting the memcached server in verbose mode, revealed no object calls to and from the cache. If I loaded up the application console, I could access the cache directly and put things in on my own, but the functionality provided by cached_model was not working on my machine for whatever reason.
Being somewhat of a nuby anyway when it comes to Rails, I turned to an alternate solution rather than hopelessly debugging the current problem. I found another tutorial that had instructions on how to cache sessions into memcached. I used the memcache-client client rather than the Ruby-memcache client going for the speed and the ease of setup. It works like a charm.
Now rather than just leaving it there, I’ll tell you what I’v discovered over and above what Elliott discovered over at townx. The ongoing development of memcache-client has apparently made some advancements to the point where it matches the application stability of Ruby-memcache when the memcache server is turned off.
At the time of the post, Elliott observed that when using memcache-client the whole application fell over when the connection to the memcache server was lost, while Ruby-memcache kept the application running with irretrievably broken sessions. He then wrote a plug-in that monitored the memcache servers and when they came back online would begin using them again (rather than having to restart the application). My observation as of today is that memcache-client now has both of those functionalities built in.
When the connection to the memcache server is lost, then the sessions are broken, any data stored is inaccessible, however when the memcache servers some back online, the application recognizes that and begins using the sessions again. If the memcache server was turned off, then any data in them is gone as well, but if the memcache server itself was still running and it was just the connection lost, then the session data should still be available in the memcache servers.
As a sidenote, over at Nuby on Rails, they noted that the the memcached server available on Macs through Darwinports is broken. I verified this; the calls I made to the cache directly from the console did indeed take 5 seconds to push through. However,when running it from my Ubuntu box even over the internet (Sundance to Orem) the application response was pretty snappy. Not to shabby considering the quality of the internet in Sundance.
dd-wrt Open Source Firmware
My trusty Linksys router has been going steady for close to 4 years now, but recently it’s started having some troubles. It was still performing most of its duties just fine, but the wireless started to become very problematic. In addition, it uses Stateful Packet Inspection as part of the firewall, which completely breaks down with the new Windows Vista TCP/IP stack (I found that out during beta, I don’t actually run Vista at home).
So I figured that since my laptop was the only wireless device on my home network, I could just work around it, and plug in whenever I needed internet access. Certainly limiting, but on a student budget, I didn’t feel like fronting the money for a new router.
The recent win at the Web Analytics Competition provided some play money, and somehow a Nintendo Wii found its way into my entertainment center. Now those of you familiar with the Wii know that it has built in wifi (yes it’s only 802.11B, but wireless is wireless). Suddenly I had another wireless device to manage. The Wii connected fine originally and downloaded the system updates, but whenever I tried to connect to WiiConnect24 (which enables every other internet enabled feature on the Wii) it errored out with a 220602 error whenever I tried to access the EULA.
After googling around a bit, I found a solution that involved turning off all your encryption, etc., accepting the EULA, turning all your encryption back on, and continuing as normal. I tried this solution and found it to be lacking. I still received the same error.
I had heard of dd-wrt (pronounced “d-d-wort”) before, but was a little nervous about using it. The complete and utter lack of wireless functionality finally got to me, and tonight I broke down and installed dd-wrt.
dd-wrt is an open source firmware for use on many varieties of routers, but has found a home among those fed up with their Linksys WRT54G series routers. It wasn’t all rose, but after a few hours of playing around, I’m up and running successfully on encrypted wireless on the dd-wrt mini firmware for WRT54G.
Unfortunately, I’m not sure what happened. I’m sure you’ve all had those moments that after screwing around with everything you can think of, giving up a few times, trying again, something finally gives and it works, but you don’t know what happened? This was one of those times.
I originally flashed my router with the dd-wrt standard image and thought I had bricked my router (bricked = turned into an expensive plastic brick that doesn’t do anything but flash lights). Linksys provides a management console to recover from such things, but I was having trouble getting there. Try as I might, that console to load the original firmware back just wouldn’t come up. I got online and ordered my Airport Extreme Base Station figuring if I was gonna spend money, I might as well spend a lot and get the best.
But I have trouble giving up on things, so I tried the hard reset to get to the Linksys Managament console again and the dd-wrt suddenly came up and was seemingly working. However as I began to change settings, it appeared that the update.cgi script that should have been running to save my settings wasn’t actually running at all.
After another hard reset, I flashed it back to the Linksys firmware which came up and allowed me to configure away. However, this less than optimal solution turned out that I still didn’t have wireless. I tried again with the dd-wrt mini firmware and all seems to be well. The mini firmware seems to have all the functionality that the original Linksys firmware had. One thing in particular that I missed from my brief view of the standard image was the ability to do your dynamic DNS right from the router. Anyway, everything is working, the Wii got its EULA and my MacBook Pro is now up and running wirelessly.
I just cancelled my order for the Airport Extreme Base Station from Apple. I figure now that all these issues are resolved, I might give my free copy of Vista another go and see how it runs. I’m reluctant to do this however, since I swiped the Ram from my desktop and put it in my server, and a server just doesn’t seem like the best place for a consumer release of Vista.
So to wrap things up, if you’re fed up with your WRT54G router (or many others, see this page for a list of supported routers) and you’re looking for something new, you might want to give dd-wrt a try. It’s working great for me.
Subscribe to RSS