Public

jsDelivr – The advanced open source public CDN

As a developer you are probably aware of Google Hosted Libraries. Google offers an easy and fast way to include 12 of the most popular js libraries in your websites.

But what if you are a webmaster and you want take advantage of a fast CDN with other less popular projects too? Or if you are a developer and you want to make your project easier to access and use by other users.

This is where jsDelivr comes into play. jsDelivr is a free and open source CDN created to help developers and webmasters. There are no popularity restrictions and all kinds of files are allowed, including JavaScript libraries, jQuery plugins, CSS frameworks, fonts and more.

Adding a library

To add a new library or update an existing one all the developer has to do is to clone our Github repository and apply the modifications they see fit. Once a moderator reviews the Pull Request and merges it, the files become instantly available from the official website.

If a mod is online the approval should not take more than 20 minutes, otherwise it can take up to 10 hours until someone comes online. But once our auto-update utility comes online review times will drop.

Reliability

But what actually makes it so advanced? The idea of jsDelivr was not to create another public CDN but to offer a super fast and reliable infrastructure that developers and website owners could trust and use. Any big or small website can use it without worrying about it. There are no bandwidth limits and our service is rock solid.

Slow responses, timeouts and downtime are not tolerated, so we designed a unique system to overcome these problems and offer a product that even Enterprise CDNs would be jealous of. Uptime and performance are top priority, we monitor everything at all times and we are always looking into new technologies and providers that may further improve our CDN.

Infrastructure

network-map

Unlike the competition jsDelivr uses a unique Multi-CDN infrastructure to offer the best possible uptime and performance. The main backbone of it is built on top of CDN networks provided by MaxCDN and CloudFlare.

And we also use custom servers in locations where CDNs have little or no presence. In total at this moment this results in 42 global POP locations. In the future we plan to add even more locations to offer top performance even in less popular countries.

Of course lots of locations means nothing if you can’t load balance across them correctly. For the load balancing system we use services provided by Cedexis. One of their main features is the real time performance data they gather on all major CDN providers. 1.3 billion RUM (Real User Metrics) performance tests per day are processed and available to all Cedexis users.

Measuring performance

To gather these RUM tests they have deployed a special JavaScript code on thousands of websites. Every visitor to one of these websites executes the code and starts testing different CDN providers in the background as they browse the website. The testing does not impact on the browsing experience in any way and is completely transparent to the user. You can actually see how it works by visiting our website and opening developer tools to “Network” tab.

The beauty of these tests is that they are not synthetic. They reflect the real performance real users will get if they download a file from one of those CDNs.

The following information is then stored:

  • Performance metrics to each of our providers.
  • Availability metrics to each of our providers.
  • Browser’s User-Agent
  • First three octets of the user’s IP address

Now that we have all this information we can use it in our smart load balancing algorithm.

Every user gets a unique response that is based on their location and ISP provider. Each time a users requests to download a file from jsDelivr, our algorithm extracts the performance and availability data it has available for the last few minutes and then figures out the most optimal provider for that particular user and that particular time. All that in a few ms.

First it makes sure that all available providers are online. For this it uses the RUM availability data and a synthetic test that checks each provider every minute for uptime. Then it proceeds to sort the providers by performance for the ISP of the user and his/her location.

Once it has the fastest provider it returns the hostname to the user. So for example 2 different users in London with different ISPs could get 2 different responses because their ISPs have different routing and performance to different CDN providers. This smart system guarantees maximum uptime and fast loading times to all users. If a provider goes down jsDelivr won’t experience any issue at all and immediately start serving a different provider.

This algorithm also immediately responds to performance degradation. For example a CDN provider gets DDoSed in Europe and their response times increase, jsDelivr will pick up the change and simply stop using this provider in Europe but still consider it for users in USA and other locations that were not affected by the attack.

Don’t rely on a single CDN for uptime and speed. Everything can go down, but the chances for 2 CDNs and multiple servers to go down at the same time are very slim. And this is why jsDelivr is the most optimal solution for every website out there. No matter how big it is.

I should also point out that MaxCDN, CloudFlare, Cedexis and the rest of the companies sponsor jsDelivr for free. Its nice to see that there are companies out there that are willing to help open source projects and build a fast and free internet.

Advanced Features

jsDelivr also supports some interesting and very helpful features such as:

Version Aliasing

Instead of using a unique URL for each version to load a project with jsDelivr you can use aliasing. Lets take for example the project Abaaso. At this moment the latest version is 3.10.50 and you can load it by specifying the exact version in your url as always. But since this project gets updated very often you would end up with using the old version pretty soon. To overcome this problem you can now simply use the following URL:

//cdn.jsdelivr.net/abaaso/3.10/abaaso.min.js

By using 3.10 you tell jsDelivr to load the latest version it has in the 3.10 branch which in this case is 3.10.50. This is the optimal solution for most authors because they can load the latest minor version without worrying for major changes that could break their website.

It is of course possible to load the latest version in the v3 branch by using the following URL:

//cdn.jsdelivr.net/abaaso/3/abaaso.min.js

And if for any reason you need to always load the latest available version in any major branch you can use:

//cdn.jsdelivr.net/abaaso/latest/abaaso.min.js

By using the latest version you tell the server to load the absolute latest version it has. This of course is dangerous and given enough time may and will break your website. So use this feature with caution.

Load multiple files with a single HTTP request

jsDelivr is the first CDN to support this kind of functionality. You can load multiple files using a single HTTP request. Similar to combining and minifying js files in your own server, but cached by the huge and smart network of jsDelivr.

All you have to do is to build your own URL with the projects and files you want to combine and their versions if needed. For example, to load the latest version for projects abaaso, ace and alloyui you would use the following syntax:

//cdn.jsdelivr.net/g/abaaso,ace,alloyui

Have in mind that loading the latest version is not recommended and given enough time will break your website. This is why you should specify the exact versions or use version aliases:

//cdn.jsdelivr.net/g/jquery@2.1,angularjs@1.2

So jquery@2.1 will load 2.1.0 and angularjs@1.2 will load 1.2.14. But the above URL will load the main files of each project and nothing else.

If you want to load multiple files from a single project then you can do the following:

//cdn.jsdelivr.net/g/jquery@2.1,angularjs@1.2.14(angular.min.js+angular-resource.min.js+angular-animate.min.js+angular-cookies.min.js+angular-route.min.js+angular-sanitize.min.js)

If you want to load CSS then select css files using the above format. If all files in the group URL have a .css extension then the server will automatically respond with a Content-Type: text/css HTTP header. In all other cases (for /g/ URLs) Content-Type: application/javascript is used.

Next you simply include the url in your website and you are done. Less DNS resolving, less TCP connections, less HTTP requests = Faster website.

You can even use this feature to offer your users a builder to allow them to generate a URL with the modules they need and then load them all using a fast CDN.

A real API

jsDelivr has a fully featured API that can be used by developers in their websites,to create custom modules and anything else you might think of https://github.com/jsdelivr/api

You can request exactly what you need using our API without downloading a huge package json. And it also supports cdnjs and Google. This way developers have everything they need to build their applications.

Auto-Updates

jsDelivr libgrabber is a utility that is going to run on our servers and can auto-update all hosted projects if configured. The best part is that the authors don’t have to change anything in their repos. All changes are made on jsDelivr side.

All you need is to create an update.json file with some basic info inside the project you want to keep auto-updated in jsDelivr repo. This file also supports multiple sources for new versions. Like npm, bower and directly Github repos. It is still under development but is planned to be released soon.

Try it out, help out!

jsDelivr is a very interesting project that I enjoy developing and making better. It also heavily relies on the help of the community. Consider using it in your websites and host there your projects.

And if you are interested in helping out, we can always use some help, just join the conversation on Github.

Feel free to leave your comments and ask me any questions you might have.

Thank you

View full post on Mozilla Hacks – the Web developer blog

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

A few tricks about public speaking and stage technology

Preparing for my upcoming workshops on public speaking for Mozillians, I just collected a few tips and tricks when being on stage and thought it might be fun to share them here.

Speaking at beyond tellerand

Stage attire/clothing

You will read a lot of things by clever people about “dressing better than the audience to give you a position of authority” and other – possibly true in some environments but so not in all – tips and tricks, but here are some things I found work very well for me:

  • Take off your lanyard/badge – it’ll reflect in the light of a stage and look odd on photos. Furthermore, if you use a lapel mic the lanyard will keep banging against it making clicking sounds or muffling your recording. I tend to put my name tag on my hip, threading the lanyard as a loop through the hoops of my trousers (I know, not possible when you wear a dress – just take the badge off before you get mic-ed up).
  • Provide a space to clip the mic to – this is why button down shirts and polos are better than T-Shirts. You can clip the mic on them without having to thread the cable through the whole shirt, out of the neck and back to the middle of your chest where it should be
  • Avoid stripes or loud patterns – they take away people’s attention to a degree but more importantly look terrible on photos and video as they cause a Moiré pattern effect. A great example of that is the Hugo Boss site, where it is impossible to see the texture of some shirts even in zoom because of this effect.
  • Dark is good – you will probably sweat on stage, either because of the heat from the lamps or because you are nervous. Dark shirts don’t show sweat stains. Remember Developers, Developers, Developers? The other way to deal with this is to wear a hoodie/jacket/blazer to cover up
  • Keep a bit of space – very tight fitting clothing might show your perfect figure but it can also be distracting or in the case of largely built men intimidating. This is not a date, you are here to deliver some great content.
  • Empty your pockets – you will need them to put the wireless transmitter of the lapel mic, it looks better to have no unsightly bulges and there won’t be the sound of clinking coins or keys in your pocket.
  • Leave your mobile behind – a call or message during your talk can really change the flow of your talk. Furthermore, the buzz of the phone trying to find a connection will be audible on your microphone. An exception to this is of course when you want to show stuff on the phone or bring it up as a surprise. Even then turn it into flight mode. Some people also use the phone and alarms to tell them when there is only 10 minutes left in your talk. That could cause issues with the audio, too, so leave that to a friend in the audience or ask the organisers to have a clock on stage.

Audio equipment/microphones

In some rooms you can make do without a microphone at all, but that is not always the case and you need to be a trained speaker to be loud but not detrimental to your vocal cords. Here are some things to be aware of when it comes to microphone technology:

  • Wireless lapel microphones – these are awesome and by far my favourite. As mentioned earlier, make sure they don’t end up next to anything that could cause click sounds, like buttons, tie-clips or your lanyard. Other than that, having those is the best thing you can get as they give you the most mobility on stage and are very simple to put on and take off. Try to get mic-ed up as soon as possible, as wiring them under your shirt is a bit intrusive and you might want to check your looks afterwards again (if that is important to you). Make sure they are muted when you are not on stage yet and that you turn them on just before. As my colleague Robert Nyman put it “You just don’t know what weird sounds your body is capable of until you get wired up”. Also you don’t want conversations you have with people before your talk be transmitted or recorded (well other than by the NSA)
  • Behind the ear microphones – these are a bit trickier, but yield very good sound results. Make sure that the mic doesn’t scratch against your beard stubbles, do not wear large ear-rings that might clink against them and take off your glasses, put the mic on and then put the glasses on top of them. I always found these microphones to be not really comfortable as they can cut into the back of your ear and limit your head movement a bit. Be aware of that.
  • Handheld microphones – these seem intrusive as one of your hands needs always to be close to your mouth and effectively covering your chest – thus not allowing for large, inviting open gestures with both arms – but they can be great. If you are not too comfortable a speaker yet, they are something to hold onto on stage and keep your hands from randomly moving around or shaking. Also, they just work without people having to fiddle with your hair, glasses or other attire.

As a strong rule of thumb – show love to the audio folk of the venue you speak at. They know their stuff and it is up to them for you to be audible by the audience. Follow their advice and make their life easier and you’ll give a great talk.

Available stage tech

Last but not least, here are some things on technology available for you on stage.

  • Bring your own power cables and adapters – not every venue or conference is equipped with all the things you need
  • Do not expect audio or video playback to be available – many a time I saw speakers building up to “a great video” just to be forced to show a blank rectangle or something without sound
  • You will be offline – just give up on the promise of connectivity on stage. A good speaker does not need it and there is nothing more discouraging than seeing someone who is there to inspire you about the awesomeness of cloud services struggling with the wireless crapping out
  • Plan for low resolution – 1024*768 at 60hz is normally possible, higher, not so much. So plan your demos and slides to be readable and usable on that resolution
  • Bring your own remote/clicker – these are awesome. First of all it means you will not be glued to and hidden behind your computer. Secondly you have something in your hand (see handheld microphone above for the benefits of that). Thirdly they have laser pointers which is great to get rid of stray cats that may enter the stage

Hope that was helpful, there is more to come 🙂

Photo by Andreas Dantz

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

First Web-based Redistricting Contest Launched in Philadelphia for the Public to Create City Council District Plans

FixPhillyDistricts.com enables the public to draw their own district maps and submit them for judging, prizes, and a chance to be published in local news media.Philadelphia, PA (PRWEB) August 05, 2011 Azavea, a geospatial analysis (GIS) software development company announces the launch of FixPhillyDistricts.com, the first online public redistricting contest ever held in Philadelphia. The contest …

View full post on web development – Yahoo! News Search Results

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Human Development Indicators Now Accessible Online Through Google Public Data Explorer

New data visualization tools let web users map and chart the latest HDI trends and figures for all UN member-states. United Nations (PRWEB) May 17, 2011 In a move to provide greater global access to key human development indicators for all countries, Google’s innovative Public Data Explorer will now feature the latest Human Development Index (HDI) figures and direct links to the extensive Human …

View full post on web development – Yahoo! News Search Results

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Best Public Interest Web sites of 2011 to be Named by Web Marketing Association in 15th Annual WebAward Competition

WEST SIMSBURY, Conn., April 13, 2011 /PRNewswire-USNewswire/ — The Web Marketing Association announces the call for entries for its 15th annual international WebAward Competition for Web site development at www.webaward.org. The WebAwards is the standards-defining competition that sets benchmarks for 96 industries, including advocacy, arts and non-profit websites …

View full post on web development – Yahoo! News Search Results

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Oracle R12 EBS Implementation Project Manager – Public Sector Focus (NE US Locations)

Applications Software Technology Corporation Mount Vernon, NY
Job description: …coupled with superior expertise has distinguished us in the market place as a premier integrator of Oracle E-Business…regarding careers with AST Corporation is available from our web site: http://www.astcorporation.com/careers/careers.htm.If you… View full post on Dice.com – Web Marketing

View full post on WebProJobs.org

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

SAP Project Manager Public Sector

CIBER, Inc. Greenwood Village, CO
Job description: …18 countries, with more than 8,500 employees and annual revenue of approximately $1.2 billion, CIBER and its IT specialists continuously build and upgrade clients’ systems to “competitive advantage status.” CIBER is included in the Russell 2000 Index and… View full post on Dice.com – Search Specialist

View full post on WebProJobs.org

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)