<!DOCTYPE html>
<html lang=en>
<head>
<title>niden.net – Personal blog of Nikolaos (Nikos) Dimopoulos. Boldly goes where no other coder has gone before.... and other ramblings</title>
<meta charset=utf-8>
<meta http-equiv=X-UA-Compatible content="IE=edge">
<meta name=viewport content="width=device-width, initial-scale=1">
<meta name=author content="Nikolaos Dimopoulos">
<meta name=generator content="">
<meta name=application-name content=niden.net>
<meta name=keywords content="php, phalcon, phalcon php, php framework, faster php framework">
<meta name=description content="Personal blog of Nikolaos (Nikos) Dimopoulos. Boldly goes where no other coder has gone before.... and other ramblings">
<meta http-equiv=x-dns-prefetch-control content=off>
<meta property=og:url content="">
<meta property=og:locale content=en_US>
<meta property=og:type content=object>
<meta property=og:title content=niden.net>
<meta property=og:description content="Personal blog of Nikolaos (Nikos) Dimopoulos. Boldly goes where no other coder has gone before.... and other ramblings">
<meta property=og:site_name content="Phalcon Blog">
<meta property=og:image content="/images/logo.png">
<meta name=twitter:image:alt content=niden.net>
<meta name=twitter:title content=niden.net>
<meta name=twitter:description content="Personal blog of Nikolaos (Nikos) Dimopoulos. Boldly goes where no other coder has gone before.... and other ramblings">
<link rel=canonical href="">
<link rel=publisher href="">
<link rel=author href="">
<link rel='shortcut icon' type='image/x-icon' href='/favicon.ico'/>
<link rel=alternate type="application/rss+xml" title="niden.net - Personal blog of Nikolaos (Nikos) Dimopoulos. Boldly goes where no other coder has gone before.... and other ramblings" href="/feed.xml">
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600' rel=stylesheet type='text/css'>
<script type="text/javascript" data-pagespeed-no-defer>(function(){function d(b){var a=window;if(a.addEventListener)a.addEventListener("load",b,!1);else if(a.attachEvent)a.attachEvent("onload",b);else{var c=a.onload;a.onload=function(){b.call(this);c&&c.call(this)}}}var p=Date.now||function(){return+new Date};window.pagespeed=window.pagespeed||{};var q=window.pagespeed;function r(){this.a=!0}r.prototype.c=function(b){b=parseInt(b.substring(0,b.indexOf(" ")),10);return!isNaN(b)&&b<=p()};r.prototype.hasExpired=r.prototype.c;r.prototype.b=function(b){return b.substring(b.indexOf(" ",b.indexOf(" ")+1)+1)};r.prototype.getData=r.prototype.b;r.prototype.f=function(b){var a=document.getElementsByTagName("script"),a=a[a.length-1];a.parentNode.replaceChild(b,a)};r.prototype.replaceLastScript=r.prototype.f;
r.prototype.g=function(b){var a=window.localStorage.getItem("pagespeed_lsc_url:"+b),c=document.createElement(a?"style":"link");a&&!this.c(a)?(c.type="text/css",c.appendChild(document.createTextNode(this.b(a)))):(c.rel="stylesheet",c.href=b,this.a=!0);this.f(c)};r.prototype.inlineCss=r.prototype.g;
r.prototype.h=function(b,a){var c=window.localStorage.getItem("pagespeed_lsc_url:"+b+" pagespeed_lsc_hash:"+a),f=document.createElement("img");c&&!this.c(c)?f.src=this.b(c):(f.src=b,this.a=!0);for(var c=2,k=arguments.length;c<k;++c){var g=arguments[c].indexOf("=");f.setAttribute(arguments[c].substring(0,g),arguments[c].substring(g+1))}this.f(f)};r.prototype.inlineImg=r.prototype.h;
function t(b,a,c,f){a=document.getElementsByTagName(a);for(var k=0,g=a.length;k<g;++k){var e=a[k],m=e.getAttribute("data-pagespeed-lsc-hash"),h=e.getAttribute("data-pagespeed-lsc-url");if(m&&h){h="pagespeed_lsc_url:"+h;c&&(h+=" pagespeed_lsc_hash:"+m);var l=e.getAttribute("data-pagespeed-lsc-expiry"),l=l?(new Date(l)).getTime():"",e=f(e);if(!e){var n=window.localStorage.getItem(h);n&&(e=b.b(n))}e&&(window.localStorage.setItem(h,l+" "+m+" "+e),b.a=!0)}}}
function u(b){t(b,"img",!0,function(a){return a.src});t(b,"style",!1,function(a){return a.firstChild?a.firstChild.nodeValue:null})}
q.i=function(){if(window.localStorage){var b=new r;q.localStorageCache=b;d(function(){u(b)});d(function(){if(b.a){for(var a=[],c=[],f=0,k=p(),g=0,e=window.localStorage.length;g<e;++g){var m=window.localStorage.key(g);if(!m.indexOf("pagespeed_lsc_url:")){var h=window.localStorage.getItem(m),l=h.indexOf(" "),n=parseInt(h.substring(0,l),10);if(!isNaN(n))if(n<=k){a.push(m);continue}else if(n<f||!f)f=n;c.push(h.substring(l+1,h.indexOf(" ",l+1)))}}k="";f&&(k="; expires="+(new Date(f)).toUTCString());document.cookie=
"_GPSLSC="+c.join("!")+k;g=0;for(e=a.length;g<e;++g)window.localStorage.removeItem(a[g]);b.a=!1}})}};q.localStorageCacheInit=q.i;})();
pagespeed.localStorageCacheInit();</script><link href="/assets/css/toolkit.css" rel=stylesheet data-pagespeed-lsc-url="https://niden.net/assets/css/toolkit.css">
<link href="/assets/css/application.css" rel=stylesheet data-pagespeed-lsc-url="https://niden.net/assets/css/application.css">
<link href="/assets/css/highlight.css" rel=stylesheet type="text/css" data-pagespeed-lsc-url="https://niden.net/assets/css/highlight.css"/>
<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
</head>
<body class=with-top-navbar>
<nav class="navbar navbar-expand-md fixed-top navbar-dark bg-primary app-navbar">
<a class=navbar-brand href="/">
<strong>niden.net</strong>
</a>
<button class="navbar-toggler navbar-toggler-right d-md-none" type=button data-toggle=collapse data-target="#navbarResponsive" aria-controls=navbarResponsive aria-expanded=false aria-label="Toggle navigation">
<span class=navbar-toggler-icon></span>
</button>
<div class="collapse navbar-collapse" id=navbarResponsive>
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class=nav-link href="/">Home</a>
</li>
<li class=nav-item>
<a class=nav-link href="/tags">Tags</a>
</li>
<li class=nav-item>
<a class=nav-link href="/archives">Archives</a>
</li>
<li class=nav-item>
<a class=nav-link href="/about">About</a>
</li>
<li class=nav-item>
<a class=nav-link href="/disclaimer">Disclaimer</a>
</li>
</ul>
<ul class="nav navbar-nav float-right mr-0 d-none d-md-flex">
<li class=nav-item>
<a class="app-notifications nav-link" href="https://github.com/niden">
<span class="icon icon-github"></span>
</a>
</li>
</ul>
</div>
</nav>
<div class="container pt-4 pb-5">
<div class=row>
<div class=col-lg-9>
<ul class="list-group media-list media-list-stream mb-4">
<li class="media list-group-item p-4">
<div class=media-body>
<div class=media-heading>
<small class="float-right text-muted">
2 minutes &bull; 2019-08-12
</small>
<h6>
<a href="/post/moving-away-from-google-series/">Moving away from Google [Series]</a>
</h6>
</div>
<p>
<p>This is a series of posts, regarding my efforts to <em>remove</em> as much as possible myself as well as my family from using Google services.
Why you may ask? What has Google done to you?</p>
</p>
<div class=media-body-actions>
<a href="/tags#degoogle">
<button class="btn btn-primary-outline btn-sm">
degoogle
</button>
</a>
<a href="/tags#google">
<button class="btn btn-primary-outline btn-sm">
google
</button>
</a>
<a href="/tags#series">
<button class="btn btn-primary-outline btn-sm">
series
</button>
</a>
</div>
</div>
</li>
</ul>
<ul class="list-group media-list media-list-stream mb-4">
<li class="media list-group-item p-4">
<div class=media-body>
<div class=media-heading>
<small class="float-right text-muted">
4 minutes &bull; 2019-05-06
</small>
<h6>
<a href="/post/the-title-fallacy-in-software-development/">The Title Fallacy in Software Development</a>
</h6>
</div>
<p>
<p>Junior developer, Senior developer, Senior Architect… So many titles floating around when looking for a job in Software Development or when looking at the company you work for.</p>
</p>
<div class=media-body-actions>
<a href="/tags#titles">
<button class="btn btn-primary-outline btn-sm">
titles
</button>
</a>
<a href="/tags#payroll">
<button class="btn btn-primary-outline btn-sm">
payroll
</button>
</a>
<a href="/tags#opinion">
<button class="btn btn-primary-outline btn-sm">
opinion
</button>
</a>
</div>
</div>
</li>
</ul>
<ul class="list-group media-list media-list-stream mb-4">
<li class="media list-group-item p-4">
<div class=media-body>
<div class=media-heading>
<small class="float-right text-muted">
1 minute &bull; 2019-04-15
</small>
<h6>
<a href="/post/spaceships-in-php/">Spaceships in PHP</a>
</h6>
</div>
<p>
<p>PHP is an extremely powerful language with tons of features and functions. This wealth of functionality offered is often overlooked because there are so many ways of doing the same thing.</p>
</p>
<div class=media-body-actions>
<a href="/tags#php">
<button class="btn btn-primary-outline btn-sm">
php
</button>
</a>
<a href="/tags#sorting">
<button class="btn btn-primary-outline btn-sm">
sorting
</button>
</a>
<a href="/tags#usort">
<button class="btn btn-primary-outline btn-sm">
usort
</button>
</a>
<a href="/tags#spaceship">
<button class="btn btn-primary-outline btn-sm">
spaceship
</button>
</a>
</div>
</div>
</li>
</ul>
<ul class="list-group media-list media-list-stream mb-4">
<li class="media list-group-item p-4">
<div class=media-body>
<div class=media-heading>
<small class="float-right text-muted">
2 minutes &bull; 2019-03-18
</small>
<h6>
<a href="/post/netlify-discord-deploy-notifications/">Netlify - Discord deploy notifications</a>
</h6>
</div>
<p>
<p>This blog post is not related to the actual code of Phalcon, but to the process of updating our documentation and notifying our <a href="https://phalcon.link/discord">Discord</a> server of the build status. (<em>cross posted from the <a href="https://blog.phalconphp.com/post/discord-deploy-notifications">Phalcon Blog</a></em>)</p>
</p>
<div class=media-body-actions>
<a href="/tags#netlify">
<button class="btn btn-primary-outline btn-sm">
netlify
</button>
</a>
<a href="/tags#discord">
<button class="btn btn-primary-outline btn-sm">
discord
</button>
</a>
<a href="/tags#phalcon">
<button class="btn btn-primary-outline btn-sm">
phalcon
</button>
</a>
<a href="/tags#documentation">
<button class="btn btn-primary-outline btn-sm">
documentation
</button>
</a>
</div>
</div>
</li>
</ul>
<ul class="list-group media-list media-list-stream mb-4">
<li class="media list-group-item p-4">
<div class=media-body>
<div class=media-heading>
<small class="float-right text-muted">
3 minutes &bull; 2018-12-21
</small>
<h6>
<a href="/post/removing-a-git-submodule/">Removing a git submodule</a>
</h6>
</div>
<p>
<p>I have been using git for quite a while now and am very comfortable with the <code class=highlighter-rouge>bread and butter</code> commands such as <code class=highlighter-rouge>git clone</code>, <code class=highlighter-rouge>git commit</code>. <code class=highlighter-rouge>git pull</code>, etc. I love the command line so using some aliases cuts down on typing and speeds up my commit workflow. My motto is commit often and commit small :)</p>
</p>
<div class=media-body-actions>
<a href="/tags#submodules">
<button class="btn btn-primary-outline btn-sm">
submodules
</button>
</a>
<a href="/tags#git">
<button class="btn btn-primary-outline btn-sm">
git
</button>
</a>
<a href="/tags#remove">
<button class="btn btn-primary-outline btn-sm">
remove
</button>
</a>
</div>
</div>
</li>
</ul>
<ul class="list-group media-list media-list-stream mb-4">
<li class="media list-group-item p-4">
<div class=media-body>
<div class=media-body-actions>
<span class=float-left>
&nbsp;
</span>
<span class=float-right>
<a href="/page-2">
<i class="icon icon-arrow-with-circle-right"></i>
</a>
</span>
</div>
</div>
</li>
</ul>
</div>
<div class=col-lg-3>
<div class="card card-profile mb-4">
<div class=card-header style="background-image: url(/assets/other/images/background.png);"></div>
<div class="card-body text-center">
<a href="/about">
<img class=card-profile-img src="https://d33wubrfki0l68.cloudfront.net/6114af52fc7de72fe0e272838b02ac4e20a0baff/082b8/assets/other/images/avatar.png">
</a>
<h6 class=card-title>
<a class=text-inherit href="/about">
Nikolaos Dimopoulos
</a>
</h6>
<p class=mb-4>
Boldly goes where no other coder has gone
before.... and other ramblings
</p>
</div>
</div>
<div class="card card-default card-link-list">
<div class=card-body>
<h5 class=mb-3>Tag Cloud</h5>
<span style="font-size: 92%">
<a href="/tags#amazon">
amazon (3)
</a>
</span>
<span style="font-size: 84%">
<a href="/tags#android">
android (1)
</a>
</span>
<span style="font-size: 108%">
<a href="/tags#angularjs">
angularjs (7)
</a>
</span>
<span style="font-size: 84%">
<a href="/tags#apps">
apps (1)
</a>
</span>
<span style="font-size: 84%">
<a href="/tags#aurora">
aurora (1)
</a>
</span>
<span style="font-size: 84%">
<a href="/tags#aws">
aws (1)
</a>
</span>
<span style="font-size: 88%">
<a href="/tags#backup">
backup (2)
</a>
</span>
<span style="font-size: 84%">
<a href="/tags#bash">
bash (1)
</a>
</span>
<span style="font-size: 84%">
<a href="/tags#bitbucket">
bitbucket (1)
</a>
</span>
<span style="font-size: 88%">
<a href="/tags#blog">
blog (2)
</a>
</span>
<span style="font-size: 84%">
<a href="/tags#bootstrap">
bootstrap (1)
</a>
</span>
<span style="font-size: 84%">
<a href="/tags#buzz">
buzz (1)
</a>
</span>
</div>
</div>
<div class="card card-link-list">
<div class=card-body>
<h5 class=mb-3>Copyright</h5>
<p>
&copy; 2002-Present - niden.net
</p>
</div>
</div>
</div>
</div>
</div>
<script src="/assets/js/jquery.min.js"></script>
<script src="/assets/js/chart.js"></script>
<script src="/assets/js/toolkit.js"></script>
<script src="/assets/js/application.js"></script>
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create','UA-26971391-1','auto');ga('send','pageview',{'page':'/','title':''});</script>
<script>$(function(){while(window.BS&&window.BS.loader&&window.BS.loader.length){(window.BS.loader.pop())()}})</script>
<script>
    if (window.netlifyIdentity) {
        window.netlifyIdentity.on("init", user => {
            if (!user) {
                window.netlifyIdentity.on("login", () => {
                    document.location.href = "/admin/";
                });
            }
        });
    }
</script>
</body>
</html>
