Sometimes the Reason is Obvious

It started with the physical environment (with dozens of cubicles jammed into a noisy, dark room, where the salespeople shouting on the phone make it impossible for developers to concentrate). But it went much deeper than that. Managers, terrified of change, treated any new idea as a bizarre virus to be quarantined. Napoleon-complex junior managers insisted that things be done exactly their way or you’re fired. Corporate Furniture Police writhed in agony when anyone taped up a movie poster in their cubicle. Disorganization was so rampant that even if the ideas were good, it would have been impossible to make a product out of them. Inexperienced managers practiced hit-and-run management, issuing stern orders on exactly how to do things without sticking around to see the farcical results of their fiats.

And worst of all, the MBA-types in charge thought that coding was a support function, basically a fancy form of typing.

Who wants to spend their days there? It’s no wonder they couldn’t get any good developers.

— Joel Spolsky, About Fog Creek

Filed under  //   development   quote  

Steve Jobs on the Company

The company does a great job, innovates and becomes a monopoly or close to it in some field, and then the quality of the product becomes less important. The company starts valuing the great salesmen, because they're the ones who can move the needle on revenues, not the product engineers and the designers. So the salespeople end up running the company.

Filed under  //   Apple   quote  

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  

Essay #4: The Pretense of Our Education

Lately I've been looking back and debating with myself and others the relevance of our grade school education. Those who'd rather not fix something not blatantly broken, read no further. Those who constantly tweak and improve the state of this world, continue on.

I went to a high ranking high school. My middle and elementary schools were similar quality. On average, the teachers knew how to teach, and the schools were the pride and selling point of the neighborhood. That's why it saddens me to consider that my parents mis-invested their time and money educating me in the traditional fashion, throwing me into high rank schools. Before my crit, I'll give in that our education system is good in that it exists, is established, and is respected. That much alone is uncommon.

Read the rest of this post »

Filed under  //   creativity   education   personal   wishful thinking   writing  

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 #3: Two Years of 2.0

blog post header: a garbage piles of bookmarks

I started seriously following web trends a few months before 2008. Now 2+ years later, I’ve deleted 500 bookmarks from my Delicious, almost a couple hundred+ tagged items from my main Reader account, and another couple hundred labeled as TODO from my browser bookmarks, stored by XMarks. Now, hours later, I still have another couple hundred items in my ReadItLater list, although somewhat sanely manageable and accessible. And I’m fanning the flame by writing a long review, hoping some upstart doing websites out there will find use in it.

Overall, I feel like all web news, lessons, and exhibitions was useful. I learned lots stuff good. But I spent much time and still missed some golden opportunities. On several occasions mostly in Delicious, I had duplicated entries perhaps only months apart. A number of the items I had as TODO were horrible write-ups on WordPress and jQuery “tricks” that were (in terms of screen estate) 20% awful UI, 40% yes-men comments, 30% ads, and 10% content. Only now do I realize how shallow those authors’ knowledge were, as I eventually outgrew the usefulness of my gathered resources. So yes, I should have organized better (more on that), but there is a definitely content quality issue with sites out there. Oh, and I’m also pissed FFFFound has no RSS feed.

Seems like posters of late don’t take the time to write and grow content but instead just put up link bait to worsen the quality of RSS feeds. Delicious Popular, back in 2007, did not look as it does today. Back then, since the web was less spammed up by WordPress strip malls, the content gathered by (what I’m assuming is and has been) an automatically ranked feed of popular pages on Delicious based on times bookmarked. As a result, the content was quite good, and I learned a lot about mashups, and startups, and CSS standards, and even design patterns and separation of concerns. Back then, there were no Noupe, Cats Who Code, etc., and point is, now my attention has shifted to Hacker News and a selected group of consistently good bloggers writers. Still, little by little the WordPress spammers are creeping in. I really don’t know how they do it, and I don’t think HN is very automated…

Read the rest of this post »

Filed under  //   algorithms   software   usability   web   writing  

Sketches #6

(download)
I saw this image on brysonian’s tumblr post. I had to try to replicate it, and I definitely have a long way to go. Going to post it regardless. Besides, it was good fun working with peon’s processing textmate bundle. It really makes me not miss the original ide at all. Very well thought out and implemented, alas unlike this sketch.

// edit

It’s been a good week. I started off implementing my own autonomous steering behaviors using this article as demo and specification. I also played around with making the methods in my PApplet subclasses chainable:

Chaining

pen.update()
   .prepareCable()
   .trace()
   .cable();

And I started a Stage singleton abstract the Processing functions into something more reusable and flexible, though one of my doubts is I’m just undoing the benefits of Processing in order to fight its detriments. I’ve still got much to resolve to get to drawing technique from the original picture, but I did manage to implement the ‘cable’ effect I mentioned a few months ago.

Strangely, I’ve used Processing for 4+ years but it was only until recent years I looked more into Java…

I’ve started a Github repo for this project Plans to salvage all the crap Processing code I’ve written will be underway soon as well.

Filed under  //   algorithms   doodle   drawing   emergence   processing   visualization  

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