Saturday, July 31, 2010

Vimium

Vimium is a extension for Google Chrome that allows you to navigate web sites using nothing but your keyboard. It works fairly well, it is based on Vim. I am actually more of a emacs kind of guy (if anything) but I have had no real trouble with it.

I am still playing around with Vimium, but so far it works fairly well. As I play around with it more, I may choose to re-bind some actions to key-bindings that I find more intuitive.

Neat
Probably the coolest feature is the ability to click links using nothing more than your keyboard. Basically, when you press the (default bound to) 'f' key, one or more characters show up next to each link. If you type the character that matches the given link, it is as if you clicked said link. This is pretty neat, and I could see this alone as being one of those features that you would miss deeply once you get the hang of it. And yes, before you ask, to open a link in a new tab just type 'F' instead of 'f'.

Gripe
My biggest problem is getting out of object that have focus. An example of this is the HTML text area within which I a typing this blog post. If keyboard input is writing characters to the screen, Vimium does not work. At this moment, with my character in the text area field, if I press 'f', it does not issue a Vimium command (defaults to showing a list of links): instead, it just types the letter f. Now obviously, I like being able to actually type. It would be pretty nice though if Vimium had some sort of "Vimium" key that allowed me to indicate to Vimium that I wish for the following things I type to be a Vimium command, and not to be interpreted as keyboard input. Either that or I could just switch from Vimium mode to regular keyboard mode.

Overall though, Vimium is a pretty neat piece of software. I like not having to take my hands off the keyboard, I think the link clicking mechanics are pretty darn neat, and I appreciate the fact that I can always re-bind the commands to things I find more intuitive if I so desire.

Cool tool.

Friday, July 30, 2010

Unlocked Evo 4g

I am unlocking my HTC Evo 4g (from Sprint) for one simple reason...

This is far from scientific, but it seems that some apps (Sprint Zone, Some sort of Sprint football thing, Qik, footprint, news, Amazon MP3) are started automatically. By manually killing these apps using "Advanced Task Manager" android app, I can recover almost 30 megs of memory on my phone! I said to myself, "Man, this is a hassle to have to kill these apps manually every time, lets just uninstall them."

Fail. These specially installed apps cannot be removed. Sprint, in their infinite wisdom, has chosen to bundle these apps PERMANENTLY onto the phone. The arrogance is just amazing. Now I am angry.

Ok, dammit. 2010 check! Get it through your heads! I don't mind so much having apps that come loaded with my system, I get it, you want to gain traction for your in house applications. I mean, it is a little cheap, but whatever. However, let me uninstall them! Worse, don't make them start up every time I start the damn phone! This seriously makes you look like an ass. It reminds people of their worthless Dell system that came pre-loaded with an inordinate amount of spy/pay-ware. Android is supposed to be a open platform, don't hamstring it by fragmenting it at every opportunity. I am supposed to be able to uninstall apps on my own phone!

I rooted my phone using Simple Root OTA. Everything worked perfectly, only thing that was different than instructions was I had to "Factory Reset" my phone BEFORE I could begin step 1.

Well, I (think I) rooted my phone, it is basically identical to my old phone at the moment, except it has a few additional programs. I don't exactly know what to do with it yet. I guess I will have to look at the available custom Roms and play with the device before I know where to go next. Still, exiting.

Thursday, July 29, 2010

Design vs. Content

I spent the past few days working on a solution that allows a designer to easily add/remove CSS class name(s) to any HTML element. My goal was to give a designer the ability to fully specify both the .css file itself, as well as (easily) mark up the HTML with whatever CSS class names were desired. I called my father and told him about it, he replied that it was not useful, as it was not how designers (people who style HTML content) are accustomed to working.


My vision was such. A DEVELOPER should design the whole web site, including a blank CSS file, would not even touch the CSS class properties: that is the DESIGNERS job. I had visions of being able to hand the logically/structurally complete site over to a designer, saying "Do what you will shall be the whole of the law" (Translation: modify the empty .css file I included for this site, and assign whatever class names you want to any of the sites HTML structure). Evidently, this is not at all how design work is conventionally done. Designers expect you to have class and id annotations that clue them in to how they should structure the content. Maybe it was naive, but this surprised me. This was of course disheartening news (wasted time), but it was also surprising. In my mind, I had pictures of designers being the artsy sort, who would not want to have the content "structured" by me. They would want the ability to "structure" the content however they see fit: they would love the freedom to be able to add class names to the HTML without needing to consult me.

Point/Counterpoint

  • I did not want to have to work closely with the designer. I wanted to have the ability to simply hand the product to them and say "show me what you can do". I realize that this would be a iterative process, that I pictured that I would only have to say "This I like, this I do not". I wanted to minimize my interaction to nothing more than giving my approval or displeasure with things that have been done. Put succinctly, I wanted to only interact with them on the result of the process, not have to work with them on the process itself.

    Frankly, what I want is irrelevant. If designers are not accustomed to working with such freedom, you are doing a disservice to your site in forcing them to work in a fashion in which they are unaccustomed.

  • As a programmer, I am acutely aware of modules/namespaces/whatever collisions. If I am defining things in the class of elements, and the designers is as well, how do we keep from stepping on each others toes? Simplest solution as I saw it was to not use the class property at all, and simply allow free range to the designer to modify it as they wish.

    Realistically, if you are working closely with a designer, this probably isn't as big a deal as I make it out to be. Of course, notice the words "working closely with the designer", that is precisely what I did not want to do.

  • This is pedantic, but is the class attribute of elements actually supposed to be used as markup? To me, the class property is supposed to be used purely for style, not for setting a property within a div. This is not a popular opinion at this time, and there are plenty of examples of web sites that use the CSS as a form of markup, that is, as something that might effect the business logic of the executing program on the web site.

    I can fully see why many web sites use the class names of elements for the purpose of both styling and markup. The DRY (Don't Repeat Yourself) is a pretty darn good rule. You only want to write the markup once, you have to write it in the class property if you want the css to use it, so why would you write it twice if it is already in the class property? Unfortunately, I do not have a good answer to this. It does not seem right, but it is what it is.



What do others think? Clearly, a clean separation of style and content does not currently exist in HTML. You have developers that work on generating the correct content, and you have designers that work on the styling of things, but the fact is that they often have to interact (often to a great degree) at some point. Would it be possible to design a system that would allow designers to do their jobs without ever needing to talk to developers? Where the designer, given that the content was finalized, had complete and total domain over the design? Is this even desirable?

Wednesday, July 28, 2010

Why?

I started this blog for three reasons.

1) I would like to become better at writing. I have a tendency to write things in a rather factual (and boring) fashion. I would like to work on my ability to communicate succinctly, without ambiguity, and in a entertaining fashion.

2) I would like to increase the chance of random encounters with people who might be interested in the same things I am. Actively searching for (or even just hoping to run into) people who are like yourself is a high energy activity. Posting a interest of yours, and allowing people to contact you, is considerably less consuming. If I blog about something, and another person comments on it, it is a opportunity to connect with that person.  I look forward to that.

3) It gives me a sense of history. It allows me to view where I was and what I was thinking across a timeline. Probably not terribly interesting to other people, but I feel that it might help me. Specifically, to identify points in my life where I am repeating myself. And perhaps to also allow me to organize my thoughts more effectively.