Great Perspective… 100.000 stars

When you have 5 mins. check out our galaxy…

Tagged ,

Evernote’s New Home Screen

Now and then new User Interface patterns emerge… sometimes causing attention and other times just being accepted as natural evolutions of existing concepts…

Evernote just announced their new version with a couple of new User Interface patterns weaved in… one of them is the new Home Screen on their mobile applications…

Image

This way of combining a set of shortcuts with a hierarchical navigator using 2.5D for imitating perspective will be interesting to try in real life…

Criticism ! Constructive ? We love it !

The next time you receive constructive criticism from your manager or a peer, use this six-step process to handle the encounter with tact and grace.

  1. Stop Your First Reaction
  2. Remember the Benefit of Getting Feedback
  3. Listen for Understanding
  4. Say Thank You
  5. Ask Questions to Deconstruct the Feedback
  6. Request Time to Follow Up

Constructive criticism is often the only way we learn about our weaknesses—without it we can’t improve. When we’re defensive, instead of accepting and gracious, we run the risk of missing out on this important insight. Remember, feedback is not easy to give and it’s certainly not easy to receive, but it will help us now and in the long run.

The recipe is inspired from this great article… http://nxg.li/XeQMAb

Introducing Web Platform Docs… a unified approach

On the 8. October 2012 something historically happened… W3C, in collaboration with Adobe, Facebook, Google, HP, Microsoft, Mozilla, Nokia, Opera, and others, announced the alpha release of Web Platform Docs (docs.webplatform.org), a new community-driven site that aims to become a comprehensive and authoritative source for web developer documentation.

In the past, developers who use HTML5, CSS and other technologies of the Open Web Platform have had to consult multiple sites to understand how to use these technologies in a way that works across browsers, operating systems and devices. This was time-consuming and in many cases increased development costs.

With Web Platform Docs, the vision is that web professionals will save time and resources by consulting a single site for current, cross-browser and cross-device coding best practices, including:

  • How to use each feature of the Open Web Platform, with syntax and examples;
  • The interoperability of various technologies across platforms and devices;
  • The standardization status of each technology specification;
  • The stability and implementation status of features.

The project is implemented as a Wiki, which means that anyone can contribute content to Web Platform Docs. The organizations mentioned above – collectively known as the “stewards” – have launched this new site with initial documents contributed as raw material for the community to shape. The W3C will serve as the site’s convener. As the Open Web Platform evolves, the entire community, including the original stewards and new stewards, will help maintain and improve the content. All materials on the site will be freely available and licensed to foster sharing and reuse.

“People in the web community — including browser makers, authoring tool makers, and leading edge developers and designers — have tremendous experience and practical knowledge about the web,” said Tim Berners-Lee, W3C Director. “Web Platform Docs is an ambitious project where all of us who are passionate about the web can share knowledge and help one another.”

The W3C and the stewards envision webplatform.org as the home of future collaboration with developers and designers. Those interested in contributing to this effort as a steward or as an editor can visit docs.webplatform.org

Tagged ,

Brackets…. recent-projects… another useful extension

When (or if) you start using Brackets now, you see that its still very early stuff.

This is deliberate and with full intend of the team behind it, in order to truly make it a community driven effort and to ensure that the project stays aligned with its commission: developed for developers by developers.

This also means that its far from the IDE you may be used to still has a long way to go before its a fully fletched code editor at the level we are used to from other tools…

Anyways, one of things you will start missing is the management of Projects, now luckily Narciso Jarmilo (member of the Brackets team and employee at Adobe), has implemented a simple way of maintaining a list of the most recent projects.

Not only does it provide you with a shortcut to the most recent projects you have been working on, but it also illustrates how simple it is to add functionality that you find necessary.

Image

Having a rich extensibility model has proven over and over again to be more critical to the viability of a tool than having it being springloaded with code-editor-killer features out of the box… and Brackets has done exactly that.

If there is something you see missing, you can easily build it yourself and share it back into the community… thats the groove of Brackets and that’s actually pretty cool…

A 3rd thing Narciso’s extension does, is to illustrate how its possible to integrate your extension with the ProjectManager… now this was what actually brought me to his extension in the first place, because I will now start building my own extension using the notion of projects…

Check out Narciso’s extension here…
https://github.com/njx/brackets-recent-projects

Tagged , ,

brackets… another extension… annotation

To get into extending and adding functionality for Brackets is impressively easy…

David Deraedt has undertaken the feat of implementing an Annotation Extension which will provide developers with shortcuts to adding comments to their Brackets files…

Here is how it looks when I run it on my machine…

Obviously, the comment inserted is very simple, however remember this is very very early work and if you take a look at the code for generating this, you will appreciate the simplicity of the Brackets Extensibility Model and see that the entire extension is a mere 133 lines of JavaScript code at this point (including comments).

Check out the extension here…
https://github.com/davidderaedt/annotate-extension

…or have a look at other extension initiatives here…
https://github.com/adobe/brackets/wiki/Brackets-Extensions

…and please don’t forget, if you dont see what you like or need, its simple to just do it yourself using HTML, CSS and JavaScript combined with the elegant Extensibility API’s of Brackets.

Tagged , ,

BRACKETS… Your First Extension

…at the core of Brackets, you find an unparalleled open ness and tremendously awesome technology stack !

On top of the awesomeness of the technology stack and in the middle of some tremendously cool features build into Brackets by the team, you find a very simple extensibility model which allows anyone with knowledge of the basic Web Technologies, to write their own custom extensions in Brackets itself and using the same technologies we are using for the system we are making with Brackets…

Basically, every developers wet dream come true…

To get you started, the team behind Brackets has made a Quick-Start tutorial for getting started writing you own extension… it’s naturally a Hello World extension.

It will take you less than 5 mins to go through every step in the tutorial (including downloading the only 34 MB Brackets binary) and tweaking Mr. Hello World to say your name and make another or two small tweaks…

You can find the tutorial here…
https://github.com/adobe/brackets/wiki/How-to-Write-Extensions

The source code for the tutorial are made available, and can be found here…
https://github.com/adobe/brackets/wiki/Simple-%22Hello-World%22-extension

Now, obviously popping up an Alert in response to a MenuClick is poor UI, so don’t make that mistake; but instead take a look at the Extension UI Guidelines:
https://github.com/adobe/brackets/wiki/Extension-UI-Guidelines

If you’re working on anything big, its recommended you post to the brackets-dev Google group or the #brackets IRC channel on freenode early on so you can get feedback (there may be others working on similar ideas!).

For more detail on Brackets internals, see Brackets Development How Tos.
If you’re interested in contributing to the core Brackets codebase, see How to Hack on Brackets.

Tagged , , ,

Using semantic HTML, why you should…

Terry Ryan posted a nice article serving as an introduction to semantic HTML…

Check it out….
http://www.adobe.com/devnet/html5/articles/semantic-markup.html

Tagged ,

AngularJS Directive… preloader experiment

I’m still a newbie to AngularJS development, however I have to admit that I’m having a lot of fun thinking of new directives and exploring increasingly better ways to implement them, mostly inspired by the lively and vital AngularJS community.

I’m posting one of my most recent experiments which was to have a very simple way to add preloading functionality to an AngularJS application… and this i what I came up with.

Please note that this is purely experimental and the reason for me posting it is to allow others to start thinking of their own directives as well as learn something in the process..

Now… one of my objectives was that I wanted to be able to point to an external file for the preloader content, however the preloader content should also be able to contain AngularJS itself.

This lead me to the use of the AngularJS-native “include” directive and the “$compile” service.

The actual implementation of the loading was out of scope for this small experiment, so I decided to fake it with a simple timer using the relatively new “$timeout” service, which recently replaced the “$defer” service as a way of postponing function calls.

Furthermore, since basically every application I build contains some level of DOM manipulation, I have no problem with having jQuery as a pre-requisite, so the implementation is using jQuery for the DOM manipulation, however it would be trivial to remove or replace this requirement.

AngularJS Community Member, Glen Maddern, has been so kind to post my experiment as a executing sample in the form of a Gist on GitHub:
http://2886724.run-a-gist.herokuapp.com/

The contents of the splash.html is very crude for this example, however it could be any HTML content…

<h1 ng-click="clickHandler(event)" ng-controller="PreloaderController">
	Loading, please wait...still loading {{percentCompleted}}%
</h1>

As you can see in the the snippet above, the preloader HTML is driven by a PreloaderController… and it has a clickHandler for demo purposes to shurtcut the preloading…

function PreloaderController( $scope, $timeout ) {

	$scope.percentCompleted = 0;

	$scope.applicationProgressMock = function() {

		if( $scope.percentCompleted == 100 ) {
			$scope.$emit( "applicationComplete" );
		}
		else
		{
			$scope.percentCompleted += 5;
			$timeout( $scope.applicationProgressMock, 100 );
		}
	}
	$timeout( $scope.applicationProgressMock, 100 );

	$scope.clickHandler = function( event ) {
		$scope.percentCompleted = 100;
	}
}

The directive itself is fairly simple and straightforward JavaScript…

PreloaderFactory = function( $compile ) {

	var directive = {

		restrict : "A",

		link : function( scope, elm, attrs ) {

			scope.preloader = jQuery( "<ng-include />" );
			scope.preloader.attr( "src", "'"+ attrs.preloader +".html'" );

			$compile( scope.preloader )( scope );

			jQuery( "body" ).append( scope.preloader );

			scope.$on( "applicationComplete", function( event ) {

				jQuery( scope.preloader ).remove();
			});
		}
	}
	return directive;
}

Now, my main HTML looks like this, pretty advanced app…

<html ng-app="application" preloader="splash">
  <head>
    
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <title>Preloader Experiment</title>
    
    <script src="http://code.angularjs.org/angular-1.0.0rc10.min.js"></script>
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script src="preloader-0.0.1.js"></script>
    
    <script>
    
    	angular.module( "application", [] )
    	
    	.directive( "preloader", PreloaderFactory );
    	
    </script>
    
  </head>
  <body>
  
  </body>
</html>

That’s it, a faily simple and crude implementation of a preloader tag… comments are much appreciated, however please note that this was purely intended as an inspiration and not a cookbook recipe…

In any case I decided to put it on GitHub… I sincerely hope to be able to get much more samples up there and that they will increase in quality…
https://github.com/pmoelgaard/labs/tree/master/angular/preloader-directive

Tagged ,

How to implement a BLINK tag in AngularJS

One of the features of early HTML that is so uncool that it’s so extremely cool now that it has taken epic proportions, is that much celebrated as well as hated BLINK tag…

Now, it disappeared from most implementations due to the massive criticism it received, In 1996 Jakob Nielsen even described the element as “simply evil” in his Alertbox column Top Ten Mistakes in Web Design.

Anyways, its back for the ones who think it could be a fun little thing to add anywhere, and now with AngularJS… let me just add, that I think it would be a horrible idea to put it in any website short of being a tribute website to horrible websites from the 80′s…


var blink = angular.module('blink', [])
    .directive('blink', function($timeout) {
    return {
        restrict: 'E',
        transclude: true,
        scope: {},
        controller: function($scope, $element) {
            function showElement() {
                $element.css("display", "inline");
                $timeout(hideElement, 1000);
            }

            function hideElement() {
                $element.css("display", "none");
                $timeout(showElement, 1000);
            }
            showElement();
        },
        template: '<span ng-transclude></span>',
        replace: true
    };
});​

Using it from HTML would be as simple as this…


<div ng-app="blink">
    <blink>Forward Thinking</blink>
</div>​

You can check out the JSFiddle here…
http://jsfiddle.net/qy7Bt/59/

The initial implementation was created by Søren Kyndi-Wiuff and it was then later refined to support a more mature version of AngularJS by Misko Hevery, both guys heavy-weight contributors to AngularJS… helped along the way by Mr. Ganaraj who was kind enough to point out and illustrate deprecated parts of the AngularJS…

Check out AngularJS if you haven’t done so yet and you are in the process of working on HTML systems, this is how HTML would have been if it had been created for Applications…
angularjs.org

Tagged , , ,
Follow

Get every new post delivered to your Inbox.

Join 522 other followers