Monday, November 16, 2015

Azure Service Fabric

Introducing Azure Service Fabric @ InfoQ

"Microsoft has been working on Service Fabric for the past 5-6 years as it is foundational in their own cloud platform; Microsoft Azure. Azure Service Fabric supports many of Microsoft’s cloud services that run on top of it...

"Azure Service Fabric... is a state-of-the-art distributed system that allows developers to easily build and manage Internet scale services. It is used to build services such as Azure DB, Azure Document DB, Bing Cortana, Windows Intune, and core Azure services"

asm.js: super fast JavaScript chess playing demo

Supercharging JavaScript performance with asm.js | Microsoft Edge Dev Blog

"Asm.js is a strict subset of JavaScript that can be used as a low-level and efficient compile target. It applies constraints such as static typing to enable opportunities for optimizations, such as type specialized compilation without bailouts and ahead-of-time (AOT) compilation. These optimizations allow asm.js code to have near-native performance and predictable behavior. A popular way of using asm.js is porting C/C++ projects to asm.js with Emscripten (an LLVM to JavaScript compiler).

... because the asm.js-optimized engine has a significant performance advantage, it can evaluate more moves per turn and has a substantially higher likelihood of victory"





A Guide for Learning: 10 Steps / Principles

There are many attempts to accelerate and improve learning.
In most cases "self help" books come as a result of personal research
and are "prescriptive heuristics," "trust us this works" methods.
On the other side, strict scientific research is usually abstract and not practically usable.

So learning process is left to empirical experimentation, "learning on own mistakes"
and following hints from various sources. Not very effective, to say the least.
There are almost no learning resource, physical or online, that starts or contains a "mental map"
and "learning path". What a waste, and also an opportunity to improve.

Leaning materials should come with a "users guide."
Preferably such content would be structured ("a graph"), open / editable / web based,
and self-improving based observation of many users.
And it should not be a "linear" "waterfall" method anymore:
software development has perfected many better, agile iterative methods.

Anyway, here are a few interesting resources about learning techniques:

Deliberate Practice (learning method) - Wikipedia, the free encyclopedia
"...how expert one becomes at a skill has more to do with how one practices 
than with merely performing a skill a large number of times. 
An expert breaks down the skills that are required to be expert
and focuses on improving those skill chunks during practice or day-to-day activities,
often paired with immediate coaching feedback.
Another important feature of deliberate practice lies in
continually practicing a skill at more challenging levels with the intention of mastering it."
 


The First 20 Hours - Josh Kaufman - How to Learn Anything FAST

Summary of The First 20 Hours, by Josh Kaufman | Pablo's miscellany
Ten major principles of rapid skill acquisition:
  1. Choose a lovable project.
  2. Focus your energy on one skill at a time.
  3. Define your target performance level.
  4. Deconstruct the skill into subskills.
  5. Obtain critical tools.
  6. Eliminate barriers to practice.
  7. Make dedicated time for practice.
  8. Create fast feedback loops.
  9. Practice by the clock in short bursts.
  10. Emphasize quantity and speed.
Ten principles of effective learning:
  1. Research the skill and related topics.
  2. Jump in over your head.
  3. Identify mental models and mental hooks.
  4. Imagine the opposite of what you want.
  5. Talk to practitioners to set expectations.
  6. Eliminate distractions in your environment.
  7. Use spaced repetition and reinforcement for memorization.
  8. Create scaffolds and checklists.
  9. Make and test predictions.
  10. Honor your biology.
a new material by John Sonmez of SimpleProgrammer.com


  1. Get the Big Picture 
  2. Determine the Scope 
  3. Define Success 
  4. Find Resources 
  5. Create a Learning Plan 
  6. Filter Resources 
  7. Learn Enough To Get Started 
  8. Play Around 
  9. Learn Enough To Do Something Useful 
  10. Teach


Cover image for Pragmatic Thinking and Learning