background preloader

Light Table - a new IDE concept

Light Table - a new IDE concept
You can now try Light Table out via the Light Table Playground! Light Table's kickstarter has wrapped up! Despite the dramatic shift toward simplification in software interfaces, the world of development tools continues to shrink our workspace with feature after feature in every release. Even with all of these things at our disposal, we're stuck in a world of files and forced organization - why are we still looking all over the place for the things we need when we're coding? Why is everything just static text? Bret Victor hinted at the idea that we can do much better than we are now - we can provide instant feedback, we can show you how your changes affect a system. We can do better, and to that end, let me introduce you to Light Table is based on a very simple idea: we need a real work surface to code on, not just an editor and a project explorer. Light table is based on a few guiding principles: Let's take a look at how these things manifest themselves in Light Table. Docs everywhere Related:  Javascript

Journey Through The JavaScript MVC Jungle When writing a Web application from scratch, it’s easy to feel like we can get by simply by relying on a DOM1 manipulation library (like jQuery412) and a handful of utility plugins. The problem with this is that it doesn’t take long to get lost in a nested pile of jQuery callbacks and DOM elements without any real structure in place for our applications. In short, we’re stuck with spaghetti code3. What Is MVC, Or Rather MV*? These modern frameworks provide developers an easy path to organizing their code using variations of a pattern known as MVC4 (Model-View-Controller). Models represent the domain-specific knowledge and data in an application. JavaScript ‘MVC’ frameworks that can help us structure our code don’t always strictly follow the above pattern. For this reason we refer to such frameworks as following the MV* pattern, that is, you’re likely to have a View and a Model, but more likely to have something else also included. When Do You Need A JavaScript MV* Framework? Dojo Link

10 Online Coding Contests For Programmers! These sites have their sets of practice problems, practice sessions and competition rounds. Major of the competitions are sponsored by some big shot companies and they also keep a keen eye on the contests, so who knows you might just one lucky person to be selected for a big internship or for a big job. Some of these competitions are held on weekly, monthly or yearly basis where as others have specific dates for competitions. Topcoder TopCoder is indeed the world’s largest competitive software development community where developers from all over the world take part in. CodeChef CodeChef is a non-commercial organization operated by DirectI, an Indian software company based in Mumbai, India. Sphere online judge (SPOJ) Sphere online judge is one of the earliest competitions, with support for more than 40 programming languages and compilers. CodingBat CodingBat is a live coding site, which offers problems to build coding skills in Java and Python. Google Code Jam Dream in Code Codeforces

Lazy Load Plugin for jQuery Lazy Load is delays loading of images in long web pages. Images outside of viewport are not loaded until user scrolls to them. This is opposite of image preloading. Using Lazy Load on long web pages will make the page load faster. In some cases it can also help to reduce server load. Plugin is inspired by YUI ImageLoader Utility by Matt Mlinac. For those in hurry there are several demo pages: basic options, with fadein effect, noscript fallback, horizontal scrolling, horizontal scrolling inside container, vertical scrolling inside container, page with gazillion images, load images using timeout and load images using AJAX(H). When checking the demos clear browser cache between each request. How to Use? Lazy Load depends on jQuery. You must alter your image tags. <img class="lazy" data-original="img/example.jpg" width="640" height="480"> $(function() { $("img.lazy").lazyload(); }); This causes all images of class lazy to be lazy loaded. PRO TIP! Setting Threshold Event to Trigger Loading

7 Steps to a Cheaper Hotel Room Photo There are so many ways to wrangle deals on hotel rooms these days that no matter how great a bargain you find, it’s not uncommon to worry you missed a better one. The most obvious method to suss out savings is to explore the pricing and inventory differences among standard booking sites like and Orbitz. But dig a little deeper and there are countless ways to find “unpublished” rates, typically on excess rooms hoteliers think they won’t be able to sell at full or even publicly discounted prices. To tame this wild world into submission, I designed a five-step process (with a two-step bonus round) and tested it out by planning an imaginary four-night trip to Paris over Labor Day Weekend. This guide, of course, is for budget travelers. But if you’re looking for a decent, well-located room — maybe even one with a little style — this system should come close to finding you the best deal possible. 1) Get the lay of the land 2) Price check (and search again) 3) Seek hidden rates

24 JavaScript Best Practices for Beginners | Nettuts+ As a follow-up to "30 HTML and CSS Best Practices", this week, we'll review JavaScript! Once you've reviewed the list, be sure to let us know what little tips you've come across! JavaScript utilizes two different kinds of equality operators: === | !== and == | != It is considered best practice to always use the former set when comparing. "If two operands are of the same type and value, then === produces true and ! However, when working with == and ! For those unfamiliar, the "eval" function gives us access to JavaScript's compiler. Not only will this decrease your script's performance substantially, but it also poses a huge security risk because it grants far too much power to the passed in text. Technically, you can get away with omitting most curly braces and semi-colons. However, consider this: One might think that the code above would be equivalent to: Unfortunately, he'd be wrong. As you'll notice, the indentation mimics the functionality of the curly brace. Consider the following code:

Keypress: A Javascript library for capturing input The first thing to do is include the JavaScript file in your page. Once you've got that loaded in, you'll want to start by instantiating a listener: var listener = new window.keypress.Listener(); Once you've done that you can register combos with that listener you've created. listener.simple_combo("shift s", function() { console.log("You pressed shift and s"); }); listener.counting_combo("tab space", function(e, count) { console.log("You've pressed this " + count + " times."); }); listener.sequence_combo("up up down down left right left right b a enter", function() { lives = 30; }, true); If you only want to use Keypress for some very simple keyboard shortcuts, that's all you need to know! If you want to use some of the more advanced features of Keypress, you can use the register_combo API and supply an object with any number of options described below. listener.unregister_combo("shift s"); listener.unregister_many(my_registered_combos); listener.reset();

Introduction to JavaScript Source Maps Have you ever found yourself wishing you could keep your client-side code readable and more importantly debuggable even after you've combined and minified it, without impacting performance? Well now you can through the magic of source maps. Basically it's a way to map a combined/minified file back to an unbuilt state. When you build for production, along with minifying and combining your JavaScript files, you generate a source map which holds information about your original files. Demo: Get original location The above demo allows you to right click anywhere in the textarea containing the generated source. Real world Before you view the following real world implementation of Source Maps make sure you've enabled the source maps feature in either Chrome Canary or WebKit nightly by clicking the settings cog in the dev tools panel and checking the "Enable source maps" option. Firefox 23+ has source maps enabled by default in the built in dev tools. So... Why should I care about source maps?

Tourist Places in Karnataka The Future of Web Apps – Single Page Applications | The Worm Hole The Future of Web Apps – Single Page Applications Mark Boas The world wide web is constantly evolving and so is the way we write the applications that run upon it. Due to differing paradigms we are forced to design our web apps in a completely different way to native apps. The price is high. In this article I propose that we can have our cake and eat it. But first let’s take a look at the advantages of a single-page approach. 1. What we are essentially talking about here is having an application where ‘virtual pages’ are loaded into one single web-page, which means switching between pages need not involve a trip to the server and so the switch occurs almost instantly. 2. Using the ‘traditional’ approach we load a lot of duplicated content for each page we visit. 3. When all ‘pages’ are accessible from one page you give yourself more freedom to manipulate the content of these ‘pages’ client-side. Making it Work Next let’s take a look at the example application. Try the Demo 2. 3. With me?

JQuery Cycle Plugin - Intermediate Demos (Part 2) Rather than have transitions occur on a timer you can choose to have transitions occur in response to a click event. The prev and next options are used to identify the elements which should be the triggers for prev/next transitions. When used in conjuction with timeout = 0 the effect is a manual slideshow. The values for prev and next can be a DOM element or any valid jQuery selection string. You can combine an automatic slideshow (timeout-based) with manual controls by using a non-zero timeout value. The pager option is used for creating full navigation controls. In addition, the navigation element for the active slide is given the class activeSlide so that it can be styled uniquely. The pager in the example above is styled like this: If you need to stop a running slideshow you can pass the string 'stop' to the cycle method. $('#slideshow').cycle('stop'); If you need to pause/resume a running slideshow you can pass the string 'pause' or 'resume' to the cycle method.

Asynchronous Programming in JavaScript with “Promises” - IEBlog Asynchronous patterns are becoming more common and more important to moving web programming forward. They can be challenging to work with in JavaScript. To make asynchronous (or async) patterns easier, JavaScript libraries (like jQuery and Dojo) have added an abstraction called promises (or sometimes deferreds). Benefits and Challenges with Asynchronous Programming As an example, consider a web page that starts an asynchronous operation like XMLHttpRequest2 (XHR2) or Web Workers. When you make an asynchronous call, you need to handle both successful completion of the work as well as any potential errors that may arise during execution. function searchTwitter(term, onload, onerror) { var xhr, results, url; url = ' xhr = new XMLHttpRequest();'GET', url, true); xhr.onload = function (e) { if (this.status === 200) { results = JSON.parse(this.responseText); onload(results); xhr.onerror = function (e) { onerror(e); xhr.send(); function handleError(error) {

How Much Can A Photographer REALLY Earn? | Photography Business Riches If you’ve ever thought about starting a career as photographer then it’s likely that you asked “How much can a photographer earn?”… I hate to answer with “It depends”, so I’ll go into some more detail on what can hinder and help a photographers earning potential… And no, years of experience isn’t a factor that’ll determine what you can make Get Out On Your Own The first problem with wondering how much photographers earn, is that it assumes that it’s a job you can get, like a School Teacher, a Doctor or a Banker, which all have fairly specific wage ranges. And there are jobs you can get as a photographer, such as becoming an assistant to a photographer who runs a business, in which case you’ll usually be paid between $10 and $21 an hour (as reported on – But if you want real success and financial freedom, you should aim to start your own photography business. Then What Can I Earn? That’s just the way it is… The Overlooked Key Is In The Marketing

Detecting HTML5/CSS3 Features using Modernizr - Dan Wahlin's WebLog HTML5, CSS3, and related technologies such as canvas and web sockets bring a lot of useful new features to the table that can take Web applications to the next level. These new technologies allow applications to be built using only HTML, CSS, and JavaScript allowing them to be viewed on a variety of form factors including tablets and phones. Although HTML5 features offer a lot of promise, it’s not realistic to develop applications using the latest technologies without worrying about supporting older browsers in the process. If history has taught us anything it’s that old browsers stick around for years and years which means developers have to deal with backward compatibility issues. Although you can write code by hand to detect different HTML5 and CSS3 features, it’s not always straightforward. If you want to check for local storage support the following check can be made. Getting Started with Modernizr Modernizr is available at Modernizr and the HTML Element