<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.2">Jekyll</generator><link href="https://www.vaskoz.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.vaskoz.com/" rel="alternate" type="text/html" /><updated>2022-04-21T15:54:47+00:00</updated><id>https://www.vaskoz.com/feed.xml</id><title type="html">Vasko Zdravevski</title><subtitle>I write about software, teams and leadership.
</subtitle><entry><title type="html">Github for Coding Interviews</title><link href="https://www.vaskoz.com/2021/07/22/github-coding-interview.html" rel="alternate" type="text/html" title="Github for Coding Interviews" /><published>2021-07-22T00:00:00+00:00</published><updated>2021-07-22T00:00:00+00:00</updated><id>https://www.vaskoz.com/2021/07/22/github-coding-interview</id><content type="html" xml:base="https://www.vaskoz.com/2021/07/22/github-coding-interview.html">&lt;p&gt;Many paid services exist to perform coding interviews, but they differ from actual coding environments. Instead of forcing job applicants into an unfamiliar service, why not use familiar tools to conduct the interview. An approach that works for me involves using Github to contribute a solution using their development environment. Another benefit is the simplicity of this approach.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Caveat:&lt;/strong&gt; every company I’ve worked with has used and supported OSS software. If your company isn’t as supportive, then this approach might not translate to your organization.&lt;/p&gt;

&lt;h1 id=&quot;setup-the-coding-interview-question&quot;&gt;Setup the coding interview question&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;Setup a private Github repo. (Free tier)&lt;/li&gt;
  &lt;li&gt;Work on whatever coding problem makes sense for your org.&lt;/li&gt;
  &lt;li&gt;Make this repository a Private Template by going into Settings.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;adminster-the-coding-interview-to-a-candidate&quot;&gt;Adminster the coding interview to a candidate&lt;/h1&gt;

&lt;p&gt;Only two(2) commands are necessary to administer the coding interview using Github. You only need one piece of information from the candidate: their Github username.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;gt; export GITHUB_USERNAME=applicantGithubUsername
&amp;gt; gh repo create --private --template myorg/coding-interview myorg/coding-interview-${GITHUB_USERNAME}
&amp;gt; gh api -XPUT repos/myorg/coding-interview-${GITHUB_USERNAME}/collaborators/${GITHUB_USERNAME}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;additional-benefits&quot;&gt;Additional benefits&lt;/h1&gt;

&lt;p&gt;Since Github doesn’t charge for unlimited private repositories, you can maintain each candidate’s environment and keep everything isolated. Separate repositories allow the candidate to create Issues and Pull Requests and use any other features they’d like.&lt;/p&gt;

&lt;p&gt;I’ve seen other companies use a similar approach, but they use a shared repository. The risk of a shared repo is that candidates can’t (or shouldn’t) create Pull Requests without leaking previous solutions to future applicants due to Github’s design. Repository owners can never delete Pull Requests.&lt;/p&gt;</content><author><name></name></author><summary type="html">Many paid services exist to perform coding interviews, but they differ from actual coding environments. Instead of forcing job applicants into an unfamiliar service, why not use familiar tools to conduct the interview. An approach that works for me involves using Github to contribute a solution using their development environment. Another benefit is the simplicity of this approach.</summary></entry><entry><title type="html">CKAD vs CKA</title><link href="https://www.vaskoz.com/2020/02/08/ckad-vs-cka.html" rel="alternate" type="text/html" title="CKAD vs CKA" /><published>2020-02-08T00:00:00+00:00</published><updated>2020-02-08T00:00:00+00:00</updated><id>https://www.vaskoz.com/2020/02/08/ckad-vs-cka</id><content type="html" xml:base="https://www.vaskoz.com/2020/02/08/ckad-vs-cka.html">&lt;p&gt;As part of my professional development this year, I decided to learn Kubernetes and motivate myself with a certification deadline to validate my efforts. Kubernetes is extremely popular and &lt;a href=&quot;https://enterprisersproject.com/article/2019/7/kubernetes-statistics-13-compelling&quot;&gt;continues to grow&lt;/a&gt; in adoption. I didn’t choose Kubernetes only because of its popularity; Kubernetes is also the primary deployment technology used by my current employer. These certifications provide an opportunity to learn Kubernetes at a more in-depth and more comprehensive level than day-to-day usage would allow. I decided to write this blog post to share my experiences taking both of these exams. My experience was the opposite of what I’ve observed in other blog posts describing testing experiences.&lt;/p&gt;

&lt;h1 id=&quot;ckad&quot;&gt;CKAD&lt;/h1&gt;

&lt;p&gt;I took the CKAD exam first because multiple blog posts described it as the “easier exam.” This certification exam gives 2 hours for the candidate to complete it. The passing score for this test is 66%. A lower passing score and a shorter time limit both seem to imply an exam with less content and stress, but the opposite is the truth. &lt;em&gt;I was very hurried for time on this exam, and I wasn’t able to reach all the questions. I scored an 85% because the last two problems were worth 7% and 8%.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youracclaim.com/badges/6a4064f2-5a48-4d14-b0e8-a5fa494da4eb/linked_in_profile&quot;&gt;CKAD Certification Credential Link&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;cka&quot;&gt;CKA&lt;/h1&gt;

&lt;p&gt;I fully expected this exam to be significantly harder than the CKAD. The passing score is 74% for a 3-hour test. The scope of the study material is far more significant, but the number of test questions was comparable. &lt;em&gt;I scored a perfect 100% on this exam with almost 1-hour remaining. I used another 10 minutes to review my answers and then ended the exam with 50 minutes to spare. I didn’t feel any time pressure on this exam whatsoever.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youracclaim.com/badges/c1dc9e6a-80ae-4a8b-a36b-bb381147cd7d/linked_in_profile&quot;&gt;CKA Certification Credential Link&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;test-preparation&quot;&gt;Test preparation&lt;/h1&gt;

&lt;p&gt;I purchased my certification voucher in a bundle with training classes from Linux Foundation. I took both LFD259 - Kubernetes For Developer and LFS258 - Kubernetes Fundamentals as preparation for the CKAD and CKA exams, respectively. For a little bonus study, I also purchased a Udemy course that included practice tests.&lt;/p&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;I wish I hadn’t worried so much about the CKA as opposed to the CKAD. I took the CKAD in December 2019 and studied for another month for the CKA. I overstudied for both exams. To others, I recommend studying for and taking the CKA first. Three hours is plenty of time for the CKA. If you decide to go for the CKAD afterward, I encourage you to review relevant study material and practice for speed. Two hours is tight for the CKAD exam, especially if you check all your answers before moving on to the next question.&lt;/p&gt;</content><author><name></name></author><summary type="html">As part of my professional development this year, I decided to learn Kubernetes and motivate myself with a certification deadline to validate my efforts. Kubernetes is extremely popular and continues to grow in adoption. I didn’t choose Kubernetes only because of its popularity; Kubernetes is also the primary deployment technology used by my current employer. These certifications provide an opportunity to learn Kubernetes at a more in-depth and more comprehensive level than day-to-day usage would allow. I decided to write this blog post to share my experiences taking both of these exams. My experience was the opposite of what I’ve observed in other blog posts describing testing experiences.</summary></entry><entry><title type="html">Grammarly Interrupts</title><link href="https://www.vaskoz.com/2019/02/03/grammarly-interrupts.html" rel="alternate" type="text/html" title="Grammarly Interrupts" /><published>2019-02-03T00:00:00+00:00</published><updated>2019-02-03T00:00:00+00:00</updated><id>https://www.vaskoz.com/2019/02/03/grammarly-interrupts</id><content type="html" xml:base="https://www.vaskoz.com/2019/02/03/grammarly-interrupts.html">&lt;p&gt;Last year, I purchased Grammarly Premium at a discounted annual rate. I thought Grammarly could help me improve my writing even though I am a native English speaker. After a full year of use, I can definitively say that it has interrupted my writing much more than it’s helped. I tried composing within the Grammarly app, and it makes many small “advanced” suggestions that draw your attention away from expressing ideas. The assistant checks your document as you write and provides yellow caution indicators for minor changes. Proofreading your content is a far more effective and focused way to fix these small errors. Grammarly is no substitute for careful proof-reading and editing of your material.&lt;/p&gt;

&lt;p&gt;The last year of writing wasn’t all bad. I did realize one valuable benefit from Grammarly over the last year which was a quick refresher on some simple writing tips. Grammarly prods you to write tersely. Nobody has time to read the long way to your idea. It’s easy to ramble during sentence construction, which is why proofreading is vital to good writing. While writing on a computer, it’s important to capture your stream of consciousness as quickly as touch-typing allows. However, this stream is usually a diamond in the rough that needs a lot of polish before it’s ready for presentation. Grammarly helps you polish by minimizing passive voice and reducing word repetition, but it does it in an intrusive way. You can minimize intrusion by writing in another application and then using Grammarly to check for mistakes, but that too only encourages laziness.&lt;/p&gt;

&lt;p&gt;I’m returning to good old proofreading for my writing. I found I can concentrate much better when writing and editing myself rather than being distracted by Grammarly every few minutes. The concentration produces far better results than Grammarly could help me achieve. The human-only method of writing is also much more fun. Grammarly took the enjoyment out of writing for me because I felt compelled to fix tiny errors as they happened. After all, who wants to keep writing when someone is telling you you’re wrong as you write. Without the interruption of Grammarly, I can continue to develop my idea and deeply think about it from the reader’s perspective.&lt;/p&gt;

&lt;p&gt;What about non-native English writers? Is Grammarly worth it for someone still learning English? The answer depends on how much help is needed. If someone is very new to English, then Grammarly might be a useful tool to get to a readable state for a proofreader. However, the best option for a non-native English writer that wants to improve is to find a good proofreader. A proofreader is any conscientious reader. Proofreading doesn’t require any specialized training or skills so you can find proofreaders everywhere. Proofreading is a time-consuming process. Do as much as you can yourself before involving others.&lt;/p&gt;

&lt;p&gt;Proofreading and editing are required activities for good writing for everyone. Before asking someone to proofread your material, make sure to do all you can during your editing. Non-professional proofreading is a favor so don’t abuse it. Thank and potentially credit your proofreader if they put in a lot of time and effort. I think Grammarly helps many writers with their process, but it’s just not a helpful tool for me. &lt;em&gt;I’ve learned my lesson that I can’t buy my way into better writing.&lt;/em&gt;&lt;/p&gt;</content><author><name></name></author><summary type="html">Last year, I purchased Grammarly Premium at a discounted annual rate. I thought Grammarly could help me improve my writing even though I am a native English speaker. After a full year of use, I can definitively say that it has interrupted my writing much more than it’s helped. I tried composing within the Grammarly app, and it makes many small “advanced” suggestions that draw your attention away from expressing ideas. The assistant checks your document as you write and provides yellow caution indicators for minor changes. Proofreading your content is a far more effective and focused way to fix these small errors. Grammarly is no substitute for careful proof-reading and editing of your material.</summary></entry><entry><title type="html">Hacktoberfest 2018</title><link href="https://www.vaskoz.com/2018/11/01/hacktoberfest-2018.html" rel="alternate" type="text/html" title="Hacktoberfest 2018" /><published>2018-11-01T00:00:00+00:00</published><updated>2018-11-01T00:00:00+00:00</updated><id>https://www.vaskoz.com/2018/11/01/hacktoberfest-2018</id><content type="html" xml:base="https://www.vaskoz.com/2018/11/01/hacktoberfest-2018.html">&lt;p&gt;Today is Thursday, November 1st, 2018 and that means that Hacktoberfest 2018 is in the history books. I’ve participated in Hacktoberfest for the last few years, but this year was different. This year, I started a new position at the company that organizes Hacktoberfest! Starting a new job and participating in Hacktoberfest is a compound challenge concerning managing work and personal time. This year, I discovered a new source motivation that further gamified Hacktoberfest for me: &lt;a href=&quot;https://devswag.io/&quot;&gt;devswag.io&lt;/a&gt;. I enjoy free swag just as much as the next developer and I wanted to share some of my achievements here.&lt;/p&gt;

&lt;h1 id=&quot;swag-achievements&quot;&gt;Swag achievements&lt;/h1&gt;

&lt;p&gt;I completed a handful of different Hacktoberfest tasks that resulted in some cool prizes. First, I completed the official Hacktoberfest challenge and therefore earned the official t-shirt for opening 5 pull requests in October. Second, I contributed 5 pull requests to SendGrid to earn the t-shirt swag from that company. Third, since Twilio recently announced the acquisition of SendGrid I thought I’d check out their offerings, and earned the Twilio Quest t-shirt for completing their &lt;a href=&quot;https://www.twilio.com/quest&quot;&gt;Quest&lt;/a&gt;. Fourth, I completed the Microsoft Hacktoberfest challenge by submitting a pull request to a Microsoft Kubernetes GPU library. Fifth, I built a few of my OSS projects on &lt;a href=&quot;https://codeship.com/&quot;&gt;CodeShip&lt;/a&gt; and received some stickers and a long sleeve t-shirt from that company. Last, but not least, I published my first Alexa Skill that earned me a free 3rd generation Echo Dot. The free Echo Dot offering was only active from October 15-31 and only eligible for people that hadn’t published an Alexa Skill before.  My Alexa Skill, about snow conditions of all the ski resorts accessible from Interstate 70 in Colorado, helps Denverites know which mountain is worth their 1-day ski trip excursion.&lt;/p&gt;

&lt;h1 id=&quot;thankful&quot;&gt;Thankful&lt;/h1&gt;

&lt;p&gt;I’m truly thankful that my current employer supports and encourages the OSS community with events like Hacktoberfest. So many people use OSS, but only so few contribute and support OSS. In my personal opinion, Hacktoberfest has helped grow OSS contributions significantly in the last 5 years. Keep up the great work DigitalOcean!&lt;/p&gt;</content><author><name></name></author><summary type="html">Today is Thursday, November 1st, 2018 and that means that Hacktoberfest 2018 is in the history books. I’ve participated in Hacktoberfest for the last few years, but this year was different. This year, I started a new position at the company that organizes Hacktoberfest! Starting a new job and participating in Hacktoberfest is a compound challenge concerning managing work and personal time. This year, I discovered a new source motivation that further gamified Hacktoberfest for me: devswag.io. I enjoy free swag just as much as the next developer and I wanted to share some of my achievements here.</summary></entry><entry><title type="html">Break between jobs</title><link href="https://www.vaskoz.com/2018/07/20/break-between-jobs.html" rel="alternate" type="text/html" title="Break between jobs" /><published>2018-07-20T00:00:00+00:00</published><updated>2018-07-20T00:00:00+00:00</updated><id>https://www.vaskoz.com/2018/07/20/break-between-jobs</id><content type="html" xml:base="https://www.vaskoz.com/2018/07/20/break-between-jobs.html">&lt;p&gt;For most of my colleagues, even a break for a few weeks between jobs is uncommon. Many people go from one position to the next without so much as a couple of weeks between them. I believe more people would take a break between jobs but aren’t able to. Sometimes this is out of necessity: lots of bills or sole earner and health coverage provider for a family. So if you can afford it, I highly recommend using a break between positions to better yourself and deeply reflect on your career aspirations and goals.&lt;/p&gt;

&lt;h2 id=&quot;professional-development&quot;&gt;Professional Development&lt;/h2&gt;

&lt;p&gt;During my break between jobs, I completed my AWS Solutions Architect Professional certification. Preparing for the certification was challenging and rewarding. My AWS knowledge increased dramatically in addition to my overall architecture and system design knowledge. The extra time between jobs afforded me the ability to study while rested and without the stress of my daily routine. In my experience, learning while rested results in far greater comprehension and retention of the new knowledge and skills.&lt;/p&gt;

&lt;p&gt;In addition to courses and certifications, extra time for reading allowed me to catch up to a growing backlog of books. While working, Audible books while commuting and reading Kindle books over lunch were my only opportunities to learn by reading. I was cramming activities into small timeslots that required a lot of context switching. I did not absorb that information nearly as well as I do now.&lt;/p&gt;

&lt;h2 id=&quot;personal-development&quot;&gt;Personal Development&lt;/h2&gt;

&lt;p&gt;In addition to career development, I’ve focused on myself a lot during this time. My top priority was physical fitness and healthy eating. Time and stress have always battled my physical fitness and health goals. I know from my experiences that I need a good night’s sleep to reduce my stress and cortisol levels. A good night’s sleep is waking up completely rested. Before this career break, I’d sleep approximately 6 hours per night and many times less. I’d &lt;em&gt;need&lt;/em&gt; an alarm to wake me up in the morning. Now I wake up when I’m done sleeping after about 8 hours.&lt;/p&gt;

&lt;h2 id=&quot;career-reflection&quot;&gt;Career reflection&lt;/h2&gt;

&lt;p&gt;Careers don’t have to be a linear progression. At work, you have a particular title, and you’re working on attaining the next level title. It’s called climbing the corporate ladder, and people at the top define the rungs on that ladder. You’re so engaged in trying to achieve the next thing that you don’t have time to think about what you want in the long-term. A clear long-term vision is critical to keep you on course as life and career put up obstacles in the short-term. With the long-term vision in mind, obstacles can easily be surmounted.&lt;/p&gt;

&lt;p&gt;Mission, vision, and goals aren’t just for corporations. Writing down these things for your own life will help you live with purpose, focus, and direction. Without a long-term vision, you’re just living your routine and working on tasks that consume your time. A vision allows you to say “no” to things that won’t help you achieve your ultimate goals. Even skills development and learning are useless without a purpose of application of that skill and knowledge. I’m going to write a blog post on personal mission, vision, and goals soon.&lt;/p&gt;

&lt;h2 id=&quot;yeah-but-why-do-you-need-a-break-to-do-this&quot;&gt;Yeah, but why do you need a break to do this?&lt;/h2&gt;

&lt;p&gt;Because you probably have a full daily routine. I don’t have blocks of free time that I can reclaim from recreational activities like watching TV or surfing the internet. Taking a break from work disrupts your routine giving you chunks of free time. Everything about my day is different now. I focus so much time on learning and growing myself. At work, I had responsibilities to the company and to my employees that consumed virtually all of my day. I had very little time for myself. If I wanted to squeeze out some more time to complete a course or finish a certification, I’d have to sacrifice sleep or exercise time which was a wrong long-term decision.&lt;/p&gt;

&lt;p&gt;So if you can afford it, I recommend taking time to focus yourself on what matters most to you. Then work like hell to achieve that. Don’t lose track of your goal when life’s obstacles try to stop you. The time to reflect is crucial to building your life’s vision and starting to map out your path to your goals.&lt;/p&gt;</content><author><name></name></author><summary type="html">For most of my colleagues, even a break for a few weeks between jobs is uncommon. Many people go from one position to the next without so much as a couple of weeks between them. I believe more people would take a break between jobs but aren’t able to. Sometimes this is out of necessity: lots of bills or sole earner and health coverage provider for a family. So if you can afford it, I highly recommend using a break between positions to better yourself and deeply reflect on your career aspirations and goals.</summary></entry><entry><title type="html">Java 11 (Java 18.9)</title><link href="https://www.vaskoz.com/2018/06/28/java-11.html" rel="alternate" type="text/html" title="Java 11 (Java 18.9)" /><published>2018-06-28T00:00:00+00:00</published><updated>2018-06-28T00:00:00+00:00</updated><id>https://www.vaskoz.com/2018/06/28/java-11</id><content type="html" xml:base="https://www.vaskoz.com/2018/06/28/java-11.html">&lt;p&gt;Java has been going through many changes recently. Superficially, the versioning approach has changed to follow a new &lt;a href=&quot;https://blogs.oracle.com/java-platform-group/update-and-faq-on-the-java-se-release-cadence&quot;&gt;6-month release cycle&lt;/a&gt;. This new release cycle is not like the big bang prior Java releases. Each 6-month release immediately deprecates the previous version. The &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/eol-135779.html&quot;&gt;Oracle support roadmap&lt;/a&gt; details all these changes.&lt;/p&gt;

&lt;p&gt;The first long-term support (LTS) version will be Java 11. On September 25, 2018, JDK11 will be released hence the 18.9 version number.&lt;/p&gt;

&lt;h1 id=&quot;two-new-garbage-collectors&quot;&gt;Two new Garbage Collectors&lt;/h1&gt;

&lt;p&gt;You can experiment with the first one right now by downloading the early access JDK11 build.&lt;/p&gt;

&lt;p&gt;By default, JDK11 uses the G1 GC. Notice how for a small 4 line program it still performs some GC actions.&lt;/p&gt;

&lt;p&gt;The code makes an HTTP GET request to www.google.com.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/edd14622192cc24f222d9d12d8f872a0.js?file=Http.java&quot;&gt; &lt;/script&gt;

&lt;script src=&quot;https://gist.github.com/edd14622192cc24f222d9d12d8f872a0.js?file=default_gc_jdk11&quot;&gt; &lt;/script&gt;

&lt;p&gt;However, the new Epsilon GC is non-reclaiming. A GC system is still needed to allocate the memory, but this GC does no reclaiming of memory. Instead, when the system exhausts its memory, it throws an Exception.&lt;/p&gt;

&lt;p&gt;The same code run using the new Epsilon GC.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/edd14622192cc24f222d9d12d8f872a0.js?file=epsilon_nogc_jdk11&quot;&gt; &lt;/script&gt;

&lt;p&gt;The other new GC is named &lt;a href=&quot;http://openjdk.java.net/jeps/333&quot;&gt;ZGC/JEP333&lt;/a&gt; and is very experimental and has some glaring limitations. This feature must be enabled during the compilation of the JDK. Since I don’t want to compile my own JDK, I leave the reader to read about this GC.&lt;/p&gt;

&lt;h1 id=&quot;single-file-source-code-programs&quot;&gt;Single-file source-code programs&lt;/h1&gt;

&lt;p&gt;You probably noticed some strange Java command line usage above; that was not a typo. The Java command now supports &lt;a href=&quot;http://openjdk.java.net/jeps/330&quot;&gt;running a single Java file without javac and the resulting class files&lt;/a&gt;. This feature is an excellent bridge between jshell and a full build like Gradle or maven.&lt;/p&gt;

&lt;h1 id=&quot;new-http-client&quot;&gt;New HTTP Client&lt;/h1&gt;

&lt;p&gt;In Java 10, this new HTTP client was in incubator status, but in Java 11 it graduates to the &lt;a href=&quot;http://openjdk.java.net/jeps/321&quot;&gt;&lt;strong&gt;java.net.http&lt;/strong&gt;&lt;/a&gt; module. Look again at the conciseness of this HTTP code that before this addition would require an external library like Netty or much more verbose standard library code.&lt;/p&gt;

&lt;h1 id=&quot;flight-recorder-moving-from-commercial-to-oss&quot;&gt;Flight Recorder moving from commercial to OSS&lt;/h1&gt;

&lt;p&gt;This tool has been around for a while, but you needed to download the Oracle JVM to use it. Now it’s in the OpenJDK as OSS. Flight Recorder powers the Java Mission Control.&lt;/p&gt;

&lt;h1 id=&quot;deprecating-jjs&quot;&gt;Deprecating JJS&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;http://openjdk.java.net/jeps/335&quot;&gt;JEP335&lt;/a&gt; will deprecate the Java-based Javascript engine named Nashorn. I guess it wasn’t worth their time with the success that Node.js is enjoying.&lt;/p&gt;

&lt;h1 id=&quot;deprecation-of-pack200-tool&quot;&gt;Deprecation of Pack200 tool&lt;/h1&gt;

&lt;p&gt;JDK11 integrated &lt;a href=&quot;http://openjdk.java.net/jeps/336&quot;&gt;JEP336&lt;/a&gt;. The change is a deprecation message when using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pack200&lt;/code&gt; tool. Below are examples of calling the program in JDK10 and JDK11.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JDK10&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[~] /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/bin/pack200             5:46:10
Usage:  pack200 [-opt... | --option=value]... x.pack[.gz] y.jar
(For more information, run pack200 --help .)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;JDK11&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[~] /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin/pack200                 5:46:14

Warning: The pack200 tool is deprecated, and is planned for removal in a future JDK release.

Usage:  pack200 [-opt... | --option=value]... x.pack[.gz] y.jar
(For more information, run pack200 --help .)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The new release model for Java will require consistent upgrades or big jumps from LTS versions. The incremental changes every six months are far less painful than big version jumps. This post isn’t everything that’s happening in JDK11. If you want to see it all in greater detail, please go over to the &lt;a href=&quot;http://openjdk.java.net/projects/jdk/11/&quot;&gt;JDK11 project on OpenJDK&lt;/a&gt;.&lt;/p&gt;</content><author><name></name></author><summary type="html">Java has been going through many changes recently. Superficially, the versioning approach has changed to follow a new 6-month release cycle. This new release cycle is not like the big bang prior Java releases. Each 6-month release immediately deprecates the previous version. The Oracle support roadmap details all these changes.</summary></entry><entry><title type="html">AWS CSA Professional</title><link href="https://www.vaskoz.com/2018/06/25/aws-csa-professional.html" rel="alternate" type="text/html" title="AWS CSA Professional" /><published>2018-06-25T00:00:00+00:00</published><updated>2018-06-25T00:00:00+00:00</updated><id>https://www.vaskoz.com/2018/06/25/aws-csa-professional</id><content type="html" xml:base="https://www.vaskoz.com/2018/06/25/aws-csa-professional.html">&lt;p&gt;On Friday, June 22, 2018, I achieved my AWS Certified Solutions Architect Professional certification. The 77 question exam took 170 minutes to complete. There are two main challenges in this exam: the content and the duration. The material tested is extensive. The length of the test requires a lot of mental endurance.&lt;/p&gt;

&lt;h2 id=&quot;learning-the-material&quot;&gt;Learning the material&lt;/h2&gt;

&lt;p&gt;Daily AWS usage is insufficient to pass this test. You must study specifically to pass this exam. Start by reading the whitepapers in the &lt;a href=&quot;https://d1.awsstatic.com/training-and-certification/docs-sa-pro/AWS_certified_solutions_architect_professional_blueprint.pdf&quot;&gt;exam guide&lt;/a&gt;. Supplement your reading with one of the many prep courses for this exam. &lt;a href=&quot;https://acloud.guru/learn/aws-certified-solutions-architect-professional&quot;&gt;ACloudGuru&lt;/a&gt; and &lt;a href=&quot;https://linuxacademy.com/amazon-web-services/training/course/name/aws-certified-solutions-architect-professional-level&quot;&gt;LinuxAcademy&lt;/a&gt; are both excellent video courses to supplement all your reading. The study plan for this test is well understood, and there are numerous sources and documented personal experiences with this exam.&lt;/p&gt;

&lt;h2 id=&quot;exam-length&quot;&gt;Exam length&lt;/h2&gt;

&lt;p&gt;I went into the exam feeling very confident. I started the test at a robust pace. However, at about the 2nd hour my concentration began to wane. I had to re-read questions multiple times to understand them at this point. The last hour was very challenging due to the time constraint of the test which left me with no time for a break. The exam facility doesn’t allow any refreshments (water or snacks) in the room. Also, if you do need a bathroom break or any break, you can leave the testing room; however, your test clock does not pause.&lt;/p&gt;

&lt;h2 id=&quot;suggestions&quot;&gt;Suggestions&lt;/h2&gt;

&lt;p&gt;If you’ve ever taken the GRE, GMAT, etc. then you’re probably prepared for the endurance of a test like this. If you’re like me, it’s been a long time since you took any tests like this. My number one suggestion is to sit the practice exam and supplement with other practice exams. I saw that WhizLabs had &lt;a href=&quot;https://www.whizlabs.com/aws-solutions-architect-professional/&quot;&gt;practice exams&lt;/a&gt;, but I never personally used them. Make sure you sit the real test ready for the nearly 3-hour duration.&lt;/p&gt;

&lt;p&gt;Best of luck with your certifications!&lt;/p&gt;</content><author><name></name></author><summary type="html">On Friday, June 22, 2018, I achieved my AWS Certified Solutions Architect Professional certification. The 77 question exam took 170 minutes to complete. There are two main challenges in this exam: the content and the duration. The material tested is extensive. The length of the test requires a lot of mental endurance.</summary></entry><entry><title type="html">AWS Summit SF 2018</title><link href="https://www.vaskoz.com/2018/05/15/aws-summit-sf-2018.html" rel="alternate" type="text/html" title="AWS Summit SF 2018" /><published>2018-05-15T00:00:00+00:00</published><updated>2018-05-15T00:00:00+00:00</updated><id>https://www.vaskoz.com/2018/05/15/aws-summit-sf-2018</id><content type="html" xml:base="https://www.vaskoz.com/2018/05/15/aws-summit-sf-2018.html">&lt;p&gt;I attended my first ever &lt;a href=&quot;https://aws.amazon.com/summits/&quot;&gt;AWS Summit&lt;/a&gt; in San Francisco on Wednesday, April 4th, 2018. An AWS Summit is a free 1-day summit that is loaded with presentations, sessions, workshops, hands-on labs and capped off with a reception. The AWS Summit SF 2018 conference was held inside of the Moscone West conference center in downtown San Francisco. In this blog post, I’ll detail my experience at this conference. The big takeaway from me was that AWS Summits are fantastic and well worth the time.&lt;/p&gt;

&lt;p&gt;My day began at 7am. The check-in process was quick and easy this early in the morning. Just walk up to a line of tablets that you enter your registration e-mail into, and someone hands you your newly printed lanyard and badge. The expo hall had all the vendors with breakfast and lunch served there as well. If you are AWS certified let them know during registration so that you can get an additional credential on your badge. The certification distinction gets you access to a certified-only lounge and reception event.&lt;/p&gt;

&lt;p&gt;The first talks start before the keynote. The first talk I saw was titled “Containerization with &lt;a href=&quot;https://github.com/stelligent/mu&quot;&gt;Mu&lt;/a&gt; and &lt;a href=&quot;https://aws.amazon.com/fargate/&quot;&gt;Fargate&lt;/a&gt;.” In between sessions or instead of them, I recommend checking out the hands-on labs powered by &lt;a href=&quot;https://amazon.qwiklabs.com/&quot;&gt;Qwiklabs&lt;/a&gt;. You probably will have to wait in line to get into the lab. Upon entering the lab, you’ll be handed a business card with a code that gives you access to a single tutorial using QwikLabs.&lt;/p&gt;

&lt;h1 id=&quot;greengrass-and-deeplens&quot;&gt;Greengrass and DeepLens&lt;/h1&gt;

&lt;p&gt;My prime objective for this summit was attending Internet-of-Things (IoT) workshops. I waited in line for the Greengrass and then the DeepLens; each workshop was 2 hours long. In each of these workshops, you use your AWS account to do something real with that technology. For the Greengrass session, we set up a couple of t2 EC2 instances as “devices.” Greengrass automates the tedious process of setting up connectivity between external devices (“computers”) with your AWS account. Once you choose a programming language and a platform, you download a Zip file with everything that you need including a certificate. All the client code is generated, and it uses the certificate to connect securely back to your AWS account. Any computing device can be connected to your AWS account in minutes using Greengrass. Most of the IoT services don’t fall into the free tier but don’t worry about spending your own money because AWS gives you $25 credits as you leave. Most likely you’ll walk out with a surplus of credits for your account.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://aws.amazon.com/deeplens/&quot;&gt;DeepLens&lt;/a&gt; following &lt;a href=&quot;https://aws.amazon.com/greengrass/&quot;&gt;Greengrass&lt;/a&gt; is only logical since DeepLens uses Greengrass behind the scenes. DeepLens is a system-on-a-chip that runs Ubuntu and has a camera attached. You first must connect your DeepLens to WiFi just as you would for an Amazon Echo. Once attached to Wifi, you can register your DeepLens with your AWS account by using the serial number on the device. Once the device is registered, you can push models to it seamlessly. We used a pre-built face detection model that we loaded into SageMaker. After running the worksheet, we transmitted the model to the DeepLens device. The device then performed face recognition on its own, and you could view its results in real-time.&lt;/p&gt;

&lt;p&gt;For attending these workshops, I received a free &lt;a href=&quot;https://www.amazon.com/dp/B075Y3CK37&quot;&gt;pre-order for DeepLens.&lt;/a&gt; I’m looking forward to exploring the AWS IoT space with DeepLens once it’s released on June 14th, 2018.&lt;/p&gt;

&lt;h1 id=&quot;wrap-up-and-receptions&quot;&gt;Wrap-up and Receptions&lt;/h1&gt;

&lt;p&gt;The end of the summit is celebrated with two different receptions: one in the main expo hall for all attendees and another on the 2nd floor for AWS certification holders. The main expo hall reception was so large that many snack/drink stations existed to serve such a large turnout. The certification reception was smaller and quieter allowing more exciting and detailed conversations.&lt;/p&gt;</content><author><name></name></author><summary type="html">I attended my first ever AWS Summit in San Francisco on Wednesday, April 4th, 2018. An AWS Summit is a free 1-day summit that is loaded with presentations, sessions, workshops, hands-on labs and capped off with a reception. The AWS Summit SF 2018 conference was held inside of the Moscone West conference center in downtown San Francisco. In this blog post, I’ll detail my experience at this conference. The big takeaway from me was that AWS Summits are fantastic and well worth the time.</summary></entry><entry><title type="html">AWS Certified Solutions Architect - Associate</title><link href="https://www.vaskoz.com/2018/03/17/aws-certified-solutions-architect-associate.html" rel="alternate" type="text/html" title="AWS Certified Solutions Architect - Associate" /><published>2018-03-17T00:00:00+00:00</published><updated>2018-03-17T00:00:00+00:00</updated><id>https://www.vaskoz.com/2018/03/17/aws-certified-solutions-architect-associate</id><content type="html" xml:base="https://www.vaskoz.com/2018/03/17/aws-certified-solutions-architect-associate.html">&lt;p&gt;Last month I passed the AWS Certified Solutions Architect - Associate certification exam with a score of 87%. I wanted to share my experiences in preparing for this exam to provide insights to those considering taking the exam. The time required to prepare for this exam was surprisingly short. I studied exclusively after work which limited me to 1-2 hours a night for maybe 3-4 nights per week. I felt ready to take the exam after one month. In the rest of this post, I will describe what I did to prepare and my impressions of the test itself.&lt;/p&gt;

&lt;p&gt;The driving force behind me studying for this exam was that my employer recently decided to move from our private data centers into the AWS public cloud. I had previous experience with AWS both professional and on side projects years ago, but nothing on an immense scale. Despite my prior AWS experience, the AWS ecosystem evolves so rapidly that new features and functionalities are released that make previous best practices obsolete. &lt;a href=&quot;https://aws.amazon.com/about-aws/whats-new/2017/&quot;&gt;AWS announced over a thousand features and updates in 2017.&lt;/a&gt; So it is essential to go through this process with an understanding that your certificate is just the beginning of an ongoing learning process.&lt;/p&gt;

&lt;p&gt;Please note, I passed this certification in early February 2018 &lt;em&gt;before&lt;/em&gt; the release of the new February 2018 exam in mid-February. I am confident that acloud.guru will update their course to prepare you for this exam as well.&lt;/p&gt;

&lt;p&gt;The primary study aid I used for my preparation was the &lt;a href=&quot;https://acloud.guru/learn/aws-certified-solutions-architect-associate&quot;&gt;online course&lt;/a&gt; provided by &lt;a href=&quot;https://acloud.guru/&quot;&gt;acloud.guru&lt;/a&gt;. I purchased this course through &lt;a href=&quot;https://sendgrid.udemy.com/aws-certified-solutions-architect-associate/&quot;&gt;Udemy&lt;/a&gt;. Successfully completing this course means that you should watch all the videos, do all the labs, exercises, and then read all the FAQs for every product they cover (EC2, ECS, S3, DynamoDB, RDS, CloudWatch, VPCs). The &lt;a href=&quot;https://aws.amazon.com/certification/certified-solutions-architect-associate/&quot;&gt;official exam guide&lt;/a&gt; also recommends reading specific whitepapers. Finally, you should take every practice test you can. &lt;a href=&quot;https://sendgrid.udemy.com/aws-certified-solutions-architect-associate-practice-tests/learn/v4/content&quot;&gt;Udemy has a separate course with three practice exams&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On test day, you will sit in a PSI testing center near you. The test is 80-minutes with 55 questions. The new test is 130-minutes with 65 questions which means an additional 30 seconds per question. According to the instructor of this course, Ryan Kroonenburg, the new test should be considerably more comfortable than the original. I completed the exam with 30 minutes to spare. It is a knowledge test: either you know it, or you do not. They provide you with a pencil and a single piece of paper coded for you to use during your exam. After leaving the testing room, you have to return your notepaper to the administrators.&lt;/p&gt;

&lt;p&gt;I was hoping to score very near 100%, but as I anticipated the “choose all that apply” question types were the most challenging. During my three practice exams, I scored between 85-95%. Many answers had the “correct” option, but they did not only want the correct and typical answer. They wanted all possible solutions to demonstrate complete knowledge. The choose-all-that-apply type of question was all or nothing regarding score. I found the whole experience very rewarding and challenging. The entire test is challenging not just the choose-all-that-apply questions.&lt;/p&gt;

&lt;p&gt;I hope this post provides you with some perspective on taking the certification exam. If you are like me, the associate certification is merely a stepping stone to the professional certification. Once you attain your professional certificate, you only need to recertify for that certificate because it subsumes the associate certificate. In addition to demonstrating that you have a standard level of knowledge in architecting systems on AWS, you also get some cool perks. If you attend a &lt;a href=&quot;https://aws.amazon.com/summits/&quot;&gt;free AWS Summit&lt;/a&gt;, there are some &lt;a href=&quot;https://aws.amazon.com/summits/san-francisco/aws-certified/&quot;&gt;AWS Certified perks&lt;/a&gt; available only to those holding a valid AWS certification. AWS maintains a page with all &lt;a href=&quot;https://aws.amazon.com/certification/benefits/&quot;&gt;certification benefits&lt;/a&gt; as well. Lastly, I want to wish you the best of luck in your future AWS experiences.&lt;/p&gt;</content><author><name></name></author><summary type="html">Last month I passed the AWS Certified Solutions Architect - Associate certification exam with a score of 87%. I wanted to share my experiences in preparing for this exam to provide insights to those considering taking the exam. The time required to prepare for this exam was surprisingly short. I studied exclusively after work which limited me to 1-2 hours a night for maybe 3-4 nights per week. I felt ready to take the exam after one month. In the rest of this post, I will describe what I did to prepare and my impressions of the test itself.</summary></entry><entry><title type="html">Arbitrary Binaries on AWS Lambda</title><link href="https://www.vaskoz.com/2018/01/21/arbitrary-binaries-aws-lambda.html" rel="alternate" type="text/html" title="Arbitrary Binaries on AWS Lambda" /><published>2018-01-21T00:00:00+00:00</published><updated>2018-01-21T00:00:00+00:00</updated><id>https://www.vaskoz.com/2018/01/21/arbitrary-binaries-aws-lambda</id><content type="html" xml:base="https://www.vaskoz.com/2018/01/21/arbitrary-binaries-aws-lambda.html">&lt;p&gt;Since the beginning of &lt;a href=&quot;https://aws.amazon.com/lambda/&quot;&gt;AWS Lambda&lt;/a&gt;, developers could &lt;a href=&quot;https://github.com/eawsy/aws-lambda-go-shim&quot;&gt;launch a child process&lt;/a&gt; to execute any arbitrary binary on Linux. The release of the “go1.x” runtime for AWS Lambda simplifies the deployment of arbitrary binaries. Binaries need only be statically-linked and given execute permissions for all (chmod 444) to be successfully run on AWS Lambda.&lt;/p&gt;

&lt;p&gt;Below I’ve embedded a piece of code to observe the Lambda environment.&lt;/p&gt;

&lt;p&gt;I performed the following steps to create a Zip file and then uploaded that Zip file to Lambda.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GOOS=linux go build -o main lambda.go
zip deployment.zip main
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;script src=&quot;https://gist.github.com/df9b1c821951811098c876d44d681dd5.js?file=lambda.go&quot;&gt; &lt;/script&gt;

&lt;p&gt;Here are the resulting CloudWatch logs for lambda.go.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/df9b1c821951811098c876d44d681dd5.js?file=cloudwatch_logs_lambda_go.txt&quot;&gt; &lt;/script&gt;

&lt;p&gt;And here is an example of a C++ program running in AWS Lambda.&lt;/p&gt;

&lt;p&gt;I performed the following steps to create a Zip file and then uploaded that Zip file to Lambda.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;g++ -static lambda.cpp -o main
chmod a+x main
zip deployment.zip main
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;script src=&quot;https://gist.github.com/df9b1c821951811098c876d44d681dd5.js?file=lambda.cpp&quot;&gt; &lt;/script&gt;

&lt;p&gt;Here are the resulting CloudWatch logs for lambda.cpp.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/df9b1c821951811098c876d44d681dd5.js?file=cloudwatch_logs_lambda_cpp.txt&quot;&gt; &lt;/script&gt;</content><author><name></name></author><summary type="html">Since the beginning of AWS Lambda, developers could launch a child process to execute any arbitrary binary on Linux. The release of the “go1.x” runtime for AWS Lambda simplifies the deployment of arbitrary binaries. Binaries need only be statically-linked and given execute permissions for all (chmod 444) to be successfully run on AWS Lambda.</summary></entry></feed>