Tag: Web Programming
oAuth and Classic ASP
by Liz on Apr.01, 2010, under Classic ASP, Facebook, Programming, Social Networking, Twitter, Web Development
So I have been searching in vain for days for an oAuth library for Classic ASP.
I believe that due to the nature of Classic ASP, the limited support and the random quirks (fewer than ASP.NET and yet somehow… people complain more…) there exists NO library for such a thing.
I’ve been looking through the PHP libraries and the coldfusion libraries and so on, and many of the objects and methods present just aren’t supported in Classic.
Problem is, Twitter is depreciating the Basic Auth methods soon, and you won’t be able to cURL in.
@Anywhere, which is a javascript library that will allow Twitter to interact with your DOM, is going to essentially become the Facebook Connect of Twitter. We’re looking at DOM level integration, so it’s server-side language independent. This comes out April 15th, and I can’t wait.
Until then, I can tweet using this library :
http://asp.web.id/first-version-of-asp-twitter-library.html
and store usernames and passwords (horrible, but necessary for 15 days…) for the time being. I’m sending out an authentication tweet that signals successful connection, and pulling the user_profile_pic out of the Twitter REST API Method: users lookup that makes it look a lot like Facebook Connect; it achieves the user interface experience I’m looking for.
Apparently, Cookies are very sensitive
by Liz on Mar.26, 2010, under Web Development
So today, while trying to figure out why a cookie was mysteriously destroying itself, we stumbled upon an interesting turn of events that I can’t find anywhere on the net.
Apparently, Cookies won’t hold if they start with the word “Include”.
We had this cookie- INCLUDE_CORPORATE_BLOG , that wouldn’t transfer from page to page.
A session with the same name would, and so we were going to have to create an entire strange workaround trying to figure out why this piece of data wouldn’t hold. My colleague suggested that we try changing the name, partly joking, to which we said “couldn’t hurt”.
Turns out, in Classic ASP, you can’t have Cookies that start with the word “INCLUDE”.
IE does what it wants
by Liz on Nov.12, 2009, under Browsers, Career, Gripes, Net Culture, Programming, Rants, Web Development
There is a Microsoft Knowledgebase Support Article that points out yet another flaw in IE8 or lower. This states that Microsoft Office can’t download documents when you set the page to expire immediately- so essentially you can’t have very secure pages if you want to export information to excel.
Firefox could do this since firefox .8
Chrome could do this from the get-go.
Safari and even Netscape Navigator have this capability, and most versions of AOL’s horrible browser can do this.
Why can’t Microsoft get with the program? The issue here is that MSIE will do what it damn well pleases. It always has, as it commands the majority of market share. Until we can get people on other, more stable web-standards compatible browsers we won’t be able to really open up the modern web.
Context in Design – Design in Context
by Liz on Oct.07, 2009, under Net Culture, Web Development
When designing a website, or any user interface, we must consider context. What you are producing is a tool, not a product or an application. The better the design of the tool, the more use it will have, and the more it will be used. Designing for multiple levels of skill is something many coders lack in, mainly because they are power-users. What is apparent to them is not apparent to others, and what is contextually relevant to them is, again, obscure to the general populace.
In designing a website or other web-based application, we must consider what else the user is doing- using our application is generally not the sole focus of their task, but a tool to augment it. Whether it be a web-portal for a customer service rep, or a mobile application for tagging music- we have to consider what else is on their mind, and what else they may be interacting with. They may choose to stop using our tool very quickly, and then return to it at a later time- but how likely are they to do that? What are the ramifications of that action?
Mobile devices are short-usage only, and with short timespans the user does not have time to wait for a lot of images to load or an animation/splash screen to play. In Internet-enabled applications, a login prompt may be too much, especially if the data is not especially secure. Having a session expire daily, rather than an application-launch login event may be the way to go. Other tools, such as an intranet, may receive heavy use over a long period of time, followed by long periods of inactivity(like lunch breaks, or leaving for the day.) Where the browser is the application window. Triggering a login following a closed browser may be the best security route, since you are dealing with company data but don’t want to effect productivity.
We must also consider what the user sees when they see our icon, link or button. What are they trying to accomplish by clicking on it? What associates in the user’s mind when they think of using our tool? The human brain is very good at making connections and associations- but remembering ALL the tasks a tool can be used for is simply out of the question. What has to happen, in order to prompt it’s use, is for the user to associate the task with our tool. For instance, if our tool becomes “the button that lets me identify songs”, we have successfully marketed and designed a music-tagging application. However, if the user then wants to “find more songs like this one”, and the answer to the question “what tool should I use” is Pandora, or Last.fm- we have failed in either the placement of the “suggest more songs like these” button, or we simply do not return results relevant enough to the user. We will assume we do however, provide the best service available, being that this is an article on design and not algorithm.
When the user reaches out for related tasks, we want them to look at our tool not as a “multi-purpose” tool, but a “category” tool. If our tool is modular, we need to integrate with other, categorically-relevant tools (consider Shazam’s youtube, twitter, and iTunes integration) in order for the user to associate us as their “category” tool. In being a portal for anything associated with that category, we can ensure use despite alternatives.
Inexperienced users often flock to one-stop-shop applications because they see categories as entire tasks. When they want to “do email”- they click on outlook. This also involves calendars, task lists, contacts, even newsgroups. This is not seen as a multi-purpose program for many tasks, rather all of those tasks are part of email- and email itself is a category we might call “communication” or “business” or “productivity”. Thus creating an “Email” application must take into account things it belongs in the same category as, as well as things it might relate to. The more category-related things it can do (and the more seamless it can make them) the more polished, intuitive and “easy” your tool is.
Do try to maintain however, category apps. Mozilla has Firefox and Thunderbird for a reason- they didn’t want their “Internet” application becoming too big. By keeping the applications themselves light enough to respond quickly, and yet featured enough to encompass a category, we have successfully created a tool that is associable to a particular activity, rather than a specific function.
On a mobile device, this idea is very different. People use an application to perform one or two specific functions, and have a multitude of other applications to choose from. Consolidating here is not recommended as it will slow your application down when time is of the essence. Adding additional functions to an app based around a leisure activity is fine, but any application that has to be used quickly (song tagging, flashlight, 911 dialers) is suicide.
If your service is modular and we are simply concerned with network penetration instead of forward-facing usage, you can consider creating a web service, or API to interact with other websites. Modularization is a characteristic of the web and most people don’t want to receive all of their content from one provider- even if they do want it all in one place. Consider letting others plug into you, rather than attempting to be a full show when you’re a sideliner at best. It’s OK to be a sideliner, this is the web.
We’re all sideliners here. Even Google.
In an intranet however, things are different. Launching of different websites or “systems” as users often refer to them hurts productivity. When a user has to click back and forth or even manually migrate data from one “system” to another, we have failed in the basic mission of computers: make data easier to organize, and less work to manage. If you have data entry staff that don’t interact with handwritten items, there is something seriously wrong with your system.
Humans are not technological stopgaps- they are the reason technology exists. Taking one system, modularizing it and creating an interface that allows for quick access to other parts of the system is no small feat, but it is worth every second of effort. An (overly) simple rule of thumb is that for every hour a programmer spends optimizing a program, or a designer spends optimizing a design, 1000 man hours are saved each year. This goes for big operations as well as small- even small businesses need to save precious hours in a day not processing data- that is the computer’s job.
Smooth navigation is key here- try to make the “drilling down” process easier to manage, by ensuring a map of the site is available on each page. Keeping this map navigable by utilizing dropdowns and expanding trees rather than having the user “back out” of what they were doing and having to “go back in”. We aren’t walking down tunnels, we are on an open plane- point to point navigation needs to be simple.
Human thought processes have a momentum about them- they have to get going before they can stay on one track- such is the case with work. Focusing on a task involves minimizing distractions and freeing your mind of nagging tasks- this is why getting “re-engaged” after interruption(phone call, lunch, or just getting there in the morning) is a huge productivity drain. By minimizing the “set up” process and keeping “re-engagement” to a minimum using efficiently designed user interfaces, auto-completion, user-specific frequent links, bookmark-friendly URLs and a logon page that directs you to the last used page, rather than starting you at the “top”- these practices and others will create a seamless flow into work, allowing users to flow in and out of using your tool, instead of making the tool the task in and of itself.
Apps v. Websites: Ultimate showdown in the mobile browsing era
by Liz on Sep.27, 2009, under Web Development
I was looking at my iPhone the other day when I was in a particularly bad dead zone, and thought to myself “Wow, I don’t have much to do that’s not Internet-required”. Other than a few games and stanza, it appears most of my apps are simply an interface for a single website.
As I thought about the implications of this, I realized that the line separating webapps and desktop applications has blurred. I use mint.com to manage my finances, and facebook to manage my social circle. I use google docs to deal with my documents and gmail.com to manage my e-mail. All of it, since gmail can check other POP-enabled accounts.
Now, to look at it another way- there are many thousands of apps in the App Store in iTunes, but the Pre and Blackberry have disappointingly low figures. Of course, the iPhone has been around longer than the Pre, and it has a larger, more technically-capable cult of followers than the business-centric Blackberry, but the real reason is that developers simply haven’t had enough time to learn an entirely new SDK, and why would they want to?
The simple solution is to develop an application that is cross-device compatible- a webapp. Something they have only to fire up their browsers to get to, it increases the user base of your application to anyone with a portable connection. The roadblock? Session Management.
The biggest problem with the iPhone, Pre and Blackberry (less so with android phones, but a problem nonetheless) is that it can’t carry data past more than a few webpages. The choice to use a webapp is simple when you don’t have to login- you can store everything in the URL variable scope. When users have to access personal information, or verify their identity (for purchasing things perhaps?) the choice to use cookies, or session variables is one that is difficult to make. When you want your users to spend time using your site- increasing their exposure to your brand and maximizing revenue potential- you need to bite the bullet and write a device-specific application. When you only need to provide data in short bursts (like twitter, or meetways) you can afford to make a smaller, data-optimized version of your website.
Rules One through Three; Coding.
by Liz on Sep.10, 2009, under Web Development
Copy.
Copy.
Copy.
The rest involve proper commenting, tabbing, modularization and so on but it really amounts to these three rules; and the exercise thereof.
Which is why Web Frameworks have gotten so big “lately”. Take Mootools or jQuery- these are wildly successful and the writers of such indispensable libraries are lauded the world over as if they had written a new language. In fact, with the advent of the web we have lots of tools like this available, some paid sites and some free, some vendor-suppored and some unofficial. But the fact remains, we must be thankful to have what our forebearers did not: vast libraries of code and examples to learn from. Did Linus Torvolds have a bunch of “How To Write your own Unix Kernel” tutorials to follow? Did Grace Hopper have anything called “Writing your first Object Oriented Language” sitting on his desk?
While we are web pioneers, creating an internet populated by designers and everymen, we must strive to make the web efficient and friendly by giving forth the tools for it’s forging. It’s lifeblood is in the hands of people like Kevin Rose and Jack Dorsey, but its very much in the hands of you, the designer.
I laud Google, Yahoo and yes, sadly, even Microsoft for not only encouraging open source development but for making computer programming accessable to everyone. Giving regular people the tools to give their ideas life was the best idea the internet ever had and is the reason the net has become a useful tool, as well as a social environment. Bringing apps like Facebook, then Twitter and even Yonkly, open up the web to the tech-proletariat to become his own man- his own ideas become those that contend on even footing with giants of the industry. I mean seriously, who the hell was Perez Hilton before the internet?
*Bonus- try to find anyone else in the world who has used the words “proletariat” and “Perez Hilton” in the same paragraph- other than a wikipedia definition.
On Love, and Design
by Liz on Aug.28, 2009, under Web Development
Love is a fickle, transient creature whose whims and motives are unknown to the most studious of pupil, and are blindingly apparent in every schoolchild crush. Impossible to predict, and similarly to live without.
I have a love for design.
But, like with most loves, there is an element of childish behavior that goes along with it. I am speaking of scorn, and the post-apocalyptic effect upon your creative genius that is unmitigated by your strongest of efforts.
When I was laid off from my last job, I felt the scorn that web design had lain upon me. Even though it was a faultless occurrence, feelings- ones necessary to do my job- were bruised. I had lost touch with “the flow”- the name I have for the creative energy that sustains me.
The thing that appears in my head when an idea is mentioned or a thought is provoked by a business owner, a friend with an idea, or by someone with a really bad website- flow. The site comes together quickly in my head, and I struggle to quickly bring it together in Photoshop(I know, I’m supposed to use Illustrator…) and I am eager to deliver. The code appears before me in a dreamlike trance as I contemplate the great balance between form and function- neat effects and search engine optimization. I can hardly sleep, eat or anything that does not engage my brain to the fullest- I am agitated until the creative energy can burst forth in some form or another- be it a comp, a demo or an update- and I would be finally fulfilled.
The scorn I felt, much like the scorn of a lover, was paralyzing. I could not open Dreamweaver without feeling a great weight settle down on my shoulders- “You will never feel that love again”, it seemed to whisper.
A man who loves his job does not work a day in his life, a wise man(Ben Franklin?) said. I never feel like I am at work when I do have a job- merely settling down in the arms of someone I cherish deeply. While I can get frustrated, disillusioned, and wish to be alone sometimes, the love that keeps us together is a lasting one.
But time heals all wounds, and the trauma of unemployment is waning, which is to say- I’m back baby.
Government Websites?
by Liz on Jul.15, 2009, under Gripes, Looking For Work, Web Development
I want to redesign all of the local government websites.
Seriously, who writes these? A lot of time they don’t work or validate in anything but IE7 and when they do, they are still the most hideous things you have ever laid eyes on. Regardless- some of them get awards.
I genuinely want to redesign these, and I will take a significantly lower sum than I would normally charge, in the name of patriotism. I do not want our nation’s children subjected to bureaucracy, but when they do have to endure it, it can at least be pretty.
Not to mention the functionality. Most government websites have some sort of registration you can perform on them, be it for jobs or to pay your water bill- but the instructions are convoluted and obviously to make up for a developer’s bad user interface or a database designer’s bad practices.
What happened to intuitive, useful and accessible with these people? There are many documents people would love to submit online that don’t require actual paper anyway- stuff that could be submitted directly to the correct database and would only require you to mail in a signature form to satisfy their archaic standards. This would cut overhead by such a significant amount that they might be able to pay someone to, I don’t know, update their website? Scroll down to the bottom of the Tarrant County website, and you will see that it has not been touched since May of 2005!
Governments are slow to adapt to new standards, but the days of putting a website on the Internet and then being “done” are over. You are never “done” with a website. People expect more and more functionality every day, and you need to keep them updated with events and pertinent information.
SDK Overload
by Liz on Jul.12, 2009, under Web Development
So I’ve been meaning to learn to develop on the iPhone. I don’t really have an idea yet (or the drive to do it) so I haven’t resorted to such depths- but I will one day. A request however: Can we stop at 4 Smartphone brands? Nokia- don’t release an SDK. Motorola? Just use Android. The rest of you, please just leave it to the big four, CrackBerry, iPwned, Andy and now Palm’s bastard son- the new PalmOS**t.
Seriously, if there is anything I hate in this economic climate, it’s highly specialized resume fillers that don’t actually help anyone anywhere.
I could work on a Palm OS application for 6 month and get it out the door. I could make some cash or my company could give me a raise but when it’s time to move on(as us development types rarely get promoted, we just move on) I am stuck with this tidbit on my resume that not only no one wants, no one wants to pay me to have that skill. So I could leave it off the ol’ resume but then what if someone wants to pay me to do it?
Essentially, it’s a huge time-waster for a lot of developers- neat to say we did but honestly not worth the time and experience we could have gotten in something else.
That said- I would totally love to make smartphone web apps. Now if we can just get session management down- THOSE are the wave of the future.
Lets just add some Apps.
by Liz on Jul.10, 2009, under Gadgets
Apparently if we want something to be cool/marketable, we’ve got to add downloadable applications to it.
We have this false dichotomy in current gadget culture- either it has modular additions or it just doesn’t sell. The two biggest things in gadget-want today are “apps”, which does not mean “applications” – just modular interface additions or “widgets”.
Now, I do love me some widgets, but we don’t need to add them to everything. TVs are one of those things.
TVs are monitors that are meant to be viewed from 5-12 feet away. That’s what they are. They don’t need to connect to facebook(especially since facebook will become obsolete by 2011-12 at best.) – your TV does not need to update your twitter status… these are all fair-weather concessions made by the industry giants that want you to believe they understand what is going on with the technophile youth of today.
What should you add to stay ahead of the curve? Windows Media Center integration. Integrated Apple TVs. Netflix capability. Talk with TVersity. Talk with Hulu. Talk with people that are not direct providers of content, allow THEM to upgrade SOFTWARE and don’t add an annoying SDK no one wants to learn.