-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
969 lines (568 loc) · 91.3 KB
/
Copy pathindex.html
File metadata and controls
969 lines (568 loc) · 91.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
<!DOCTYPE html>
<html lang="en-US"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Stefcho's Tech Blog - Software Development, Cloud, DevOps and PfSense</title><meta name="description" content="Software Development, Cloud, DevOps and PfSense"><meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta property="og:locale" content="en_US"><meta property="og:type" content="website"><meta property="og:title" content="Stefcho's Tech Blog - Software Development, Cloud, DevOps and PfSense"><meta property="og:description" content="Software Development, Cloud, DevOps and PfSense"><meta property="og:url" content="https://blog.stefcho.eu/"><meta property="og:site_name" content="Stefcho's Tech Blog"><meta name="msvalidate.01" content="820A9AB94DD773C49A23A3B5ABC83853"><script type="application/ld+json" class="yoast-schema-graph yoast-schema-graph--main">{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://blog.stefcho.eu/#website",
"url": "https://blog.stefcho.eu/",
"name": "Stefcho's Tech Blog",
"inLanguage": "en-US",
"description": "Software Development, Cloud, DevOps and PfSense",
"potentialAction": [
{
"@type": "SearchAction",
"target": "https://blog.stefcho.eu/?s={search_term_string}",
"query-input": "required name=search_term_string"
}
]
},
{
"@type": "CollectionPage",
"@id": "https://blog.stefcho.eu/#webpage",
"url": "https://blog.stefcho.eu/",
"name": "Stefcho's Tech Blog - Software Development, Cloud, DevOps and PfSense",
"isPartOf": {
"@id": "https://blog.stefcho.eu/#website"
},
"inLanguage": "en-US",
"description": "Software Development, Cloud, DevOps and PfSense"
}
]
}</script><link rel="dns-prefetch" href="//s.w.org"><script type="text/javascript" data-cfasync="false">
var mi_version = '7.10.4';
var mi_track_user = true;
var mi_no_track_reason = '';
var disableStr = 'ga-disable-UA-11255880-2';
/* Function to detect opted out users */
function __gaTrackerIsOptedOut() {
return document.cookie.indexOf(disableStr + '=true') > -1;
}
/* Disable tracking if the opt-out cookie exists. */
if ( __gaTrackerIsOptedOut() ) {
window[disableStr] = true;
}
/* Opt-out function */
function __gaTrackerOptout() {
document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
window[disableStr] = true;
}
if ( mi_track_user ) {
(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','__gaTracker');
__gaTracker('create', 'UA-11255880-2', 'auto');
__gaTracker('set', 'forceSSL', true);
__gaTracker('require', 'displayfeatures');
__gaTracker('send','pageview');
} else {
console.log( "" );
(function() {
/* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */
var noopfn = function() {
return null;
};
var noopnullfn = function() {
return null;
};
var Tracker = function() {
return null;
};
var p = Tracker.prototype;
p.get = noopfn;
p.set = noopfn;
p.send = noopfn;
var __gaTracker = function() {
var len = arguments.length;
if ( len === 0 ) {
return;
}
var f = arguments[len-1];
if ( typeof f !== 'object' || f === null || typeof f.hitCallback !== 'function' ) {
console.log( 'Not running function __gaTracker(' + arguments[0] + " ....) because you are not being tracked. " + mi_no_track_reason );
return;
}
try {
f.hitCallback();
} catch (ex) {
}
};
__gaTracker.create = function() {
return new Tracker();
};
__gaTracker.getByName = noopnullfn;
__gaTracker.getAll = function() {
return [];
};
__gaTracker.remove = noopfn;
window['__gaTracker'] = __gaTracker;
})();
}
</script><link rel="stylesheet" id="wp-block-library-css" href="https://blog.stefcho.eu/wp-includes/css/dist/block-library/style.min.css" type="text/css" media="all"><link rel="stylesheet" id="micro-style-css" href="https://blog.stefcho.eu/wp-content/themes/micro/assets/css/master.min.css" type="text/css" media="all"><link rel="stylesheet" id="wpgdprc.css-css" href="https://blog.stefcho.eu/wp-content/plugins/wp-gdpr-compliance/assets/css/front.css" type="text/css" media="all"><style id="wpgdprc.css-inline-css" type="text/css">
div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:before { content: 'Yes'; }
div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:after { content: 'No'; }
</style><script type="text/javascript">
/* <![CDATA[ */
var monsterinsights_frontend = {"js_events_tracking":"true","download_extensions":"doc,pdf,ppt,zip,xls,docx,pptx,xlsx","inbound_paths":"[]","home_url":"https:\/\/PLACEHOLDER.wpsho","hash_tracking":"false"};
/* ]]> */
</script><script type="text/javascript" src="https://blog.stefcho.eu/wp-content/plugins/google-analytics-for-wordpress/assets/js/frontend.min.js"></script><script type="text/javascript" src="https://blog.stefcho.eu/wp-includes/js/jquery/jquery.js"></script><script type="text/javascript" src="https://blog.stefcho.eu/wp-includes/js/jquery/jquery-migrate.min.js"></script><style data-context="foundation-flickity-css">/*! Flickity v2.0.2
http://flickity.metafizzy.co
---------------------------------------------- */.flickity-enabled{position:relative}.flickity-enabled:focus{outline:0}.flickity-viewport{overflow:hidden;position:relative;height:100%}.flickity-slider{position:absolute;width:100%;height:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:-webkit-grab;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:-webkit-grabbing;cursor:grabbing}.flickity-prev-next-button{position:absolute;top:50%;width:44px;height:44px;border:none;border-radius:50%;background:#fff;background:hsla(0,0%,100%,.75);cursor:pointer;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.flickity-prev-next-button:hover{background:#fff}.flickity-prev-next-button:focus{outline:0;box-shadow:0 0 0 5px #09f}.flickity-prev-next-button:active{opacity:.6}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button:disabled{opacity:.3;cursor:auto}.flickity-prev-next-button svg{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-prev-next-button .arrow{fill:#333}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;width:10px;height:10px;margin:0 8px;background:#333;border-radius:50%;opacity:.25;cursor:pointer}.flickity-page-dots .dot.is-selected{opacity:1}</style><style data-context="foundation-slideout-css">.slideout-menu{position:fixed;left:0;top:0;bottom:0;right:auto;z-index:0;width:256px;overflow-y:auto;-webkit-overflow-scrolling:touch;display:none}.slideout-menu.pushit-right{left:auto;right:0}.slideout-panel{position:relative;z-index:1;will-change:transform}.slideout-open,.slideout-open .slideout-panel,.slideout-open body{overflow:hidden}.slideout-open .slideout-menu{display:block}.pushit{display:none}</style><style type="text/css">
/* Normal background color and text */
body, code, kbd, tt, var, pre, input, textarea, select,
.wp-block-button.is-style-outline .wp-block-button__link {
color: #00aa13;
background-color: #060c08;
}
hr {
background-color: #00aa13;
}
::-webkit-input-placeholder {
color: #00aa13;
}
::-moz-placeholder {
color: #00aa13;
}
:-ms-input-placeholder {
color: #00aa13;
}
:-moz-placeholder {
color: #00aa13;
}
/* Inverted background color and text */
a:hover,
.entry .entry-title,
.comment-form-comment label,
.form-submit input[type="submit"],
.widget_calendar caption,
.comments-area .comments-title,
.main-navigation.is-extended .sub-menu a:hover,
.menu-toggle,
.wp-block-table.is-style-stripes tbody tr:nth-child(odd),
.wp-block-file .wp-block-file__button,
.wp-block-button__link {
color: #060c08;
background-color: #00aa13;
}
a:focus {
outline: 1px dashed #00aa13;
box-shadow: inset 0 0 0 2px #060c08;
}
/* Overwrite for links */
a,
.main-navigation .menu-item a,
.main-navigation .sub-menu a:hover,
.main-navigation .children a:hover,
.wp-block-latest-posts__post-date,
.wp-block-latest-comments__comment-date,
button, input {
color: #00aa13;
}
/* Borders */
input, button, textarea, select
.site-footer,
.homepage-welcome,
.wp-block-table.is-style-stripes,
.wp-block-file .wp-block-file__button,
.wp-block-button.is-style-outline .wp-block-button__link {
border-color: #00aa13;
}
.entry .entry-title a,
.entry .entry-title a:hover {
color: #060c08;
}
</style><link rel="icon" href="https://blog.stefcho.eu/wp-content/uploads/2018/10/cropped-0-32x32.jpg" sizes="32x32"><link rel="icon" href="https://blog.stefcho.eu/wp-content/uploads/2018/10/cropped-0-192x192.jpg" sizes="192x192"><link rel="apple-touch-icon" href="https://blog.stefcho.eu/wp-content/uploads/2018/10/cropped-0-180x180.jpg"><meta name="msapplication-TileImage" content="https://blog.stefcho.eu/wp-content/uploads/2018/10/cropped-0-270x270.jpg"><style>.ios7.web-app-mode.has-fixed header{ background-color: rgba(3,122,221,.88);}</style><style type="text/css" id="wp-custom-css">
.entry .entry-content {
margin: 50px 0; } </style></head><body class="home blog hfeed">
<div id="page" class="site">
<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
<header id="masthead" class="site-header" role="banner"><div class="header-image">
<a href="https://blog.stefcho.eu/" rel="home">
<img src="/wp-content/uploads/2018/10/0.jpg" height="350" width="1400" alt=""></a>
</div>
<div class="row">
<div class="columns small-12">
<div class="site-branding">
<h1 class="site-title"><a href="https://blog.stefcho.eu/" rel="home">Stefcho's Tech Blog</a></h1>
<p class="site-description">Software Development, Cloud, DevOps and PfSense</p>
</div>
<nav id="site-navigation" class="main-navigation" aria-label="Primary"><button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false">
<span class="screen-reader-text">Menu</span>
</button>
<div class="menu-primary-container">
<div id="primary-menu" class="menu"></div>
</div>
</nav></div>
</div>
</header><div id="content" class="site-content" role="contentinfo">
<section class="section-fullwidth section-main"><div class="row">
<div class="columns small-12 medium-8">
<div id="primary" class="content-area">
<main id="main" class="site-main"><article id="post-1402" class="entry post-1402 post type-post status-publish format-standard hentry category-technical tag-azure tag-devops"><header class="entry-header"><h2 class="entry-title"><a href="https://blog.stefcho.eu/azure-and-beyond-in-2020/" rel="bookmark">Azure and Beyond in 2020</a></h2> <div class="entry-meta">
<span class="posted-on">Posted on <time class="entry-date published updated" datetime="2020-04-27T13:01:00+02:00">27/04/2020</time></span><span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://blog.stefcho.eu/author/darko/">Stefan</a></span></span> </div>
</header><div class="entry-content">
<p>I have started this post around Christmas. From that time up until now a lot has happened.<br>
First I would like to share my certification achievements so far:</p>
<p>Microsoft Certified: Azure DevOps Engineer Expert</p>
<p><a href="https://www.youracclaim.com/badges/fd7bbedf-5b29-4c48-9f02-2fa6a7420439/public_url"><img class="size-medium wp-image-1418 aligncenter" src="https://blog.stefcho.eu/wp-content/uploads/2020/04/azure-devops-engineer-expert-600x600-1-300x300.png" alt="azure-devops-engineer-expert-" width="300" height="300" srcset="https://blog.stefcho.eu/wp-content/uploads/2020/04/azure-devops-engineer-expert-600x600-1-300x300.png 300w,https://blog.stefcho.eu/wp-content/uploads/2020/04/azure-devops-engineer-expert-600x600-1-150x150.png 150w,https://blog.stefcho.eu/wp-content/uploads/2020/04/azure-devops-engineer-expert-600x600-1-144x144.png 144w,https://blog.stefcho.eu/wp-content/uploads/2020/04/azure-devops-engineer-expert-600x600-1.png 340w" sizes="(max-width: 300px) 100vw, 300px"></a></p>
<p>Right after this on a tight deadline I was able to pass<br>
AWS Certified Solutions Architect – Associate</p>
<p><a href="https://www.certmetrics.com/amazon/public/badge.aspx?i=1&t=c&d=2020-03-13&ci=AWS01315507"><img class="size-full wp-image-1419 aligncenter" src="https://blog.stefcho.eu/wp-content/uploads/2020/04/AWS.Certified.Solutions.Architect.Associate.png" alt="AWS.Certified.Solutions.Architect.Associate" width="220" height="220" srcset="https://blog.stefcho.eu/wp-content/uploads/2020/04/AWS.Certified.Solutions.Architect.Associate.png 220w,https://blog.stefcho.eu/wp-content/uploads/2020/04/AWS.Certified.Solutions.Architect.Associate-150x150.png 150w,https://blog.stefcho.eu/wp-content/uploads/2020/04/AWS.Certified.Solutions.Architect.Associate-144x144.png 144w" sizes="(max-width: 220px) 100vw, 220px"></a></p>
<p> </p>
<p>This was my first non-Microsoft exam for a very long while.</p>
<p>Here are some useful tips that I would like to share:<br><a href="https://azure.microsoft.com/en-us/blog/tips-for-learning-azure-in-the-new-year/" target="_blank" rel="noopener noreferrer">Tips for learning Azure in the new year</a></p>
<p><a href="https://www.scotthyoung.com/blog/2019/06/07/apprenticeships/" target="_blank" rel="noopener noreferrer">What Medieval People Got Right About Learning</a></p>
<p><a href="https://www.hanselman.com/blog/AnnouncingFreeCNETAndASPNETForBeginnersVideoCoursesAndTutorials.aspx" target="_blank" rel="noopener noreferrer">Announcing free C#, .NET, and ASP.NET for beginners video courses and tutorials</a><br>
For some time, I was planning to do a refresher and currently am passing some of these courses. My humble opinion is that they are pretty good. I would suggest to give them a try.</p>
<p>Right after my AWS exam we’ve enter the Covid-19 pandemic.</p>
<p>In relation to this I would like to share some useful and interesting materials that would help you during this time:</p>
<p><a href="https://vladtalkstech.com/2020/04/pluralsight-is-free-for-the-entire-month-of-april-2020.html" target="_blank" rel="noopener noreferrer">Pluralsight is free for the entire month of April 2020</a></p>
<p><a href="http://bit.ly/2QNvlrs" target="_blank" rel="noopener noreferrer">Udacity FREE ACCESS for one month. Learn higher-paying, employable skills at home</a></p>
<p><a href="http://www.openculture.com/2020/03/audible-providing-free-audio-books-to-kids-teens.html" target="_blank" rel="noopener noreferrer">Audible Providing Free Audio Books to Kids & Teens: Introducing the New Service, Audible Stories</a></p>
<p><a href="http://www.openculture.com/2020/03/the-vhs-vault.html" target="_blank" rel="noopener noreferrer">The Internet Archive Hosts 20,000 VHS Recordings of Pop Culture from the 1980s & 1990s: Enter the VHS Vault</a></p>
<p><a href="http://www.openculture.com/2020/03/the-national-emergency-library-makes-nearly-1-5-million-books-free-to-read-right-now.html" target="_blank" rel="noopener noreferrer">The National Emergency Library Makes 1.5 Million Books Free to Read Right Now</a></p>
<p><a href="http://www.openculture.com/2020/03/patrick-stewart-is-reading-every-shakespeare-sonnet-on-instagram.html" target="_blank" rel="noopener noreferrer">Patrick Stewart Is Reading Every Shakespeare Sonnet on Instagram: One a Day “to Keep the Doctor Away”</a></p>
<p><a href="https://totallythebomb.com/heres-the-entire-list-of-ivy-league-courses-you-can-take-online-for-free-due-to-school-closings" target="_blank" rel="noopener noreferrer">Here’s The Entire List of Ivy League Courses You Can Take Online For Free Due to School Closings</a></p>
<p><a href="https://about.udemy.com/udemy-news/introducing-the-udemy-free-resource-center/" target="_blank" rel="noopener noreferrer">Introducing the Udemy Free Resource Center</a></p>
<p> </p>
<p>some local content:</p>
<p><a href="https://izdatelstvo-slovo.com/eBook/online/" target="_blank" rel="noopener noreferrer">Издателство Слово безплатен достъп до всичките ни електронни варианти за 1. и 2. група</a></p>
<p><a href="https://ucha.se/motiviramse/video-urocite-na-ucha-se-stavat-bezplatni-do-29-03-2020/" target="_blank" rel="noopener noreferrer">Видео уроците на Уча.се стават БЕЗПЛАТНИ до 29.03.2020 г.</a></p>
<p><a href="https://softuni.bg/blog/softuni-free-education-during-epidemic#" target="_blank" rel="noopener noreferrer">СофтУни подкрепя усилията за превенция, като пуска ключови обучения напълно безплатно</a></p>
<p><a href="https://softuni.bg/blog/project-free-education#" target="_blank" rel="noopener noreferrer">СофтУни: стартираме безплатни обучения в помощ на хората, останали без работа след обявяването на извънредното положение</a></p>
<p> </p>
<p> </p>
</div>
<footer class="entry-footer"><span class="cat-links">Posted in <a href="https://blog.stefcho.eu/category/technical/" rel="category tag">Technical</a></span><span class="tags-links">Tagged <a href="https://blog.stefcho.eu/tag/azure/" rel="tag">Azure</a>, <a href="https://blog.stefcho.eu/tag/devops/" rel="tag">DevOps</a></span> </footer></article><article id="post-1378" class="entry post-1378 post type-post status-publish format-standard hentry category-technical tag-raspberry-pi"><header class="entry-header"><h2 class="entry-title"><a href="https://blog.stefcho.eu/pinas/" rel="bookmark">PiNAS</a></h2> <div class="entry-meta">
<span class="posted-on">Posted on <time class="entry-date published" datetime="2019-07-01T11:11:00+02:00">01/07/2019</time> - <time class="updated" datetime="2019-07-01T14:44:01+02:00">01/07/2019</time></span><span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://blog.stefcho.eu/author/darko/">Stefan</a></span></span> </div>
</header><div class="entry-content">
<p>I would like to share my latest creation. PiNAS is and attempt at making small home server based on Raspberry Pi 3B+. </p>
<p>Main components:</p>
<ul><li>Raspberry Pi 3 Model B+</li>
<li>Raspberry Pi Universal Power Supply 5.1V 2.5 A</li>
<li>Ultra-thin Aluminum Alloy CNC Case Portable Box Support GPIO Ribbon Cable For Raspberry Pi 3 Model B+(Plus)</li>
<li>WD Elements 2.5” USB 3.0 4 TB</li>
<li>SanDisk Ultra microSDHC UHS-I 16 GB</li>
</ul><p>Raspbian Stretch Lite is the choice of OS. <br><br>The easiest and clean way I’ve found to transfer the root partition from the SD card to the HDD: <a href="https://www.pvangsgaard.com/2018/01/04/how-to-boot-raspberry-pi-from-usb-hard-drive/" target="_blank" rel="noreferrer noopener">How to Boot Raspberry Pi from USB Hard Drive</a><br><br>Previously I’ve used 3B and had no problems booting from the USB HDD. 3B+ is a different animal. I’ve spent hours researching why it did not booted directly from the HDD. Finally came across this article: <a href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/README.md" target="_blank" rel="noreferrer noopener" aria-label="Raspberry Pi boot modes (opens in a new tab)">Raspberry Pi boot modes </a><br><br>So I have to keep the SD card with fresh bootcod.bin on it at boot time. Afterword’s the card is not used as my root partition is located on the USB HDD. <br><br>I’ve tried this first: <a href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md" target="_blank" rel="noreferrer noopener" aria-label="How to boot from a USB mass storage device on a Raspberry Pi (opens in a new tab)">How to boot from a USB mass storage device on a Raspberry Pi </a> but it did not work! Than this: <a href="https://raspberrypi.stackexchange.com/questions/53857/raspberry-pi-3-usb-booting" target="_blank" rel="noreferrer noopener" aria-label="Raspberry Pi 3 USB booting (opens in a new tab)">Raspberry Pi 3 USB booting </a> <br>No Luck!<br><br>In this article it is explained Why in a very detailed manner: <a href="https://www.raspberrypi.org/blog/pi-3-booting-part-i-usb-mass-storage-boot/" target="_blank" rel="noreferrer noopener" aria-label="Pi 3 booting part I: USB mass storage boot beta (opens in a new tab)">Pi 3 booting part I: USB mass storage boot beta</a> <br><br>After that everything works as expected. Now on boot Pi reads the boot partition from the SD card and continues from the HDD. <br>In contrast my 3B just reads everything from the HDD and there is not SD card needed. <br><br>Now is time to install Docker and Docker-Compose: How to run docker and docker-compose on Raspbian <br><br>Note this is my first 3B+ model. Previously I’ve used 3B and had no problems booting from the USB HDD. 3B+ is a different animal. I’ve spent hours researching why it did booted directly from the HDD. Finally came across this article: <a href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/README.md" target="_blank" rel="noreferrer noopener">Raspberry Pi boot modes </a></p>
<p>So I have to keep the SD card with fresh bootcod.bin on it at boot time. Afterword’s the card is not used as my root partition is located on the USB HDD. <br>I’ve tried this first: <a href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md" target="_blank" rel="noreferrer noopener">How to boot from a USB mass storage device on a Raspberry Pi </a> but it did not work! Than this: <a href="https://raspberrypi.stackexchange.com/questions/53857/raspberry-pi-3-usb-booting" target="_blank" rel="noreferrer noopener">Raspberry Pi 3 USB booting </a> No Luck!<br>In this article it is explained why in a very detailed way: <a href="https://www.raspberrypi.org/blog/pi-3-booting-part-i-usb-mass-storage-boot/" target="_blank" rel="noreferrer noopener">Pi 3 booting part I: USB mass storage boot beta</a></p>
<p>After that everything works as expected. Now on boot Pi reads the boot partition from the SD card and continues from the HDD. <br>In contrast my 3B just reads everything from the HDD and there is not SD card needed. <br><br>Now is time to install Docker and Docker-Compose: <a href="https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/" target="_blank" rel="noopener noreferrer">How to run docker and docker-compose on Raspbian</a></p>
<p>Adding Samba and Deluge was quick and easy.</p>
<p>As inspiration of this build and post I would like to tank to the creators of the following posts:<br><a href="https://www.microfarad.de/pi-server/" target="_blank" rel="noopener noreferrer">Raspberry Pi Home Server</a> – really liked the UPS and Dynamic Fan Control.<br><a href="https://blog.alexellis.io/hardened-raspberry-pi-nas/" target="_blank" rel="noopener noreferrer">Create a hardened Raspberry Pi NAS</a> – some of the configurations came quite in handy.<br><br>PiNAS 2.0<br>As you know Raspberry Pi 4B was announced last week. It will provide 4 GB RAM, Real Gigabit Ethernet and 2 USB 3.0 Ports. Hope I’ll be able to attach two USB 3.0 HDDs and maybe build a software RAID. For the moment I’ll have to wait as even USB HDD Boot is not implemented in Raspbian Buster. With a bit of luck in a couple of months all will be fixed and working.</p>
<p>Until then my setup provides almost 20 MB/s throughput over Samba.</p>
</div>
<footer class="entry-footer"><span class="cat-links">Posted in <a href="https://blog.stefcho.eu/category/technical/" rel="category tag">Technical</a></span><span class="tags-links">Tagged <a href="https://blog.stefcho.eu/tag/raspberry-pi/" rel="tag">Raspberry Pi</a></span> </footer></article><article id="post-1344" class="entry post-1344 post type-post status-publish format-standard hentry category-technical tag-azure tag-certification tag-office-365 tag-sharepoint-2019"><header class="entry-header"><h2 class="entry-title"><a href="https://blog.stefcho.eu/microsoft-certification-paths-for-azure-and-microsoft-365-in-2019/" rel="bookmark">Microsoft Certification Paths for Azure and Microsoft 365 in 2019</a></h2> <div class="entry-meta">
<span class="posted-on">Posted on <time class="entry-date published" datetime="2019-05-21T11:21:08+02:00">21/05/2019</time> - <time class="updated" datetime="2019-06-02T13:42:52+02:00">02/06/2019</time></span><span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://blog.stefcho.eu/author/darko/">Stefan</a></span></span> </div>
</header><div class="entry-content">
<p>Vlad Catrinescu posted a few very useful article in relation to the new Certification Exams. I would like to share them here. </p>
<p><a rel="noreferrer noopener" aria-label="Microsoft Certification Paths for Azure and Microsoft 365 in 2019 (opens in a new tab)" href="https://absolute-sharepoint.com/2019/04/microsoft-certification-paths-for-azure-and-microsoft-365-in-2019.html" target="_blank">Microsoft Certification Paths for Azure and Microsoft 365 in 2019</a></p>
<h2>Teamwork Administrator Associate</h2>
<p>He also made the effort to put together study guide for the Teamwork Administrator Associate exam:</p>
<ul><li>MS-300: <a href="https://absolute-sharepoint.com/ms-300-study-guide-deploying-microsoft-365-teamwork" target="_blank" rel="noreferrer noopener">https://absolute-sharepoint.com/ms-300-study-guide-deploying-microsoft-365-teamwork</a></li><li>MS-301: <a href="https://absolute-sharepoint.com/ms-301-study-guide-deploying-sharepoint-server-hybrid" target="_blank" rel="noreferrer noopener">https://absolute-sharepoint.com/ms-301-study-guide-deploying-sharepoint-server-hybrid</a></li></ul><figure class="wp-block-image"><img src="https://absolute-sharepoint.com/wp-content/uploads/2019/04/041919_2019_MicrosoftCe13.png" alt="Teamwork Administrator Associate"></figure><p>Update 02.06.2019:</p>
<p>Check this great presentation listing all <a href="https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RWtQJJ" target="_blank" rel="noreferrer noopener" aria-label="Microsoft Training & Certification (opens in a new tab)">Microsoft Training & Certification</a> info.</p>
<p></p>
</div>
<footer class="entry-footer"><span class="cat-links">Posted in <a href="https://blog.stefcho.eu/category/technical/" rel="category tag">Technical</a></span><span class="tags-links">Tagged <a href="https://blog.stefcho.eu/tag/azure/" rel="tag">Azure</a>, <a href="https://blog.stefcho.eu/tag/certification/" rel="tag">Certification</a>, <a href="https://blog.stefcho.eu/tag/office-365/" rel="tag">Office 365</a>, <a href="https://blog.stefcho.eu/tag/sharepoint-2019/" rel="tag">SharePoint 2019</a></span> </footer></article><article id="post-1323" class="entry post-1323 post type-post status-publish format-standard hentry category-technical tag-lenovo tag-t420 tag-thinkpad"><header class="entry-header"><h2 class="entry-title"><a href="https://blog.stefcho.eu/ode-to-thinkpad/" rel="bookmark">Ode to ThinkPad</a></h2> <div class="entry-meta">
<span class="posted-on">Posted on <time class="entry-date published" datetime="2019-05-20T20:11:13+02:00">20/05/2019</time> - <time class="updated" datetime="2019-06-17T14:16:11+02:00">17/06/2019</time></span><span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://blog.stefcho.eu/author/darko/">Stefan</a></span></span> </div>
</header><div class="entry-content">
<p>My first ThinkPad was
T61. The keyboard was sublime, performance outstanding! Throughout the years
I’ve worked on many T, W, X series. I’ve been using most if not all top laptop
brands. But still ThinkPad is my favorite. </p>
<p>In this article I would like to share my experience with my current machine. </p>
<p>Lenovo ThinkPad T420 </p>
<p>I’ve bought it about 2 years ago second hand for the decent price of 200 Euros. It was in “like new” shape. With the best screen for the model 14,1″ HD+ 1600×900, 220 Nits and discrete GPU NVIDIA NVS 4200M, 1GB VRAM, Optimus. Straight away I’ve added Samsung 860 Pro SSD in a caddy in place of the optical drive for the price of 100 Euros. Unfortunately, the laptop came with as little as 4 GB RAM. I’ve fix that with a pair of Kingston 8 GB RAM sticks for the price of 150 Euros. To enhance performance, I was able to plug one mSATA Samsung 860 EVO SSD for 75 Euros. Combined with old HDD that is kept for storage only. </p>
<p>Now the performance was almost acceptable. Last thing was the CPU. This machine is not only one of the last generations with the so much prized keyboard and pad configuration, but the CPU is sitting comfortably in a socket. This means that you can easily change it like in any desktop computer. My idea was to put as powerful CPU as possible. As dual core i5 Intel didn’t have enough juice. </p>
<p>There are places on
the net dedicated for people that love their Think Pads. </p>
<p>Good starting point
is ThinkWiki, page with all kind of useful information for each model:</p>
<p style="text-align:center"><a href="https://thinkwiki.de/T420" target="_blank" rel="noreferrer noopener" aria-label="https://thinkwiki.de/T420 (opens in a new tab)">https://thinkwiki.de/T420</a></p>
<p>Here you can see my model support some quad core i7s. Comparing the specs my choice fell on </p>
<p>Intel Core i7-2760QM (2.40GHz, 6MB L3, 1600MHz FSB)</p>
<p>It has all the
capabilities of my old </p>
<p>Intel Core i5-2520M (2.50GHz, 3MB L3, 1333MHz FSB)</p>
<p>Plus, twice more
cache and cores. I’ve fished it out quite quickly on the online markets. </p>
<p>As you can see in the wiki this CPU is officially unsupported and consume much more Watts than what the system is designed to provide. But it works!</p>
<p>Reading through the
following articles build my confidence that it will be stable and will be
cooled properly:</p>
<p style="text-align:center"><a href="https://forum.ixbt.com/topic.cgi?id=17:42822-34" target="_blank" rel="noreferrer noopener" aria-label="https://forum.ixbt.com/topic.cgi?id=17:42822-34 (opens in a new tab)">https://forum.ixbt.com/topic.cgi?id=17:42822-34</a></p>
<p style="text-align:center"><a href="https://thinkpad-forum.de/threads/170582-Erfahrungsberichte-Quadcore-im-T420-Mod-Bios-inside" target="_blank" rel="noreferrer noopener" aria-label="https://thinkpad-forum.de/threads/170582-Erfahrungsberichte-Quadcore-im-T420-Mod-Bios-inside (opens in a new tab)">https://thinkpad-forum.de/threads/170582-Erfahrungsberichte-Quadcore-im-T420-Mod-Bios-inside</a></p>
<p style="text-align:center"><a href="https://thinkpad-forum.de/threads/170582-Erfahrungsberichte-Quadcore-im-T420-Mod-Bios-inside/page38" target="_blank" rel="noreferrer noopener" aria-label="https://thinkpad-forum.de/threads/170582-Erfahrungsberichte-Quadcore-im-T420-Mod-Bios-inside/page38 (opens in a new tab)">https://thinkpad-forum.de/threads/170582-Erfahrungsberichte-Quadcore-im-T420-Mod-Bios-inside/page38</a></p>
<p>One last thing is
that you must flash cooked version of your bios. The best that I could find is
this:</p>
<p style="text-align:center"><a href="https://www.bios-mods.com/forum/Thread-REQUEST-Lenovo-Thinkpad-T420-83ETxxWW-Whitelist-Removal?page=33" target="_blank" rel="noreferrer noopener" aria-label="https://www.bios-mods.com/forum/Thread-REQUEST-Lenovo-Thinkpad-T420-83ETxxWW-Whitelist-Removal?page=33 (opens in a new tab)">https://www.bios-mods.com/forum/Thread-REQUEST-Lenovo-Thinkpad-T420-83ETxxWW-Whitelist-Removal?page=33</a></p>
<p>Removing some
limitation and gives you much more control over the inner workings of the
hardware. </p>
<p>I’m very grateful to
all members of these forums that shared valuable information and experience! </p>
<p>What a surprised it was when quickly the machine started to overheat. Hitting the 100 C in seconds. Intel CPUs have a nice feature called Turbo Boost. From my understanding this is an overclocking feature. For example, my CPU works on 2.4 GHz. Under heavy load the multiplier is shifted up and some or all cores reach 3.2 GHz. The power consumption hits the roof, heat too. Then inevitably comes the dreaded thermal and power throttling. </p>
<p>After fiddling with some settings in ThrottleStop. My decision was simple. Equipped with my new bios, just turned off the Turbo Boost. This limit the frequency just to the stock one. In addition to lower the power consumption I’ve switched from the build in GPU in the CPU only to my discrete one.</p>
<p>Et Voila! </p>
<p>Thermal and Power
Throttling disappeared! </p>
<p>My build is
completed! </p>
<p>RAM – Maxed!</p>
<p>HDD – Maxed!</p>
<p>CPU – Maxed! </p>
<p>GPU – Maxed!</p>
<p>Display – Maxed!</p>
<p>Other noteworthy articles:</p>
<p>Lenovo ThinkPad T420
Upgrade Project</p>
<p style="text-align:center"><a href="https://zhuanlan.zhihu.com/p/46759824" target="_blank" rel="noreferrer noopener" aria-label="https://zhuanlan.zhihu.com/p/46759824 (opens in a new tab)">https://zhuanlan.zhihu.com/p/46759824</a></p>
<p>and </p>
<p style="text-align:center"><a href="https://medium.com/@n4ru/the-definitive-t430-modding-guide-3dff3f6a8e2e" target="_blank" rel="noreferrer noopener" aria-label="https://medium.com/@n4ru/the-definitive-t430-modding-guide-3dff3f6a8e2e (opens in a new tab)">https://medium.com/@n4ru/the-definitive-t430-modding-guide-3dff3f6a8e2e</a></p>
<p>As nice accessory I
have ThinkPad Mini Dock Plus Series 3 that cradles the laptop nicely. </p>
<p>Currently working on upgrading to Windows 10 from Windows 7. As Lenovo does not support this OS the biggest challenge that I find here is with drivers and specifically the compatibility issues of NVIDIA Optimus. </p>
<p>Upgrade to windows 10</p>
<p>For warm up I’ve run few test installs and upgrades just to see how it
goes. Windows 10 upgrades from Windows 7 pretty good. Clean Installs hit the
issues with the NVIDA Optimus. Setup hangs and the only wat to continue is to use
the build in GPU in the CPU. If I switch to the discrete one Windows hangs. My decision
here was to go the upgrade path instead of the clean install. It transfers nearly
all my applications and settings also, use most of the drivers and works
generally well for me. As Windows 10 is not officially supported on T 420 and I
don’t want to hunt for driver updates manually I’ve used Driver Genius. Also
look at Driver Booster but as previously had experience with the former it wins.
Honestly, I don’t want an app that will offer me new drivers just because it is
expected to prove it’s value. </p>
<p>After the migration my default Administrative Shares were gone. Have to
modify the registry as described there to make them work again:</p>
<p style="text-align:center"><a href="https://tommynation.com/enable-remote-access-administrative-shares-windows-10/" target="_blank" rel="noreferrer noopener" aria-label="How To Enable Remote Access To Administrative Shares in Windows 10 (opens in a new tab)">How To Enable Remote Access To Administrative Shares in Windows 10</a></p>
<p>A pretty good explanation of the Optimus settings can be found here:</p>
<p style="text-align:center"><a href="https://nvidia.custhelp.com/app/answers/detail/a_id/2615/kw/optimus/related/1" target="_blank" rel="noreferrer noopener" aria-label="How do I customize Optimus profiles and settings? (opens in a new tab)">How do I customize Optimus profiles and settings?</a></p>
<p>Please note that you can choose a graphic processor per application. I
had some crazy problems with Office 365 apps that were just a black screen in
RDP. It took me some time to figure out that 32-bit application does not paly
well with Optimus. I’ve had to reinstall off Office application 64-bit. This fixed
the issue and now all applications work fine over RDP. </p>
<p>After the migration Visual Studio 2019 gives me some errors but after
repair all is fixed up. </p>
<p>I needed Docker Desktop mostly for windows containers. It was huge and unpleasant
surprise that VMWare Workstation stopped working after Docker Desktop
installation. </p>
<p>The error is very well described here:</p>
<p style="text-align:center"><a href="https://stackoverflow.com/questions/39858200/vmware-workstation-and-device-credential-guard-are-not-compatible" target="_blank" rel="noreferrer noopener" aria-label="VMware Workstation and Device/Credential Guard are not compatible (opens in a new tab)">VMware Workstation and Device/Credential Guard are not compatible</a></p>
<p>As Docker Desktop
uses Hyper-V, I have to sacrifice VMWare Workstation. It was hard decision and but
for the moment containers outweigh VMs. Hope in future I will be able to use
VMWare Workstation and Docker Desktop (Windows Container) in parallel. </p>
<p>In summary my laptop is up to date with maxed hardware specs and latest OS and applications. I’m pretty happy with the result and the performance. It totally was worth the time, money and effort for updating this machine. Hope you liked it.</p>
</div>
<footer class="entry-footer"><span class="cat-links">Posted in <a href="https://blog.stefcho.eu/category/technical/" rel="category tag">Technical</a></span><span class="tags-links">Tagged <a href="https://blog.stefcho.eu/tag/lenovo/" rel="tag">Lenovo</a>, <a href="https://blog.stefcho.eu/tag/t420/" rel="tag">T420</a>, <a href="https://blog.stefcho.eu/tag/thinkpad/" rel="tag">ThinkPad</a></span> </footer></article><article id="post-1313" class="entry post-1313 post type-post status-publish format-standard hentry category-technical tag-aes-ni tag-pfsense-2-5"><header class="entry-header"><h2 class="entry-title"><a href="https://blog.stefcho.eu/pfsense-2-5-0-development-snapshots-now-available/" rel="bookmark">pfSense 2.5.0 Development Snapshots Now Available</a></h2> <div class="entry-meta">
<span class="posted-on">Posted on <time class="entry-date published" datetime="2019-03-22T14:09:15+02:00">22/03/2019</time> - <time class="updated" datetime="2019-03-22T14:09:17+02:00">22/03/2019</time></span><span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://blog.stefcho.eu/author/darko/">Stefan</a></span></span> </div>
</header><div class="entry-content">
<p>A news from the netgate blog with week reveal more details about the upcoming pfSense 2.5.0 build. <br>You can check is in details <a rel="noreferrer noopener" aria-label="pfSense 2.5.0 Development Snapshots Now Available (opens in a new tab)" href="https://www.netgate.com/blog/pfsense-2-5-0-development-snapshots-now-available.html" target="_blank">pfSense 2.5.0 Development Snapshots Now Available</a></p>
<p>The most interesting part for me is:</p>
<blockquote class="wp-block-quote"><p>AES-NI Not Required<br> The original plan was to include a RESTCONF API in pfSense 2.5.0, which for security reasons would have required hardware AES-NI or equivalent support. Plans have since changed, and pfSense 2.5.0 does not contain the planned RESTCONF API, thus pfSense 2.5.0 will not require AES-NI.</p></blockquote>
<p>This will allow broader range of hardware to be able to run this new version. </p>
<p>There is a comprehensive list of new features and changes <br><br><a rel="noreferrer noopener" aria-label="2.5.0 New Features and Changes (opens in a new tab)" href="https://docs.netgate.com/pfsense/en/latest/releases/2-5-0-new-features-and-changes.html" target="_blank">2.5.0 New Features and Changes</a></p>
</div>
<footer class="entry-footer"><span class="cat-links">Posted in <a href="https://blog.stefcho.eu/category/technical/" rel="category tag">Technical</a></span><span class="tags-links">Tagged <a href="https://blog.stefcho.eu/tag/aes-ni/" rel="tag">AES-NI</a>, <a href="https://blog.stefcho.eu/tag/pfsense-2-5/" rel="tag">pfSense 2.5</a></span> </footer></article><article id="post-1277" class="entry post-1277 post type-post status-publish format-standard hentry category-technical tag-aes-ni tag-pfsense tag-qotom"><header class="entry-header"><h2 class="entry-title"><a href="https://blog.stefcho.eu/pfsense-one-last-time/" rel="bookmark">pfSense One Last Time</a></h2> <div class="entry-meta">
<span class="posted-on">Posted on <time class="entry-date published" datetime="2019-03-17T12:41:33+02:00">17/03/2019</time> - <time class="updated" datetime="2019-03-17T12:41:35+02:00">17/03/2019</time></span><span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://blog.stefcho.eu/author/darko/">Stefan</a></span></span> </div>
</header><div class="entry-content">
<p>I’ve built my first pfSense router almost a decade ago. Fun fact is that the device is still working flawlessly, Alix2d13 is a beast. At that time 100 Mbps was more than enough compared to the offerings of the ISPs. Fast forward ten years, my WAN links are above this speed. CPU and RAM combined with the embedded architecture impose heavy limitations on the plugin options.<br><br>Still remember the time when equipped with console cable hooked to the Alix running pfSense v 1.2.2. Holding tight to my hard copy of <em>pfSense The Definitive Guide to the Open Source Firewall and Router Distribution</em> Book. I’ve typed on the terminal. These days are long gone. <br><br>Currently running on a Dual Core Intel CPU with 8 GB RAM and SSD, pfSense is v 2.4.4. The book is freely available online. It makes very little sense to me writing tutorials on how to do this and that any more. The only exception are some obscure cases that are rare and sharing them will be mutually beneficial. <br><br>In retrospective PfSense has gone a long way for the past 9 years. The project changed hands and lost some of its founding father. These changes steered the project in a direction that is not so much to my liking. To get a taste please review the following quotes: <br><br><a rel="noreferrer noopener" aria-label="pfSense 2.5 and AES-NI (opens in a new tab)" href="https://www.netgate.com/blog/pfsense-2-5-and-aes-ni.html" target="_blank">pfSense 2.5 and AES-NI</a></p>
<blockquote class="wp-block-quote"><p>pfSense version 2.5 will be based on FreeBSD 12, which should bring route-based IPsec, along with support for our integrated management platform, NRDM (more about this soon), and a number of other features.</p><p>With the increasing ubiquity of computing devices permeating all areas of our lives at work and at home, the need for encryption has become more important than ever. Desktops, laptops, smart phones, tablets, and many other devices all share this need to be able to encrypt sensitive information. Without encryption, everything you send over a network (or even store on a local storage device) is in the open, for anyone to read anytime he wants to read or even change it.</p><p>While we’re not revealing the extent of our plans, we do want to give early notice that, in order to support the increased cryptographic loads that we see as part of pfSense version 2.5, pfSense Community Edition version 2.5 will include a requirement that the CPU supports AES-NI. On ARM-based systems, the additional load from AES operations will be offloaded to on-die cryptographic accelerators, such as the one found on our SG-1000. ARM v8 CPUs include instructions like AES-NI that can be used to increase performance of the AES algorithm on these platforms.<br></p><p>The AES-NI instruction set extensions are used to optimize encryption and decryption algorithms on select Intel and AMD processors. Intel announced AES-NI in 2008 and released supported CPUs late 2010 with the Westmere architecture. AMD announced and shipped AES-NI support in 2010, starting with Bulldozer.</p><p>Please remember these requirements when you are considering components for your pfSense system.</p></blockquote>
<p><a href="https://www.netgate.com/blog/more-on-aes-ni.html" target="_blank" rel="noreferrer noopener" aria-label="More on AES-NI (opens in a new tab)">More on AES-NI</a></p>
<blockquote class="wp-block-quote"><p>There have been some concerns expressed about the requirement for AES-NI (or other offload) with pfSense 2.5, as announced two days ago.</p><p>Some complained that, since they don’t use VPN, they don’t need AES-NI. While I wasn’t quite ready to say more about the “3.0” effort, it is the reason for the new requirement for pfSense 2.5 and beyond.</p><p>With AES you either design, test, and verify a bitslice software implementation, (giving up a lot of performance in the process), leverage hardware offloads, or leave the resulting system open to several known attacks. We have selected the “leverage hardware offloads” path. The other two options are either unthinkable, or involve a lot of effort for diminishing returns.</p><p>So why the requirement?</p><p>Future versions of pfSense have a new management model. We’re leveraging YANG, via RESTCONF.</p><p>The webGUI will be present either on our cloud service or on-device, both talking to the ‘back-end’ (written in ‘C’) on the device via a RESTCONF interface. This is just as I said back in February 2015.</p><p>We’re leveraging AES-GCM inside TLS as the transport layer, because RFC 7525 REQUIRES it, and the RESTCONF standard, RFC 8040, says RFC 7525 is a SHOULD.</p><p>AES-GCM in particular has problems with side-channel attacks on pure software implementations. ChaCha20, which nicely avoids these issues when in software, isn’t an option. This is because: a) it’s not RFC-compliant, and b) there are currently no acceleration offloads for it, and the situation is that there could be thousands, or tens of thousands of pfSense instances hitting a single (clustered) instance of our cloud management platform.</p><p>So the choice is either to design, engineer and release a less-than-strong product, or require AES-NI or other offloads.</p><p>The entire PHP layer is being eliminated in the “3.0” effort, and we’re simply too small to continue to maintain both the current, organically-grown PHP layer (100K lines of PHP in 200 files) and the new, pure JS GUI (client) architected as a single page web application.</p><p>So there is an excellent chance that pfSense 2.5 will use the new webGUI, talking to our RESTCONF back-end.</p><p>As should be obvious by now, this isn’t about VPN.</p></blockquote>
<p><a href="https://www.netgate.com/blog/its-still-free-to-use.html" target="_blank" rel="noreferrer noopener" aria-label="It’s Still Free to Use (opens in a new tab)">It’s Still Free to Use</a></p>
<blockquote class="wp-block-quote"><p>If you’ve been testing 2.4 snapshots and updates, you’ve already seen a lot of new features. You have probably also seen a new pop-up in the webGUI.</p><p>Trademark Policy pop-up<br>While the pop-up is new, the message isn’t. On January 27, 2017 we posted a blog Announcing a new trademark policy for pfSense. This pop-up is a simple reminder that ensures everyone sees and acknowledges the trademark policy. </p></blockquote>
<div class="wp-block-image"><figure class="aligncenter"><img src="https://www.netgate.com/assets/img/blog/2017/pop-up.jpg" alt=""></figure></div>
<blockquote class="wp-block-quote"><p>For our end users and customers, nothing has changed. pfSense Community Edition (CE) remains a free and open product available for your personal or business use. This is true if you buy hardware from us or not. This notice addresses those who take pfSense CE and sell it, infringing our policy while not giving back to the project and directly competing with Netgate.</p><p>At Netgate, we engineer, build, test, and give pfSense software to the community for free. Accepting the pop-up affirms your agreement and right to use, but not sell, pfSense software. </p></blockquote>
<p></p>
<p>After reading these articles and looking at my old faithful Alix. It is time to look for alternatives. One possibility is <a href="https://opnsense.org/" target="_blank" rel="noreferrer noopener" aria-label="OPNsense (opens in a new tab)">OPNsense</a></p>
<div class="wp-block-image"><figure class="aligncenter"><img src="https://opnsense.org/wp-content/themes/OPNsense/assets/img/250x50xopnsense.png.pagespeed.ic.T0VFZY72q3.webp" alt=""></figure></div>
<p>These two articles condense a long story, hope you find them informative:<br>I’ll share just a small quotes from them. </p>
<p><a rel="noreferrer noopener" href="https://trickey.io/posts/opn-vs-pf/" target="_blank">OPN VS. PF</a><br></p>
<blockquote class="wp-block-quote"><p> OPNSense is a fork of PFSense, and PFSense is itself a fork of m0n0wall. </p></blockquote>
<p><br>The story gets even more interesting: <br><a rel="noreferrer noopener" aria-label="Building a BSD home router (pt. 6): pfSense vs. OPNsens (opens in a new tab)" href="https://eerielinux.wordpress.com/2017/06/25/building-a-bsd-home-router-pt-6-pfsense-vs-opnsense/" target="_blank">Building a BSD home router (pt. 6): pfSense vs. OPNsens</a></p>
<blockquote class="wp-block-quote"><p> <br>Once upon a time… in 2003 there was a new firewall OS called m0n0wall. Manuel Kasper had built it on a stripped down version of FreeBSD. There had been small firewalls before, but Kasper’s innovation was to put a Web GUI on top of it so that the firewall’s settings could be controlled from the browser! It did not take long and m0n0wall took the world by storm. However Kasper’s project focused on embedded hardware. So only a while later a fork was created which geared towards more powerful hardware. The fork’s name? You’ve guessed it: pfSense. In 2015 Manuel Kasper officially ended the m0n0wall project (because recent versions of FreeBSD had been grown too big to be easily usable for what he did with it in the past). And guess what he did: He gave <a href="https://opnsense.org/m0n0wall">his official blessing</a> and recommends to migrate to and support OPNsense! </p></blockquote>
<p>So if I want to go with pfSense I need to get a box with CPU supporting these AES-NI instructions. For this either get a branded box or build one on my own. Naturally I’ve chosen the latter. </p>
<p>In selecting the box I have to thank to the great members of the community forum of pfSense. <br><a rel="noreferrer noopener" aria-label="Alternative to Qotom Q190G4 with AES-NI? (opens in a new tab)" href="https://forum.netgate.com/topic/115489/alternative-to-qotom-q190g4-with-aes-ni" target="_blank">Alternative to Qotom Q190G4 with AES-NI?</a></p>
<p>My choice of box is this quiet beast:</p>
<p><a href="https://www.aliexpress.com/item/QOTOM-4-LAN-Mini-PC-with-Core-i3-4005U-i5-5250U-processor-and-4-Gigabit-NIC/32812678037.html" target="_blank" rel="noreferrer noopener" aria-label="QOTOM 4 LAN Mini PC with Core i3-4005U / i5-5250U processor and 4 Gigabit NIC, support AES-NI, Serial, Fanless Mini PC pfSense (opens in a new tab)">QOTOM 4 LAN Mini PC with Core i3-4005U / i5-5250U processor and 4 Gigabit NIC, support AES-NI, Serial, Fanless Mini PC pfSense</a></p>
<p>Product properties: i5-5250U, 8G RAM, 128G SSD + Q355G4 WIFI $ 350.42 </p>
<figure class="wp-block-image"><img src="https://ae01.alicdn.com/kf/HTB1jItsKH2pK1RjSZFsq6yNlXXaV/QOTOM-Pfsense-Mini-PC-with-Core-i3-i5-i7-processor-and-4-Gigabit-NICs-support-AES.jpg" alt=""></figure><p>The fan less design combined with the SSD makes the operation completely silent. It keeps a steady 50 C temperature, with average CPU usage of 1-4 % and consumes only 7 – 10 % of the memory. My hopes are that this will serve me for at least the next 10 years. As it is x86 architecture my choice of OS dramatically widens leaving the door open to experiments with whatever comes to my mind.</p>
</div>
<footer class="entry-footer"><span class="cat-links">Posted in <a href="https://blog.stefcho.eu/category/technical/" rel="category tag">Technical</a></span><span class="tags-links">Tagged <a href="https://blog.stefcho.eu/tag/aes-ni/" rel="tag">AES-NI</a>, <a href="https://blog.stefcho.eu/tag/pfsense/" rel="tag">pfSense</a>, <a href="https://blog.stefcho.eu/tag/qotom/" rel="tag">Qotom</a></span> </footer></article><article id="post-1226" class="entry post-1226 post type-post status-publish format-standard hentry category-technical tag-dual-wan tag-https tag-pfsense"><header class="entry-header"><h2 class="entry-title"><a href="https://blog.stefcho.eu/multi-wan-with-pfsense-https-sites-issue/" rel="bookmark">Multi-WAN with pfSense HTTPs Sites Issue</a></h2> <div class="entry-meta">
<span class="posted-on">Posted on <time class="entry-date published" datetime="2019-03-09T13:33:53+02:00">09/03/2019</time> - <time class="updated" datetime="2019-03-09T13:33:55+02:00">09/03/2019</time></span><span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://blog.stefcho.eu/author/darko/">Stefan</a></span></span> </div>
</header><div class="entry-content">
<p>I’ve been running pfSense in Dual WAN mode for more than a decade. Unfortunately, some sites lately are quite sensitive per user session originating from multiple public IP addresses. The best description of the problem is from the official pfSense documentation:</p>
<blockquote class="wp-block-quote"><p>Some websites store session information including the client IP address, and if a subsequent connection to that site is routed out a different WAN interface using a different public IP address, the website will not function properly. This is becoming more common with banks and other security-minded sites. The suggested means of working around this is to create a failover group and direct traffic destined to these sites to the failover group rather than a load balancing group. Alternately, perform failover for all HTTPS traffic.</p><p>The sticky connections feature of pf is intended to resolve this problem, but it has historically been problematic. It is safe to use, and should alleviate this, but there is also a downside to using the sticky option. When using sticky connections, an association is held between the client IP address and a given gateway, it is not based off of the destination. When the sticky connections option is enabled, any given client would not load balance its connections between multiple WANs, but it would be associated with whichever gateway it happened to use for its first connection. Once all of the client states have expired, the client may exit a different WAN for its next connection, resulting in a new gateway pairing.</p></blockquote>
<p style="text-align:right"><a href="https://docs.netgate.com/pfsense/en/latest/book/multiwan/load-balancing-and-failover.html#problems-with-load-balancing" target="_blank" rel="noreferrer noopener" aria-label="Problems with Load Balancing (opens in a new tab)">Problems with Load Balancing</a></p>
<p><br>After some testing and consideration let’s leave the sticky connections unchecked. As mentioned above they are problematic. </p>
<figure class="wp-block-image"><a href="https://blog.stefcho.eu/wp-content/uploads/2019/03/GUI_Use_sticky_connections.png" target="_blank" rel="noreferrer noopener"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/GUI_Use_sticky_connections-1024x206.png" alt="" class="wp-image-1248" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/GUI_Use_sticky_connections-1024x206.png 1024w,https://blog.stefcho.eu/wp-content/uploads/2019/03/GUI_Use_sticky_connections-300x60.png 300w,https://blog.stefcho.eu/wp-content/uploads/2019/03/GUI_Use_sticky_connections-768x154.png 768w,https://blog.stefcho.eu/wp-content/uploads/2019/03/GUI_Use_sticky_connections.png 1146w" sizes="(max-width: 1024px) 100vw, 1024px"></a></figure><figure class="wp-block-image"><a href="https://blog.stefcho.eu/wp-content/uploads/2019/03/pfSense_HangOuts_Slide-1024x779.png" target="_blank" rel="noreferrer noopener"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/pfSense_HangOuts_Slide-1024x779.png" alt="" class="wp-image-1241"></a></figure><p>Other description of the problem here: </p>
<blockquote class="wp-block-quote"><p>Some websites do not work properly if requests from the LAN are initiated from multiple public IP addresses. Hence load balancing is incompatible with these sites. Common examples are sites that maintain login sessions, most frequently online banking. This is most commonly observed with HTTPS sites so usually HTTPS should not be load balanced. Occasionally it is a problem with HTTP sites that maintain session, but this is rare. </p><p>For sites that do not function with load balancing, add firewall rules to not load balance traffic to these destinations or protocols. </p></blockquote>
<p style="text-align:right"><a href="https://docs.netgate.com/pfsense/en/latest/routing/multi-wan-compatibility.html?web-site-incompatibility-with-changing-ip-addresses#web-site-incompatibility-with-changing-ip-addresses" target="_blank" rel="noreferrer noopener" aria-label="Web site incompatibility with changing IP addresses (opens in a new tab)">Web site incompatibility with changing IP addresses</a></p>
<p><br>To alleviate this issue, you can do the following:<br><br>Here are my two Gateways</p>
<figure class="wp-block-image"><a href="https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateways.png" target="_blank" rel="noreferrer noopener"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateways-1024x217.png" alt="" class="wp-image-1247" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateways-1024x217.png 1024w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateways-300x64.png 300w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateways-768x163.png 768w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateways.png 1145w" sizes="(max-width: 1024px) 100vw, 1024px"></a><figcaption><br></figcaption></figure><p>Make two Gateway
Groups</p>
<figure class="wp-block-image"><a href="https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateway-Groups.png" target="_blank" rel="noreferrer noopener"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateway-Groups-1024x316.png" alt="" class="wp-image-1246" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateway-Groups-1024x316.png 1024w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateway-Groups-300x93.png 300w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateway-Groups-768x237.png 768w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Gateway-Groups.png 1147w" sizes="(max-width: 1024px) 100vw, 1024px"></a></figure><p>One for Load Balancing<br><br>Set for both Gateways Tier 1 </p>
<figure class="wp-block-image"><a href="https://blog.stefcho.eu/wp-content/uploads/2019/03/LoadBalanced-WANs.png" target="_blank" rel="noreferrer noopener"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/LoadBalanced-WANs-1024x526.png" alt="" class="wp-image-1249" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/LoadBalanced-WANs-1024x526.png 1024w,https://blog.stefcho.eu/wp-content/uploads/2019/03/LoadBalanced-WANs-300x154.png 300w,https://blog.stefcho.eu/wp-content/uploads/2019/03/LoadBalanced-WANs-768x394.png 768w,https://blog.stefcho.eu/wp-content/uploads/2019/03/LoadBalanced-WANs.png 1151w" sizes="(max-width: 1024px) 100vw, 1024px"></a></figure><p>One for Failover<br><br>Set Tire1 for the one and Tier 2 for the second </p>
<figure class="wp-block-image"><a href="https://blog.stefcho.eu/wp-content/uploads/2019/03/FailOver-WANs.png" target="_blank" rel="noreferrer noopener"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/FailOver-WANs-1024x528.png" alt="" class="wp-image-1245" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/FailOver-WANs-1024x528.png 1024w,https://blog.stefcho.eu/wp-content/uploads/2019/03/FailOver-WANs-300x155.png 300w,https://blog.stefcho.eu/wp-content/uploads/2019/03/FailOver-WANs-768x396.png 768w,https://blog.stefcho.eu/wp-content/uploads/2019/03/FailOver-WANs.png 1143w" sizes="(max-width: 1024px) 100vw, 1024px"></a></figure><p>Go to the LAN Rules</p>
<figure class="wp-block-image"><a href="https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN.png" target="_blank" rel="noreferrer noopener"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN-1024x336.png" alt="" class="wp-image-1251" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN-1024x336.png 1024w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN-300x99.png 300w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN-768x252.png 768w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN.png 1154w" sizes="(max-width: 1024px) 100vw, 1024px"></a></figure><p>Set the default LAN
rule to use the Load Balancing Gateway Group. </p>
<figure class="wp-block-image"><a href="https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_LB.png" target="_blank" rel="noreferrer noopener"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_LB-1024x904.png" alt="" class="wp-image-1253" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_LB-1024x904.png 1024w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_LB-300x265.png 300w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_LB-768x678.png 768w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_LB.png 1148w" sizes="(max-width: 1024px) 100vw, 1024px"></a></figure><p>Add new rule that will be valid only for HTTPS connection and set the Gateway to the Fail-over Gateway Group. </p>
<figure class="wp-block-image"><a href="https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_FOWAN_HTTPS-1.png" target="_blank" rel="noreferrer noopener"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_FOWAN_HTTPS-1-967x1024.png" alt="" class="wp-image-1273" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_FOWAN_HTTPS-1-967x1024.png 967w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_FOWAN_HTTPS-1-283x300.png 283w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_FOWAN_HTTPS-1-768x814.png 768w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Rules_LAN_FOWAN_HTTPS-1.png 1147w" sizes="(max-width: 967px) 100vw, 967px"></a></figure><p>This way all HTTPS
connections will pass through the First WAN until it goes down and failover to the
Second.
The alternative is to make
separate rule for each and every HTTPS site with issues. The rule will be very
similar to the one for HTTPS. The difference will be that Destination address will
be single Public IP. Doing so will load balance all other HTTPS connection that
don’t have this problem.
</p>
</div>
<footer class="entry-footer"><span class="cat-links">Posted in <a href="https://blog.stefcho.eu/category/technical/" rel="category tag">Technical</a></span><span class="tags-links">Tagged <a href="https://blog.stefcho.eu/tag/dual-wan/" rel="tag">Dual-WAN</a>, <a href="https://blog.stefcho.eu/tag/https/" rel="tag">HTTPS</a>, <a href="https://blog.stefcho.eu/tag/pfsense/" rel="tag">pfSense</a></span> </footer></article><article id="post-1174" class="entry post-1174 post type-post status-publish format-standard hentry category-technical tag-azure tag-docker tag-mysql tag-raspberry-pi tag-wordpress"><header class="entry-header"><h2 class="entry-title"><a href="https://blog.stefcho.eu/my-blog-new-home/" rel="bookmark">My blog new home</a></h2> <div class="entry-meta">
<span class="posted-on">Posted on <time class="entry-date published" datetime="2019-03-05T14:03:39+02:00">05/03/2019</time> - <time class="updated" datetime="2019-03-05T14:03:41+02:00">05/03/2019</time></span><span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://blog.stefcho.eu/author/darko/">Stefan</a></span></span> </div>
</header><div class="entry-content">
<p><strong>Introduction</strong><br>Hello everyone. I’ve been running this blog for 9 years now. In 2010 there were very few options to host WordPress site. The blog was hosted in one local provider up until its acquisition by another company two years ago. This pushed me to move. At that time, I was experimenting with Azure and the natural choice of service was an Azure Web App with WordPress template. </p>
<div class="wp-block-image"><figure class="aligncenter"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/WordPress-on-Linux-on-Azure.png" alt="" class="wp-image-1177"><figcaption><br></figcaption></figure></div>
<p>The platform is packed with settings that you can tweak. Unfortunately, the prices are targeted at enterprise customers and were too steep for a small site like mine. <br>Recently a friend of mine mentioned the Static Site Generators. I’ve investigated the topic and it appeared quite an interesting concept. For my purposes this solution fits well as most of my content is static. Thanks to GDPR I had to close all comments and feedback options, which made the site even more static. On the positive side not having to worry about PHP and MySQL out in the wild sounds very a pleasing. </p>
<p><strong>Static Site Generators Research</strong><br>After reviewing a couple of solutions, the idea to use WordPress as a Static Site Generators begin to take shape. This could be achieved by employing Plugins. The ones that I’m currently experimenting with are: <br><a rel="noreferrer noopener" aria-label="Simply Static (opens in a new tab)" href="https://wordpress.org/plugins/simply-static/" target="_blank">Simply Static</a><br><a rel="noreferrer noopener" aria-label="WP2Static (opens in a new tab)" href="https://wordpress.org/plugins/static-html-output-plugin/" target="_blank">WP2Static</a><br> Each has some very strong features. But I still haven’t decided which one to keep. <br> Simply Static has great Diagnostics that helped me troubleshoot some issues. Offering streamlined interface with essential options. While WP2Static gives more control over the crawling and processing with valuable options to clean up some garbage from the output pages. <br> They both produced archives containing the static content, WP2Static can even be configured to push it directly to GitHub repository. </p>
<p><strong>Web Hosting</strong><br>Either way I have a static version of my site now. The next hurdle is where to store the files? <br>I don’t want to host it On-Premise as this will require a lot of additional time and effort. As the Cloud options are so many, let’s narrow it down to Static Websites on Azure Storage and GitHub for simplicity sake. <br>Ever since I’ve read about the Static Websites in Azure, I really wanted to try it with something. Now having the content experiments can commence. My inspiration came from this article <a rel="noreferrer noopener" aria-label="Static websites on Azure Storage now generally available (opens in a new tab)" href="https://azure.microsoft.com/en-us/blog/static-websites-on-azure-storage-now-generally-available/" target="_blank">Static websites on Azure Storage now generally available</a><br> Price for storing content and data transfers charges would be low in my case. SSL is requirement but it is not directly offered from Static Websites. I need Azure CDN in front to get the desired feature. This will incur additional cost and complexity for just one simple static site served over HTTPs. <br>For Web Apps there is a Azure Let’s Encrypt Extension that is a pretty useful solution to automatically renew the SSL Certificate. <br><br>This tilted the table in favour of GitHub. There are no taxes for storing publicly accessible content and it automatically takes care of the SSL Certificate provisioning and renewal. For the moment GitHub wins. <br></p>
<p><strong>WordPress Hosting</strong><br> Now that I have the generation and web hosting covered. The last obstacle is where to keep my Static Content Generating WordPress instance? <br><br><em> Cloud:</em><br><em>WordPress.com</em> – good starting point. But pretty much the same. You get a free WordPress instance somewhere out there. Not my ideal solution. </p>
<div class="wp-block-image"><figure class="aligncenter"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/aci_logo.png" alt="" class="wp-image-1224" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/aci_logo.png 230w,https://blog.stefcho.eu/wp-content/uploads/2019/03/aci_logo-150x150.png 150w,https://blog.stefcho.eu/wp-content/uploads/2019/03/aci_logo-144x144.png 144w" sizes="(max-width: 230px) 100vw, 230px"></figure></div>
<p> <em>Azure Containers Instance</em> – recently I have experiment with this service. It is perfectly suited to quickly get up and running a bunch of containers. Get the job done and destroy them. There is a ready-made template to build two containers solution for WordPress here: <a rel="noreferrer noopener" aria-label="Create a WordPress site on a Container Instance (opens in a new tab)" href="https://github.com/Azure/azure-quickstart-templates/tree/master/201-aci-wordpress" target="_blank">Create a WordPress site on a Container Instance</a><br>My experience with the service is mostly positive. Bringing it up is easy. Getting data persistence requires modifying the template. The performance at the lowest tire was comparable to the once in Web App and insufficient from my perspective. <br><br><em>Local:</em><br> VM with docker containers – My first choice. Spun up Ubuntu server, quickly and easily installed docker and docker compose. As I felt generous at the time the VM had 4 CPU cores and 4 GB or RAM. Even on mechanical HDD, performance was Fantastic! I never knew that WordPress could feel so snappy! The downside is that I will not keep the VM running all the time and must start and stop it every time that I want to do something. <br></p>
<div class="wp-block-image"><figure class="alignleft is-resized"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/Raspberry-Pi.png" alt="" class="wp-image-1211" width="193" height="247" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/Raspberry-Pi.png 401w,https://blog.stefcho.eu/wp-content/uploads/2019/03/Raspberry-Pi-235x300.png 235w" sizes="(max-width: 193px) 100vw, 193px"></figure></div>
<div class="wp-block-image"><figure class="alignleft is-resized"><img src="https://blog.stefcho.eu/wp-content/uploads/2019/03/docker-logo-png-transparent-1024x860.png" alt="" class="wp-image-1206" width="279" height="234" srcset="https://blog.stefcho.eu/wp-content/uploads/2019/03/docker-logo-png-transparent-1024x860.png 1024w,https://blog.stefcho.eu/wp-content/uploads/2019/03/docker-logo-png-transparent-300x252.png 300w,https://blog.stefcho.eu/wp-content/uploads/2019/03/docker-logo-png-transparent-768x645.png 768w" sizes="(max-width: 279px) 100vw, 279px"></figure></div>
<p><br><br><br><br><br><br><br><br><br><br><br><br><br> RPI with docker containers – As I have a Raspberry Pi humming in the background. This is a preferable alternative to a full blown VM. I’ve managed to install docker and docker compose relatively easy using as a starting point this article: <a rel="noreferrer noopener" aria-label="The easy way to set up Docker on a Raspberry Pi (opens in a new tab)" href="https://medium.freecodecamp.org/the-easy-way-to-set-up-docker-on-a-raspberry-pi-7d24ced073ef" target="_blank">The easy way to set up Docker on a Raspberry Pi </a>and <a rel="noreferrer noopener" aria-label="HOW TO RUN DOCKER AND DOCKER-COMPOSE ON RASPBIAN (opens in a new tab)" href="https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/" target="_blank">HOW TO RUN DOCKER AND DOCKER-COMPOSE ON RASPBIAN</a><br><br>To my unpleasant surprise there is NO official MySQL image for ARM, Really!? Check this article: <a rel="noreferrer noopener" href="https://bugs.mysql.com/bug.php?id=86501%20https://scito.ch/content/mysql-57-docker-container-raspberry-pi-using-debian-sid" target="_blank">Install mysql server-5.7 on ARMv8 architecture (raspberry pi 3 model B)</a><br>But there is one for <a rel="noreferrer noopener" href="https://hub.docker.com/_/wordpress" target="_blank">WordPress</a>. I’ve tried building one on my own and hit a lot of problems! As a temporary solution for the moment I’m using this image <a rel="noreferrer noopener" href="https://hub.docker.com/r/hypriot/rpi-mysql/" target="_blank">hypriot/rpi-mysql</a>. Works fine but holds MySQL 5.5 and my aim is 5.7. In near future I’ll look into it and if possible, build one image on my own. <br> Had a few hiccups with the persistent storage of data for both WordPress and MySQL containers, but got it right at the end. <br>Here is the content of my docker-compose file:<br></p>
<pre class="wp-block-code"><code>version: '3.7'
services:
db:
image: hypriot/rpi-mysql:latest
volumes:
- ./db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: [ROOTPASSWORD]
MYSQL_DATABASE: [DBNAME]
MYSQL_USER: [DBUSER]
MYSQL_PASSWORD: [DBPASSWORD]
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wp-content:/var/www/html:rw
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: [DBNAME]
WORDPRESS_DB_USER: [DBUSER]
WORDPRESS_DB_PASSWORD: [DBPASSWORD]
volumes:
db_data: {}
wp-content: {}</code></pre>
<p> Again, the performance is even more surprisingly good compared the cloud scenarios. Considering that it is run off a mechanical hard drive on a very humble 1.2GHz Quad and only 1 GB of RAM. </p>
<p><strong>Conclusion</strong><br>With this exercise I’ve managed to decrease the costs of hosting this blog to the bare minimum. Hosting costs are reduced to virtually free. The power costs for the Raspberry Pi are shared with other services and are negligible. <br> Compared with Azure Web App and it’s 20 Euros per month it is a feat! <br> My initial intention for this post was to be short and sweet, but it grew into something much larger. I was able to compress a few weeks of research and experiments into these few lines omitting a lot of problems crossed along the way. Hope you enjoy reading it. </p>
</div>
<footer class="entry-footer"><span class="cat-links">Posted in <a href="https://blog.stefcho.eu/category/technical/" rel="category tag">Technical</a></span><span class="tags-links">Tagged <a href="https://blog.stefcho.eu/tag/azure/" rel="tag">Azure</a>, <a href="https://blog.stefcho.eu/tag/docker/" rel="tag">Docker</a>, <a href="https://blog.stefcho.eu/tag/mysql/" rel="tag">MySQL</a>, <a href="https://blog.stefcho.eu/tag/raspberry-pi/" rel="tag">Raspberry Pi</a>, <a href="https://blog.stefcho.eu/tag/wordpress/" rel="tag">WordPress</a></span> </footer></article><article id="post-1164" class="entry post-1164 post type-post status-publish format-standard hentry category-technical tag-azure"><header class="entry-header"><h2 class="entry-title"><a href="https://blog.stefcho.eu/azure-architecture-useful-resources/" rel="bookmark">Azure Architecture Useful Resources</a></h2> <div class="entry-meta">
<span class="posted-on">Posted on <time class="entry-date published" datetime="2019-02-28T21:48:16+02:00">28/02/2019</time> - <time class="updated" datetime="2019-06-17T13:33:22+02:00">17/06/2019</time></span><span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://blog.stefcho.eu/author/darko/">Stefan</a></span></span> </div>
</header><div class="entry-content">
<p>I’ve collected a few useful resources and would like to share them with you. If you are into Azure Architecture these most probably will be quite useful. <br><br><a rel="noreferrer noopener" aria-label="Azure Architecture Center (opens in a new tab)" href="https://docs.microsoft.com/en-us/azure/architecture/" target="_blank">Azure Architecture Center</a> – Start Here <br><br><a rel="noreferrer noopener" aria-label="Azure Application Architecture Guide (opens in a new tab)" href="https://docs.microsoft.com/bg-bg/azure/architecture/guide/" target="_blank">Azure Application Architecture Guide</a> – This guide presents a structured approach for designing applications on Azure that are scalable, resilient, and highly available. It is based on proven practices that we have learned from customer engagements.<br><br><a rel="noreferrer noopener" aria-label="Azure Reference Architectures (opens in a new tab)" href="https://docs.microsoft.com/bg-bg/azure/architecture/reference-architectures/" target="_blank">Azure Reference Architectures</a> – Our reference architectures are arranged by scenario. Each architecture includes recommended practices, along with considerations for scalability, availability, manageability, and security. Most also include a deployable solution or reference implementation. <br><br><a rel="noreferrer noopener" aria-label="Azure Quickstart Templates (opens in a new tab)" href="https://azure.microsoft.com/en-us/resources/templates/" target="_blank">Azure Quickstart Templates</a> – Deploy Azure resources through the Azure Resource Manager with community contributed templates to get more done. Deploy, learn, fork and contribute back.<br><br><a rel="noreferrer noopener" aria-label="Cloud Design Patterns (opens in a new tab)" href="https://docs.microsoft.com/bg-bg/azure/architecture/patterns/" target="_blank">Cloud Design Patterns</a> – These design patterns are useful for building reliable, scalable, secure applications in the cloud.<br>Each pattern describes the problem that the pattern addresses, considerations for applying the pattern, and an example based on Microsoft Azure. Most of the patterns include code samples or snippets that show how to implement the pattern on Azure. However, most of the patterns are relevant to any distributed system, whether hosted on Azure or on other cloud platforms.<br><br><a rel="noreferrer noopener" aria-label="Microsoft patterns & practices (opens in a new tab)" href="https://github.com/mspnp" target="_blank">Microsoft patterns & practices</a> – We discover, collect, and encourage practices that bring joy to engineering software.<br><br><a rel="noreferrer noopener" aria-label="Introducing the Azure portal “how to” video series (opens in a new tab)" href="https://azure.microsoft.com/en-us/updates/introducing-the-azure-portal-how-to-video-series/" target="_blank">Introducing the Azure portal “how to” video series</a> – A new video weekly series highlights specific aspects of the Azure portal so you can be more efficient and productive while deploying your cloud workloads from the portal.</p>
<p><a rel="noreferrer noopener" aria-label="Azure Resource Explorer (opens in a new tab)" href="https://resources.azure.com/" target="_blank">Azure Resource Explorer</a> – Azure Resource Explorer is a new web site where you can easily discover the Azure Resource Management APIs, get API documentation, make actual API calls directly in your own subscriptions </p>
<p><a href="https://buildazure.com/2019/04/24/microsoft-cloud-workshops-free-microsoft-azure-hands-labs/" target="_blank" rel="noreferrer noopener" aria-label="Microsoft Cloud Workshops: Free Microsoft Azure Hands-on Lab Guides (opens in a new tab)">Microsoft Cloud Workshops: Free Microsoft Azure Hands-on Lab Guides</a> – The Microsoft Cloud Workshop (MCW) program maintains a number of Workshops that are used to train Microsoft’s own Cloud Solution Architects, as well as Microsoft Partners all over the world, how to use Microsoft Azure services. Currently there are a total of 36 Microsoft Cloud Workshops that cover a wide range of enterprise scenarios within Azure. These include Interest of Things (IoT), Blockchain, Cost Optimization, Cloud Migration, Microservices, Serverless, and much more!</p>
</div>
<footer class="entry-footer"><span class="cat-links">Posted in <a href="https://blog.stefcho.eu/category/technical/" rel="category tag">Technical</a></span><span class="tags-links">Tagged <a href="https://blog.stefcho.eu/tag/azure/" rel="tag">Azure</a></span> </footer></article><nav class="navigation posts-navigation" role="navigation" aria-label="Posts"><h2 class="screen-reader-text">Posts navigation</h2>
<div class="nav-links"><div class="nav-previous"><a href="https://blog.stefcho.eu/page/2/">Older posts</a></div></div>
</nav></main></div>
</div>
<div class="columns small-12 medium-4">
<aside id="secondary" class="widget-area" role="complementary"><section id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widget-title">Tags</h2><div class="tagcloud"><a href="https://blog.stefcho.eu/tag/adds/" class="tag-cloud-link tag-link-73 tag-link-position-1" style="font-size: 10.082644628099pt;" aria-label="ADDS (2 items)">ADDS</a>
<a href="https://blog.stefcho.eu/tag/aes-ni/" class="tag-cloud-link tag-link-114 tag-link-position-2" style="font-size: 10.082644628099pt;" aria-label="AES-NI (2 items)">AES-NI</a>
<a href="https://blog.stefcho.eu/tag/asterisk/" class="tag-cloud-link tag-link-55 tag-link-position-3" style="font-size: 10.082644628099pt;" aria-label="Asterisk (2 items)">Asterisk</a>
<a href="https://blog.stefcho.eu/tag/asus/" class="tag-cloud-link tag-link-60 tag-link-position-4" style="font-size: 11.471074380165pt;" aria-label="ASUS (3 items)">ASUS</a>
<a href="https://blog.stefcho.eu/tag/azure/" class="tag-cloud-link tag-link-94 tag-link-position-5" style="font-size: 13.553719008264pt;" aria-label="Azure (5 items)">Azure</a>
<a href="https://blog.stefcho.eu/tag/captive-portal/" class="tag-cloud-link tag-link-83 tag-link-position-6" style="font-size: 11.471074380165pt;" aria-label="Captive Portal (3 items)">Captive Portal</a>
<a href="https://blog.stefcho.eu/tag/cell-phone/" class="tag-cloud-link tag-link-64 tag-link-position-7" style="font-size: 8pt;" aria-label="Cell Phone (1 item)">Cell Phone</a>
<a href="https://blog.stefcho.eu/tag/centos/" class="tag-cloud-link tag-link-86 tag-link-position-8" style="font-size: 8pt;" aria-label="CentOS (1 item)">CentOS</a>
<a href="https://blog.stefcho.eu/tag/certification/" class="tag-cloud-link tag-link-105 tag-link-position-9" style="font-size: 10.082644628099pt;" aria-label="Certification (2 items)">Certification</a>
<a href="https://blog.stefcho.eu/tag/creative/" class="tag-cloud-link tag-link-66 tag-link-position-10" style="font-size: 10.082644628099pt;" aria-label="Creative (2 items)">Creative</a>
<a href="https://blog.stefcho.eu/tag/dd-wrt/" class="tag-cloud-link tag-link-57 tag-link-position-11" style="font-size: 14.363636363636pt;" aria-label="DD-WRT (6 items)">DD-WRT</a>
<a href="https://blog.stefcho.eu/tag/dns/" class="tag-cloud-link tag-link-92 tag-link-position-12" style="font-size: 8pt;" aria-label="DNS (1 item)">DNS</a>
<a href="https://blog.stefcho.eu/tag/hyper-v/" class="tag-cloud-link tag-link-67 tag-link-position-13" style="font-size: 12.628099173554pt;" aria-label="Hyper-V (4 items)">Hyper-V</a>
<a href="https://blog.stefcho.eu/tag/ldap/" class="tag-cloud-link tag-link-74 tag-link-position-14" style="font-size: 10.082644628099pt;" aria-label="LDAP (2 items)">LDAP</a>
<a href="https://blog.stefcho.eu/tag/learning/" class="tag-cloud-link tag-link-102 tag-link-position-15" style="font-size: 10.082644628099pt;" aria-label="Learning (2 items)">Learning</a>
<a href="https://blog.stefcho.eu/tag/linksys/" class="tag-cloud-link tag-link-56 tag-link-position-16" style="font-size: 8pt;" aria-label="Linksys (1 item)">Linksys</a>
<a href="https://blog.stefcho.eu/tag/microsoft/" class="tag-cloud-link tag-link-63 tag-link-position-17" style="font-size: 11.471074380165pt;" aria-label="Microsoft (3 items)">Microsoft</a>
<a href="https://blog.stefcho.eu/tag/mikrotik-routerboard-rb250g/" class="tag-cloud-link tag-link-79 tag-link-position-18" style="font-size: 8pt;" aria-label="Mikrotik RouterBoard RB250G (1 item)">Mikrotik RouterBoard RB250G</a>
<a href="https://blog.stefcho.eu/tag/network/" class="tag-cloud-link tag-link-65 tag-link-position-19" style="font-size: 19.107438016529pt;" aria-label="Network (17 items)">Network</a>
<a href="https://blog.stefcho.eu/tag/openldap/" class="tag-cloud-link tag-link-87 tag-link-position-20" style="font-size: 8pt;" aria-label="OpenLDAP (1 item)">OpenLDAP</a>
<a href="https://blog.stefcho.eu/tag/openvpn/" class="tag-cloud-link tag-link-72 tag-link-position-21" style="font-size: 16.561983471074pt;" aria-label="OpenVPN (10 items)">OpenVPN</a>
<a href="https://blog.stefcho.eu/tag/openwrt/" class="tag-cloud-link tag-link-71 tag-link-position-22" style="font-size: 8pt;" aria-label="OpenWrt (1 item)">OpenWrt</a>
<a href="https://blog.stefcho.eu/tag/pfcenter/" class="tag-cloud-link tag-link-85 tag-link-position-23" style="font-size: 8pt;" aria-label="pfCenter (1 item)">pfCenter</a>
<a href="https://blog.stefcho.eu/tag/pfsemse/" class="tag-cloud-link tag-link-95 tag-link-position-24" style="font-size: 8pt;" aria-label="pfSemse (1 item)">pfSemse</a>
<a href="https://blog.stefcho.eu/tag/pfsense/" class="tag-cloud-link tag-link-61 tag-link-position-25" style="font-size: 22pt;" aria-label="pfSense (31 items)">pfSense</a>
<a href="https://blog.stefcho.eu/tag/pfsense-2-0-rc1/" class="tag-cloud-link tag-link-81 tag-link-position-26" style="font-size: 13.553719008264pt;" aria-label="pfSense 2.0 RC1 (5 items)">pfSense 2.0 RC1</a>
<a href="https://blog.stefcho.eu/tag/pfsense-2-0-rc3/" class="tag-cloud-link tag-link-84 tag-link-position-27" style="font-size: 14.363636363636pt;" aria-label="pfSense 2.0 RC3 (6 items)">pfSense 2.0 RC3</a>
<a href="https://blog.stefcho.eu/tag/pfsense-2-2/" class="tag-cloud-link tag-link-90 tag-link-position-28" style="font-size: 11.471074380165pt;" aria-label="pfSense 2.2 (3 items)">pfSense 2.2</a>
<a href="https://blog.stefcho.eu/tag/pki/" class="tag-cloud-link tag-link-77 tag-link-position-29" style="font-size: 10.082644628099pt;" aria-label="PKI (2 items)">PKI</a>
<a href="https://blog.stefcho.eu/tag/radius/" class="tag-cloud-link tag-link-75 tag-link-position-30" style="font-size: 10.082644628099pt;" aria-label="RADIUS (2 items)">RADIUS</a>
<a href="https://blog.stefcho.eu/tag/raspberry-pi/" class="tag-cloud-link tag-link-108 tag-link-position-31" style="font-size: 10.082644628099pt;" aria-label="Raspberry Pi (2 items)">Raspberry Pi</a>
<a href="https://blog.stefcho.eu/tag/routing/" class="tag-cloud-link tag-link-80 tag-link-position-32" style="font-size: 8pt;" aria-label="Routing (1 item)">Routing</a>
<a href="https://blog.stefcho.eu/tag/site-to-site/" class="tag-cloud-link tag-link-76 tag-link-position-33" style="font-size: 11.471074380165pt;" aria-label="Site To Site (3 items)">Site To Site</a>
<a href="https://blog.stefcho.eu/tag/technical/" class="tag-cloud-link tag-link-97 tag-link-position-34" style="font-size: 14.942148760331pt;" aria-label="Technical (7 items)">Technical</a>
<a href="https://blog.stefcho.eu/tag/uncategorized/" class="tag-cloud-link tag-link-96 tag-link-position-35" style="font-size: 8pt;" aria-label="Uncategorized (1 item)">Uncategorized</a>
<a href="https://blog.stefcho.eu/tag/vlan/" class="tag-cloud-link tag-link-78 tag-link-position-36" style="font-size: 8pt;" aria-label="VLAN (1 item)">VLAN</a>
<a href="https://blog.stefcho.eu/tag/vmware/" class="tag-cloud-link tag-link-62 tag-link-position-37" style="font-size: 14.942148760331pt;" aria-label="VMWare (7 items)">VMWare</a>
<a href="https://blog.stefcho.eu/tag/voip/" class="tag-cloud-link tag-link-59 tag-link-position-38" style="font-size: 10.082644628099pt;" aria-label="VoIP (2 items)">VoIP</a>
<a href="https://blog.stefcho.eu/tag/vyatta/" class="tag-cloud-link tag-link-70 tag-link-position-39" style="font-size: 8pt;" aria-label="Vyatta (1 item)">Vyatta</a>
<a href="https://blog.stefcho.eu/tag/web-sites/" class="tag-cloud-link tag-link-93 tag-link-position-40" style="font-size: 8pt;" aria-label="Web Sites (1 item)">Web Sites</a>
<a href="https://blog.stefcho.eu/tag/windows-server-8/" class="tag-cloud-link tag-link-88 tag-link-position-41" style="font-size: 8pt;" aria-label="Windows Server 8 (1 item)">Windows Server 8</a>
<a href="https://blog.stefcho.eu/tag/windows-server-2008-r2/" class="tag-cloud-link tag-link-68 tag-link-position-42" style="font-size: 12.628099173554pt;" aria-label="Windows Server 2008 R2 (4 items)">Windows Server 2008 R2</a>
<a href="https://blog.stefcho.eu/tag/windows-server-2012-r2/" class="tag-cloud-link tag-link-91 tag-link-position-43" style="font-size: 8pt;" aria-label="Windows Server 2012 R2 (1 item)">Windows Server 2012 R2</a>
<a href="https://blog.stefcho.eu/tag/wireless/" class="tag-cloud-link tag-link-82 tag-link-position-44" style="font-size: 8pt;" aria-label="Wireless (1 item)">Wireless</a>
<a href="https://blog.stefcho.eu/tag/workstation-8/" class="tag-cloud-link tag-link-89 tag-link-position-45" style="font-size: 8pt;" aria-label="Workstation 8 (1 item)">Workstation 8</a></div>
</section><section id="archives-3" class="widget widget_archive"><h2 class="widget-title">Archives</h2> <ul><li><a href="https://blog.stefcho.eu/2020/04/">April 2020</a></li>
<li><a href="https://blog.stefcho.eu/2019/07/">July 2019</a></li>
<li><a href="https://blog.stefcho.eu/2019/05/">May 2019</a></li>
<li><a href="https://blog.stefcho.eu/2019/03/">March 2019</a></li>
<li><a href="https://blog.stefcho.eu/2019/02/">February 2019</a></li>
<li><a href="https://blog.stefcho.eu/2018/10/">October 2018</a></li>
<li><a href="https://blog.stefcho.eu/2018/08/">August 2018</a></li>
<li><a href="https://blog.stefcho.eu/2016/03/">March 2016</a></li>
<li><a href="https://blog.stefcho.eu/2015/04/">April 2015</a></li>
<li><a href="https://blog.stefcho.eu/2015/03/">March 2015</a></li>
<li><a href="https://blog.stefcho.eu/2015/01/">January 2015</a></li>
<li><a href="https://blog.stefcho.eu/2012/02/">February 2012</a></li>
<li><a href="https://blog.stefcho.eu/2011/10/">October 2011</a></li>
<li><a href="https://blog.stefcho.eu/2011/09/">September 2011</a></li>
<li><a href="https://blog.stefcho.eu/2011/08/">August 2011</a></li>
<li><a href="https://blog.stefcho.eu/2011/07/">July 2011</a></li>
<li><a href="https://blog.stefcho.eu/2011/06/">June 2011</a></li>
<li><a href="https://blog.stefcho.eu/2011/05/">May 2011</a></li>
<li><a href="https://blog.stefcho.eu/2011/04/">April 2011</a></li>
<li><a href="https://blog.stefcho.eu/2011/03/">March 2011</a></li>
<li><a href="https://blog.stefcho.eu/2011/02/">February 2011</a></li>
<li><a href="https://blog.stefcho.eu/2010/07/">July 2010</a></li>
</ul></section><section id="custom_html-3" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:inline-block;width:160px;height:600px" data-ad-client="ca-pub-3838187216577892" data-ad-slot="5149186217"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div></section></aside></div>
</div>
</section></div>
<footer id="colophon" class="site-footer section-fullwidth" role="contentinfo"><div class="row">
<div class="columns small-12">
<div class="site-info">
<a href="https://wordpress.org/">Proudly powered by WordPress</a>
<span class="sep"> | </span>
Theme: micro, developed by <a href="http://devrix.com">DevriX</a>. </div>
</div>
</div>
</footer></div>
<script type="text/javascript" src="https://blog.stefcho.eu/wp-content/themes/micro/assets/scripts/bundle.min.js"></script><script type="text/javascript">
/* <![CDATA[ */
var wpgdprcData = {"ajaxURL":"https:\/\/blog.stefcho.eu\/wp-admin\/admin-ajax.php","ajaxSecurity":"16842c4f46","isMultisite":"","path":"\/","blogId":""};
/* ]]> */
</script><script type="text/javascript" src="https://blog.stefcho.eu/wp-content/plugins/wp-gdpr-compliance/assets/js/front.js"></script></body></html>