javascript power tools
The amount of javascript development I do has greatly incrased over the last several months…between simple javascript interface enhancements, to true ajax applications. The amount of code I’ve learned is immense, though, I still find myself googling various javascript references to check up to see what’s kosher and whats not…simply because I’m not a guru of the language quite yet. One thing that I’ve desired for longer than I can describe, and have pined for even harder since doing more javascript development, is a GOOD javascript IDE. To be fair, there are a few IDEs out there…but they all fall short in one way or another. Bottom line…i was stuck in whatever text editor i chose, and left to debug using something like firebug (which is, in its own right, an incredible tool…especially for ajax debugging!).
However, my longing has finally come to an end…enter Aptana!
This screenshot, from the Aptana screenshots page, gives a great view of all of the features I’ve been looking for.
In the top left, you have a code assist profile. All htm/html files you load into it automatically pull associated JS files into the profile. Once js files are in the same profile, the IDE associates functions from all of them so when you’re in one JS file, methods from another are available and all code-assist features apply to it. Also, full javascript documentation is built in (as you can see from the yellow window next to the option listing). This also doesnt just support standard javascript functions, but many common functions from librarys like prototype, mochikit, dojo, etc. Pretty incredible if you ask me.
Oh, another thing worth mentioning. It’s cross platform. Built on java, Aptana runs beautifully on my Mac, and while performance is still to be determined, It will run on my PC at work as well.
Oh and ANOTHER another thing. It’s free. Not as in beer…really, totally free. Even support is free. There appears to be thorough documentation, a forum, and a developers blog. Quite a bit of information for a product thats in beta.
Don’t forget, it also supports the same features for (x)HTML, and CSS.
All in all, I’m sure this product will end up helping out ALOT in turning my learning curve into a flat line. While it may fall short at some point, in the mean time, its a hell of a lot better than anything I’ve used so far. I’ll be reporting back with good and bad over the next week, since I have a ton of JS development to do. Please feel free to comment on your experiences as well. Find a power-trick? Please, share!
Edit: 7:49am, 7/27/06 One minor annoyance, and I should have seen this coming: Application performance is pretty hokey on PC…thanks to the Java platform being…well…the java platform. Oh well…once you’re in a screen, the lag goes away, but moving from dialog box to dialog box definately has some noticable lag. Bah.
Find out details or sign up below. Save $75 by using the code DANGER.
why John C. Dvorak bugs me
this WASN’T on my planned list of writings for this weekend, but i HAD to get this out in the open.
i just read a column from pc magazine, a publication which i havent read in ages..except for the occasional linked-to online article, like the one in question. Dvorak is yammering on about how CSS is annoying to him. Obviously, he’s never built a scalable web site, or web application. CSS is a godsend, and despite its downfalls, is the best thing to hit web since…well…since I’ve been a part of it.
His points are as follows:
- concept good in theory, dynamic styling of content
- cascades break
- missing bits break cascades
- browser compatability
let me take his points one at a time. First, the concept is good in theory, and in practice…if you know what you’re doing. If you want to style each and every element as you create it, thats fine with me…you obvoiously have more free time, not enough work, or longer deadlines than I do. Forget semantics for a second (i know…only for a second). The fact that I dont have to chuck a font tag with attributes around every bit of text in order to style it appropriately is a GOOD THING. oh, and what about wanting to change something…not just in one place, but everywhere? search and replace only goes so far.
cascades break. sure they do…if you’re writing shitty xhtml. use IDs and classes semantically (oops, back to that buzz word) and cascades will not only break, but they will be easy to follow. And continue. Oh, as far as managing a stylesheet…one of the projects I’m working on (the one keeping me at the office for 12+ hrs a day) has a ~1000 line stylesheet. And it’s still super-managable. Why? because its a)well commented b)ordered and organized elegantly c)tabbed cleanly (as is all of my source) and d) semantically accurate ids and classes make things easy to find and search for. so sorry john, my cascades don’t break. and when they do, its MY fault…not CSSs. What happens when you’re building something in….i dont know….C++, and forget a line of code? the app breaks. duh. why shouldnt css be allowed the same fault, that of user fuckup. the same argument applies to the “missing bit theory”. don’t blame CSS for not being able to interpollate missing information. obviously, John cant do that, why should a language that isn’t even “programming” be able to figure out that kind of logic?
and browser compatability. don’t even get me started. I posted the time breakdown for web developers, and believe me, it’s true…but if you’re coding to compliance…debugging should be minimal. my development technique is as follows: develop in FF 1.5. test in IE6 along the way…every task-milestone. If padding is avoided, which is easy, box model issues strike very rarely. Any other issues are feature-specific, but again…are far and few between. Once every few days, depending on the timeline and size of the project, I swing over to safari just to double check. i can think of a SINGLE instance where something that worked in FF DIDNT workin in a current version of safari. Most of my development even works almost flawlessly in Mac IE5.2, and IE 5.5 for windows. The point is: yes. you have to debug along the way. just like ANY development. this is not the fault of the language, its the fault of the human trait of mistake, or else general stupidity. And, when it comes down to it…supporting legacy browsers should be a priority, but only as far back as necessary. do some market research. go abck a version or two, just to make sure nothing is breaking SO severely that the content is inaccessable. because, after all, thats the most important part of your website.
so, john c dvorak, take that and suck on it for a little bit. pull your greasy fingers out of microsoft frontpage or visual studio design mode, get into a text editor, and LEARN a language before you bitch about it. I look forward to your response here, or anywhere publically.
Find out details or sign up below. Save $75 by using the code DANGER.
negligence makes the heart go crazy…and my vision go blurry
so a 10 day hiatus from my practically brand new blog probably isn’t good for publicity…but work comes first, ya know? Things have been totally out of control the last week and a half…and to make things worse, I’m going away for a 5 days weekend starting this thursday. This means I’ve logged almost 30 hours in the last 2 days just to put our project in a spot where the programmers have enough front end to work with. The plight of being the only xhtml/css/javascript dude in the shop.
Anyway…I actually have a lot of things to talk about on here so…hopefully all of my loyal readers from weeks prior are willing to hang tight just a little bit more…by the time I get back from vacation, there will be plenty of new content and thoughts up here for you to chew on. In the mean time, I’ll bullet out some quick thoughts: - weird print spooler error on my mom’s work computer caused by stopping print spooler service, deleting all files in c:/windows/system32/spooler/printers with .shd and .spl extensions, and then restarting. I REALLY didn’t think this was gonna work.
-I’m a crazy fast layout developer. but for Christ’s sake, i need a better system for keeping track of tasks because i take on eleventy billion tiny tasks, and inevitably, stuff gets forgotten. Thanks to Seth at work for hooking up BugNet for all of our bug tracking needs. Still need a full solution for my own stuff, but this is a good start.
-Philadelphia is freaking hot in the summer. This is my 4th summer here, it gets worse every year. 100+ the last 2 days before the heat index. no A/C in my POS car. YUCK.
-speaking of my POS car, i’m planning on buying something new(ish) by the end of the year. qualifications are a)low payments and b)high gas economy. I’m actually considering a Scion. Any comments/recommendations? Worth noting: my credit is a disaster from my first year and a half of school. Still recovering from that. So any “low interest rate” deals likely wont apply to me
-has anyone reading this built any flash-driven media-experiences (a-la heavy.com)? Question about ad revenue tracking…if you’ve got experience, leave a comment, I’ll be posting more details about this as I know more information, at least enough to ask an educated question.
Ok, that’s all for now…more coming really soon, i promise.
Find out details or sign up below. Save $75 by using the code DANGER.
whoops, i stepped in a big freaking pile of money
ok, I didnt step in a big pile of money. But more than a handful of others have. I just found an article on informationweek.com that covered stories of 5 people who went from the typical 9-5 drone to exploring their passions, and making buttloads of money doing it.
I’ve been saying since I entered this industry, that I consider myself beyond lucky to be 22 years old and loving my job as much as i do. I get up in the morning and once I’m past the usual “don’t wanna get out of bed” feelings, going to work is something that I realize I’ll enjoy once I get there. I work with talented people on interesting projects. And i get to be creative and expressive with my talents all day long. But entrepreneurship has always been in my blood. Thinking as far back as when i was a little kid, and my dad had a home-office for part of his chiropractic practice. I used to go into our backyard, collect rocks, paint them and then sell them as door stoppers and paperweights to his patients. I couldn’t have been older than 8 or 10. So I’ve always had the “sales” part in me, the snag has been in finding that thing that everyone wants to buy…coming up with that “million dollar idea”. I’m not looking for easy money, I fully understand and appreciate the amount of hard work that the people interviewed in this article put in to get where they are. But something has to be said about the level of satisfaction they must feel knowing that they were behind something that lots of people enjoy or benefit from on a daily basis. THAT is what I long to be a part of. My current employment is the closest ive felt to that, and with all possibilities considered of what may happen in months to come…maybe I’m there and just don’t know it yet.
I think this may have been the least organized entry I’ve made yet, so for that I apologize. Hopefully we’ll have more structure moving forward.
Find out details or sign up below. Save $75 by using the code DANGER.
the blind leading the blind?
I’ve had a tab open in firefox for the majority of my holiday weekend…for two reasons. 1, the influx of visitors I’ve had has left me staring at my google analytics page a bit more than it should have but more importantly, the contents of that tab were something i needed to take some time to think about. I discovered a small, open source project called Flash Aid. This project aims to use a small, 1px square flash embedded object to detect usability features of a users computer and use them in Ajax applications (such as a screen reader, as many other bloggers have pointed out).
I think my internal questioning started because of some of my own preconceived notions of Flash that flash is anything but accessible to begin with. So i turned to a friend/coworker Arthur Dickerson with the question: what does “flash accessibility mean”. From our brief conversation over IM, and a useful link he sent me, it seems that the big feature of the accessibility class for flash is screen reader interaction. While the methods of this class are static, that is, always available without instantiating the class, they seem to be more tedious than complicated to implement. From Macromedia – best Practices for Accessible Flash Design warning..this is a “flash paper” document. Kinda like acrobat, but flash. ironically, my scroll wheel did NOT work which made reading it a chore
this class seems to feature things like :a “motion alt text”, provide context, control reading order, enabling key access to various components, captioning, and providing control over audio playback.
Ok, fine. That’s a fair amount of good stuff to be including. But I guess I still don’t get how this is useful in AJAX application? Since Ajax is simply super dynamic content, but the structure of that content is (supposed to be) XHTML and css (which are, if built correctly, inherently accessible), how can access to this flash class be helpful?
I understand the need for usability and accessibility considerations in ajax design/development. I found this description of some accessablity considerations that should be taken when building ajax forms. It suggests notification of a lack of javascript support (and therefore an unusable form for that user), informing the user of dynamic page updates, update alerts, and highlighting of updated areas. These are all great ideas, and I agree fully with them, but once again…I don’t see where that flash class can do what javascript/xhtml/css can’t.
I always applaud people for trying to make things better for ALL users, but can someone explain to me what I’m missing here?
More about Flash 8 Accessability features here
Find out details or sign up below. Save $75 by using the code DANGER.


