Final – Mission Statement

Grado Labs, Inc. Corporate Site Redesign – Mission Statement 

To redesign and update the look and feel of the corporate website for Grado Labs, Inc. The current website for Grado does not directly represent the company’s look and overall feel of high quality, luxury and prestigious audio products. I would like to redesign the corporate website so that it correctly correlates and represents the company’s branding and overall identity. There will be fifteen pages in total with 4 main sections. There will be: an intro page, home page, about page, products page, accessories page, store page and various other subsection pages within each main section. 

Midterm – Mission Statement

I would like to create a website teaching you how to create a Grilled Charlie Sandwich, as seen in It’s Always Sunny in Philadelphia, Charlie Kelly’s “go-to” sandwich. There will be step-by-step directions with images showing exactly what you need in order to create the sandwich. There will be fourteen pages in total, including: a splash page, home page, ingredients page, direction page, the step-by-step directions (6 pages), additional steps (3 pages) and an end page.

The Negatives of Using HTML5

http://blog.caplin.com/2012/07/16/the-pain-of-html5/

1 – Internet Explorer

The party over the passing of IE6 (and in our case IE7 too) is barely over before you start realising that better though it is, IE8 is still not in any sense a ‘modern browser’ (that wonderful euphemism for ‘browser not built by Microsoft’). In fact, we are going to make extensive use of WebSockets and WebWorkers and they aren’t even in IE9.
There goes another code path and we still haven’t moved beyond the old rule: one way for IE and one way for everything else.

IE8 doesn’t even have ecmascript5, so you’ll have to decide what to do about array.indexOf, array.each, Date.now() (creates less garbage than +(new Date)), getter and setter properties and a host of other, useful javascript upgrades. Of course you’ll be working without strict mode too.

Oh yes, in IE8 and IE9, you can do cross origin requests, but not using an XMLHttpRequest, while in IE10 XMLHttpRequest is updated to support the new functionality. This means that you can’t use the fact that XDomainRequest is there to indicate you should use it, as you probably want to start using the normal API in IE10.

Only IE10 is really comparable with ‘modern browsers’ and that won’t even run on anything older than Windows 8 a commenter points out that while IE10 doesn’t run on Windows 7 at the moment, it will eventually. What are running that?

2 – Variety of offline storage options, all insecure

When there’s a problem, we need to be able to investigate it by getting logs. For many web pages, nothing much interesting is happening on the client so logs from the server are fine, but for our application, which might run for days without a page reload we need more insight into what is happening on the client.
The problem is that logging slows the client down and results in memory growth, so we can only enable it after we know there is a problem, which is often too late. Using pre-html5 technologies, the best we could do was store a predefined number of the last log messages in a lazy format to keep the performance hit low and ask the user to retrieve them when there was a problem.

The dream of course, is that logs are written in the background (so as not to reduce the responsiveness of the client) to some form of offline storage, and can be retrieved after something has gone wrong, even if the machine has been rebooted in between.

This could be achieved by writing to the FileSystem API in a WebWorker except that the FileSystem API is browser support for FSAPI not currently supported by anything except Chrome.

We could use localStorage instead of the FileSystem API, except that localStorage is a synchronous API so a lot of data there would increase load times.

Even worse, we can’t actually store logs unencrypted on the local machine because they might have sensitive information in them. Suddenly our simple logging solution is looking quite messy, unperformant and requires us implementing our own encryption, since there is no encryption API for storage (or in fact anything) in HTML5.  I think it’d make a good addition to the standard library.

3 – No good support for sharing between windows

Sometimes, you’d like to be able to share connections to the same server across many different windows. This is particularly good if you’ve got elements that the user can pop-out, but if a user opens two different tabs to the same application it’d be nice for them to share the connection too. We’ve got access to postMessage now, which greatly improves the code, but only if you have a handle to the window you want to send messages to. How can you discover other tabs that may have been opened by the user? In Chrome, they are not even running in the same process.  This kind of functionality will be necessary to create long running applications that behave like services.

You could use a SharedWebWorker instead for this except that it isn’t supported by Firefox.
You could use an onstorage event to broadcast to all the other windows, except that not all browsers give you the handle to the window doing the storing on that event (it’s not part of the spec).

4 – Details of WebWorkers patchily implemented

We’re very keen to use webworkers where possible to receive and parse our data, since receiving multiple thousands messages a second can start to impact responsiveness if you’re doing it on the main javascript thread.

Unfortunately Firefox doesn’t support WebSockets inside Workers (there’s an under appreciated bug report).

Neither Chrome nor Firefox correctly resolve Worker scripts based on the location of the code that instantiates them rather than the page itself, so our library must be deployed on the same webserver as the page is served from (no CDN for you!), and it can’t be included by pages at different levels in the hierarchy, nor can the script file be renamed without a code change. This despite the fact that the spec is clear that worker scripts should be resolved relative to the instantiating script.

The Positives of Using HTML5

http://www.cognifide.com/blogs/ux/5-reasons-why-html5-matters/

1 – HTML5 is becoming a new standard

But why is it so good? What does it all mean? More importantly, why does it matter? There are a couple of factors that explain this. First of all, it is very rapidly becoming a standard. Developers want to use HTML5 which in return makes it all the more popular and the driving force for it to be here to stay is strong. Modern browsers all support HTML5 allowing developers to use all the new and exciting features it offers in order to create more dynamic end results. It doesn’t matter if you create a new plugin, an UI mobile framework, or a new fancy carousel – your developer wants to do it in HTML5. And if you are a developer – you want to, or should want to, do it in HTML5

2 – HTML5 is faster and cheaper

What’s the main reason industry wants to support HTML5? It reduces development time. By focusing on latest browsers and not being hold up on old ones (while providing graceful content degradation) developers can focus on writing functionalities that work, look good, while using latest tools. This makes whole process quick and very rewarding for the developers themselves.

3 – HTML5 is modern

Next to HTML5 stands another awesome new tech – CSS3. Often, when using the term HTML5 it is assumed that CSS3 is included in the definition. What’s so awesome about CSS3? Well, like HTML5 it is a new iteration of CSS specification including modern browser support for visual styling. This allows achieving great looking effects like rounded corners, shadows or animations within couple lines of code, rather than by laborious image slicing techniques. This both increases fun factor of developing such features and reduces development time significantly, allowing developers to focus their efforts on things that matter. As a bonus you get lightweight websites with reduced number of files and images that need to be downloaded for the site to look good. All this makes sites to load faster increasing responsivity and enhancing user experience.

4 – HTML5 lets you do things previously impossible

With new functionalities that an awesome combination of CSS3 and HTML5 give us we can do things that were never possible to achieve in pure HTML. Things that would previously require external plugins like Adobe Flash or Microsoft Silverlight are now achievable in a browser through HTML5. Heavy support for animations and transition allows the possibility to create complicated dynamic visual effects through CSS3 rather than flash. Modern JavaScript API support to things like application storage, geolocation allow developers to create complete web based applications through native HTML and CSS. All that is very cool, for one, but also it allows to create all of this, both web sites and web applications using the same technology.

5 – HTML5 supports mobile devices

With all that in mind we come to a conclusion, the final reason why HTML5 matters – it is mobile friendly. With all that was mentioned earlier, the lightweight visual effects, the support from industry, the support form browser vendors, it is now easier than ever to develop a web site or an web application in HTML5 that can be deployed on both desktop and mobile devices. Content was never closer to the end user and it doesn’t matter if you are browsing on your desktop machine, on your laptop or on your smartphone. While the smartphone market is diverging with different supported operating systems and native applications, HTML5 is supported throughout the whole spectrum of mobile vendors thus allowing to deliver content – your product, your service to wide array of customers. And that, that is what matters.

HTML5 is here to stay. It has support from the community, device and browser vendors, and is a great way to put content out there closer to the user. Working with the latest technologies is always fun and with a rapidly growing mobile market, it is a new and exciting place to be. HTML5 helps with all that. So, to conclude, HTML5 does matter, and it should matter to you!