Friday, February 28, 2014

jQuery UI Touch Punch

jQuery UI Touch Punch - Touch Event Support for jQuery UI:
Touch Event Support for jQuery UI
Tested on iPad, iPhone, Android and other touch-enabled mobile devices.



"jQuery UI Touch Punch is a small hack that enables the use of touch events on sites using the jQuery UI user interface library."


Thursday, February 27, 2014

Google Modular Smartphone: Project Ara

Project Ara: Inside Google's Modular Smartphone | TIME.com:



Ara phone



Project Ara




The project remains in Google X, after selling Motorola to Lenovo.

Nokia X vs Lumia 520

Nokia X, X+ and XL Android Phones: 3 Questions | TIME.com:





$115 vs $119



Why "Windroid?": for Android Apps.

But it does not connect to Google Play Store,

so it does not get automatic access to apps anyway...


Wednesday, February 26, 2014

Top-paying tech jobs 2014

Top-paying tech jobs 2014:



  • Mobile Apps Dev
  • BI analyst
  • IS security manager
  • UI designer
  • UX specialist

This is about relative increase, not absolute values. 
Being a CEO or a stock trader or may still pay more... 

Linked Data / Semantic Web vs REST

The relation of Linked Data/Semantic Web to REST - ANSWERS:

  • "Resource Identification 
  • Uniform Interface 
  • Self-Describing Messages 
  • Hypermedia Driving Application State 
  • Stateless Interactions"
A generalisation of the Linked Data publishing guideline | Some More Individual.



From SOA to REST: Designing and Implementing RESTful Services (WWW2009 Tutorial)



Richardson Maturity Model



With all this theory, practical "rest" is "take it easy" JSON over HTTP.

Unfortunately, better solutions don't always win.

It would be much better to have a semantic model for either REST-full

or RPC/messaging based communication,

based on shared or resolvable vocabulary / ontology...

Samsung Gear 2, Gear 2 Neo, Gear Fit smartwatches

Samsung unveils trio of Gear 2, Gear 2 Neo, and Gear Fit smartwatches – none run Android | ExtremeTech:

Samsung smartwatches: Gear 2, Gear 2 Neo, and Gear Fit

Samsung Gear 2 Release Date Announced, Gear 2 Neo Specs | BGR

Samsung Galaxy Gear 2 review: first look | PC Pro blog

Galaxy S5 vs iPhone 5s

Samsung Galaxy S5 vs Apple iPhone 5s: Which has the edge on specs? | ZDNet:

samsung-galaxy-S5-vs-apple-iphone-5s

Tesla $5 Billion Battery Factory

Tesla Plans $5 Billion Battery Factory for Mass-Market Electric Car - NYTimes.com:

"Tesla Motors said on Wednesday that it planned to invest about $2 billion in a large-scale factory to produce cheaper batteries for a mass-market electric car within three years.

The company, which makes all-electric luxury sedans, indicated that it would build the factory in the American Southwest, without specifying where. Nor would it name its partners, whom it said would invest up to another $3 billion in the factory through 2020"




Tesla: 4 states contend for 6,500-job battery plant

The Model S has active air suspension and using the touchscreen in the dash, the drive can raise and lower the ride height for road and weather conditions.


Tuesday, February 25, 2014

Tesla Model S: 2014 Best Car @ Consumer Report

Top Picks 2014 | 10 Best Car Models of the Year - Consumer Report:

"Best overall

Tesla Model S"







Samsung Tizen Smart Watch

Samsung Weans Itself From Android— at Least for Smart Watches | MIT Technology Review:

"Samsung’s new Galaxy Gear smart watches will have longer battery lives in part thanks to the highly customized Tizen operating system."

Windows Azure Pack for Windows Server

Windows Azure Pack for Windows Server:

"Windows Azure Pack for Windows Server is a collection of Windows Azure technologies, available to Microsoft customers at no additional cost for installation into your data center. It runs on top of Windows Server 2012 R2 and System Center 2012 R2 and, through the use of the Windows Azure technologies, enables you to offer a rich, self-service, multi-tenant cloud, consistent with the public Windows Azure experience."


The Zen of Python

The Zen of Python:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!



JavaScript Fundamentals @ Microsoft Academy

JavaScript Fundamentals for Absolute Beginners (2013 Edition): @ Microsoft Virtual Academy



in 21 "episodes"




ASP.NET anti-patterns

Checklist: What NOT to do in ASP.NET - Scott Hanselman:


HTML5 Video and History

Script Junkie | HTML5 Video and History: Features Users Can Really See: @ MSDN Magazine



HTML5 "video" tag and usage, and "history" API






Monday, February 24, 2014

Windroid: Nokia Android phones

Nokia experiments with its first Android phones - Feb. 24, 2014:
nokia x

Android apps, WinPhone looks ?

Mobile World Congress: "Windroid" From Nokia; a Full-Touch E-Ink Russian Phone | MIT Technology Review

a tiled Windows Phone feel to the interface; Microsoft services like Skype and Outlook; and some solid Nokia services, such as its Here maps and Mix radio. Call it “Windroid.”

... but even as they use an operating system based on the Android Open Source Project, you can’t tap the million-plus apps in Google’s Play store, or get popular Google apps such as Gmail and Chrome. Developers can modify Android apps to run on the devices, and Nokia will offer “hundreds of thousands” of apps in its app store...

So it is not quite the same thing... 

Hour of Code™ @ Khan Academy

Welcome to our Hour of Code™! | Hour of Code™ | Khan Academy:

Welcome to our Hour of Code™!: The 'Hour of Code' is a nationwide initiative by Computer Science Education Week and Code.org to introduce millions of students to one hour of computer science and computer programming.


Learn | Code.org

NoSQL: Couchbase vs MongoDB

Viber Replaces MongoDB with Couchbase | Couchbase:



Millions of messages per second... that is a some throughput!




"Hello Ruby" book @ Kickstarter

Hello Ruby by Linda Liukas — Kickstarter:



$380 K (vs $10 K goal)



helloruby.com

Movement

Extensible Web

The Extensible Web Manifesto
  • Focus on adding new low-level capabilities to the web platform that are secure and efficient.
  • Expose low-level capabilities that explain existing features, such as HTML and CSS, allowing authors to understand and replicate them.
  • ...
podcast interview: The Evolution of HTML with Domenic Denicola @ The Tablet Show
taking HTML beyond HTML 5
About @ DomenicDenicola.com

Custom Elements: defining new elements in HTML - HTML5 Rocks

Modern web apps: built with <div> soup

Better alternative: custom tags (AngularJS could help)
<hangout-module>
  <hangout-chat from="Paul, Addy">
    <hangout-discussion>
      <hangout-message from="Paul" profile="profile.png"
          profile="118075919496626375791" datetime="2013-07-17T12:02">
        <p>Feelin' this Web Components thing.</p>
        <p>Heard of it?</p>
      </hangout-message>
    </hangout-discussion>
  </hangout-chat>
  <hangout-chat>...</hangout-chat>
</hangout-module>

REST: REpresentational State Transfer

Fielding Dissertation: CHAPTER 6: Experience and Evaluation:

"The name "Representational State Transfer" is intended to evoke
an image of how a well-designed Web application behaves:
a network of web pages (a virtual state-machine),
where the user progresses through the application by selecting links (state transitions),
resulting in the next page (representing the next state of the application)
being transferred to the user and rendered for their use."


Representational state transfer - Wikipedia, the free encyclopedia

Richardson Maturity Model @ Martin Fowler
Figure 1

Three Levels of the REST Maturity Model @ InfoQ

RMM - implementing-rest - Richardson Maturity Model (Level 0 to Level 3) - Exploring the implementation aspects of the REST architectural style. - Google Project Hosting

JWTUMOIM: Act 3 presentation by Leonard Richardson

Sunday, February 23, 2014

Saturday, February 22, 2014

$15 Windows for sub-$250 PCs

Report: Microsoft Discounting Windows Licensing Fee for Sub-$250 Devices | News & Opinion | PCMag.com:

"Microsoft will now only charge manufacturers $15 for a Windows 8 license — a $35 discount, or 70%"

That is likely for Windows RT only...



ChromeOS and Android are free, except that most Android makers may be paying patent license to Microsoft...


Friday, February 21, 2014

tool! bl.ocks.org (D3 code examples)

bl.ocks.org - about:

"a simple viewer for code examples hosted on GitHub Gist. Code up an example using Gist, and then point people here to view the example and the source code, live"













Epicyclic Gearing

tool! Tributary (IDE for D3)

Tributary: (!!!)

Tributary is an experimental environment for 
rapidly prototyping visualization code. (with D3)


ideas! Bret Victor - Inventing on Principle

Very interesting ideas!

Code/visualization editor where effects of code changes are immediately visible.



Bret Victor - Inventing on Principle from CUSEC on Vimeo.

Bio: Bret Victor invents tools that enable people to understand and create. He has designed experimental UI concepts at Apple, interactive data graphics for Al Gore, and musical instruments at Alesis.

Bret Victor, beast of burden


Interactive Data Visualization with D3.js

Interactive Data Visualization with D3.js - Online Training Course for Developers: @ pluralsight




Nissan Sport Sedan Concept

Nissan Sport Sedan Concept | Nissan USA:

Nissan Sport Sedan

Thursday, February 20, 2014

Umbraco: free, open source CMS

Umbraco - The open source ASP.NET CMS

even Microsoft is using it for running www.asp.net
and apparently some 110 000 other web sites

podcast Building Umbraco with Benjamin Howarth @ .NET Rocks

Umbraco - Introducing ContentService aka the v6 API

There are similar alternatives

Orchard, newer, based on ASP.NET MVC
also free and related to Microsoft people.

How Orchard works - Orchard Documentation

Oldest, based on WebForms
.NET CMS Software for Content Management | DNN Software


content management system - DotNetNuke, Umbraco or Orchard - Stack Overflow

Wednesday, February 19, 2014

new Google Maps

The new Google Maps is here, and it could kill off the competition | News | TechRadar:
New Google Maps
new (left, orange roads) vs old (blue, green roads)

The gorgeous new Google Maps will soon be available to all | News | TechRadar

Google Fiber += 34 New Cities

Google Fiber, Ultrahigh-Speed Internet, May Expand to 34 New Cities - NYTimes.com:

Facebook += WhatsApp - $19B

Facebook buying messaging app WhatsApp for $19B - The Washington Post: "...paying $12 billion in Facebook stock and $4 billion in cash for WhatsApp. In addition, the app’s founders and employees — 55 in all — will be granted restricted stock worth $3 billion that will vest over four years after the deal closes." (deal translates to roughly 11 percent of Facebook’s market value)

WhatsApp has more than 450 million monthly active users.
...It also lets users communicate with people overseas without incurring charges for pricey international texts and phone calls. 
...It costs $1 per year and has no ads (first year free)"

So this is $42.2 / user, that are paying (at best) $1 / year...

Bubble?

SmartGlass: "Second screen experiences"

How to write engaging second screen experiences, using SmartGlass or Win8 | Dave Voyles | Tech Evangelist at Microsoft:



It would be nice if it could work with a regular Windows PC,
not only with Xbox, for using mobile/touch devices as a touchpad,
moving web screens etc...

Monday, February 17, 2014

JavaScript Tools

JS Bin - Collaborative JavaScript Debugging:
simple online tool for editing and running JavaScript...

similar to: JSFiddle

JSDB: JavaScript for databases
JSDB is JavaScript for databases, a scripting language for data-driven, network-centric programming on Windows, Mac, Linux, and SunOS. JSDB works with databases, XML, the web, and email. It is free and open-source. Use it as a JavaScript shell, to run CGI programs, or as a web server.

Azure Service Bus for Internet of Things

Windows Azure Insider - The Windows Azure Service Bus and the Internet of Things:

Arduino Sprinkler System Reference Architecture

There may be more practical home automation solutions

than monitoring sprinkler systems...












Sunday, February 16, 2014

JavaScript Monads



Douglas Crockford: JavaScript the Good Parts  @ pluralsight

DouglasCrockford/monad @ GitHub

a monad is a structure that represents computations defined as sequences of steps.
  • a monad consists of a type constructor M and two operations, bind and return (where return is often also called unit). 
  • The return operation takes a value from a plain type and puts it into a monadic container using the constructor, creating a monadic value. 
  • The bind operation performs the reverse process, extracting the original value from the container and passing it to the associated next function in the pipeline, possibly with additional checks and transformations.
"Identity monad" (wrapper around a value)

    function MONAD() {
        return function unit(value) {
            var monad = Object.create(null);
            monad.bind = function (func) {
                return func(value);
            };
            return monad;
        };
    }
    var identity = MONAD();
    var monad = identity("Hello world.");
    monad.bind(alert);

result equivalent to: alert("Hello world.");


Because of its functional nature, JavaScript is a good platform for monads.
In fact, many libraries, including pervasive jQuery are extensively using monads.




Extensive usage of JavaScript can't be avoided anymore in web development.
Even on server side node.js sometimes has better efficiency than other languages.

JavaScript has elements of Lisp in disguise...
This is "a revenge of Lisp:" to get powerful effects like Lisp,
JavaScript code becomes as cryptic as Lisp's...

Many JavaScript libraries and frameworks
that could be used without real understanding,
But this may be like an early "singularity".
(i.e. put a dog on a airplane, it will arrive to a destination
without any understanding what happened; no offence to dogs)

Saturday, February 15, 2014

'Flow' in game design

Be one with Flappy Bird: The science of 'flow' in game design | Mobile - CNET News"A core reason why recent hits like Flappy Bird and Threes found success -- and are massively addictive -- lies in the way they put us in a unique zen-like state known as flow."

(Flappy Bird game is removed from app store;
there is a similar web based game: Play flappy Doge)

Too bad that this and similar games are perfectly useless, except for "killing time".
But there may be some value in this approach, except for making advertising money.

Conditions for achieving such a state (Flow)
  • There must be a clear and simple task
  • that task must provide instant feedback
  • there must be no distractions that either disrupt your concentration or make you ultra-aware of your own actions; and, key to the act of game playing especially, 
  • it must be a challenge with appropriate balance with regards to your own skill and the task's difficulty.
...creating a near-unequivocal difficulty balance
no matter how good at games you were...




So the task needs to get harder if the user is more skilled,
but not too hard to be not possible to do it.

In fact that would be relatively easy to implement
by adjusting difficulty based on monitoring user's actions.

The same concept could be used for (gamification) in learning / education,
as well as in web sites and other apps. 


http://en.wikipedia.org/wiki/Flow_(psychology)

Flow theory postulates three conditions that have to be met to achieve a flow state:
  • One must be involved in an activity with a clear set of goals and progress. This adds direction and structure to the task.
  • The task at hand must have clear and immediate feedback. This helps the person negotiate any changing demands and allows him or her to adjust his or her performance to maintain the flow state.
  • One must have a good balance between the perceived challenges of the task at hand and his or her own perceived skills. One must have confidence in one's ability to complete the task at hand.
"Challenging assignments that (slightly) stretch one's skills lead to flow"
4.09: Go With The Flow @ Wired
According to Mihaly Csikszentmihalyi, great Web sites are not about navigating content, but staging experience

What do you mean by flow?
Being completely involved in an activity for its own sake. The ego falls away. Time flies. Every action, movement, and thought follows inevitably from the previous one, like playing jazz. Your whole being is involved, and you're using your skills to the utmost...


A Web site that promotes flow is like a gourmet meal. You start off with the appetizers, move on to the salads and entrées, and build toward dessert. 

Unfortunately, most sites are built like a cafeteria. You pick whatever you want. That sounds good at first, but soon it doesn't matter what you choose to do. Everything is bland and the same. 

Web site designers assume that the visitor already knows what to choose. That's not true. People enter Web sites hoping to be led somewhere, hoping for a payoff.


SVG To RaphaelJS Converter - Ready.Set.Raphael

SVG To RaphaelJS Converter - Ready.Set.Raphael. Beta 2:

online tool to extract coordinates from SVG files

upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg

Chapter 6: Map, Take 1 - JSFiddle

Chapter 6: Map, Take 2 - JSFiddle

Chapter 6: Map, Take 3 - JSFiddle

The Little JavaScripter

The Little JavaScripter:

Douglas Crockford comparing power of JavaScript with LISP
on example of teaching recursions. 



Free Courses on Pluralsight

Free Courses on Pluralsight blog:



Why does Pluralsight exist? And what does it mean for you?

(by its President/CEO Aaron Skonnard)
"Pluralsight exists to democratize professional technology training for people around the world."

book: Getting Started with D3

D3.js - Data-Driven Documents

Getting Started with D3 - O'Reilly Media:
"learn how to create beautiful, interactive, browser-based data visualizations with the D3 JavaScript library. This hands-on book shows you how to use a combination of JavaScript and SVG to build everything from simple bar charts to complex infographics. You’ll learn how to use basic D3 tools by building visualizations based on..."

Creating Data-Driven Documents

Getting Started with D3: O'Reilly - Safari Books Online

Gallery · mbostock/d3 Wiki

bl.ocks.org/mbostock/raw/4060606/


Friday, February 14, 2014

Planetary.js: interactive globes for the web

Planetary.js: Awesome interactive globes for the web:

"Fully customizable, including colors, rotation, and more
Display animated "pings" at any location with custom colors and sizes
Mouse drag + zoom support
Extremely extensible via a plugin-based architecture
100% free and open source, licensed under the MIT license"




Snap.svg (JavaScript graphics library)

Snap.svg - Home:

"SVG is an excellent way to create interactive, resolution-independent vector graphics that will look great on any size screen. And the Snap.svg JavaScript library makes working with your SVG assets as easy as jQuery makes working with the DOM."



another SVG library written by RaphaelJS creator Dmitry Baranovsky. 
Snapsvg provides a similar api as RaphaelJS
RaphaelJS includes support for VML, that is needed for older versions of IE.

Thursday, February 13, 2014

book: RaphaelJS - O'Reilly Media

RaphaelJS - O'Reilly Media:
Graphics and Visualization on the Web

RaphaelJS: O'Reilly - Safari Books Online

Dashboard - JSFiddle - Online JavaScript Editor - jQuery, Angular, Backbone, Underscore, Knockout, YUI

Raphaël—JavaScript Library

Telerik Platrom

Mobile Apps Are Dead Online Keynote - YouTube:

Telerik has grown significantly: 850 people in 7 countries...
(Ready to be acquired by Microsoft, I think...)

Telerik Platfrom:
  • UI: 
    • Web, 
    • Hybrid, 
    • Native (new for iOS and Android)
  • Cloud: 
    • "AppBuilder" (formerly Icenium), 
    • "Backend Services" (formerly Everlive, NoSQL online data store)
    • "Mobile Testing" (new, JavaScript based)
    • "Analytics" (formerly EQATEC)
  • End-to-end
    • ...
Price:
  • pro: $79/month
  • business: $149/month
  • enterprise: "custom"


JSON Graph (JSONG)

Netflix Reactive REST @ InfoQ

To avoid duplication of data and use HTTP more efficiently,
using ID's for data in JSON : JSON Graph (JSONG)
Very interesting!

JSON

{
videoLists: {
“0”: {
  “name”: “Thrillers”,
  “0”: {
    id: 2654,
    name: “Die hard”,
    rating: 4.0
  }, 
// more titles
  length: 74,
},
“1”: {
  “name”: “Action Movies”,
  “0”: {
     id: 2654, // duplication!
     name: “Die hard”,
     rating: 4.0
  }, 
// more titles
  length: 74
}, // more lists…
length: 25
}
} 

JSONG

{
videoLists: {
“0”: {
  “name”: “Thrillers”,
  “0”: [“videos”, 2654],  // effectively a link in a graph!
  // more titles
  length: 74,
},
“1”: {
  “name”: “Action Movies”,
  “0”: [“videos”, 2654], 
  // more titles
length: 74
}, // more lists…
length: 25
},
videos: {
  2654: { // avoid duplication
    name: “Die hard”,
    rating: 4.0 
  }
}
} 
Hierarchical API: JSONG Path [videoLists’][0][0][‘name’]
[“videoLists”,0,0,”name”]
array must be a path
[“videos”, 2654]

LinkedIn Mobile - HTML5 & Node.js

Lessons from Building LinkedIn Mobile - HTML5 & Node.js: @ InfoQ

Simple = Fast + Easy ("to use") + Reliable ("predictable")

Responsive Design: Good for websites; Not for applications

HTML5 vs Native

Client: Controllers + Templates (native, to avoid memory leaks)

Server: Aggregation, Formatting (node.js)
+ Data Services, Tracking, Queues


Monday, February 10, 2014

"Telerik Platform"

Telerik Platform:

Telerik Platform bundle

End-to-end yet modular platform for building web, hybrid and native apps. 
UI tools for any approach coupled with powerful cloud services.

Date: February 12, 2014
Time: 11 AM Eastern Standard Time
Duration: 60-minutes


Likely: improved version of Icenium package
(building mobile apps with html+cordova shell)
where web part can be used as normal web app or in mobile.
CSS and JS are used to adjust GUI for each mobile OS. 


Make Opinionated Software (by 37signals)

Getting Real: Make Opinionated Software (by 37signals):

"The best software has a visionThe best software takes sides. 
When someone uses software, they're not just looking for features, 
they're looking for an approach. They're looking for a vision. 
Decide what your vision is and run with it.

And remember, if they don't like your vision there are plenty of other visions out there for people. Don't go chasing people you'll never make happy."



Example: Ruby on Rails.
It made Ruby relevant and influenced most other web frameworks since.
Current example: AngularJS






Sunday, February 09, 2014

AngularJS @ Wintellect

Wintellect | Search: AngularJS

10 Reasons Web Developers Should Learn AngularJS | Wintellect

angulartrends

JavaScript the Good Parts @ pluaralsight

JavaScript the Good Parts - Online Training Course for Developers:
"JavaScript has bad parts that many times overshadow it’s good parts. 
Douglas Crockford claims JavaScript has, "some of the best parts of any programming language ever created." 
He explains why in this course, quizzes you on functional programming and covers the monad in the final lecture of the course."
Unearthing the Excellence in JavaScript

JSLint,The JavaScript Code Quality Tool

He starts with "Programming Style and your brain",
and reference to book "Thinking Fast and Slow"
by Nobel laureate Daniel Kahneman
Cover

Optical illusion: squares A and B are exactly same color!


Proof, by Edward H. Adelson @ MIT

Curly Braces, left or right? C, C++, Java, C#: does not matter.
In JavaScript it does!

return // this is a silent error in JavaScript, returns "undefined"
{  // this is due to automatic insertion of semi-column ; feature
   ok: false;
}

return { // this is OK in JavaScript
   ok: true;
}

Switch statement: "fall-trough hazard"; always need a "break"
simple solution: don't use the feature that could cause errors.

Example from literature: use or space, comma, dot, uppercase and lowercase is reducing error rate, and increasing read-ability of the text.
The Elements of Style by William Strunk, Jr.
"Programs must communicate clearly to people"

example "rule":
* no space between function name and (
* one space between any other name and (

function () {  ...
}(); // syntax error in JavaScript, can't immediately invoke function

(function () { ...
})(); // this is OK in JavaScript, can immediately invoke function, but looks ugly

(function () { ...
}()); // this also works in JavaScript, but looks better

never rely on semi-column insertion, always put them in place 

with statement ambiguity;
with (o) { foo = koda; }
1. o.foo = koda;
2. o.foo = o.koda;
3. foo = koda;
4. foo = o.koda;
could be ANY of 4 options, depending on context.
Don't use "with" statement. 

== statement is ambiguous, since it does type conversion first
0 == '' // true
0 == '0'  // true
'' == '0' // false
false == 'false' // false
false == '0' // true
" \t\r\n " == 0 // true
use ===, never == (in listed cases it will all be false)

Don't use \ as last character in line for continuation to next line.
If a space is added after \, this will cause syntax error. 

if (a = b) {...} // this is not good style
a = b; if (a) {...} // this is what happens
if (a === b) {...}  // not this. 

Scope:
in most languages are "block scope", can be nested
in JavaScript it is "function scope"
Problem is that JavaScript has syntax that is same as in block scope languages.
"var" statement is moved to top of the function in JavaScript
and that can cause errors
function foo() { .... var myVar=0; ...}
becomes:
function foo() { var myVar=undefined; ... myVar=0; ... }

conclusion: in JavaScript (that is function scope)
declare all variables at start of the function, 
that is where there are declared anyway by compiler!

Also, declare all functions before you call them.

for (var i ... ) { ... }
// variable i is NOT scoped to the loop in JavaScript, it is to function

Global variable are evil in all languages, 
but they are sometimes unavoidable in JavaScript
Advice: write global variables in UPPERCASE

Constructions functions should be named with InitialCaps
and nothing else should be named the same
to avoid confusion with missing "new" statements

var a = b = 0;
var a =0, var b = 0; // it is NOT doing this
b = 0; var a = b; // instead it is initializing global variable b, and local a 

++ was invented to increment pointers; should not be used
use x += 1 instead; x++ is not ++x

if (a) b(); c(); 
if (a) { b(); c(); } // not the same
if (a) { b(); } c(); // this is what happens, obviously 
Advice: always put curly braces in!

"As processes become more agile, coding must be more resilient" 

"Language Sub-setting"
"only a mad man would use all of C++"

Performance
"Premature optimization is root of all evil" - Donald Knuth
...
The function statement is a short-hand for
a var statement with a function value.
function foo() {}
expands to
var foo = function foo() {};
which further expands to
var foo = undefined;
foo = function foo() {};

Closure ("the most important thing"):
var digit_name = (function () {
  var names = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
  return function (n) { return names[n]; };
}());
alert(digit_name(3)); // 'three'

returned function has access to names[] even when original function is gone. 

Power Constructors
  1. Make an object: Object literal, new, Object.create, call another power constructor
  2. Define some variables and functions.: These become private members.
  3. Augment the object with privileged methods.
  4. Return the object.
function myPowerConstructor(x) {
  var that = otherMaker(x);
  var secret = f(x);
  that.priv = function () {
    ... secret x that ...
  };
  return that;
}

Saturday, February 08, 2014

Building rich web UIs with knockout.js

Building rich web UIs with knockout.js - Programming - O'Reilly Media:
At Fluent 2013, O’Reilly’s Web Platform, JavaScript and HTML5 conference, Microsoft’s Steve Sanderson gave a tight 20 minute introductory tour of Knockout.js, a popular JavaScript UI library (that he created) built around declarative bindings and the Model-View ViewModel (MVVM) pattern.


Knockout.js is based on "reactive programming" vs. classic "push model"

learn.knockoutjs.com

KnockoutJS vs AngularJS | Next Big Thing

Top JavaScript MVC Frameworks

Compare Durandal to Angular, Not Knockout to Angular | John Papa


Aperture JS

Aperture JS:

"Aperture JS agile visual analytics for big data"

DARPA Open Catalog

"The DARPA Open Catalog organizes publically releasable material from DARPA programs, beginning with the XDATA program in the Information Innovation Office (I2O). XDATA is developing an open source software library for big data."


"The Hour of Code"

The Hour of Code 2013 | The Hour of Code 2013:
"Sign your name if you think every student in every school should have the opportunity to learn computer science"

Learn | The Hour of Code 2013
Scatch, JavaScript, Python, LightBot...

Teach the Hour of Code | Code.org


Promote Computer Science | Code.org

Hour of Code - Bill Gates explains If statements - YouTube


"D-Wave Two" Quantum Computer

The Quantum Quest for a Revolutionary Computer - TIME:
"D-Wave Two, of which there are five in existence, is a black box 10 ft. high. Inside is a cylindrical cooling apparatus containing a niobium computer chip that's been chilled to -459.6°F, almost 2° colder than the Boomerang Nebula. 

The D-Wave Two is an unusual computer, and D-Wave is an unusual company. It's small, and it has very few customers, but they're blue-chip: they include the defense contractor Lockheed Martin; a computing lab that's hosted by NASA and largely funded by Google; and a U.S. intelligence agency that D-Wave executives decline to name."

V2V: Vehicle-to-vehicle communication

On The Road To The Self-Driving Car | On Point with Tom Ashbrook:
"The National Highway Traffic Safety Administration said Monday it will soon require all new cars to talk to one another.  Share location, speed, direction and more, electronically.  Vehicle-to-vehicle – “V2V” – communication.  Right behind that comes the next frontier:  self-driving cars.  First they talk to one another, next they drive themselves.  The auto industry, Google, and the law are all gearing up."

Surprise: ‘Vehicle-to-Vehicle’ Communication Is Already Here | On Point with Tom Ashbrook
"They are literally talking about being able to transit ten pieces of data every second. And it will be everything from your car position, via GPS, to how well you brake, how well you are braking, are you hitting ice, are you turning left are you turning right, are you speeding — all of that information constantly transmitted in a radius of about 300 yards or so, maybe more, and other cars in the vicinity picking up all that information. It all amalgamates in each other’s computers and the cars..."



This information could also be used to adjust traffic lights to improve throughput, for example, and traffic signs including traffic lights could also transmit info to cars, or even mobile phones / devices in the cars.

Why not use existing mobile devices and mobile networks to "enhance driving?" To some extent this is already happening, since traffic information on Google maps is partially based on info from mobile devices...

Energy Trouble Making

The Tense Trail Of The Keystone XL Pipeline | On Point with Tom Ashbrook: "Keystone XL Pipeline from Canada’s Tar Sands country through the heart of America and hear the furious debate over its fate."

Oil sands - Wikipedia, the free encyclopedia

photo
Tony Horwitz's Photos Along The Keystone XL Pipeline


@Discovery.com


There is "Terraformation" (make something, i.e. Mars, look as Earth)
and there is a "Venusformation" (making Earth hot as Venus :)

Instead of dirty oil pipelines to support "commuting",
people should be making optical lines for "telecommuting",
electrical power lines to transfer clean energy
and fresh water pipelines to provide reliable clean water.

And this is not only in USA, but world-wide.
Invest in clean and smart technologies!


Friday, February 07, 2014

Tesla Motors, Coast to Coast

Tesla Motors Team Completes 76-Hour, Cross-Country Trip | News & Opinion | PCMag.com:

"Two teams of Tesla employees driving Model S vehicles successfully completed the company's first Los Angeles to New York road trip this morning, arriving in New York City around five a.m. (PT) after spending approximately 76 hours on the road. They paid a total of $0.00 for gasoline along the way, owing to the quick-charge stations..." 

Tesla completes its cross-country world record attempt | The Verge

"Tesla LA to NY Supercharger rally just completed in 76 hours across northern route in dead of winter thru heavy snow!"

Tesla Trip

Color Psychology

How To Use Color Psychology To Give Your Business An Edge - Forbes:

English: Robert Plutchik's Wheel of Emotions


Robert Plutchik's Wheel of Emotions

Software Patents

podcast .NET Rocks!:

"Carl and Richard talk to Jonathan Zuck about the state of software patents today. The conversation starts out talking about some of the craziness around software patents - patent trolls, extortion-like letters and the like. Jonathan talks about the changes made by the US to patent law in 2012, and how the biggest challenge today is cleaning up poorly written patents from the DotComBoom era. Also mentioned is a document for application developers created by ACT Online for what to do if you receive a patent demand letter. Check out the links in the show description for the document!"



There are no software patents, only "business process" patents that include software.

New Zealand does not allow software patents anymore.

There is a patents reform coming, and patents are even mentioned in "state of the union" this year.



actonline.org/wp-content/uploads/2013/07/Patent-Letters-Infographic.pdf

About | ACT




Thursday, February 06, 2014

MEAN Web Dev Stack

Building AngularJS and Node.js Apps with the MEAN Stack - Online Training Course for Developers:
http://github.com/joeeames/MEANAppsFiles

Mean.io
MEAN (Stack) is a boilerplate that provides a nice starting point for MongoDB, Node.js, Express, and AngularJS based applications. It is designed to give you quick and organized way to start developing of MEAN based web apps with useful modules like mongoose and passport pre-bundled and configured. We mainly try to take care of the connection points between existing popular frameworks and solve common integration problems.

common element: JavaScript.
Compared to previous "LAMP", this web stack can work on any OS
But JavaScript may also evolve soon to more "typed" languages, Dart and maybe TypeScript... 








Wednesday, February 05, 2014

Web App Template for Windows Store Apps

Web App Template - Home:

"Web App Template is a tool that uses your Web App as the core for a full featured Store App for Windows 8.1 and Windows Phone 8. The Web App Template (WAT) is implemented as a Visual Studio template that you install through our one click installer. You can then start a new project type of “Web App Template”"

WAT-ill.png



Website to App — The Web App Template Simplifies Windows App Development - JohnShew's Blog - Site Home - MSDN Blogs

Download function in jsFiddle?

Is there a download function in jsFiddle? - Stack Overflow:

"You have to put /show a after the URL you're working on:
http://jsfiddle.net//show/
It is the site that shows the results.

And then when you save it as a file. It is all in one HTML-file."




for example: http://jsfiddle.net/299NA/show/

AngularJS ToDo Example: - jsFiddle demo


AngularJS Animations: ngAnimate

Awesome Interfaces with AngularJS Animations (slides)



ng-tube (animated YouTube links)



Lukas Rubbelke & Matias Niemela - Awesome Interfaces with AngularJS Animations - NG-Conf 2014 - YouTube



angular-animate.js


Kodak's Patents fire sale for 5% of estimate

The Lowballing of Kodak's Patent Portfolio - IEEE Spectrum:

In January 2012, Kodak filed for Chapter 11 bankruptcy protection
...
Kodak portfolio of patents experts valued as high as US $4.5 billion.
"Eleven months later, those roughly 1700 patents (together with 655 patent applications) sold for just $94 million—less than the licensing fees Kodak had collected in its worst-ever year in recent history.

What’s more, the company licensed its remaining 20 000 patents to a dozen leading technology companies for only $433 million, severely restricting future earnings from them."

Kodak chart 2
Kodak’s original auction for its 1700 imaging and printing patents attracted over 20 possible bidders. However, the strongest purchasers formed two consortia, led by patent aggregators Intellectual Ventures and RPX. Neither consortium’s bid was high enough to allow Kodak to escape Chapter 11 bankruptcy. Along with three smaller companies, the consortia then merged into a superconsortium whose members dominate the digital world in the 21st century. Its final bid was successful.

Tuesday, February 04, 2014

Embedded ASP.NET Web Server

For years, embedded web server in Visual Studio was Cassini.
It was also available as open source from Microsoft.
Then it disappeared from asp.net web site.

There is also some projects on code.google.com. This may be original (copy)
larytet-master - Small HTTP server Cassini v35 - JQuant

mpwebstream/Cassini-v35 at master · oxan/mpwebstream (?)

cassini - Microsoft's open source, portable and redistributable web server on .NET 4.0  (fork)

CassiniDev - Cassini 3.5/4.0 Developers Edition - Home: (fork)

New Katana/OWIN solution requires re-write of web applications.
It is better for new projects, and is part of "One ASP.NET" (MVC 5)

Proper "binary distribution" solution for hosting existing ASP.NET (WebForms and MVC) from Microsoft is IIS Express.
This requires running .MSI to install the tool, and to host it in a Windows service.

Download Internet Information Services (IIS) 7.5 Express from Official Microsoft Download Center (can run on Windows 2003 R2 and XP)

Download Internet Information Services (IIS) 8.0 Express from Official Microsoft Download Center (supports Windows 8.x)

Why bother when (almost) every Windows 7 and 8.x has IIS as a feature that can be enabled? Because that "enabling" takes 5-10 minutes!
For simple embedded apps that is too much waiting...






Glenn Block on Splunk, Web API book

Herding Code 185: Glenn Block on Splunk:

"Splunk has a product that gathers operational intelligence. It’s got a data analytics platform which understands a lot of log formats. It can handle streaming logs and has a bunch of API’s. It can index in realtime, handles unstructured data, and has some advanced pattern matching features."

The interesting part is that the platform is apparently processing events,
detecting patterns and indexing... and is used by 50% of fortune 500 companies...
book: Designing Evolvable Web APIs with ASP.NET

Designing Evolvable Web APIs with ASP.NET - O'Reilly Media

Designing Evolvable Web APIs with ASP.NET: O'Reilly - Safari Books Online

Brian Eno, Danny Hillis: The Long Now, now

podcast conversation about 10000 year clock, and many other things
Brian Eno, Danny Hillis: The Long Now, now - The Long Now:

the 10000 years (mechanical) clock has 10 bells,
and can play different permutation for each day of those 10000 years.
10! = 3 628 800
365.25 * 10000 = 3 652 500so it is "almost" every day a new tune...

one of interesting pieces of information, "unsustainable now":
85 richest people own as much as bottom 50% of people. 
(those 85 people) combined owns about 46% of global wealth


Microsoft's new CEO

Microsoft Corporation (MSFT) news: Microsoft names Nadella CEO, Gates steps down as chairman - Seeking Alpha:



  • "Microsoft (MSFT) has named enterprise/cloud product chief Satya Nadella its new CEO, ending a 14-year run by Steve Ballmer. 
  • Bill Gates is resigning as chairman, and will begin a new role as a "technology adviser." He's expected to once again be closely involved in product development.
  • Lead independent director John Thompson is Microsoft's new chairman. Gates and (for now) Ballmer will remain on the board, and Nadella will join it."

Sunday, February 02, 2014

Learning Code The Hard Way

Learning Code The Hard Way with Zed Shaw on the Hanselminutes Technology Podcast: Fresh Air for Developers:

Hard way = practice, step by step. The right way.
Not just read or watch, but keep trying.
Could MOOCs do that?

Learn Code The Hard Way -- Books And Courses To Learn To Code
Amazon.com: Zed Shaw: Books, Biography, Blog, Audiobooks, Kindle


AngularDart

AngularDart: blog



AngularDart is helping AngularJS (and Angular ES6) get better






AngularJS + Firebase

AngularJS + Firebase:

"Store and sync your AngularJS
app's data in milliseconds.
 Firebase is a realtime backend
for your AngularJS app"



Firebase works great with Angular and can synchronize your Angular app's data without any backend code.



Angular Conference NG-Conf 2014

Miško Hevery and Brad Green - Keynote - NG-Conf 2014 - YouTube 

Videos from conference: ng-conf 2014 - YouTube

AngularJS — Superheroic JavaScript MVW Framework

3 Ds of Angular:
  • Directives
  • Dependency Injection
  • Declarative Code: Type annotations & Data annotations


Technology Trends for 2014: "Smart Everything"

Daniel Burrus’ Top 25 Technology-Driven Trends for 2014 | Daniel Burrus - Technology Trends and Business Strategy Speaker:



"3. Everything as-a-Service (XaaS)"

"22. Smart Machines, Smart Homes, Smart Cities, and Smart Cars Will Increasingly Become Aware of Situational Changes and Respond"


ASP.NET += Angular

Yet Another Podcast #119– ASP.NET & Angular | Jesse Liberty:
Apparently Microsoft ASP.NET team is committed to include first class support for AngularJS in Visual Studio and ("One") ASP.NET
By Google or not, that is what developers want.

It will likely be optionally combined with TypeScript also,
and will have "higher-level" design features. Nice.

After jQuery, Bootstrap, and then node.js and even Git,
Microsoft is embracing (and extending :) most popular open source web projects.
Even Hadoop is supported on Azure...

With this, AngularJS may achieve its stated goal to be included in HTML itself.
For last a few months AngularJS class is #1 on Pluralsight.

Saturday, February 01, 2014

Microsoft Reasearch AI: Virtual Personal Assistant

Meet Microsoft's Virtual Personal Assistant: Video - Bloomberg:

"Head of Microsoft Research Peter Lee discusses Microsoft's use of artificial intelligence on Bloomberg Television's"


3D Printing Patents Expiring

Laser Sintering 3D Printing May Now Take Off with a Very Important Patent Expiring Today - 3DPrint.com:

(5 years ago) "If it wasn’t for the expiration of this patent, MakerBot probably wouldn’t be around, and they certainly would not be selling 3D Printers for $1375 (Although the owner of the patent, Stratasys ended up acquiring MakerBot).  Prior to the patents expiration, you would typically find a printer that used this FDM technology to cost in the $25,000 range."

SkyDrive => OneDrive

Microsoft renames SkyDrive to OneDrive | PCWorld:

"Say goodbye to SkyDrive and hello to OneDrive. After losing its trademark dispute with BSkyB last July, Microsoft is finally set to reboot its online storage service under a new name in the coming weeks."

onedrive

"The concept behind the name OneDrive is spelled out pretty clearly by the refreshed service’s tagline: one place for everything in your life. “One place for all of your photos and videos. One place for all of your documents,”

OneDrive for Everything in Your Life | OneDrive Blog
The new name for SkyDrive Pro is OneDrive for Business