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$

After writing 300 posts, this is why I think you should start blogging too

TL;DR

In this post I’m going to share with you:

  • few things that I learned from writing 300 posts
  • why I think you should start blogging as well
  • my thanks to one ever so slightly awesome role model

Backup your stuff

This tip may come as unexpected, given the fact that this is actually a 302nd post on my blog and one could argue that by now I have some system in place for dealing with that, right? Well, yeah, but so it is that this is the second time I’m writing this post from scratch.

Yeah, please don’t ask; I always keep a backup of backups (how meta, right?) but in this particular case, I was ‘smart’ and had it on my Desktop.

Seriously bro, Desktop!? What are you, like, 2015!?

I know, I know.

Don’t you, like, have Time Machine backup, or something.

Yeah, I do, but it wasn’t backed up… You know what, please just stop putting additional salt on the already burning wounds. Thank you very much, it’s enough of a lesson without it.

Actually, you know, just the other day I watched this movie, and it could be that my safest bet would probably be to ask (nicely, of course) No Such Agency if they have it on file somewhere. OK, joking a bit; I honestly don’t care – we may as well all be in The Truman Show and so what – do your best with the hand you’ve been dealt.

The beginnings

One doesn’t come to write 300 posts overnight, and we all start somewhere. My humble beginnings started on August 15, 2013, when I published my first post about Carcassonne scoring board application. I wrote the 100th post overview on December 28, 2014, and the 200th post overview on August 20, 2015.

With this 300th overview being published today on the last day of 2016, I’m roughly below 100 posts in average per year, which is not too shabby, but I’m striving to do better.

My approach

I’m happy to say that my approach hadn’t changed from the time when I wrote the 200th post overview and that it’s still some kind of an inner drive to:

…help people by bridging this seemingly invisible gap between the awesome programmers and not-so-awesome programmers who would use a bit of step by step help, by making my tutorials straight to the point with each step, without skipping the ever so slightly “obvious” parts.

OK, but why!?

OK, seriously now man, in this day and age, tell me what are you getting out of this?

Let me be lazy and use the same quote I did last time:

You learn the best when you have to teach someone something.

So, when I learn something new, or when I stumble upon a problem that I can’t solve for some time I benefit from documenting it on my blog in few ways:

  • I tend to remember things way longer when I actually write them down
  • I potentially help someone else who may stumble at the same error in future
  • I have a reference for when I need to look it up

Also, by breaking things down to the core concepts and then being able to see the bigger picture is an invaluable skill to have, and Einstein said it best:

If you can’t explain it simply, you don’t understand it well enough.

Seriously, where’s the catch!?

There’s not. And, in case you don’t buy into all this I just want to help you with my blog, you can take a look at the number of my StackOverflow answers, two books (1, 2) I’m giving away for free, or come to a free meetup that I’m hosting once a month. Anyways, I’m not trying to market myself or show how super I am; I’m merely making a point as to what I’m saying.

Opportunities and why I think you should start writing a blog

However, (aha!, now we have him!!), I have to tell you one thing that will inevitably happen. As you start writing a blog and solving things and publishing it for other people to learn from you will inevitably come out as an expert in the field (in case you specialized) and thus you’ll get more opportunities than you can even imagine. Book writing offers, consulting and conference speaking gigs, you name it.

The process of achieving consistency

I’m a firm believer in processes that are used and cultivated for good, as it takes a lot of “I don’t feel like it” situations out of an equation. And, I believe, you know that these days tend to just ‘happen’, and then magically stretch on for weeks until you gather your thoughts and snap out of it.

Thus, my advice for writing more is nothing new, and you hear it probably all over the Internetz. The problem is that its hard, and people tend to run away from hard things these days. The sole ‘tool’ which you have to nurture, train and maintain is consistency.

Put in the work daily, fail, learn, get up, improve, put in the work, fail, learn, improve. Mary go round… The next thing you know it, you won’t be thinking about the process anymore, you’ll live it, preach it. However, this is hard, I know. But you’re in it for the long run, remember? So, put your hand on the plow and keep on…

Thus, if you want to start writing blog posts about some topic, just start today. Don’t go and read a book on the topic (chances are you’ll never finish it in the first place :/). Just freaking do it already! Share what you’ve learned along the way. In case a year from now you won’t be ashamed by the quality of your posts you did back then, then my friend, you haven’t grown, and it’s time for some introspection (the same rule applies to your code if you’re a software developer).

Read more nonfiction books

Don’t get me wrong; one can learn from fiction books as well. However, imagine you read 10 pages a day of some book that’s related to what you’re trying to achieve (C#, PHP, Soft skills, Finance even, …).

No, Facebook doesn’t count. Drop that already. That’s like talking into the wind if you’re talking at all, that is.

In one month you would read 300 pages of some book. And in one year you’d read 12 books. Now, imagine you take and apply only one idea from each of those books – how different do you think your life would be? How much more valuable do you think you could be to your society, spouse, child, yourself if you invest in yourself?

Ok, and now to address the elephant in the room:

What is this new age success/growth mindset that you’ve got going on here?

Yeah, the only post where I kind of touched this was the one about Makers vs Consumers – don’t hate, donate. And, I’m not going to ramble on and on why you should read more. I’m just going to say that I agree with the following quote:

Your level of success will seldom exceed your level of personal development.
~ Jim Rohn

Homerun posts

Two posts that I’m very proud of (and have been published on Pluralsight) are:

  • Getting started with Angular 2 by building a Giphy search application
  • Ionic Framework: A definitive 10,000 word guide

Few of the posts on this blog have indeed been doing well:

  • Posting data from Ionic 2 app to a PHP server
  • How to run Node.js server in Ionic mobile app?
  • How to send an email in Ionic framework application?
  • Introduction to TDD in Ionic framework

Few other posts worth mentioning:

  • Makers vs Consumers – don’t hate, donate
  • Why am I getting Unexpected token ‘\u0000’ when using npm install -g package
  • How to set up live Markdown preview on Windows with Sublime Text and Markmon
  • Raneto Google OAuth login
  • How to create a native iOS app that can receive VoIP push notifications

What’s next for me?

I’ve been putting off blogging about Ionic 2 for far too long now, and now when the dust has settled, I’m going to go into this fully, so expect a flood of posts concerning that in this year. As I still work on Ionic 1 codebase, expect to get some ‘hard-learned tips’ for working with the framework from day 1.

On a totally different note, I started looking into the Go language and am liking it so far. I hope that my journey will evolve so that I’ll be able to work with it even more on a professional level as well. Be it as it may, expect some posts on that subject when I gain some more knowledge about it.

Special thanks

I’ve read a few books that could be classified as ‘self-help/self-improvement’ books, and (surprisingly so?) I’ve read a lot of the software development books. However, it was not until I read John Sonmez book Soft Skills (you can read my review here) that I started taking all this a bit more seriously and started reading way more about all of this.

I still remember when I emailed him asking if Ionic framework was a good technology to niche down. Now, a year and a half later, being in the top #3 answerer in Ionic framework tag on Stackoverflow I can only say – thank you.

In case you’re into improving as a software developer and getting to the next level of your personal development, be sure to check his Youtube channel. Who knows, you may just find something valuable for you.

Some of you may also be familiar with Elliott Hulse, and if so, you’ll enjoy their interview.

Conclusion

My intention was not to make this into a motivational speech. Though, if it helped kick you out of your comfort zone and into the producer mentality, that’s great. However, don’t forget:

Inspiration is for amateurs – the rest of us just show up and get to work.

So, wish you a happy, healthy, fulfilling and productive 2017!!

After writing 300 posts, this is why I think you should start blogging too https://t.co/RkFwPNZjib

— Nikola Brežnjak (@HitmanHR) December 31, 2016

Miscellaneou$

Ekobit DevArena 2016

TL;DR

In this post, I’ll show you some pictures and notes from the Ekobit DevArena 2016 conference.

Previous conferences

In case you’re interested here are the posts from the last two that I attended:

  • DevArena 2014
  • DevArena 2015

One does not simply skip breakfast…

Yeah, I eat too much, don’t invite me to your events unless you’ve got plenty to eat

¯\_(ツ)_/¯

This is how the accreditation looked on the back side, with the list of presentations per each track (4 in total):

I was super lazy this year regarding note taking, so I’ll pull a lazy on you and just show you the pictures that I took from each of the presentation that I attended.

They say that the picture is worth a thousand words. Well, in that case, this post is a lot of thousand words long 🙂

Keynote

[ngg_images source=”galleries” container_ids=”8″ override_thumbnail_settings=”0″ thumbnail_width=”120″ thumbnail_height=”90″ thumbnail_crop=”1″ images_per_page=”20″ number_of_columns=”0″ ajax_pagination=”0″ show_all_in_lightbox=”0″ use_imagebrowser_effect=”0″ show_slideshow_link=”1″ slideshow_link_text=”[Show as slideshow]” order_by=”sortorder” order_direction=”ASC” returns=”included” maximum_entity_count=”500″ display_type=”photocrati-nextgen_basic_thumbnails”]

Tesla 🙂

[ngg_images source=”galleries” container_ids=”9″ override_thumbnail_settings=”0″ thumbnail_width=”120″ thumbnail_height=”90″ thumbnail_crop=”1″ images_per_page=”20″ number_of_columns=”0″ ajax_pagination=”0″ show_all_in_lightbox=”0″ use_imagebrowser_effect=”0″ show_slideshow_link=”1″ slideshow_link_text=”[Show as slideshow]” order_by=”sortorder” order_direction=”ASC” returns=”included” maximum_entity_count=”500″ display_type=”photocrati-nextgen_basic_thumbnails”]

EU funds

[ngg_images source=”galleries” container_ids=”10″ override_thumbnail_settings=”0″ thumbnail_width=”120″ thumbnail_height=”90″ thumbnail_crop=”1″ images_per_page=”20″ number_of_columns=”0″ ajax_pagination=”0″ show_all_in_lightbox=”0″ use_imagebrowser_effect=”0″ show_slideshow_link=”1″ slideshow_link_text=”[Show as slideshow]” order_by=”sortorder” order_direction=”ASC” returns=”included” maximum_entity_count=”500″ display_type=”photocrati-nextgen_basic_thumbnails”]

Angular 2

[ngg_images source=”galleries” container_ids=”11″ override_thumbnail_settings=”0″ thumbnail_width=”120″ thumbnail_height=”90″ thumbnail_crop=”1″ images_per_page=”20″ number_of_columns=”0″ ajax_pagination=”0″ show_all_in_lightbox=”0″ use_imagebrowser_effect=”0″ show_slideshow_link=”1″ slideshow_link_text=”[Show as slideshow]” order_by=”sortorder” order_direction=”ASC” returns=”included” maximum_entity_count=”500″ display_type=”photocrati-nextgen_basic_thumbnails”]

Microservices

[ngg_images source=”galleries” container_ids=”12″ override_thumbnail_settings=”0″ thumbnail_width=”120″ thumbnail_height=”90″ thumbnail_crop=”1″ images_per_page=”20″ number_of_columns=”0″ ajax_pagination=”0″ show_all_in_lightbox=”0″ use_imagebrowser_effect=”0″ show_slideshow_link=”1″ slideshow_link_text=”[Show as slideshow]” order_by=”sortorder” order_direction=”ASC” returns=”included” maximum_entity_count=”500″ display_type=”photocrati-nextgen_basic_thumbnails”]

Electron

[ngg_images source=”galleries” container_ids=”13″ override_thumbnail_settings=”0″ thumbnail_width=”120″ thumbnail_height=”90″ thumbnail_crop=”1″ images_per_page=”20″ number_of_columns=”0″ ajax_pagination=”0″ show_all_in_lightbox=”0″ use_imagebrowser_effect=”0″ show_slideshow_link=”1″ slideshow_link_text=”[Show as slideshow]” order_by=”sortorder” order_direction=”ASC” returns=”included” maximum_entity_count=”500″ display_type=”photocrati-nextgen_basic_thumbnails”]

React

[ngg_images source=”galleries” container_ids=”15″ override_thumbnail_settings=”0″ thumbnail_width=”120″ thumbnail_height=”90″ thumbnail_crop=”1″ images_per_page=”20″ number_of_columns=”0″ ajax_pagination=”0″ show_all_in_lightbox=”0″ use_imagebrowser_effect=”0″ show_slideshow_link=”1″ slideshow_link_text=”[Show as slideshow]” order_by=”sortorder” order_direction=”ASC” returns=”included” maximum_entity_count=”500″ display_type=”photocrati-nextgen_basic_thumbnails”]

React Native

[ngg_images source=”galleries” container_ids=”14″ override_thumbnail_settings=”0″ thumbnail_width=”120″ thumbnail_height=”90″ thumbnail_crop=”1″ images_per_page=”20″ number_of_columns=”0″ ajax_pagination=”0″ show_all_in_lightbox=”0″ use_imagebrowser_effect=”0″ show_slideshow_link=”1″ slideshow_link_text=”[Show as slideshow]” order_by=”sortorder” order_direction=”ASC” returns=”included” maximum_entity_count=”500″ display_type=”photocrati-nextgen_basic_thumbnails”]

Prize draw

They had a nice additional prize draw for those who asked questions (you get a small paper which you toss in a drawing bowl). I got 4 of them this year. However, no luck in winning something again 🙁

Ekobit #DevArena 2016 https://t.co/czNvnGJpGr

— Nikola Brežnjak (@HitmanHR) October 27, 2016

Miscellaneou$

Automated Mobile Testing tools and services

Recently I did a research on the tools and services that let you test your apps (iOS, Android, Hybrid/Web) and here’s what I found.

TL;DR

In case you don’t have time to read through this and you’re looking for a quick answer on what to choose; I would go with AWS Device Farm.

It was the only service where the docs actually had clear instructions and the only service where the automated tests actually worked. If for nothing else, I would suggest using their Remote Access option, as it’s really great because it gives you the ability to test your app on the particular device with the particular OS version in real time. This is definitely useful for when a user submits a bug, and you don’t have the actual device/OS combination on which you could test.

A notable mention is Appium, which is perfect if you just want to test on your machine and your simulator. It’s open source and it even has support in AWS Device Farm.

Longer version

Below are my notes about the tools/services that I’ve tried.

AWS Device Farm

As you’ve read in the TL;DR, my choice would be AWS Device Farm, so I’ll take a bit more space here and explain why I liked it the most, and I’ll showcase the simplest usage.

The official website is here and the official documentation is here.

There are two main ways to use AWS Device Farm:

  • Automated app testing using a variety of available testing frameworks (they even have a few built-in tests called Fuzz tests which create some screenshots and a usage video as well)
    • it supports hybrid apps for both Android and iOS
    • tests run in paralel on multiple devices
    • test reports contain:
      • high-level results
      • low-level logs
      • pixel-to-pixel screenshots
      • performance data
  • Remote access to devices on which you can load, run, and interact with apps in real time
    • allows you to swipe, gesture, and interact with a device through your web browser in real time
    • details about actions that take place as you interact with the devices
    • logs and video capture of the session are produced at the end of the session for your review

Demo

The docs for setting this up are really great and straight to the point.

Once you create your first project, you have to Create a new run:

Then you have to select the Android/iOS icon and upload your .apk/.ipa file:

In the next step, you have to choose the test type that you would like to use. There are a lot of options, and as a starter (in case you don’t have your tests ready – we’ll cover these below in the Appium section) you can choose the Built-in Fuzz test.

In the next step you can select the various devices:

set some additional options and even pre-install some other apps:

After this, just review the settings and start the test. Tests will run in the background and in parallel on all the devices that you’ve set. Once this is done you will get an overview like this:

You can view the details of each run on the particular device:

You can view the screenshots, performance:

And you can even see the video of how the built-in test used your application:

Sure, these tests are not something on which we should rely on, and that’s why it’s great that we can write our own. In the next section, we’ll shortly cover Appium and why it’s so great for writing tests.

Appium

Appium is a tool that makes automation possible for iOS and Android devices. It’s architected around four key principles:

  • You shouldn’t modify your app in order to test it, as you don’t want test libraries to affect the operation of your app
  • You should be able to write your tests in any programming language, using any test runner and framework.
  • There is already a very successful automation standard, so we should reuse and extend that rather than create an entirely new model.
  • Mobile automation is for everyone. The best mobile automation tool will be open source, and not just in terms of having its code available for view. It should be governed using open source project management practices, and eagerly welcome new users and contributors.

Appium satisfies all these requirements in the following ways:

  • Appium allows you to automate your Android and iOS apps without code modification because it relies on underlying automation APIs supported by the mobile OS vendors (Apple and Google) themselves. These APIs are integrated into the development process and thus don’t require any 3rd-party libraries to be embedded in test versions of your apps.
  • Appium is built around a client/server architecture, which means Appium automation sessions are HTTP conversations (just as when you use any kind of REST API). This means clients can be written in any language. Appium has a number of clients already written, for Ruby, Java, JavaScript, Python, C#, PHP, Objective-C, and even Perl. Additionally, this means that it doesn’t matter whether an Appium server is hosted on the same machine as the tests.
  • Selenium WebDriver is without a doubt the most widely-known framework for automating web browsers from a user’s perspective. Its API is well-documented, well-understood, and is already a W3C Working Draft. Appium uses this specification and extends it cleanly with additional, mobile-specific automation behaviors.
  • Appium is open source. It should be clear from the volume of issues and pull requests that we have a very active community (who also engage with one another on our discussion forum).

Few additional learning resources:

  • Youtube 1
  • Youtube 2
  • Tuts+ Code

Demo

Once Appium is installed and running, click the proper OS icon (Droid/Apple) and select the path to your compressed .ipa file (it is required that you zip the .ipa file):

One thing I had to set here as well was the BundleID, as it didn’t work without it (BundleID can be found in your config.xml file as the id property of the widget tag).

Once this is set, you can simply click the Launch button. Once the launching is done you’ll see something like the following in the logs:

[Appium] Appium REST http interface listener started on 0.0.0.0:4723

Then you can click the Magnifier icon:

which will run your app in the simulator:

If you’re testing Hybrid apps, be sure to set the proper Context:

The best feature of Appium is that it lets you Record the tasks. To enable it, just click the Record button, navigate through the tree like structure and select the actions that you want to perform on the selected tags (Tap, Swipe, Shake, text inserting, etc.), and it generates the test code (in few different languages):

Xamarin test cloud

  • Website
  • The installation was surprisingly long
  • It turned out that once I uploaded my .ipa file it threw an error: The .ipa file does not seem to be linked with Calabash framework.
  • The main drawback is that you need to integrate the SDK into the app itself. Something which you don’t have to do on the AWS Device farm (through Appium [take a look at their four key principles])

Calabash

  • Later I figured out that Xamarin test cloud uses Calabash
  • Callabash was developed and open sourced by Xamarin and it is a set of libraries that enable you to write and execute automated acceptance tests which consist of end-user actions like Gestures, Assertions, and Screenshots
  • Calabash supports (and prefers) Cucumber

Cucumber

  • Cucumber lets you express the behavior of your app using natural language that can be understood by business experts and non-technical QA staff.

Browserstack

Browserstack doesn’t support mobile app testing currently. Here’s the official thread:

  • Can I test native apps or install apps on BrowserStack’s physical devices?

At this time, the mobile devices are available exclusively for cross-browser testing. Mobile app testing is on our roadmap for a later date.

Sauce labs

  • Website

I’ve spent some time trying to get their solution to work as they popped up on most of the searches that I’ve done. However, I can’t say this was a pleasant experience as the docs seemed to be more like ‘Hey, we know how to do this, but if you want we can offer you our consulting support :/’.

But, didn’t like their support as I’m still waiting for the answer to my question I’ve sent them. When I got the automated sales email, I followed up with the guy but again he said he couldn’t help me as he’s ‘only’ sales.

They allow you to upload your executable to their service, but only via terminal. They don’t have an interface for this on the site as AWS does, nor do they have an overview of the uploaded files.

You run all your tests from a script, and you can then see the screenshots and video of how the tests are interacting with your app:

However, the bottom line here is that I wasn’t too impressed with them.

Other services

I have also briefly looked at these services, but they didn’t seem intriguing enough to pursue any of them further.

Firebase test lab

  • Website
  • only for Android

eggPlant Mobile

  • Website
  • Only image based

Soasta

  • Website
  • Nothing special. TBH, it seemed like it’s an older version that’s not actively developed.

Squish

  • Website
  • Seems like a quite stable solution, however only locally and it needs to be implemented in the Xcode/Android project to work

Testmunk

  • Website
  • Although very nice interface and the flow is basically as on AWS, it wasn’t able to run my app (just kept popping errors). I emailed the owners but no reply to date, so…

Keynote

  • Website
  • Asked for Credit Card – lol, are we in like 2009?

iOS only testing

  • Frank
  • KeepItFunctional

Windows only apps

  • SmartBear – they have instructions on how to run it on OSX via virtualization however this still is ‘just’ an app like Appium which is open source.
  • TestingWhiz
  • SilkTest
  • Ranorex

Miscellaneous

  • Test automation trends 2016
  • StackExchange thread about automated hybrid mobile app testing

Conclusion

So, yeah, as stated in the TL;DR AWS seems like the most viable solution to me right now. In case you have experience with some other solution, or you disagree with some of the conclusions that I’ve made, please let me know in the comments.

Also, if someone has extensive experience with writing and running tests on AWS Device Farm via Appium tests, I would love to get your feedback.

#Automated #mobile #testing tools and services https://t.co/rZpnBVQ9Fh pic.twitter.com/Yzbeg2ASya

— Nikola Brežnjak (@HitmanHR) August 23, 2016

Miscellaneou$, Quick tips

Gitflow – a successful Git branching model

edit 14.4.2017: I made a 2.5k+ word post about Gitflow, Pull Requests and Code Reviews which goes way deeper in the topic. The post is here if you want to check it out: Git branching done right with Gitflow & improving code quality with code reviews.

Before I started working on my newest project, I took the time to finally delve into the proper way of doing branching. Not long into the research gitflow popped up as the more/less something that community loves.

After checking it out, I’m amazed how awesome this is.

So, first things firs; the original article was written by Vincent Driessen: A successful Git branching model goes into the details of this workflow.

Later I found out that community built the git-flow command line program that provides high-level repo operations for Vincent Driessen’s branching model.

Tutorial

  • 15min video

Installation

Simple brew install git-flow if you’re on Mac.

Git-flow command completion

Use tabs to auto-complete the git-flow commands: https://github.com/bobthecow/git-flow-completion. Completions available for both bash and zsh.

Gitflow – a successful Git branching model https://t.co/1ecyQ5qlTd

— Nikola Brežnjak (@HitmanHR) June 14, 2016

Miscellaneou$

Weblica 2016

This was the 2nd Weblica conference in my Međimurje county (I wrote about the first one here).

Again, the entrance was free and every attendee got a T-Shirt, loads of stuff to eat and drink. The talks were interesting and informative, and for all this a big two thumbs up to the organizers. Also, active participants got a cool snake puzzle (here’s a link on how to solve it :)).

This year I had the honor to present about Ionic framework. You can watch the whole conference on this Youtube video (in case you’re wondering, my talk starts at 6:46):

I won’t go into the details of every presentation, you can take a look at them yourself :), I’ll just add pictures I took:




All in all, a great conference and hope to see you next year (I’ll be talking about Ionic 2 hopefully :D)…

@weblicahr another awesome conference! #weblica https://t.co/GhKFv3hG5T

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

Miscellaneou$

Shutterstock doesn’t offer money back

Shutterstock doesn’t offer any money back policy if you wish to downgrade on the video size (OFC, consequently price as well) but they’re absolutely delighted to upgrade you to the more expensive option. And, they don’t have that in written form anywhere (at least so the support rep said, as you can see below in the chat). Some businesses just make me sick… Oh, and btw, in case you don’t know, we should all be putting 300+ MB files for our video backgrounds…

Francesco D: Thank you for reaching out! I’ll be glad to help…
Francesco D: Hello Nikola.
Me: Hey Francesco?
Francesco D: What seems to be the issue?
Me: Hey Francesco
Francesco D: Hi.
Me: well, it turns out I made a mistake and bought the SD instead of clearly the web version
Francesco D: Ok.
Francesco D: Do you need teh HD?
Francesco D: Let me understand.
Francesco D: You needed the web instead?
Me: yes. because, at first I thought I need the sd version
Me: but it turns out that the size is just to damn big and loading takes forever
Francesco D: Unfortunately we are unable to downgrade the purchase.
Francesco D: I understand.
Francesco D: We are unable to refund the purchase Nikola.
Francesco D: We can only help you upgrading the format.
Me: do you have that in written form somewhere?
Francesco D: No.
Me: oh, really? A big firm like yourself and you don’t have a return policy? Now that’s interesting
Francesco D: We can only refund files that are corrupted Nikola.
Francesco D: When you download a file you acquire the license and the artist gets paid immediately.
Me: And, you’re saying you don’t have that in the rules or somewhere?!?
Francesco D: We do not.
Francesco D: When you download a file you acquire the license and the artist gets paid immediately.
Francesco D: Since the file is not corrupted we are unable to refund it.
Me: and you haven’t been sued for this already? LOL
Me: ok, I don’t mean to be hostile here but, tbh, this is just not how you do stuff these days
Francesco D: No we haven’t.
Francesco D: You could have checked before making the purchase.
Me: as I said, I’m not trying to be an ass I’m just trying to save you from some customer that will have a better law background
Francesco D: I understand.
Francesco D: is there anything else I can help you with?
Francesco D: That is very kind of you Nikola.
Francesco D: if you needed to upgrade the clip we could have refunded it after you purchased the HD.
Francesco D: How are you using the clip by the way Nikola?
Me: you see but this right here strikes me as odd, as why then we can’t do it the same for downgrade. I mean, forget it, I’ll find my way, but I’ll blog about this as well, so that others don’t do the same mistake
Francesco D: I am sorry you feel that way, I would suggest you check with us before you make the purchase though Nikola.
Me: ok, I’m checking then now (sorry this is turning into a drag now). For the video clip to be used on the web, but fullscreen, what do you suggest??
Francesco D: Nikola don’t be sorry I am just here to advise you.
Francesco D: SD and web are mostly used for projects where the video won’t fill the screen.
Francesco D: HD will provide high quality and sharp definition for many video projects where quality needs to be high.
Francesco D: For full screen teh HD is what we suggest.
Me: seriously? like I mean, lol, who would wait that long for the download??
Francesco D: Taht is what we suggest Nikola.
Me: you’re seriously telling me you’re recommending your users when they need a background video that they take the 300MB monster. oh dear
Francesco D: I am seriously telling you that SD and web are mostly used for projects where the video won’t fill the screen.
Me: ok 🙂
Francesco D: Do you have any further questions?
Francesco D: Are you still there Nikola?
Me: meh, I better stop with my questions
Me: so, wish you less angry customers like me 😉
Me: have a great one
Me: bye
Francesco D: I am happy to answer your questions.
Francesco D: Have a great day too.
Francesco D: Bye now Nikola.

#Shutterstock doesn't offer #money #back https://t.co/5FP0XXvjq8 pic.twitter.com/vou4ppcirc

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

Miscellaneou$

2nd Devz Meetup Varaždin

TBH, I wasn’t aware that something like this (meetups) exists “near” me (yeah, I hear you: “Where do you live, man?!”.), so I didn’t make it to the 1st one. All in all, kudos for the organizers and looking forward to the next one! As I usually do with posts about conferences, I’ll share my notes that I took in my notebook and a few pictures.

There were 3 talks and a Voogle 2016 conference announcement on this meetup:

  • Information security and why should you care
  • Introduction to VueJS
  • Startup accelerator experiences

 

Information security and why should you care

  • presenter: doc.dr.sc.  Tonimir Kišasondi
  • this was a very intriguing talk, that delivered on the authors expectations – it made me start thinking more about security! So, thank you!
  • thumb_IMG_5997_1024
  • problem is related to security ecosystem
  • after a company survives an attack it looses about 40% clients
  • exploit kit
  • it seems that we aren’t only good at sports ;). “Share of internet users who experienced security related problems in the EU Member States in 2015” – we hold position #1
    thumb_IMG_5993_1024
  • ISO 27000 (commercial), BSI (free)
  • OWASP ASVSP – must read!
  • SANS critical security checklist
  • Bitstamp incident
  • DREAD assesment risk model

 

Introduction to VueJS

  • presenter: Bruno Škvorc
  • speaker shared his views of why he thinks VueJS has the potential to become the best front end JS framework
  • thumb_IMG_6003_1024
  • Well, I guess that every new-shiny-JavaScript-framework talk has to show this slide 🙂
    thumb_IMG_6005_1024
  • it’s very easy to use and master (1-2 days)
  • you can have an app on literally one element
  • only focused on web
  • everything is a component and has it’s own JS, HTML and CSS
  • the simplest example (jsFiddle here):
    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    	<script src="http://cdnjs.cloudflare.com/ajax/libs/vue/1.0.16/vue.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
    
    	<div id="demo">
    	  <p>{{message}}</p>
    	  <input v-model="message">
    	</div>
    
    	<script type="text/javascript" charset="utf-8">
    		var demo = new Vue({
    		  el: '#demo',
    		  data: {
    		    message: 'Hello Vue.js!'
    		  }
    		})		
    	</script>	
    
    </body>
    </html>
  • vue-router and vue-resource are must from the start

 

Startup accelerator experiences

  • presenter: Zvonimir Dimovski
  • speaker shared his experience with startup accelerator Eleven Accelerator
  • you have to deal with C.R.A.P:
    • C – critisism
    • R – rejection
    • A – assholes
    • P – pressure
  • if you get founded you get 100k € for 6 months, with investor owning 8%

 

Voogle conference announcement

  • March 15th 2016
  • An interesting lineup of speakers and talks
  • Register here, tickets are not expensive (99kn)
  • I got a 2014 T-shirt edition in a random draw 🙂
    thumb_IMG_6020_1024
  • all in all, see you there!

Great talks at 2nd Devz Meetup Varaždin by @bitfalls @kisasondi and @Zvonr https://t.co/vLMy1gUX6r

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

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

Breaking News, Ionic2

Ionic framework 2 is in beta

Ok, true, this “news” is few days old now and I’ve been slow to post about it.

Nevertheless, this is awesome news as I’m really excited about the 2.0 version, which follows closely the Angular 2.0 version. Btw, I wrote a tutorial about how to post data from Ionic 2 app to php  server, in case you’re curious you can find it here.

You can read the docs over at http://ionicframework.com/docs/v2/, but to quote the official post:

we’ve focused on performance boosts, architectural improvements, cross-platform theming, support for Angular 2, support for the mobile web, and so much more!

In case someone is still doubting Ionic, they state a very interesting fact:

Ionic has seen widespread adoption, with over 1.9 million apps built by everyone from individual developers to small startups to large enterprise businesses from around the world.

And, in defence of why Angular 2, here is their response:

Today, an Ionic and Angular 2 app is just TC-39, standards-compliant JS. While it may look different from what you’re used to, the benefit is the entire web industry is moving towards this standard set of technologies, so your skills will adapt to other projects beyond Ionic and Angular 2. That wasn’t the case with Angular 1.

Ionic 2 styles UI components based on the platform in which it’s being displayed, and the great news is that they’ve added material design for Android apps.

I totally agree with the following:

Ionic is pretty much the only major mobile framework out there that lets you adapt your app to the app store as a native app and put it on a web server to provide a great mobile web experience with no changes required.

clap

#Ionic framework 2 is in beta https://t.co/Nyy2QQZqRf

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

Miscellaneou$

5 Great Places to Find Top Freelancer Software Engineers

TL;DR: This post is leaned toward how and where someone would find freelancer software engineers. Nevertheless, you can also check these sites out in order to find a great place to work at.

Finding the right freelancer developer for your project can be a daunting task, especially for those without much development experience. There are always a couple of considerations to keep in mind:

  • What particular skills are you looking for?
  • What’s the length of the job you have in mind?
  • What sort of personality and habits mesh best with your work environment?
  • How soon do you need a developer?

Once you’ve sorted out these questions, rather than walk down the street and hope that you bump into a solid software engineer, it’s generally best to use a hiring website. Though the list below is by no means extensive, these sites are great places to find developers for whatever sort of project you’re working on. Check them out, and see what works best for you!

Toptal

Unlike other freelance marketplaces, Toptal focuses on working only with elite software engineers and only with clients who have the budget and need for top talent. Toptal screens both clients and developers, and only accepts those that they feel will thrive within its community.

Besides English and personality tests, Toptal puts prospective developers through a battery of timed tests, live interviews, and sample projects to make sure they’re the best of the best. Clients will work very closely with Toptal’s team to make sure their needs are fully understood and met. Clients also can enjoy a no-risk trial period of up to 2 weeks, and if they’re not fully satisfied that the engagement will proceed according to plan, they won’t pay, and Toptal will cover costs out of their pocket.

 

Rent a Coder

Rent a Coder allows you to post a project for free, and then wait until you receive bids to decide whom to employ. By using a reverse-auction method, through which developers compete to offer the lowest price for the job, you’re guaranteed to get a competitive price.

Though the initial post is free, you can’t share contact details unless you pay for membership. One downside of Rent a Coder, aside from its somewhat unprofessional website, is that there’s no verification process: Rent a Coder doesn’t have a screening system for determining good developers, so you run the risk of getting someone who’s not up to the task. You also can’t make payment over the website, which is a bit inconvenient.

 

Hirable

What immediately stands out about Hirable’s website is its sleekness; unlike many hiring websites, Hirable’s is professional, user-friendly, and clean. Once you sign up, you can see profiles of different developers with their skills, location, contact information, website, and workplace preferences.

Though there’s no independent verification, you can definitely get a feel for different sorts of developers by sorting through some profiles and picking out the skills you need. What’s unique about Hirable is their “availability” feature: you can see whether developers are currently hirable, will be hirable soon, or are busy, so you get your project done as quickly as possible. Ultimately, while Hirable might not get you the best developer in the world, it’ll definitely get you a solid one within a convenient time frame.

 

Workmarket

Workmarket makes it incredibly easy to hire developers from all over the United States. Their website and process is fairly easy to use, and helps you organize all your tools into a single dashboard.

They also offer several screening tools, including their Learning Management System, and give you access to background checks. One advantage of Workmarket is that it automatically adds freelancer engineers to your queue who match your needs. You can pay employees however you want, and even see other customers’ ratings to determine which freelancers have the best record.

Workmarket’s website also has some useful information about how to hire freelancers, along with some interesting webinars. While Workmarket certainly offers better support than Rent a Coder, it doesn’t appear to offer access to developers from outside of the U.S., unlike Toptal, which probably reduces its talent pool. Still, it’s definitely a great option for those looking to hire local developers who come well-recommended.

 

10x Management

10x Management, which you may have seen on Ted Talks, helps connect you with some of the best tech talent from around the globe. Like Toptal, they have their own verification process, and they choose from 1,000’s of applicants to determine the best developers.

After matching you with a developer, they’ll offer support for the entirety of the job. For anyone not convinced, you can read their “Case Studies” section to see how successful businesses have used their services. Also, they have a phenomenal blog with some tips on tech, hiring, and software engineering. Ultinately, 10x Management is a great option for those looking to get the best tech talent available.

5 Great Places to Find #Top #Freelancer #Software #Engineers @toptalllc https://t.co/IolMNr8XPY pic.twitter.com/o2eLK1ZmDi

— Nikola Brežnjak (@HitmanHR) January 20, 2016

Page 3 of 8« First...«2345»...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