Best practices for web applications often call for the use of a CDN. Those of you that have worked with YSlow! are likely very accustomed to seeing warnings for this reason. I’ve found that CloudFlare is very easy to setup, and for basic services costs absolutely nothing. In addition to the obvious performance advantages of using a CDN to offload much of your network traffic, it also has the advantage of improved security.
CDN’s work by caching a copy of your static content at several locations around the world, making it closer and faster for your users.
Implementation takes only minutes as it requires that you:
- create a (free) account,
- retrieve your existing DNS values from your current provider,
- determine direct vs. CDN “cloud” routing for each subdomain,
- change your DNS records to point to the CloudFlare DNS servers
Some additional advantages I’ve seen since implementing:
- Site remains available in limited capability to users during server outages or upgrades.
- Simplified network configuration as all requests can be sent outside of the LAN for users local to the servers
- IPv6 dual-stack support
REFERENCES:
Categories: MSIE bugs, WebStandards, Work Tags: acceleration, akamai, application, browser, cache, cdn, client, cloudflare, content, delivery, fast, http, ipv4, ipv6, network, performance, security, server, speed, web, webapp
While working on legacy apps, you might occasionally find that a developer has written a function to reload the existing page. I’ve found that in many cases, the optional javascript argument is neglected in this case and thus the ‘cached’ copy of the page is presented, often showing stale or invalid data. The solution here is simple, always specify ‘true’ to force the page to be requested from the server.
<script type="text/javascript">
window.location.reload(true);//NOTE: 'true' forces NON-cached copy to be returned
</script>
REFERENCES:
Browsers tend to evolve quickly, but they often do not offer the same capabilities cross-platform. As a result of this, there are many standard tests available to the developers of browser software to test for compliance with modern web standards.
Before making use of a specific capability in your web application, it’s often best to determine which browsers can support it.
Categories: MSIE bugs, Safari bugs, WebStandards, Work Tags: acid, acid2, acid3, browser, capabilities, client, css, html, html5, javascript, standards, testing, w3c, web
MSIE5 added support for CSS expressions or “Dynamic Properties”, however MSIE8 ‘deprecated’ their use and prevents their use in Standards Mode.
While powerful because this allowed you to script your CSS dynamically, there were two primary problems.
- Performance – the expression could fire literally hundreds or thousands of times on a page when scrolled or resized.
- Security – this represented an attack vector and exposed XSS
REFERENCES:
Categories: MSIE bugs, WebStandards, Work Tags: browser, client, css, dynamic, expression, expressions, javascript, msie, performance, properties, setExpression
With the rapid release cycle (currently every 6 weeks) for Firefox, it’s a good idea for developers and testers to use the upcoming release versions before they are released to the general public.
For Windows users, you can download and install an appropriate version from:
http://www.mozilla.org/en-US/firefox/channel/
On Ubuntu, it’s a little more difficult, but rater straight-forward:
- Open a new Terminal window
sudo add-apt-repository ppa:mozillateam/firefox-next
sudo apt-get update
sudo apt-get install firefox
REFERENCES:
That’s all…. Happy Testing!
Categories: WebStandards, Work Tags: alpha, aurora, beta, browser, client, developer, firefox, linux, mozilla, ubuntu, windows
Assuming that you are a developer on Windows that run a VirtualBox instance for a server, you might find it difficult to browse/access the “virtual” server that are running as a client. Here’s an example of the config required for standard HTTP, HTTPS and SSH, you can easily expand for other services as needed. Example assumes that your client is named “Ubuntu64″, you need to change appropriately for each client.
NOTE: if you are using a Linux host, the commands are similar.
cd C:\Program Files\Oracle\VirtualBox
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/ApacheHTTP/HostPort 80
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/ApacheHTTP/GuestPort 80
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/ApacheHTTP/Protocol TCP
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/ApacheHTTPS/HostPort 443
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/ApacheHTTPS/GuestPort 443
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/ApacheHTTPS/Protocol TCP
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/Tomcat/HostPort 8080
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/Tomcat/GuestPort 8080
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/Tomcat/Protocol TCP
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/HostPort 22
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/GuestPort 22
VBoxManage.exe setextradata "Ubuntu64" VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/Protocol TCP
VBoxManage.exe getextradata "Ubuntu64" enumerate
Categories: Work Tags: client, host, http, https, server, ssh, ssl, ubuntu, virtualbox, vm, windows
As it’s Halloween, it’s only relevant that I share a method of covering your browsers identity.
- For MSIE, you must modify the registry.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent]
- For Chrome (on Windows, and I assume other OS’s), you can use a startup parameter.
C:\Users\{USERID}\AppData\Local\Google\Chrome\Application\chrome.exe --user-agent="Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_7_0; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1"
- For Firefox and other Mozilla based browsers, you can mofiy the configuration in (user.js) or use a variety of add-on extensions, such as:
Interested in knowing your current User-Agent, just visit one of the following:
Many robots and spiders that are used by search engines also identify themselves by their User-Agent, if you see this activity in your logs you can often learn more about it at:
REFERENCES:
Happy Halloween!
Categories: WebStandards, Work Tags: agent, browser, client, headers, http, identity, logs, robots, search, spiders, user
I’ve used a variety of means to connect to remote machines. Long ago, PCAnywhere was common place, later replaced by VNC and Windows Remote Desktop (RDP). As I’ve migrated nearly all of my work to Ubuntu, I’ve found that VNC is generally too slow, and SSH alone only gives access to my command line environment. NX over SSH allows for efficiently visual access to my entire desktop and all accessories remotely, regardless of my client system.
Setup on the server/host system only takes a few minutes, but is only available on Linux and Solaris. Installation of SSH on the host is required first.
Setup of the client is even easier, and is available for Linux, OS/X and Windows.
NOTE: A “NX Free Edition” is available for use.
REFERENCES:
Categories: Work Tags: client, desktop, free, freeware, host, linux, nomachine, nx, putty, rdp, remote, server, solaris, ssh, ubuntu, vnc
I’ve used a variety of computer based VOIP over the years. My current preference in this space is Skype as it’s free for computer-to-computer calls and even allows calls to and from regular phones (at a fee).
Video and text chat are also provided, as is ‘white-boarding’ with additional plugins.
Skype is available for most platforms, even mobile phones… I’ve found that while the Windows beta versions has some additional features, the Linux release is rock-solid.
http://www.skype.com/
There are also several hardware based solutions, like Vonage, available to replace your traditional phone service… perhaps we’ll cover that later.
Skype me!
Categories: Life, WebStandards, Work Tags: audio, chat, client, linux, skype, ubuntu, video, voice, voip, whiteboard, windows
At one time, FTP was the only means available to move large files, times have changed but the need still exists, especially for developers like myself.
For years I’ve happily used FileZilla for my FTP needs, the client is available on most platforms. There is also a server available for Windows as most Linux variants already provide FTP.
Happy file transfers!