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
Miscellaneou$

MaxCapacity Training program

For the past 26 weeks I’ve gone through the MaxCapacity program 2 times (2 * 12 weeks + 2 weeks rest time between), and I can tell you that the program is all but easy. I really like it, but no matter what others say – I don’t recommend it for beginners (I did, and it didn’t work out so well). So, if you can’t do like 10 pushups straight, there’s really no sense in trying this workout as it will leave you disappointed.

The app (Android and iOS) is free to download, so this is a review in a way to say thanks to the author Samy Peyret (you can support him by buying his book on Amazon).

So, the main breakdown is pretty simple; you have to exercise only for 16 minutes, 3 times a week for 12 weeks. Honestly, if you don’t have 16 minutes for exercise, then something is seriously wrong, but that’s another topic… Exercises are very well planned and they grow in toughness as the weeks go by. Main idea is that in 3 weeks you do the same set of 4 different exercises on Monday, a different set of 4 exercise on Wednesday and  a different set of 4 exercise on Friday. You rest on Saturday and Sunday.

First week is a 50/10 regime, meaning that you are doing the exercise for 50 seconds and then you rest for 10 seconds – you should log your best (usually the first set) score. Second week is a tabata (20/10) regime, and here you should log your weakest score (usually one of the last sets – here you have 8 sets since the exercise is only 20 seconds long). The twist comes in the third week where you have to beat the time and do the calculated amount of repetitions ([max 1st week score + min 2nd week score] * 3) as fast as you can – and if you can do it below 16 minutes, you Rock.

I logged each and every set (you can download the full excel file: MaxCapacityTrainingLog), and as you can see it turns out that the second time I got to do the exercises, I did them with a whopping 24.32% increase in number of repetitions, so yeah – it works in only 16 minutes 3/week! The 24% increase is the average of all the exercises, some of course vary as you can see in the aforementioned excel file. The biggest advancement I noticed was with the diamond pushups, where I did a 150% increase in number of repetitions for the max count, and 135% in total sum!

So, to sum up – very much thanks to the author for making this a free resource. If you like it, you can support him by buying his book on Amazon.

An example of the first week the first time I went through the program compared to the second time I went through it:

Monday
[table id=1 /]

Wednesday
[table id=2 /]

Friday
[table id=3 /]

Give it a try and hit me back with your numbers and let me know what you think!

App idea alert!: Maybe a good idea would be to make a repository of scores so that one could see where he stacks up between others!?

Miscellaneou$

Overworking and not sleeping is the new badge of honor which will burn you out and then kill you!

An eye opening post from Jason Lengstorf.

After a few days of too little sleep, you’re a drunken zombie. We wouldn’t go to work drunk, so why the hell do we go to work on four hours’ sleep, when we’re more impaired than if we were hammered? To make matters worse, sleeping less than six hours a night may lead to an early death.

If any of these sound familiar or if you can totally relate (like me :/), then something needs to change

Feeling Guilty About Any Time Away from Work — Even Time with Family and Friends

Frequently Working More than 40 Hours a Week

Frequently Sleeping Less than 6 Hours a Night

So, yeah, advancement is good, but not worth it in the long run in terms of sacrificing the time spend with your child, spouse, friends. I’ve read a quote somewhere that goes something like “On his deathbed no man ever wished he spent more time in the office”. I believe balance in all mayor areas of your life is key but, of course, not easily attainable.

The author goes on to say how he managed to work less time, but in turn be more productive.

I know this may sound too idealistic, but at least from time to time – why not give it a try, right?

Miscellaneou$

I don’t always use logging, but when I do I make sure it’s to /dev/null

That moment when you realize someone on your team surely logged all of the errors, and still something wasn’t right, and then you find out how exactly this logging works…

iDontAlwaysUseLogging

CodeSchool, JavaScript

Codeschool JavaScript Best Practices Notes

I finished the course at CodeSchool, and below are my notes from it.

Level 1

Ternary howto with SIAF

var allPacked = true;
var readyToGo = true;
var adventureTime;

adventureTime = allPacked && readyToGo ?

  function( ){
    return "Adventure time is now!" ;
  }()
  :
  function( ){
    return "Adventuring has been postponed!" ;
  }() ;

console.log(adventureTime);

Short-circuting, if the this.swords is not empty it takes it immediately, without looking at the thing after the ||

this.swords = this.swords || [];

Same goes for &&, as soon as it finds a first falsy value – it returns that. If all falsy, it returns the last one.

Level 2

If you need lengthy, repetitive access to a value nested deep within a JS Object, then cache the necessary value in a local variable.

var numCritters = location.critters.length;
for(var i = 0; i < numCritters; i++){
      list += location.critters[i];
}

//instead of
for(var i = 0; i < location.critters.length; i++){
      list += location.critters[i];
}

//and even better
for(var i = 0, numCritters = location.critters.length; i < numCritters; i++){
    list += location.critters[i];
}

Put script tag just before the ending body tag, or you can also leave them in the head section, but add async keyword. Use a list of variables after the keyword var all at once! Use function join() on the array instead of concatenation. with +=. console.time(“string”) is the opening statement to a timer method that will help us measure how long our code is taking to perform. console.timeEnd(“string”) ends it and prints how long it took. “string” has to be the same in both cases.

var now = new Date();

console.log(+now) == console.log(new Number(now));

 Level 3

 === compares type and content. instanceof – userful to determine, well, the instance of some object 🙂

function Bird(){}
function DatatypeBird(){}
function SyntaxBird(){}
DatatypeBird.prototype = Object.create(Bird.prototype);
SyntaxBird.prototype   = Object.create(Bird.prototype);

Runtime error catching:

try{
   if(someVar === undefined)
        throw new ReferenceError();
}
catch(err){
    if(err instanceof ReferenceError)
        console.log("Ref err:" + err);

    //TypeError
}
finally{
    //this will execute no matter what
}

Avoid eval, with.

Use num.toFixed(2), parseFloat(), parseInt(num, radix). Radix can be from 2 – 36. typeof along with isNan to determine if the number is trully a number.

Level 4

Namespace is an object that groups and protects related data and methods in JavaScript files.

Say you have a code like this:

var treasureChests = 3;
var openChest = function(){
    treasureChests--;
    alert("DA DADADA DAAAAAAA!");
};

you can use namespacing like this:

var DATA = {
	treasureChests : 3,
	openChest : function(){
	    this.treasureChests--;
	    alert("DA DADADA DAAAAAAA!");
	}
};

You then call the function like this: DATA.openChests().

Closures are a feature of JavaScript, used to cause some properties to be private, bound only to a surrounding function’s local scope, and some properties to be public, accessible by all holders of the namespace.

Private properties are created in the local scope of the function expression. Public properties are built within the object which is then returned to become the namespace. Access to private data is thus possible only because of closure within the larger module.

Say you have a code like this:

var CAVESOFCLARITY = {
  stalactites: 4235,
  stalagmites: 3924,
  bats: 345,
  SECRET: {
    treasureChests: 3,
    openChest: function(){
      this.treasureChests--;
      alert("DA DADADA DAAAAAAA!");
    }
  }
};

You would make it into a closure like this:

var CAVESOFCLARITY = function () {

  var treasureChests = 3;

  return {
    stalactites: 4235,
    stalagmites: 3924,
    bats: 345,
    openChest: function () {
        treasureChests--;
        alert("DA DADADA DAAAAAAA!");
    }
  };
}();

If a module references globally-scoped variables, it’s a best practice to bring them into the scope of anonymous closure through the use of a specific technique called global imports.

Say the code is like this and uses a global variable named globalAnswer:

var MySomething = function () {
  var a = 3;

  return {
    getA: function() {return a; },
    summon: function(){
      if(globalAnswer === "42"){
        alert("YEP!");
      }
      else{
          alert("NOPE");
      }
    }
  };
}();

You would rewrite this using global imports like this:

var MySomething = function (answer) {
  var a = 3;

  return {
    getA: function() {return a; },
    summon: function(){
      if(answer === "42"){
        alert("YEP!");
      }
      else{
          alert("NOPE");
      }
    }
  };
}(globalAnswer);

Your import ensures clarity of scope within a module. By using a parameter, you protect the global data that might have been overwritten. All imported data becomes locally scoped to the anonymous function, to be used in closure. Thus, when compared with searching the entire scope, import are both clearer and faster.

Augmentation is the term for adding or changing properties in a module after the module has already been built.

In simple augmentation, the module file and the augmentation file do not share their private state. Augmented module properties may only access the private data from their file’s closure. Private data from the original closure will not be lost, and will be accessible to all original properties that referenced it.

Miscellaneou$

Smarterer API is now FREE to use

Smarterer released its API for free. Even if you’re not into programming, you can still make use of this and give your site visitors a quick skill test (in just 10 questions and 120 seconds), by using their Smarterer Widget Builder.

Simply, search for a test and optionally name it:

smartererSearch

and embed it to your widget area (wp terminology) on your site/blog:

smartererCreate

Here are few examples you can try:

JavaScriptnode.jsAngular JS

Miscellaneou$

MacBook 12 keyboard fiasco

I love you Apple and all, but honestly I don’t know dafuq was it with the person who approved this keyboard – namely the keys for up/down/left/right. I mean, have you ever used this?! Like, in real life, no just an image in Photoshop?!

Jeez, imagine typing on a full scale size keyboard for 20 years and now, what do you know, someone makes this utter garbage, arrrgh! On one of my previous laptops (HP G6) they made the same mistake and never went back to it again.

I didn’t like the small movement keys on Air either, but that was manageable since all were the same size, but with this – tears and pain :/

I see people hitting the SHIFT key waaay more often now :/. Blame the 20 year muscle memory 😛

On the bright side of life, iWatch  looks nice – we’ll just have to wait a bit longer till they do something with the battery.

Miscellaneou$

100th post

Nothing, just saying 🙂

Ok, jokes aside, this has been a nice journey for me. It all started with the post Carcassonne scoring board application which I decided to post after reading James Clear’s post on why we should make things.

Top 10  popular posts until now:

  • How to get started on the MEAN stack (written for HackHands.com and featured in NodeWeekly)
  • Delving into Node.js and Express web framework (written for HackHands.com)
  • MEAN.io VS MEAN.js and deploying the latter on DigitalOcean (written for HackHands.com)
  • Deploying MongoDB and Node.js application on OpenShift (written for CodeProject.com)
  • How I built my own testable The Answer To Life The Universe And Everything npm module (written for CodeProject.com)
  • Build a font viewer application in WPF without writing any C# code (written for CodeProject.com)
  • Using CasperJS on Webfaction to automatically send emails with attached images via Gmail (written for CodeProject.com)
  • How to delete node_modules folder on Windows machine
  • Enable continuous scrolling by default in Adobe Reader
  • Git push origin master could not read username for http://github.com

 

Miscellaneou$

Sleep you must, yoda so says

Post from James Clear here: http://jamesclear.com/better-sleep

In the words of the researchers, sleep debt “has a neurobiological cost which accumulates over time.” After one week, 25 percent of the six-hour group was falling asleep at random times throughout the day. After two weeks, the six-hour group had performance deficits that were the same as if they had stayed up for two days straight. Let me repeat that: if you get 6 hours of sleep per night for two weeks straight, your mental and physical performance declines to the same level as if you had stayed awake for 48 hours straight.

The irony of it all is that many of us are suffering from sleep deprivation so that we can work more, but the drop in performance ruins any potential benefits of working additional hours.

Hacker Games, JavaScript

JavascriptBattle

Lately I’ve been playing at JavascriptBattle, which is

a fun and engaging web application intended to make artificial intelligence (AI) design accessible to all. Every day, your code will be pulled down from your “hero-starter” repository on Github. Your code (along with every other user’s code) will be run daily, behind the scenes, in our game engine.

Basically, you write JavaScript code for your hero in order to instruct him how to behave when for example his health drops to a certain level, or when enemies are close, etc. and then you participate in a daily battle. They have various stats, and as it turns out I’m currently on position #3 for average damage dealt, yay me!

JavascriptBattle

 

Anyways, it’s cool so feel free to check it out and take me down from the pedestal :P. If you happen to like these “hacker games” then do checkout the one I made for my university project back in the old days 1415131129_smiley-evil.

Hacker Games

Topcoder Scavenger Hunt

I just competed (and finished! – I’m Hitman666) a Topcoder Scavanger Hunt.

topcoderScavangerHunt

Anyways, you have the instructions on how to play on the link above. I’ve really missed these kind of “hacker games”, like back in the days I was very active on hackits.de, but that site is long down now. Anyone playing similar games today, which you can recommend? I made my own for the project on university: http://nikola-breznjak.com/challenge/.

The questions were quite cool (no, no answers here, you’ll have to research it yourself):

  • How many ‘Albert’ monkeys died in the US Space program?
  • What was the original name of Nintendo’s Super Mario?
  • How many female fighter pilots were there in the original Star Wars trilogy?
  • How many different combinations of coins are possible for the US dollar?
Page 7 of 8« First...«5678»

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