Nikola Brežnjak blog - Tackling software development with a dose of humor
  • Home
  • Daily Thoughts
  • Ionic
  • Stack Overflow
  • Books
  • About me
Home
Daily Thoughts
Ionic
Stack Overflow
Books
About me
  • Home
  • Daily Thoughts
  • Ionic
  • Stack Overflow
  • Books
  • About me
Nikola Brežnjak blog - Tackling software development with a dose of humor
Pluralsight

Notes from Kanban Fundamentals course on Pluralsight

Here are my notes from the very good Pluralsight course Kanban fundamentals by Steve Smith.

  • Kanban = kan (visual) & ban (card)
  • Taiichi Ono from Toyota 1920ies
  • Kanban is about maximizing flow
  • It’s for visualizing work and limiting WIP (work in progress)
  • Little’s Law states that queue length (L) = arival rate * avg. wait time.
  • Cycle time = WIP / Throughput
Lead time vs Cycle time
Ticket created Start work Ticket implemented
Lead time
  Cycle time

Personal Kanban

  • Visualize work
  • Limit WIP

  • Book reference: Personal Kanban

Personal Kanban getting started

  • Gather materials (sticky notes, whiteboard, pens)
  • Establish Value stream (Ready/Doing/Done)
  • Make your backlog explicit (put them on sticky notes, focus on completeness, not organization)
  • Establish WIP limit
  • Begin pulling tasks
  • Reflect

Create a blocked state too – prioritize them and set a WIP on them as well!

Potentially, add a Today column:

  • Important and Urgent matrix by Dwight Eisenhower
  • Quadrant of Kaizen – important but not urgent.

Prioritization lanes:

Kanban for software teams

  • Book Reference: Kanban – Successful Evolutionary Change for Your Technology Business

Usually, the upstream process (UP) would produce as fast as they could without worrying about the downstream process (DP) – this lead to a lot of waste = overproduction.

However, in the pull model, the DP requests more parts, and the UP produces just enough items to keep the store populated with some limited number of parts.

The Kanban Method** Properties

  • Visualize workflow
  • Limit WIP
  • Measure and manage flow
  • Make process policies explicit
  • Use models to recognize improvement opportunities

Recipe for success

  • Focus on quality – reduces defects
  • Reduce WIP – reduces defects as well
  • Deliver often – as that builds trust
  • Balance demand against throughput – don’t accept work at a rate higher than the rate your team produces work. This will yield bottlenecks
  • Prioritize
  • Attack sources of variability to improve predictability –

Microsoft case study 2004:

  • remove estimations
  • limit WIP
  • More frequent cadence

Implementing Kanban

  • Define your process and endpoints
  • Identify types of the workflow
  • Create a card wall
  • Establish and visualize queues/buffers

Examples

Example usage for ‘swimlanes’ (horizontal lines denoting ‘critical’ tasks that eventually happen):

An example of post it notes on the actual physical board in case that’s used.

Online Tools

The author mentioned the following tools:

  • AgileZen
  • LeanKit
  • Trello
  • Targetprocess

However, this list is rather old. Even so much so that at the time Trello was free, and it just got sold yesterday 🙂

I’d like to add one kanban tool that I use for personal usage: https://kanbanflow.com. And one that I’m about to start using, and will write my thoughts about how well is fitting in our workflow after I do some work with it: https://www.blossom.co/.

Conclusion

Very good introduction to Kanban, which may be just as much as you’ll ever need.

My notes from Kanban Fundamentals course on Pluralsight https://t.co/tOQ0Nen0nY

— Nikola Brežnjak (@HitmanHR) January 11, 2017

Breaking News, Pluralsight

Learn at Pluralsight for free the next six months

In this post I’ll show you how you too can learn at Pluralsight for free the next six months. As you may know, I already have (and truly recommend) Pluralsight subscription. However, the may not

As you may know, I already have (and truly recommend) Pluralsight subscription. However, the may not struck you as the cheapest option and I found this original link today on Fossbytes where they show how you can get six months for free at Pluralsight. No credit card, coupon or other BS.

Here are the steps:

  1. Go to signup.live.com and create a new Microsoft Account. or skip it if you already have one
  2. Go to my.visualstudio.com and sign-in with your (newly created) Microsoft account
  3. Click on Get code and then on Activate.
    psMicrosoft
  4. You’ll be taken to the Pluralsight website to activate and redeem your 6-month subscription.

And even though these steps sound “sound”, one of my friends reported that the Pluralsight link ends with a 404 page. Is this also your scenario or did you guys manage to work it out?

#Learn at Pluralsight for free the next six months https://t.co/WhkeDbIXpH pic.twitter.com/Rc3KRviEbZ

— Nikola Brežnjak (@HitmanHR) February 15, 2016

Ionic, Pluralsight

How to publish the app to the Apple’s App Store and Google’s Play Store

edit: These posts don’t exists in their separate form anymore. Instead, they have been merged into one big post that you can read here. But, in case you want to read them in its original form, make sure to check the book linked below.


The fourth post about Ionic framework for Pluralsight wraps the series in a whole where we showed how to create an application starting with an idea, through creating a prototype and implementing the application using Ionic framework to finally (in this tutorial) publishing it in the stores.

You can see the finished product on the header image and you can check out the application by downloading it from the App Store or Play Store here.

The post is live and you can access it for free here:  How to publish our calculator application to the Apple’s App Store and Google’s Play Store.

This was a series of posts which was intended to teach you how to take advantage of your web development knowledge in building hybrid applications for iOS and Android.

The first tutorial, as you may remember, was all about how to get started with Ionic framework on Mac andWindows. The second tutorial was about how to create a calculator application with Ionic framework by using Ionic Creator for UI. The third tutorial was about how to polish, create icons and splash screen images, add ads, share and test our calculator application.

IonicBook

If by some chance you would like to download a PDF version of these 4 posts you can do so via Leanpub. Yes, you can choose zero as the amount and I promise I won’t take it against you 😉

If you have any questions please don’t hesitate to ask, and please share if you like it.

How to #publish the #app to the Apple's App Store and Google's Play Store https://t.co/DkFBeTj8yi @ionicframework pic.twitter.com/SjROTSn5OO

— Nikola Brežnjak (@HitmanHR) December 15, 2015

Ionic, Pluralsight

How to polish, create icons and splash screen images, add ads, share and test our calculator application

In my third tutorial about Ionic framework for Pluralsight, I’m going to show you how to:

  • polish,
  • create icons and splash screen images,
  • add ads,
  • share and test our calculator application

The post is live and you can access it for free here:  How to polish, create icons and splash screen images, add ads, share and test our calculator application.

Btw, if you’re wondering where is the main image from, it’s actually from a landing page of the published apps (we’ll show you how to do that for both Play Store and App Store in the next tutorial), and you can take a look at it here: SuperSimple Calculator.

This will be a series of posts which will teach you how to take advantage of your web development knowledge in building hybrid applications for iOS and Android.

The first tutorial, as you may remember, was all about how to get started with Ionic framework on Mac andWindows. The second tutorial was about how to create a calculator application with Ionic framework by using Ionic Creator for UI.

If you have any questions please don’t hesitate to ask, and please share if you like it.

How to polish, create #icons and #splash screen images, add #ads, share and test our #ionic #calculator application https://t.co/52k5f1G9CH

— Nikola Brežnjak (@HitmanHR) December 9, 2015

Ionic, Pluralsight

How to create a calculator application with Ionic framework by using Ionic Creator for UI

edit: the old link is not working anymore and all four posts have now been merged into one huge post: Ionic Framework: A definitive 10,000 word guide.

In my second tutorial about Ionic framework for Pluralsight, I’m going to show you how to create a calculator application with Ionic framework by using Ionic Creator for UI.

The post is live and you can access it for free here: How to create a calculator application with Ionic framework by using Ionic Creator for UI.

The first tutorial, as you may remember, was all about how to get started with Ionic framework on Mac andWindows. This will be a series of posts which will teach you how to take advantage of your web development knowledge in building hybrid applications for iOS and Android.

If you have any questions please don’t hesitate to ask, and please share if you like it.

How to create a #calculator application with #Ionic #framework by using Ionic #Creator for UI https://t.co/A7wCaKOunX

— Nikola Brežnjak (@HitmanHR) December 1, 2015

Ionic, Pluralsight

My new post about Ionic on Pluralsight

I haven’t posted in three weeks now, but there’s a good reason for it – I was preparing a post for Pluralsight on the topic of Ionic. This will be a series of posts which will teach you how to take advantage of your web development knowledge in building hybrid applications for iOS and Android.

I’m super excited that the first  post is now live (I have additional 3 in the queue) and you can check it out here: How to get started with Ionic framework on Mac and Windows.

If you have any questions please don’t hesitate to ask, and please share if you like it.

Pluralsight, Three.js

Pluralsight WebGL and Three.js fundamentals course notes

Recently I bought a years worth subscription over at Pluralsight (here’s my portfolio of passed courses), and here I’ll be posting my notes from the courses that I attended. Please note that this is not meant to be as a sort of tutorial, just as the name says – notes for myself :). However, one could get some useful content from these posts as I’m noting things that catch my attention.

Here are my notes from the WebGL and Three.js fundamentals course. I rated the course 4/5 and all in all it’s a good introduction to WebGL with Three.js.

//rant: I passed the exam with the whopping 100%, and actually I feel that since Pluralsight is very famous and all that, that they could improve on the quality (it’s just too easy and does not go into detail) of these certification tests.

var scene = new THREE.Scene(); //acts like a container of all items
var renderer = new THREE.WebGLRenderer(); //how our content will be displayed on the page (WebGL, Canvas or SVG renderers)

It uses a Cartesian cordinate system (x,y,z). If you don’t specify the position- it will be positioned at (0,0,0).

It has a perspective and ortographic camera:

camera = new THREE.PerspectiveCamera(
35, =>fov
window.innerWidth / window.innerHeight,
1, => near
1000 => far planes
);

You can use your dev tools console (Chrome) or Firebug (Firefox) and access items if you properly export the objects in the code (return {scene: scene}); code snippet in the listing below):

//app.js file
var example = (function(){

    "use strict";
    
    var scene=new THREE.Scene(),
    renderer = window.WebGLRenderingContext ? new THREE.WebGLRenderer() : new THREE.CanvasRenderer(),
    light= new THREE.AmbientLight(0xffffff),            
    camera,        
    box;

    function initScene(){
        renderer.setSize( window.innerWidth, window.innerHeight );
        document.getElementById("webgl-container").appendChild(renderer.domElement);

        scene.add(light);
                          
        camera = new THREE.PerspectiveCamera(
        35,
        window.innerWidth / window.innerHeight,
        1,
        1000
        );
                            
        camera.position.z= 100;            
        scene.add( camera ); 

        box = new THREE.Mesh(
        new THREE.BoxGeometry(20,20,20),
        new THREE.MeshBasicMaterial({color: 0x00FF00})
        );

        box.name="box";   

        scene.add(box);

        render();
    }

    function render(){
        box.rotation.y +=0.01;
        
        renderer.render(scene, camera); 
        requestAnimationFrame(render);        
    }

    window.onload = initScene;
    
    return {
        scene: scene
    }

})();
//HTML file
<!DOCTYPE html>

<html>
    <head>
        <title>WebGL with three.js Fundamentals</title>       
    </head>

    <body>
    	<div id="webgl-container"></div>
    	
    	<script src="scripts/three.js"></script><!--DL this from official site-->
    	<script src="scripts/app.js"></script>
    </body>
</html>

Accessing it from Chrome Console as mentioned above:

var a = example.scene.getObjectByName('box');
a.position.x = 10;
a.position.set(0,2,2);
  • Degrees to radians formula: radians = degrees *pi/180
  • Meshes – geometry + material
  • use stats.js
  • different existing controls: FlyControls.js, OrbitControls.js
  • Collision detection
  • Raycasting – returns objects that are on some other objects “ray” and Box3.
  • Physics: PhysiJS is a wrapper for Ammo.js which is a port of C++ Bullet
  • Supports gravity, mass property, friction, restitution (bounciness)

Cool 3D frogger game made by the author: https://github.com/alexmackey/threeJsFrogger

Recent posts

  • Discipline is also a talent
  • Play for the fun of it
  • The importance of failing
  • A fresh start
  • Perseverance

Categories

  • Android (3)
  • Books (114)
    • Programming (22)
  • CodeProject (35)
  • Daily Thoughts (77)
  • Go (3)
  • iOS (5)
  • JavaScript (127)
    • Angular (4)
    • Angular 2 (3)
    • Ionic (61)
    • Ionic2 (2)
    • Ionic3 (8)
    • MEAN (3)
    • NodeJS (27)
    • Phaser (1)
    • React (1)
    • Three.js (1)
    • Vue.js (2)
  • Leadership (1)
  • Meetups (8)
  • Miscellaneou$ (77)
    • Breaking News (8)
    • CodeSchool (2)
    • Hacker Games (3)
    • Pluralsight (7)
    • Projects (2)
    • Sublime Text (2)
  • PHP (6)
  • Quick tips (40)
  • Servers (8)
    • Heroku (1)
    • Linux (3)
  • Stack Overflow (81)
  • Unity3D (9)
  • Windows (8)
    • C# (2)
    • WPF (3)
  • Wordpress (2)

"There's no short-term solution for a long-term result." ~ Greg Plitt

"Everything around you that you call life was made up by people that were no smarter than you." ~ S. Jobs

"Hard work beats talent when talent doesn't work hard." ~ Tim Notke

© since 2016 - Nikola Brežnjak