Filed under

development

 

On IE

One time, when testing the effect that modifying the content of a selection had, I inspected the DOM tree and found a "/B" element. This was not a closing tag, there are no closing tags in the DOM tree, just elements. The nodeName of this element was actually "/B". That was when I gave up any notions of ever understanding the profound mystery that is Internet Explorer.

— Marijn Haverbeke

Filed under  //   development   quote   web   web browser  

Snippet #1: Stylebot & Google Reader & More

Update I've also added one for the ReadItLater webapp. Both now feature css3 finishes and webkit scrollbars, which I think should be everywhere. Customizable embedded browser chrome (buttons, fields, scrollbars) is such a necessity these days.

Update All my styles are here: http://stylebot.me/users/hlfcoding

Update I've updated the Reader snippet to be even more ridiculously minimal. I've also added the snippets for some other sites. Note the gist contains versioning and are bookmarkable if you're on github.

http://stylebot.me/ is an awesome Chrome extension, doing what userChrome.css does in Firefox, though perhaps with more style. Here's something to help Google Reader power users *

(download)

* Use www.google.com/reader/view/ instead of the autodetected www.google.com


 

Filed under  //   development   open-source   stylesheet   usability   web   web browser  

Coding Update #3: MicDroid

Launcher-icon

Pronounced McDroid (i.e. McLovin'), it's a wildly successful Android app created by a friend. I feel privileged to be entrusted with creating the ui, from concept to code.

The latest release as of this writing features the first release of the new ui. There's much more in store for the app. Development has been very organic and fun thanks to Github. There, you'll see the inner workings of the app: like my first 100 or so lines of xml to write layout, the file structure of the resources directory that map the support for various phone types, and the nine-patch images that save tons of space. I only wish this was the base model for making websites. The xml format certainly feels very powerful, I may even prefer it over html+css. Also, a big thanks to the Android designers at MtV for the base materials psd files that really sped up my photoshop work. Overall I've had a pleasure learning tip of the Android api. In terms of what's baked in for the ui, it still doesn't feel completely baked, but already I prefer it over other, ahem iOS ahem, platforms.

I know I've been gone for at least a few "blogosphere epochs," there's more posts in store. Image below is actually a comp and not 100% the final product.

Draft

Filed under  //   Google   design   development   mobile web   web  

Essay #2: A Case Against Closed Source

blogpost header: the dichotomy in goodness of apple's user friendliness and developer friendliness

The greatest thing about Google Chrome? I can download any extension, and if I dislike the UI the developer hastily slapped on there, I can change it myself in a few minutes. I can store changes however I want, back them up in case future extension updates overwrite them, maybe even send the guy my changes. The web is built on this dying code of ethics, one I will one day sorely miss. The web is shrinking and consolidating. Like the industrial revolution, there will be much turmoil, chaos, and injustice ahead. Unlike the industrial revolution, there is no guaranteed improvement in living standards. Maybe the leash around our necks and blindfolds around our eyes will tighten. But we will accept, even unwittingly, because there is no point of reference. There will be more monopolies than innovators. More fences than doors.

What building a walled garden does is it drives other people, whether through annoyance or motivation, to building their own walled gardens. The result is the new century's arms race. The stakes are users and their information. The end result is less functionality and freedom for the end user, who has to make difficult decisions and commit to certain technologies and platforms out of paranoia about identity security. But more importantly,

Why should anyone trust software, hardware, or services that refuses them access rights?

The web is also built on standards. Take aways standards and there's only chaos, inefficiency, and room for mishaps much worse than the typographic eyesore. By creating a new whole new 'ecosystem' of distributed applications outside of the internet and its protocols and technologies, there comes a great burden of re-inventing the wheel. Apple just declared war on the Internet. The walled garden versus the open prairie. Even if what Apple is selling works and looks better (at least on the front-end), it is poison. There is nothing worse than playing a game and betting your life on other people's rules. In the simplest of terms, it's a dictatorship versus a democracy. And while giants like Google can potentially dictate, they are more benevolent and aware of the community's needs.

Apple's war on the Internet is not a complete win. Much has yet to be done about Flash, about being able to search through an app collection wider than 3-4 iPhones. I would suggest the company rethink its goals, and also bear in mind: Why do I need an app that only a fraction of developers know how to build (thereby more expensive), only a fraction of people will get to use (thereby less profitable), and with a potential chance of being rejected by a third party; when I can build an app using open, common technologies like HTML, CSS, JavaScript, Java, Python, etc. Time spent focusing on shiny buttons is time lost on accommodating developers is chances of building real and useful apps wasted. Don't get me started on the idea of interactive ads. Most apps are already ads in and of themselves. Unobtrusive is the best cure for a necessary evil. Google already figured that out. Time to stop reinventing the wheel.

Back in college, if I had to get my old hellolittlefriend.com website approved by Google or Yahoo or Apple prior to launch, it would have never seen the light of day, and I'd be a few months less of a front-end web engineer. I might have never even gotten the needed break. The site was a UX what-not-to-do: CSS was wonky, the jQuery was horribly inefficient, and the Portfolio page had 50+ full-sized images. But no users were harmed in its making, and I learned from my mistakes. Coupling its review process with its hands-off-my-shiny-shell policy, Apple is doing such a disservice to education, I would suggest Mr. Jobs, in light of this hypocrisy, to retract his speech at the 2005 Stanford commencement. It turns out, never settling and thinking different are not always good.

 

Filed under  //   Apple   Google   development   usability   web   writing  

Coding Update #2: Front-end Builds Framework

A quick update for those who are interested and don't follow me on Github, I wrote this tool for people like me who write a lot of HTML/CSS at their jobs, and especially have to present those templates as deliverables. A lot of the times you're only responsible for the frontend development, so it's hard to get the benefits of server-side web development. In other words, you have to repeat yourself a bunch of times as you're coding, and it starts to get messy. I just hacked together something using XML and PHP to keep the content separate. There's not much separate documentation, just inline comments, but the tool is definitely usable (especially by those who understand basic PHP). A demo, also in progress, can be seen here.  

Filed under  //   PHP   development   frameworks   open-source   software   web  

Coding Update #1: Git, MVC, & .NET

I've finally started using my GitHub account. I've had it since almost a year ago, but only recently decided to dive into the Git commands in bash. The learning curve is definitely manageable, if you're not afraid to google. This sudden shift from SVN is mostly invoked by jQuery's move. A good amount of the source code I 'clone' for my own use (I'm not a fan of browsing for download links) is on GitHub, too. As awesome as TortoiseSVN is, GitHub just seems to have so much potential, at least over Google Code. 

I've also started venturing into MVC web frameworks again, mostly in PHP, since it's mostly what I know server-side. I'm going to redo the back-end for my site, so I can extend it with more flexibility and creativity. This will definitely be a long-term project, with a lot of long pauses and short spurts of activity. But it just plain sucks that I can't easily build new portions of my site without affecting or changing the old, because Indexhibit or WordPress are simply not designed to be highly extensible, from a development standpoint. They're also not really getting improved upon very quickly, at least in the rate their language platform (PHP) is -- which actually isn't that quickly. And as a side note, looking at the BuddyPress source--which sits on top of WordPressMU, induces powerful headaches. So I've just abandoned what most of the internet runs on; what do I want? 

Read the rest of this post »

Filed under  //   WordPress   development   frameworks   open-source   web  

Essay: Navigating The New Housing Boom

blogpost header: a city of markup, a house in focus with #fff hex on its roof

Websites are like houses. The creator of Django confirms this idea I've had in my head for a while. While I lack his experience working with the internet, and I have not worked in construction or studied architecture, I see the similarities in the processes. I also believe these similarities will can help us correctly defined the future of websites.

Definitions

Most websites are, or should be, functional, so they're rarely foremost works of visual spectacle. I am excluding the genre of the Flash-based brochure sites, as they are closer to commercialized movies. I am referring to sites that foremost deal with data: its storage, distribution, presentation, aggregation, and management. Since the internet is about interacting with information, it doesn't do much good if the information is static, like in a brochure site. Therefore I'm referring to sites where the data is very dynamic. Of course, it doesn't matter what the site does; sites do a lot of things, from tracking your life to being a game.

If making websites was about visual spectacle, it would be more like making a painting or a movie, all about the visual feel with little concern about supporting functional, non-linear interactivity. Rather, making websites is different and harder in two ways. First, websites, like other software that support user-interaction are non-linear. This changes a lot of the underlying creative thought process. Instead of just imagining the natural, cumulative, visual progression of strokes on the canvas or frames in the clip, you have to think of use cases, the variety of paths that branch and fork depending on what the user is looking for. The user is given too much interactive power for linearity to work.

And that's how, for a while now, I've realized like many, many others, the website of our time is actually software.

Analogies

And making software is like making houses. Both tasks take a very long time. There are numerous stages, and I'm sure, variations of processes for projects of various scale. There are many components and with them, are constraints. And these standards must be met, or the result is unusable. Just like poisonous Chinese drywall doesn't meet standards, make people sick, and devalue the houses they're in; a website where there are ads anchored to malware or flash banners that interfere with the layout and content upon mouse-over will drive away readers and actually lower revenue, thanks to ad-block features on browsers and userscripts. Or something as careless as forgetting user-friendly color contrast.

Read the rest of this post »

Filed under  //   WordPress   design   development   frameworks   usability   web   writing