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$

hack.summit() 2016 virtual conference and hackathon

hack.summit() is a virtual event for developers presented by Pluralsight which will take place “on the wire” on February 22nd-25th, 2016.

This years’ hack.summit() holds three titles:

  • The largest virtual conference in history
  • The largest programming conference in history
  • The largest hackathon in history

and it has some really interesting speakers like programming language creators, open-source contributors, and thought leaders like:

  • JON SKEET – #1 answerer on StackOverflow
  • KENT BECK – Creator of Extreme Programming, creator of TDD
  • DAVID HEINEMEIER HANSSON – Creator of Ruby on Rails
  • JOEL SPOLSKY – Co-founder and CEO of StackOverflow, founder of Trello
  • YEHUDA KATZ – Ember.js author, Rails Core contributor
  • TOM CHI – Creator  of Google Glass
  • BRIAN FOX – Inventor of GNU Bash Shell
  • ORION HENRY – Founder of Heroku
  • ROD VAGG – Node.js Technical Chair and Core Committer
  • and many others…

On top of that, there will be a virtual hackathon on February 20th-21st. One can compete alone or in a team. The prize pool is also worth mentioning 150k$ times :).

This should definitely be interesting so make sure you check it out if you’re into these kind of things…

#hacksummit 2016 #virtual #conference and #hackathon https://t.co/YvMSZ621yh

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

Programming

Technical review of the book Deploying Node.js by Sandro Pasquali

I was a technical reviewer for the book Deploying Node.js:

nodejsCover

This was done via PacktPub, and I must say that this was a great learning experience and I’m glad that I was able to help make this book better. From my experience with the project coordinator Mary Alex I have nothing but good words for them.

Finally, my name in a print book 🙂

nodejsRevieweres

This book covers a lot of ground like how to

  • optimize your code for production
  • use Docker and Vagrant
  • deploy to Heroku, OpenShift and DigitalOcean
  • use Nginx for load balancing
  • use Redis
  • use Gulp, Browserify, npm, Mocha, Chai and Sinon
  • manage deployments with Git, Jenkins and Ansible

Here is the short summary of each chapter:

  • Chapter 1, Appreciating Node
    • what is Node.js and where it excels
  • Chapter 2, Installing and Virtualizing Node Servers
    • teaches you how to create a basic Node.js application and deploy it to Heroku, OpenShift and DigitalOcean
  • Chapter 3, Scaling Node
    • shows vertical and horizontal scaling techniques among which how to use Nginx for load balancing
  • Chapter 4, Managing Memory and Space
    • shows the advantages of microservices
    • shows how to use Redis
  • Chapter 5, Monitoring Applications
    • shows how to effectively monitor your application once it has been deployed
  • Chapter 6, Building and Testing
    • explains how to create a build workflow for your application with full examples of using Gulp, Browserify, and npm
    • shows how to do testing with Mocha, mocking with Sinon, and using PhantomJS for headless browser testing
  • Chapter 7, Deploying and Maintaining
    • shows how to set up a virtualized development environment and manage deployments with Git, Jenkins and Ansible

As said, this book covers a lot of topics and, in my opinion, it is not suited for beginners in the field, but for those who have some experience with Node.js and other tools. However, it’s great that a simple introduction is given to all these topics so that one who is interested more in some particular section, can easily build upon the knowledge gained from the book. The author clearly shows how a Node.js app should be built, tested, monitored, deployed, scaled and maintained.

This book was published in May this year, but I didn’t want to write the review before, so that it wouldn’t seem to be a biased one. Since then I worked as a technical reviewer on two of their Ionic products (one book and one short video), about which I’ll post when they’ll be officially published.

Anyways, I hope this review will help nudge you in taking this book into consideration if you’re looking for how to deploy your Node.js applications.

#Technical #review of the #book #Deploying #Node.js by Sandro Pasquali https://t.co/EUi0shYmn6

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

Books

Man’s search for meaning – Viktor E. Frankl

My notes from the bestseller book Man’s search for meaning by the nazi camp survivor Viktor Frankl, which I marked as favorite and rated  5/5 on my Shelfari account.

He who has the WHY to live can bear with almost any HOW.

Success will follow you precisely because you forgot to think of it.

There are things which must cause you to lose your reason, or you have none to lose.

No man should judge, unless he asks himself in absolute honesty weather in the similar situation he might not have done the same.

The sort of person the prisoner became was the result of inner decision and not the result of camp influences alone. Fundamentally, any man can decide what shall become of him.

Life is like being at the dentist. You always think that the worst is still to come, yet it is over already.

Striving  to find meaning in one’s life is the primary motivational force.

Pleasure is, and must remain, a side effect or byproduct and is destroyed and spoiled to the degree to which it is made a goal in itself.

Live as if you were living for a second time and had acted wrongly the first time as you’re about to act now.

But everything great is just as difficult to realize as it is rare to find.

https://twitter.com/HitmanHR/status/681449391387996160

Ionic

How to send an email in Ionic framework application?

profile for Nikola at Stack Overflow, Q&A for professional and enthusiast programmers
I’m a big fan of Stack Overflow and I tend to contribute regularly (am currently in the top 0.X%). In this category (stackoverflow) of posts, I will be posting my top rated questions and answers. This, btw, is allowed as explained in the meta thread here.

As you may know, I’m really into Ionic framework lately and am helping out on StackOverflow with the knowledge I gained so far with the framework. I’m in the top All time answerers list.

I answered this question by user varun:

I have a simple page with 3 textbox and a button like this.

<input type="text" ng-model="name" required >
<input type="text" ng-model="city" required >
<input type="text" ng-model="country" required >

<button class="button button-block button-royal ExploreBtn" ng-click="sendMail();">
Send mail               
</button>

Help me , How to send mail with value in first text-field as subject and other two as body in angular js/ionic.

My answer was rather elaborate:

So, basically the comments to your question are correct – you can’t do this purely in JavaScript, you need to use a backend service for it.

Now, what you would do in your sendMail function is call the service by using Angulars’ $httpservice. You can learn more about $http service from the official documentation.

The call would, for example look like this:

$http({
    method: 'POST',
    url: 'http://your.server.com/sendmail.php',
    data: { mailTo: '[email protected]', msg: 'hello!' }
}).then(function successCallback(response) {
    alert("msg sent!");
}, function errorCallback(response) {
    alert("error with sending a msg");
});

Here you have two important parts:

  • url – where is your service (which will finally send the email) located
  • data – what are you sending to this service endpoint

In my example I’ve put the service url to be sendmail.php which, in end, would be written in PHP. I have to stress out that your backend service can be written in any server-side language you’re familiar with (if you’ll research this topic further make sure you read about the RESTful services).

For the sake of this example, the PHP script (unsecured and just for reference) which uses the mail function to send an email would look something like this:

<?php

$to = $_POST["emailTo"];
$msg = $_POST["msg"];

mail($to, "Some test subject", $msg);

?>

Hope this helps clear the confusion.

https://twitter.com/HitmanHR/status/679287774650998785

Miscellaneou$

57th SQL/DEV user group meeting about refactoring and transpilers

I attended our local Microsoft community user group meeting which was about refactoring and transpilers. It’s full proper title (on Croatian) was 57. sastanak SQL/DEV UG Čakovec-Varaždin.

This was 57th meeting in a row, and the presenter Nikola Begedin had two awesome topics (with few notes I took):

Principi i konvencije u refaktoriranju koda (Principles and conventions in code refactoring)

57devug_1

There are typical problems in every code with typical fixes for each of these problems. So, it’s useful to know them in order to be able to detect them early in the code and fix them before they introduce technical debt.

Few of the principles:

  • extract temp to query
  • tell, don’t ask
  • data clump
  • decoupling

You should look to refactor

  • God objects
  • high churn code
  • bugs – “bugs like company”. If a bug appeared at the same function, then refactor it because it’s obviously too cumbersome and the bug will inevitably manifest itself again

Few of the recommended books:

  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Refactoring: Improving the Design of Existing Code
  • Growing Object-Oriented Software, Guided by Tests

Korištenje transpilera (using transpilers)

57devug_2

Transpiler is a source to source compiler. What that means is that it’s basically a tool which translates from one language to another.

Transpilers allow us to write modern JavaScript code, to work with modules, use advanced language features (await, async, arrow functions, …), etc.

Some options that we have today are:

  • Babel
  • Google Traceur
  • Browserify
  • RequireJS

Visual studio 2015 supports Gulp task running via Task Runner Explorer.

The point is that we don’t need these but since sooner or later more and more browsers will support these functions and you can use them already today, I don’t see any reason why not to use all the benefits that they offer.

https://twitter.com/HitmanHR/status/679276361492598784

Books

Big Magic – Elizabeth Gilbert

My notes from the book Big Magic: Creative Living Beyond Fear by Elizabeth Gilbert, the author of a bestseller book Eat, pray, love.

Rejection, you think you can scare me off? I have another 80 years to wear you down! There are people who haven’t even been born yet who are going to reject me someday. That’s how long I plan to stick around.

I believe that enjoying your work with all your heart is the only truly subversive position left to take as a creative person.

It ain’t what they call you, it’s what you answer to.

Everybody imitates before they can innovate.

Holding yourself together through all the places of creation, especially the hard times, is where the real work lies.

What’s your favorite flavor of shit sandwich?

A good plan violently executed now is better than a perfect plan executed next week.

You may want your work to be perfect, I just want mine to be finished.

Focus on your devotion to work above all. Let that be the measure of what you’re worth.

It’s not what you know, its who you know. Talent means nothing and connections mean everything in the world is a mean and unfair place. If you want to see it like that, go right ahead.

If my Devils are to leave me, I’m afraid my Angels will take flight as well.

What could you do even if you knew you might as well fail? What do you love doing so much that the words failure and success become relevant?

Only when we are at our most playful can divinity finally get serious with us.

https://twitter.com/HitmanHR/status/678576822632755200

Stack Overflow

I reached 5k rep on StackOverflow and this is how it helped me

Yippee, my milestone has finally been reached; I went over the magical 5000 reputation on StackOverflow.

so5k

This currently places me in the top 4% this year, and in the top 2% in my country.

notBad

At the beginning, I was asking way more questions than giving answers, but that leveled out and recently I surpassed the number of questions (138) with the number of answers (147).

My current top 5+1 questions by number of upvotes:

(61) What is disableSelection used for in jQuery sortable?
(39) How to replace text between quotes in vi
(18) Serialize form not working in jQuery
(15) Add three dots in a multiline span
(14) PHP function to evaluate string like “2-1” as arithmetic 2-1=1
(12) jQuery Themeroller Gallery for Mobile

My current top 5+1 answers by number of upvotes:

(19) jQuery: select an element’s class and id at the same time?
(18) How to open a link new tab with print command?
(13) Linking using relative path on Github README.md
(7) Google MAP API Uncaught TypeError: Cannot read property ‘offsetWidth’ of null
(6) jQueryMobile data-dismissible in version 1.2
(6) What’s the difference between “ionic build” and “ionic prepare”?

For these questions I got the golden Famous Question badge (question with 10,000+ views):

  • Wait for images to load and then execute all other code
  • jQuery datatables plugin too slow – need a replacement
  • jQuery Mobile changePage with swipe transition
  • PHP function to evaluate string like “2-1” as arithmetic 2-1=1
  • Add three dots in a multiline span
  • Serialize form not working in jQuery
  • What is disableSelection used for in jQuery sortable?
  • How to turn off php safe mode in plesk 10? [closed]

The tags I’m most active in are ionic, ionic-framework, jquery, php, html, javascript, cordova, and 211 more.

In the question on meta.StackOverflow about how did StackOverlow help me, my answer was:

StackOverflow helped me a lot. Let me elaborate on this: currently, according to my upvotes, it helped me exactly 3,630 times a lot. Imagine that, learning 2.5 new useful things on average each day for four years now. And all that for free. Pro bono. Only upvote and (optionally) a kind word required.Priceless!

Also, more specifically, it helped me 133 times when I asked my own question (surprisingly, only 4 of them remained unanswered so far).

My experience with StackOverflow was very positive from the start (something I’ll elaborate a bit more below) – it was my first few weeks on a “test period” for a new job and I couldn’t solve one thing. They said it would be tricky and I sort of hoped that if I get it done quickly I’ll get some recognition. I did my fair share of googling and looking around the site (I knew about SO at that time already, but just haven’t asked any questions yet) and since I didn’t find any related question I finally decided to post. Not surprisingly, I got the answer in a matter of minutes. Sure enough, I did get permanently employed after that (and few other small tasks that I had to do on top of that).

See, I would like to emphasize on a way that I asked my first question, by repeating that I’ve googled quite a lot and searched through existing SO questions. Now, we who are around here a bit longer know what started to happen. New users started to come and, well, the quality of questions was not on a given level. And, that’s why it hurts me to see quite a lot of people shitting on StackOverflow (yeah, we know who they are – simple google search will turn out quite a few posts), but if we would just be honest and acknowledge the fact that it somehow seems that these days everyone wants something “out of the box – give me the codez plz”, without ever doing the research them self. What’s the learning value in that, I honestly don’t know.

Anyways, fast forward 4 years, I’m still loving it. Somewhere along the lines of using StackOverflow daily, I’ve grown as a developer and turned from the one who asks questions to someone who tends to contribute back to this wonderful community by giving answers. And, just yesterday I’ve “set the record straight” and leveled the number of my questions with the number of my answers. In the future I hope to help even more.

As for other opportunities StackOverflow provided me, I can only say countless. I don’t have a huge rep, but nevertheless I’ve gotten into an invite only programming site thanks to my SO profile. Also, I’ve gotten few requests to write a book, be a technical reviewer, and I get a lot of clicks from SO tomy blog. It seems a bit cocky to say, but people do tend to look at you differently when you say you have a somewhat fairly large amount of rep on SO. For me, it’s some kind of a badge of honor, to be honest 🙂

All in all – thank you StackOverflow.

See you at 20k! smileyGlasses

I reached 5k rep on #StackOverflow and this is how it #helped me https://t.co/A7xnWVOzkq pic.twitter.com/ZqiDFCyy7z

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

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

Stack Overflow

Include an object defined outside Angular ecosystem into a factory

profile for Nikola at Stack Overflow, Q&A for professional and enthusiast programmers
I’m a big fan of Stack Overflow and I tend to contribute regularly (am currently in the top 0.X%). In this category (stackoverflow) of posts, I will be posting my top rated questions and answers. This, btw, is allowed as explained in the meta thread here.

I asked this question myself:

We’re having an argument, which I hope you guys will help resolve.

Say I have a simple factory defined like this:

angular.module('myModule', [])

.factory('Fact', function() {
    var Fact = function() {
        var that = {};

        that.var1 = [];
        that.var2 = [];

        return that;
    };

    var fact = {
        get: function() {
            return Fact();
        }
    };

    return fact;
});

I found out that this code will be working if I write it like this:

angular.module('myModule', [])

.factory('Fact', function() {
    var fact = {
        get: function() {
            return Fact();
        }
    };

    return fact;
});


var Fact = function() {
    var that = {};

    that.var1 = [];
    that.var2 = [];

    return that;
};

Namely, I can take this code of the object Fact and put it in some other plain .js file, include it before the Angular one (in index.html file) and this “would work”.

However, I’m trying to resolve an argument that this approach is not good (well, not an Angular approach at that) because then this Fact is “laying around on the global scope”, which is not good.

In which circumstances would you say that this is/isn’t a good solution?

Is there a way to include a “nonAngular” code (simple JavaScript code written in some .js file) into the Angular factory?

I accepted the answer from user Dan Prince:

Between factories, services, providers, constants and values, there’s not really a good reason to have any code outside of Angular’s constructs unless it’s third party code.

If it is, you won’t have control over the way that the library, framework, etc registers itself. It might use the global scope, alternatively, it might provide a module export.

Where possible, the cleanest and safest way to include third party code inside Angular is with a build-step using a module bundler.

For instance, I want to use the hypothetical package foojs from inside Angular using browserify:

Install the package with npm

npm install --save foojs

Then use it like this.

var foojs = require('foojs');

var app = angular.app('myapp')

app.service('myservice', function() {
  // here we can use foojs safely
});

You can also achieve similar things with WebPack.

The reason this is safer is because after the build step, all the modules will be wrapped inside a function that protects the global scope.

If you aren’t able to use a module bundler, then the only option is to use the global scope and allow the third party code to bind onto the window object.

https://twitter.com/HitmanHR/status/676654486115454976

Books

Four Thousand Days – Duane Jackson

I got this awesome book from an, even more, awesome author Duane Jackson, after a discussion on Twitter where we realized that Amazon.co.uk decided that Croatia was not on the list of countries that would be eligible for the free ebook (even though the author marked the book as free). In the end, the author said that I should contact him and that he’ll send me a physical copy to my address.

The book arrived:

IMG_5513

And I was just joking with my friends after I told them about it: “How awesome would it be if the book would be signed?!”. Aaaaaand, what do you know:

IMG_5514

In my book, Duane Johnson is da man! So, thanks again, you really made my day!

Btw, I really liked the book, had a few laughs and learned some valuable things. I wonder if some of my blog readers use his KashFlow (the service that he built and talks about how in the book)?

In the book, the author writes about how he managed to build the business after doing the time. He summarizes it really well at the end of the book:

I hope that by reading this book you’ve found out the secret of how to do this. The secret is that there is not secret. There was no overnight success or magic button to press. It was a case of being determined, working hard and not allowing yourself to be at the mery of fate of other peoples will.

Other quotes (and funny situations) that I liked from this book:

If you don’t design your own life plan, chances are you’ll fall into someone else’s plan. And guess what they have planned for you? Not much. ~ Jim Rohn

I’ve never been great at getting up in the morning, but staying up till 3am certainly didn’t make it any easier.

We’re in the infamous Blind Beggar in London’s Whitechapel, where Ronnie Kray shot dead George Cornell. (Legend; great movie starring Tom Hardy as Kray twins)

Everyone knew I never took drugs, so they quite literally took the piss out of me. My urine became incredibly valuable on testing days.

You can’ hit Jacko said Dodger, That’s like hitting a part of the furniture.

Ben picked me up in his BMW convertible. It was a summer day and the roof was down. I shouted at him to slow down, as I thought he was doing 100 mph but in fact, he was only going at 25. For the last 18 months nothing had gone faster than a quick walk.

I learned the valuable lesson of never doing work without getting paid something up front.

Actually getting started in business wasn’t as difficult as I thought. It really was as easy as finding people who needed what you could offer and agreeing on price.

I’m sorry, Duane he said in ear shot of the others. We won’t be able to have our daily management meeting tonight.

Enerpreneurship is living a few years of your life like most people won’t, so that you can spend the rest of your life like most people can’t.

Duane, it’s your mate will.

The future of boxed software

Page 26 of 51« First...1020«25262728»304050...Last »

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