<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Decebal on programming</title>
        <link>/</link>
        <description>Road to becoming the programming ninja</description>
        <lastBuildDate>Wed, 15 Jun 2022 14:41:28 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <item>
            <title><![CDATA[Software Architecture Head Spaces]]></title>
            <link>/post/2019-09-04/software-arhitecture-head-spaces</link>
            <guid>/post/2019-09-04/software-arhitecture-head-spaces</guid>
            <content:encoded><![CDATA[<h2 id="software-architecture-topics">Software Architecture topics</h2><h2 id="building-evolutionary-architectures-evolutionary-architecture">Building Evolutionary Architectures <a href="/tags/evolutionary-architecture">#evolutionary-architecture</a></h2><ul><li>fitness functions</li><li>fitness functions for Serverless architectures</li><li>monitoring evolution with fitness functions</li><li>when to use <strong>safe deployments</strong> ?</li><li>using bounded contexts inside a Serverless architecture. is it worth further segregating layers ? </li><li>takeaways form the book: “Building Evolutionary Architectures” from O’reilly, authored by <em>Neal Ford, Rebecca Parsons and Patrick Kua</em></li></ul><h2 id="serverless-20-serverless20">Serverless 2.0 <a href="/tags/serverless2.0">#serverless2.0</a></h2><ul><li>using serverless.com with kubeless</li><li>OpenFaas vs kubeless</li><li>gitlab integrations (has one with kubeless)</li><li>monorepo of domain functions</li><li>polyglot monorepo</li><li>A Comparison of Serverless Frameworks for Kubernetes: OpenFaas, OpenWhisk, Fission, Kubeless and more</li></ul><h2 id="building-evolutionary-architectures-with-serverless-20">Building Evolutionary Architectures with Serverless 2.0</h2><ul><li>support for monitoring fitness functions out of the box</li><li>e2e tests inside a CI box</li></ul><h2 id="domain-driven-design-tools-for-typescript-and-serverless-ddd">Domain Driven Design Tools for Typescript and Serverless <a href="/tags/DDD">#DDD</a></h2><ul><li>defining types and tested domains in TS similar to <a href="https://github.com/funeralzone/valueobjects">value objects in php</a></li><li>generating types and tested domains based on a/some config file(s) similar to <a href="https://github.com/funeralzone/valueobject-generator">value objects generator in php</a></li><li><a href="https://github.com/decebal/generator-mono-serverless">monorepo generator</a>, work in progress on a yeoman enhanced generator with DDD</li><li><a href="https://www.bryntum.com/blog/the-mixin-pattern-in-typescript-all-you-need-to-know/">mixins</a> and <a href="https://github.com/alexeyraspopov/dataclass/blob/master/README.md">Data Class</a> for better defining Ubiquitous Language in TypeScript</li><li>takeaways from <a href="https://khalilstemmler.com/articles/tags/ddd/">Khalil Stemmler’s blog posts on DDD</a></li><li>review “Domain Driven Distilled” by <em>Vaughn Vernon</em></li></ul><h2 id="graphql-graphql">GraphQl <a href="/tags/graphql">#graphql</a></h2><ul><li>generate a graphQl gateway layer to put in place of an existing Rest Api</li><li>contract testing with GraphQl</li><li>using graphql for defining Ubiquitous Language</li><li>use graphql to define domain layers, in particular the graphql schema</li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Top 39 Youtube Channels for Software Developers]]></title>
            <link>/post/2020-07-18/top-39-youtube-channels-for-software-developers</link>
            <guid>/post/2020-07-18/top-39-youtube-channels-for-software-developers</guid>
            <content:encoded><![CDATA[<h2 id="machine-learning-educators-and-entrepreneurs">Machine Learning (Educators and Entrepreneurs)</h2><h2 id="two-minute-papers"><a href="https://www.youtube.com/channel/UCbfYPyITQ-7l4upoX8nvctg">Two Minute Papers</a></h2><p>One of the most amazing channels out there, small and targeted, there is no better advocate for Machine Learning than Two Minute Papers.</p><h2 id="siraj-raval"><a href="https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A">Siraj Raval</a></h2><p>Siraj brings a ton to the table and does his best to make learning fun, definitely my kind of fun, see for yourself.</p><h2 id="lex-fridman"><a href="https://www.youtube.com/user/lexfridman">Lex Fridman</a></h2><p>Lex has a ton of great people relevant to Machine Learning interviewed.</p><h2 id="deepmind"><a href="https://www.youtube.com/channel/UCP7jMXSY2xbc3KCAE0MHQ-A">DeepMind</a></h2><p>Practical tutorials and introduction to Machine Learning from DeepMind.</p><h2 id="forrestknight"><a href="https://www.youtube.com/channel/UC2WHjPDvbE6O328n17ZGcfg">ForrestKnight</a></h2><p>I only looked at the AI and Machine Learning experiments here as the rest of the “Software Programming” advice seems a little misguided to me, certainly biased by his environment.</p><h2 id="manning-publications"><a href="https://www.youtube.com/channel/UCDia_lkNYKLJVLRLQl_-pFw/featured">Manning Publications</a></h2><p>Manning is one of the main sources of technical books in my library, this channel
used to be rather a promotional avenue where authors got to promote their books while
recently they got some hour long videos of unique content related to some books
that I found to be fascinating. They also have a presence on <a href="https://www.twitch.tv/manningpublications/">twitch</a>.</p><p>I only had a couple of views:</p><ul><li><a href="https://youtu.be/xAVu7xb0mVI">Barry Pollard Analyses Websites To See If They Will Benefit From HTTP/2</a></li><li><a href="https://youtu.be/XdUOFsdKwRg">Chris Mattmann Discusses TensorFlow and his Work at NASA JPL</a></li></ul><h2 id="devops-heavy">DevOps Heavy</h2><h2 id="vmware-cloud-native-apps"><a href="https://www.youtube.com/channel/UCdkGV51Nu0unDNT58bHt9bg">VMware Cloud Native Apps</a></h2><p>This channel has developed substantially over the past year, in particular what draws
my interest are the <a href="https://www.youtube.com/channel/UCjQU5ZI2mHswy7OOsii_URg">Heptio team</a>&#x27;s k8s related explorations. The way they explore and expose
different tools around k8s ecosystem is extremely easy to follow. Most of the time
I put one of their exploratory videos and get on with my predefined tasks for the day.
There are several other video types on this channel which would be helpful depending on your journey.</p><p>The format and the resources shared are highly valuable, I recommend using these videos
as a benchmark for software development courses.</p><p>Here are a few of my favourite videos:</p><ul><li><a href="https://youtu.be/McwwWhCXMxc">TGI Kubernetes 030: Exploring Skaffold</a></li><li><a href="https://youtu.be/Xfi9XqcZ76M">TGI Kubernetes 073: Exploring Garden with Kubernetes</a></li><li><a href="https://youtu.be/HQX6wImrLTw">TGI Kubernetes 106: Flagger - Advanced Application Rollout</a> </li></ul><h2 id="the-linux-foundation"><a href="https://www.youtube.com/channel/UCfX55Sx5hEFjoC3cNs6mCUQ">The Linux Foundation</a></h2><p>The Linux Foundation channel is so awesome for the open source communities around the
world, I am not even sure where to start. There are past conferences to be explored in
their own playlists/sections, <a href="https://youtu.be/s8EKVNcD1ko">Linus Torvalds</a> one of my
personal favourite people of all time is featured in multiple instances while clearly
involved and followed at conferences, while fresh content from conferences around the
world is constantly added, definitely an active channel in 2020.</p><h2 id="serverless">Serverless</h2><h2 id="serverlessdays"><a href="https://www.youtube.com/channel/UCYzAnR_SebAmLRkKIbK_YoQ">ServerlessDays</a></h2><p>The channel serves as an archive for the conferences with the same name, they happen
across the Europe and North America focusing on serverless use cases.</p><p>An example:</p><ul><li><a href="https://youtu.be/eTLeLEsTVKw">The Bleeding Edge at Scale: 80-million users on Serverless and GraphQL - Tyler Love</a></li></ul><h2 id="foobar-serverless"><a href="https://www.youtube.com/channel/UCSLIvjWJwLRQze9Pn4cectQ">FooBar Serverless</a></h2><p>FooBar covers serverless(as in AWS Lambda) and some other related AWS Technologies,
if your stack is hosted in AWS these videos are amazing to share around a team even after implementation.</p><p>Two Picks:</p><ul><li><a href="https://youtu.be/wxbHTCpPxpw">Introduction to GraphQL | AWS AppSync Series | #1</a></li><li><a href="https://youtu.be/E9GecpNn6vY">Introduction to AppSync | AWS AppSync Series | #2</a></li></ul><h2 id="lambda-world"><a href="https://www.youtube.com/channel/UCEBcDOjv-bhAmLavY71RMHA">Lambda World</a></h2><p>For anyone interested in Functional Programming this conference is between the most relevant
ones on the subject, they’ve got a <a href="https://www.lambda.world/">conference page</a> for more details
regarding future editions.</p><p>Here’s a recommendation: <a href="https://youtu.be/Y6FMjGxaNGk">Lambda World 2019 - Unconference</a>.</p><h2 id="gunnar-grosch"><a href="https://www.youtube.com/channel/UCTltOOcP1UZTpEQKQjjO-5Q">Gunnar Grosch</a></h2><ul><li><a href="https://youtu.be/Cw-JmAJHG-g">Serverless chaos - Blast radius containment</a></li><li><a href="https://youtu.be/vKurdrGMFpg">Serverless chaos - From Latency to Failure</a></li></ul><h2 id="top-level-views-and-leadership">Top-Level views and Leadership</h2><h2 id="singularity-university"><a href="https://www.youtube.com/user/singularityu">Singularity University</a></h2><p>Used to be at <a href="https://www.youtube.com/channel/UC0ysB63L6-CidHWWBTZoZcQ">Singularity University Summits</a> which is one
of the most extraordinary organizations in the world where technology is being explored
in order to push further humanity’s improvements.</p><p>Some of my highlights:</p><ul><li><a href="https://youtu.be/FTTgdtl8FvM">Peter Diamandis | The Future Is Faster Than You Think | Global Summit 2018 | Singularity University</a></li><li><a href="https://youtu.be/WvuhuEL-eQQ">Exponential Energy | Ramez Naam | SingularityU Japan Summit</a></li><li><a href="https://youtu.be/qQ55_tsvARU">The Future of Work | SingularityU Germany Summit 2017</a></li><li><a href="https://youtu.be/5CZ8vFcS9xQ">Investing in Disruptive Innovation | Catherine Wood | Exponential Finance</a></li><li><a href="https://youtu.be/9nqBWyZWNX0">SU Global Summit 2019 | AI and Machine Learning Implications | Neil Jacobstein</a></li><li><a href="https://youtu.be/6lJ8vId4HF8">The Future of 3D Printing with Scott Summit | Singularity University</a></li></ul><h2 id="stefan-mischook"><a href="https://www.youtube.com/user/killerphp">Stefan Mischook</a></h2><h2 id="leaddev"><a href="https://www.youtube.com/channel/UCmM3eCpmWKLJj2PDW_jdGkg">LeadDev</a></h2><p>As a Lead Dev I found this channel and the stories being told at LeadDev conferences
full of insights and golden nuggets.</p><p>Nickolas Means airplane stories are a popular highlight:</p><ul><li><a href="https://youtu.be/099cHWSbAL8">How to crash an airplane – Nickolas Means | The Lead Developer UK 2016</a></li><li><a href="https://youtu.be/pL3Yzjk5R4M">The Original Skunk Works – Nickolas Means | The Lead Developer UK 2017</a></li><li><a href="https://youtu.be/1xQeXOz0Ncs">Who Destroyed Three Mile Island? - Nickolas Means | The Lead Developer Austin 2018</a></li><li><a href="https://youtu.be/2sIzfGzf_50">The race to Mach 2.0 at scale | Nickolas Means | #LeadDevAustin 2019</a></li></ul><p>A couple more of my highlights:</p><ul><li><a href="https://youtu.be/--t3uk3_rSw">Cultivating architecture | Birgitta Boeckeler</a></li><li><a href="https://youtu.be/rwfXkSjFhzc">Communicating and documenting architectural decisions - David Ayers</a></li></ul><h2 id="silicon-real"><a href="https://www.youtube.com/user/SiliconReal">Silicon Real</a></h2><p>Silicon Real is the Talk Show dedicated to the People of the London Technology Startup Scene.
It seems it has been more than 4 years since Brian has moved on with London Real while
the initial Silicon Real show has inspired myself and a whole host of european entrepreneurs
to take action and change their careers. The show archive is still available on youtube
and is worth considering a listen for developing an entrepreneurial mind to say the least. </p><p>I picked four highlights from the show archive,
which I highly recommend for anyone involved in the tech scene in Europe:</p><ul><li><a href="https://youtu.be/oHEOyLSpw80">Ivan Mazour of Ometria | Silicon Real</a></li><li><a href="https://youtu.be/U6Uv229XgHE">Emily Brooke of Blaze | Silicon Real</a></li><li><a href="https://youtu.be/vybtcBBicV4">Damian Kimmelman of DueDil | Silicon Real</a></li><li><a href="https://youtu.be/cTIdbsnYN7Q">Sam Shank of HotelTonight | Silicon Real</a></li></ul><h2 id="usi-events"><a href="https://www.youtube.com/channel/UCIhgggPw5xfIpFf-Fxqpmxw">USI Events</a></h2><p>One of my all time favourites:</p><ul><li><a href="https://youtu.be/ZXLcNSOVMN0">Integrating Human/Tech Demands to Accelerate Digital Transformation - Eddie Obeng, at USI</a></li></ul><h2 id="dan-martell"><a href="https://www.youtube.com/user/danvmartell">Dan Martell</a></h2><ul><li><a href="https://youtu.be/CvPR-W4zsQM">Angel Investor &amp; Serial Entrepreneur Shares His Modest Beginnings</a></li><li><a href="https://youtu.be/wrtsWcs520I">SaaS Sales Funnel in 3 Basic Steps (Especially In The Early Days)</a></li></ul><h2 id="dumb-money"><a href="https://www.youtube.com/channel/UCcxZ035aJQC-3X-iPoN9W5Q">Dumb Money</a></h2><h2 id="y-combinator"><a href="https://www.youtube.com/channel/UCcefcZRL2oaA_uBNeo5UOWg">Y Combinator</a></h2><ul><li><a href="https://youtu.be/TYt5yuiGk9E">Vinod Khosla on How to Build the Future</a></li><li><a href="https://youtu.be/VAUt2j6juHU">Mark Zuckerberg on Taking Risks and Finding Talented People</a></li><li><a href="https://youtu.be/tnBQmEqBCY0">Elon Musk : How to Build the Future</a></li></ul><h2 id="freecodecamporg"><a href="https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ">freeCodeCamp.org</a></h2><h2 id="explainingcomputers"><a href="https://www.youtube.com/channel/UCbiGcwDWZjz05njNPrJU7jA">ExplainingComputers</a></h2><h2 id="web3-foundation"><a href="https://www.youtube.com/channel/UClnw_bcNg4CAzF772qEtq4g">Web3 Foundation</a></h2><ul><li><a href="https://www.youtube.com/watch?v=iiZoUJ4Rg2U">5 Reasons Why Tezos Rocks by Arthur Breitman at Web3 Summit 2018</a></li></ul><h2 id="talks-at-google"><a href="https://www.youtube.com/channel/UCbmNph6atAoGfqLoCL_duAg">Talks at Google</a></h2><h2 id="this-week-in-startups"><a href="https://www.youtube.com/channel/UCkkhmBWfS7pILYIk0izkc3A">This Week In Startups</a></h2><ul><li><a href="https://youtu.be/rdRSUJkvmxM">E759: Tezos Kathleen Breitman raises $232m top ICO for new self-governing smart contract blockchain</a></li></ul><h2 id="javascript-programming-educators">JavaScript Programming Educators</h2><h2 id="kyle-simpson"><a href="https://www.youtube.com/user/theshadedecho">Kyle Simpson</a></h2><p>Kyle is a gifted speaker and a dedicated educator, the channel does not amount to much
while he surely would be found on a few preeminent conference panels.</p><p>He uses javascript and is an advocate of simplicity.
These are three of my favourites from him:</p><ul><li><a href="https://youtu.be/b5CO2WntCOA">Functional-Light JavaScript</a></li><li><a href="https://youtu.be/Qg1SvpIau6U">Advanced Async and Concurrency Patterns in JavaScript</a></li><li><a href="https://youtu.be/WoL4BfSv7pI">Kyle Simpson defends JavaScript Coercion’s bad reputation</a></li><li><a href="https://soundcloud.com/oreilly-radar/kyle-simpson-and-tammy-everts-on-the-challenges-of-the-modern-web?in=oreilly-radar/sets/oreilly-programming-podcast">Kyle Simpson and Tammy Everts on the Challenges of the Modern Web</a></li></ul><h2 id="fun-fun-function"><a href="https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q">Fun Fun Function</a></h2><p>Highly biased by javascript and front-end technologies, the channel is very practical
with tons of great content that also cover other parts of the stack and of a programmer’s
day to day activity.</p><p>Latest advice I am following:</p><ul><li><a href="https://youtu.be/BPHLz0lQ6Fg">Run Prettier in CI, NOT as an editor plugin</a></li><li><a href="https://youtu.be/0X1Ns2NRfks">Dependency Injection basics- Fun Fun Function</a></li></ul><h2 id="j-on-the-beach"><a href="https://www.youtube.com/channel/UC3KyKpIyhLAnIUqcYBo4PFg">J On The Beach</a></h2><p>Another awesome spanish hosted programming conference channel.</p><p>A couple of my picks:</p><ul><li><a href="https://youtu.be/MVVSsLTQK1g">JOTB19 - When Cloud Native meets the Financial Sector by Victor Tuson</a></li><li><a href="https://youtu.be/6x0BPHG0dRY">JOTB19 - The Six Pitfalls of building a Microservices Architecture by Moisés Macero</a></li></ul><h2 id="packt-video"><a href="https://www.youtube.com/channel/UC3VydBGBl132baPCLeDspMQ">Packt Video</a></h2><ul><li><a href="https://youtu.be/E4oh11WDWHo">Svelte.js 3 and Sapper Projects: The Course Overview | packtpub.com</a></li></ul><h2 id="general-programming-and-algorithms">General Programming and Algorithms</h2><h2 id="khan-academy-computing"><a href="https://www.youtube.com/channel/UCye0TMXdb_zdfvVgXA0XtkA">Khan Academy Computing</a></h2><p>Khan Academy does not put out much video content, mostly targeting beginners,
their videos are mostly support for courses, but find them as a brief and amazing
reminder for algorithms and techniques.</p><h2 id="hackerrank"><a href="https://www.youtube.com/channel/UCOf7UPMHBjAavgD0Qw5q5ww">HackerRank</a></h2><p>Hacker rank is producing great content targeting engineer recruitment and training.</p><p>Some content picks from both sides:</p><ul><li><a href="https://youtu.be/KG0aU73HOXE">How to Evaluate Tech Skills Better</a></li><li><a href="https://youtu.be/N9CsFY8cpdk">5 Tips to Improve your Engineering Manager Relationship</a></li><li><a href="https://youtu.be/P8Xa2BitN3I">Algorithms: Memoization and Dynamic Programming</a></li><li><a href="https://youtu.be/oSWTXtMglKE">Data Structures: Trees</a></li></ul><h2 id="tutorialedge"><a href="https://www.youtube.com/channel/UCwFl9Y49sWChrddQTD9QhRA">TutorialEdge</a></h2><ul><li><a href="https://www.youtube.com/watch?v=zvswM5pY-mk&amp;list=PLzUGFf4GhXBLEQsoOfLzhH6JKybt8I5Ec">Learning Concurrency in Python</a></li><li><a href="https://www.youtube.com/watch?v=W5b64DXeP0o&amp;list=PLzUGFf4GhXBL4GHXVcMMvzgtO8-WEJIoY">Creating a Simple RESTful API in Go</a></li><li><a href="https://www.youtube.com/watch?v=IezF9Gj4Pcc&amp;list=PLzUGFf4GhXBLWueypt6avCKOCNt0675EQ">Building a HackerNews Clone in VueJS</a></li></ul><h2 id="domain-driven-development">Domain Driven Development</h2><h2 id="explore-ddd"><a href="https://www.youtube.com/channel/UCcpKGt6MVvz7dISXLlMGmag">Explore DDD</a></h2><p>Eric Evans relating to people that are interested in adopting DDD as guiding principles for architecture: </p><ul><li><a href="https://youtu.be/kIKwPNKXaLU">Eric Evans - Keynote: Tackling Complexity in the Heart of Software</a></li></ul><p>Alberto Brandolini on convincing organizations and people:</p><ul><li><a href="https://youtu.be/1i6QYvYhlYQ">Alberto Brandolini - 50,000 Orange Stickies Later</a></li><li><a href="https://youtu.be/NGXl1D-KwRI">GOTO 2018 • 50.000 Orange Stickies Later • Alberto Brandolini</a></li><li><a href="https://youtu.be/fGm62ra_mQ8">Alberto Brandolini - 100,000 Orange Stickies Later | Øredev 2019</a></li></ul><h2 id="golang">GoLang</h2><h2 id="gophercon-uk"><a href="https://www.youtube.com/channel/UC9ZNrGdT2aAdrNbX78lbNlQ?reload=9">GopherCon UK</a></h2><h2 id="the-go-programming-language"><a href="https://www.youtube.com/channel/UCO3LEtymiLrgvpb59cNsb8A">The Go Programming Language</a></h2><h2 id="twilio"><a href="https://www.youtube.com/channel/UCWh3G9LZmZ3q_xWOyPpn8ag">Twilio</a></h2><h2 id="links-with-physics">Links with Physics</h2><h2 id="mequanics"><a href="https://www.youtube.com/user/meQuanics">meQuanics</a></h2><p>One of the few technical relevant channels on the subject of Quantum Computing,
at this point in time the video content is less relevant, so listening to the <a href="https://soundcloud.com/mequanics">podcast</a>
would be my recommended way of consuming the information.</p><h2 id="sabine-hossenfelder"><a href="https://www.youtube.com/c/SabineHossenfelder">Sabine Hossenfelder</a></h2><p>The science professor does not steer away from offering a controversial opinion on the scientific approaches,
all the while delivering value by using practical evidence and going deeper into the Physics around the subject at hand.
As it happens most of the subjects tackled are also of great exposure to the public these days.
The Physics subject that predominates is Quantum Mechanics.</p><ul><li><a href="https://youtu.be/0GCHzbmMZf0">The 10 Most Important Physics Effects</a></li><li><a href="https://youtu.be/XJSfgE9LUJw">Understanding Quantum Mechanics #1: It’s not about discreteness</a></li><li><a href="https://youtu.be/WIMGAFL8DVk">Does the world need a larger particle collider?</a></li></ul><h2 id="your-daily-equation"><a href="https://www.youtube.com/watch?v=T44nS6xJ1Fc&amp;list=PLKy-B3Qf_RDVL6Z_CmgKf0tAbpXTua9mV">Your Daily Equation</a></h2><p>This rather different entry is a playlist comprised of Brian Green’s series for the “World Science Festival” channel,
which is as big as a television channel these days. I love this series as Brian Green gives the best
analogies for the Physics under discussion in the respective episode.
The Physics subject that predominates is “understanding Time”.</p><ul><li><a href="https://youtu.be/G_NlwfA8x0o">Your Daily Equation #1: E = mc2</a></li><li><a href="https://youtu.be/nnVq6gmatHU">Your Daily Equation #2: Time Dilation</a></li><li><a href="https://youtu.be/x4iU76Qj2mU">Your Daily Equation #32: Entropy and the Arrow of Time</a></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Nodejs Snowflake Sdk Optimisations for Aws Lambda]]></title>
            <link>/post/2022-06-13/nodejs-snowflake-sdk-optimisations-for-aws-lambda</link>
            <guid>/post/2022-06-13/nodejs-snowflake-sdk-optimisations-for-aws-lambda</guid>
            <content:encoded><![CDATA[<h3 id="current-setup">Current setup:</h3><p>We are using <strong>snowflake-promise</strong> as a wrapper to <strong>snowflake-sdk</strong> in an <strong>appsync lambda resolver</strong>.</p><h3 id="issues-with-current-setup">Issues with current setup:</h3><ol><li>Not being able to use a connection pool (results in )</li></ol><pre><code>Error [ClientError]: Connection already in progress.
</code></pre><ol start="2"><li>OCP Cache</li></ol><pre><code>Reading OCSP cache file. /home/sbx_user1051/.cache/snowflake/ocsp_response_cache.json&quot;

Failed to read OCSP cache file: /home/sbx_user1051/.cache/snowflake/ocsp_response_cache.json, err: Error: ENOENT: no such file or directory, open &#x27;/home/sbx_user1051/.cache/snowflake/ocsp_response_cache.json&#x27;\n    at Object.openSync (fs.js:498:3)\n    at Object.readFileSync (fs.js:394:35)\n    at new OcspResponseCache (/var/task/webpack:/node_modules/snowflake-promise/node_modules/snowflake-sdk/lib/agent/ocsp_response_cache.js:79:1)\n    at getOcspResponseCache (/var/task/webpack:/node_modules/snowf&quot;

Contact OCSP Cache Server: http://ocsp.snowflakecomputing.com/ocsp_response_cache.json&quot;
Finish OCSP Cache Server: http://ocsp.snowflakecomputing.com/ocsp_response_cache.json&quot;


/home/sbx_user1051/.cache/snowflake/ocsp_response_cache.json&quot;
Writing OCSP cache file. /home/sbx_user1051/.cache/snowflake/ocsp_response_cache.json&quot;
Failed to update OCSP cache file: /home/sbx_user1051/.cache/snowflake/ocsp_response_cache.json, err: Error: ENOENT: no such file or directory, open &#x27;/home/sbx_user1051/.cache/snowflake/ocsp_response_cache.json&#x27;\n    at Object.openSync (fs.js:498:3)\n    at Object.writeFileSync (fs.js:1529:35)\n    at OcspResponseCache.resetCacheStatus (/var/task/webpack:/node_modules/snowflake-promise/node_modules/snowflake-sdk/lib/agent/ocsp_response_cache.js:138:1)\n    at /var/task/webpack:/node_modules/snowflake&quot;
</code></pre><ol start="3"><li><a href="https://github.com/natesilva/snowflake-promise/pulls">Npm package is not up to date</a> (Last publish: a year ago) and snowflake sdk’s latest updates are not available as a <a href="https://github.com/natesilva/snowflake-promise/compare/master...flydata:master">couple</a> of different forks have tried to <a href="https://github.com/natesilva/snowflake-promise/compare/master...timfenten:master">signal</a></li></ol><h3 id="has-anyone-tried-to-solve-these-issues-before-">Has anyone tried to solve these issues before ?</h3><ol><li>Making the snowflake-sdk async</li></ol><ul><li><a href="https://medium.com/@mazurkiewiczpw/aws-lambda-nodejs-with-snowflake-b5fdb35896e5">AWS Lambda NodeJs with Snowflake</a></li><li><a href="https://www.npmjs.com/package/snowflake-promise">snowflake-promise</a></li></ul><ol start="2"><li>Using a connection Pool</li></ol><ul><li><a href="https://github.com/natesilva/snowflake-promise/pull/19/files">snowflake-promise fork</a></li><li>an open PR has suggested using a <code>isUp</code> method, which I merged on the fork above, but it did not make a difference in my case</li><li>I tried using a <a href="https://github.com/Tellimer/snowflake-sdk-promise/blob/master/src/SnowflakePool.ts">Connection Pool</a>, which worked well for our case</li></ul><ol start="3"><li>OCSP Cache</li></ol><ul><li>can be <a href="https://www.snowflake.com/blog/latest-changes-to-how-snowflake-handles-ocsp/">be turned off</a></li><li><a href="https://community.snowflake.com/s/article/How-to-turn-off-OCSP-checking-in-Snowflake-client-drivers">HOW TO: TURN OFF OCSP CHECKING IN SNOWFLAKE CLIENT DRIVERS</a></li><li>having the check happen on each request is rather useless, following these <a href="https://docs.snowflake.com/en/user-guide/ocsp.html#best-practices">best practices</a> should mitigate and eliminate the need for the OCSP check</li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[22 Resources to study Redux Side Effects]]></title>
            <link>/post/22-resources-to-study-redux-side-effects</link>
            <guid>/post/22-resources-to-study-redux-side-effects</guid>
            <content:encoded><![CDATA[<p><img src="https://gateway.ipfs.io/ipfs/QmUBjsfoAGyV2uzwnFeAE3zree51C6eKY7ueu7SfEfpE8P" alt="redux-architecture-overview-middleware.png"/></p><p>In my learning journey, I have a habit of building a list of resources that I am about to study in order to extract something more specific into an ulterior blog article or in implementing a certain software feature.</p><p>My end goal after going through the following resources is to have result in a blog post explaining what Redux Side Effects are about and how and when they can be used. Might be a series of blog posts to be fair, if this subject’s worthy enough.</p><h2 id="redux-side-effects-resources">Redux Side Effects Resources:</h2><ul><li><p>Redux documentation on middleware  <a href="https://redux.js.org/api-reference/applymiddleware">https://redux.js.org/api-reference/applymiddleware</a> </p></li><li><p>Actionware - Redux with less boilerplate, actions statuses and controlled side-effects in a single shot. <a href="https://github.com/wellguimaraes/actionware">https://github.com/wellguimaraes/actionware</a></p></li><li><p><a href="https://lorenstewart.me/2016/11/27/a-practical-guide-to-redux/">A Practical Guide to Redux</a></p></li><li><p><a href="https://staltz.com/some-problems-with-react-redux.html">SOME PROBLEMS WITH REACT/REDUX</a></p></li><li><p><a href="https://github.com/xgrommx/awesome-redux">Awesome Redux</a></p></li><li><p><a href="http://devguides.io/redux/middleware">Dev Guides - Redux - Middleware</a></p></li><li><p><a href="https://ricostacruz.com/til/redux-side-effects">Managing side effects in Redux</a></p></li><li><p><a href="https://goshakkk.name/redux-side-effect-approaches/">3 common approaches to side-effects in Redux apps</a></p></li><li><p><a href="https://github.com/salsita/redux-side-effects">Redux toolset for keeping all the side effects inside your reducers while maintaining their purity.</a></p></li><li><p><a href="https://medium.com/magnetis-backstage/redux-side-effects-and-me-89c104a4b149">Redux side effects and me (Lucas Sunsi)</a></p></li><li><p>An alternative side effect model for Redux apps <a href="https://redux-saga.js.org/">https://redux-saga.js.org/</a> - <a href="https://github.com/redux-saga/redux-saga">https://github.com/redux-saga/redux-saga</a></p></li><li><p><a href="http://slides.com/joelkanzelmeyer/taming-large-redux-apps#/9/10">Taming large redux apps</a></p></li><li><p><a href="https://github.com/jarvisaoieong/redux-architecture">elm architecture in redux with redux-loop</a></p></li><li><p><a href="https://github.com/uanders/react-redux-cheatsheet">https://github.com/uanders/react-redux-cheatsheet</a>
<img src="https://gateway.ipfs.io/ipfs/QmVeJUcAfvZebf1PD1YzmwttEwbYDa6SjHgEf5Tx1yiyaq" alt="react-redux-workflow-graphical-cheat-sheet_v110.png"/></p></li><li><p><a href="https://github.com/markerikson/react-redux-links">https://github.com/markerikson/react-redux-links</a></p></li><li><p><a href="https://github.com/markerikson/react-redux-links/blob/master/redux-side-effects.md">https://github.com/markerikson/react-redux-links/blob/master/redux-side-effects.md</a></p></li><li><p><a href="http://colbydehart.com/redux-side-effects-in-12-to-16-lines">Redux Side Effects In 12 to 16 Lines</a></p></li><li><p><a href="https://css-tricks.com/learning-react-redux/">Leveling Up with React: Redux</a></p></li><li><p><a href="https://redux-observable.js.org/">https://redux-observable.js.org/</a></p></li><li><p><a href="https://github.com/markerikson/redux-ecosystem-links">Redux Ecosystem Links</a></p></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[3 Golden Nuggets a Day on Teaching Composition and Programming]]></title>
            <link>/post/3-golden-nuggets-a-day-on-teaching-composition-and-programming</link>
            <guid>/post/3-golden-nuggets-a-day-on-teaching-composition-and-programming</guid>
            <content:encoded><![CDATA[<p><img src="https://ipfs.busy.org/ipfs/QmPXzEuv4UbPXfRiH3iUGAeVcmLzHR51h3k63ZLg1jdfj6" alt="download.png"/></p><p>Today I have introduced a new section to each of the past ones: <strong>My Impressions</strong> inspired by
Jim Kwik: Speed Reading, Memory, &amp; Superlearning
<a href="https://youtu.be/t9setjA0AT8?t=13m17s">https://youtu.be/t9setjA0AT8?t=13m17s</a></p><p>Capture Notes | Creating Notes
Creating Notes =&gt; Questions that you would have, how would you be able to use it, how it relates to things you already know. Dare to DayDream!</p><hr/><ul><li>Classic Read</li></ul><p>Resource:</p><p><a href="https://youtu.be/qGl2XsuZHWY">https://youtu.be/qGl2XsuZHWY</a></p><p>My one golden nugget: </p><p><strong>teaching can unlock the passion within instead of trying to rewrite everything from scratch while allowing for politics.</strong></p><p>My one impression:</p><p><em>In my programming career and professional life I am known for my desire to always adhere to coding standards while trying to use the latest tools available, should I have a think on changing my approach to pushing good code forward and turn it into educational content for my colleagues ?</em></p><ul><li>This one comes with some downsides for me and the likes of people whom have no exercise in one to one education, tools that I decided to explore as a result: packt publishing for tech course publishing, youtube or other media streams.</li></ul><hr/><ul><li>How To’s: </li></ul><p>Resource:</p><p><em>The Power of Composition - Scott Wlaschin</em>
<a href="https://youtu.be/vDe-4o8Uwl8">https://youtu.be/vDe-4o8Uwl8</a></p><p>My one golden nugget:</p><p>  <em>functions need to be standalone. Consider types of nouns and verbs. Noun = Data Structure, Verb = Behaviour.</em></p><p>  Functional programming problem solution steps:</p><ol><li>identify unique functions</li><li>define functions</li><li>pipeline your functions accordingly</li></ol><p>My one impression:</p><p>  <em>Currying is the process that allows chaining by transforming a multi-input function into one-input function.</em> </p><p>  Put I/O operations at the start or end of your pipeline, while in the middle only keep pure functions</p><p>  <a href="https://youtu.be/vDe-4o8Uwl8?t=53m56s">https://youtu.be/vDe-4o8Uwl8?t=53m56s</a></p><p>  Map: apply single input function to a list</p><p>  Bind: transform a one input 2 output function into a 2 input 2 output function (adds an input)
getting composition to work</p><p>  Kleisli Composition: combine functions of the same kind to get </p><hr/><ul><li>Biography: </li></ul><p>Resource:</p><p>TRAIN AI 2018 - Building the Software 2.0 Stack
<a href="https://vimeo.com/272696002">https://vimeo.com/272696002</a></p><p>My one golden nugget:</p><blockquote><p>new paradigm: instead of engineered code, make use of AI to find code that does what you need</p></blockquote><p>My one impression:</p><p><em>How can I get involved into creating new stacks using AI while adding on my skills instead of ditching them and start from scratch ?</em></p><hr/><p>I am building <a href="https://airtable.com/shrGxpvHMnRvJLEMU/tbl4cjGreIgC47h4d">a list of books on airtable</a>.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Blog future under consideration]]></title>
            <link>/post/blog-future-under-consideration</link>
            <guid>/post/blog-future-under-consideration</guid>
            <content:encoded><![CDATA[<p>Taken that I suffer from the same “do not post until perfect” or “i don’t have time to finish my post” disease, what most of my fellow programmers with a blog seems to suffer, I’ve taken under consideration to dedicate 15 minutes every day to write  something, anything on my blog. No matter what the day reserves I will dedicate 15 minutes to posting on this blog and acquiring some English skills as a side-effect .</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Course Completion - Review - Node Program: From 0 to Hero with Nodejs]]></title>
            <link>/post/course-completion-node-program-from-0-to-hero-with-nodejs</link>
            <guid>/post/course-completion-node-program-from-0-to-hero-with-nodejs</guid>
            <content:encoded><![CDATA[<p>My first experience in following Azat Mardan, the author of this <a href="https://www.udemy.com/nodeprogram">course</a>. I discovered him through his blog while I was looking to solve some problems, he goes through the basic stuff and gives the feeling that he can respond clean and short to questions about the material.</p><ul><li><p>Main takeaways:</p><ol><li>Understanding of async programming and basic understanding of web programming in nodejs</li><li>Acquired knowledge of server constructs and basic modules</li><li>Illustrations of some of the greatest pitfalls</li></ol></li><li><p>Pro:
1. Enjoyed the examples and the abundance of code near explanations
2. Best part: bonus content
3. Azat does best in writing
The course is really well structured with focal points and quizes after important lessons</p></li><li><p>Cons:</p><ol><li>the course audience has some not so good questions or participation</li><li>too much content direct at beginners in web, some content should be covered in a “web basics course” as it seems disturbing sometimes and it’s clear that Azat does not deliver quality replies on this kind of dumb questions</li></ol></li></ul><p>Overall I appreciate that my skill has improved adding to my knowledge of web and solidifying some general knowledge about web infrastructure. I would recommend this course to anybody, it is definitely more rewarding than watching a tv show.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating a dotfiles installer - My ToDo List]]></title>
            <link>/post/creating-a-dotfiles-installer-my-todo-list</link>
            <guid>/post/creating-a-dotfiles-installer-my-todo-list</guid>
            <content:encoded><![CDATA[<p>Suggestions and improvements on current files located at <a href="https://github.com/decebal/dotfiles">https://github.com/decebal/dotfiles</a></p><ol><li>make installer settings optional</li><li>make zsh themes optional</li><li>Complete the script that copies necesarry files on subservers</li><li>Document user made functions</li><li>Config as beeing client</li></ol><ol><li><p>make installer settings optional</p><ol><li>move from git submodules to composer(or other alternative like pip)</li><li>make vim submodules selectable for install</li><li>make git configuration optimal</li><li>add check for installing configurations check that tech exists.. vim, zsh, grc, ccze, git, curl, git-flow</li><li>Rewrite install script with python or haskell (study integration with capistrano)</li></ol></li></ol><ol start="2"><li><p>make zsh themes optional</p><ol><li>powerline</li><li>list options to choose from</li><li>list oh-my-zsh plugins —installed by default &amp; link to a list with all</li></ol></li><li><p>Complete the script that copies necessary files on subservers</p><ol><li>Add option to clone|check</li><li>interactive git config </li><li>do you want to confirm each git setting</li><li>add option to complete a config file using a template for deploy</li><li>verify if .gitconfig exists, generate backup and diff</li></ol></li><li><p>Document user made functions</p><ol><li>Document Emag.ro functions with suggestions and help — move to repo</li><li>Create a command that lists available user made functions</li><li>Add swiss army knife functions &amp; document them</li></ol></li><li><p>Config as being client</p><ol><li>server vs client (test options for bash users too)</li><li>limited rights on cloning… maybe no repo, just files or remove right to push to master directly</li><li>deploy on clients with capistrano</li></ol></li></ol>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating your own dotfiles - First Episode]]></title>
            <link>/post/creating-your-own-dotfiles-first-episode</link>
            <guid>/post/creating-your-own-dotfiles-first-episode</guid>
            <content:encoded><![CDATA[<ol><li><p>Choosing between bash and zsh
One of these days i had some time on my hand and decided to put all my [dot]files into a git repository. I chose to do that because I wanted to be able do to things the same way in all enviroments that I’m working. So I came across these problems:</p><ol><li>Choosing between bash and zsh</li><li>Private aliases and functions vs public</li><li>Usefull completion files</li><li>Git aliases and completion</li><li>Vim config files and bundles</li><li>Symfony2 Php completion</li></ol><p>I decided to split the above list into episodes, just because there was plenty of info online and thankfully i got to choosing some goods.</p></li></ol><h3 id="step-1--decision-making">Step 1 : decision making</h3><p><em>I recently came upon zsh and got in love with it.</em></p><p>First of all when choosing between bash and zsh, I asked my friend <a href="http://google.com/">google</a> on what others said on the subject. I looked on some argument people commented on <a href="http://www.reddit.com/r/linux/comments/1csl7c/bash_vs_zsh/">reddit</a>, but the opinion of a friend and this presentation <a href="https://www.slideshare.net/jaguardesignstudio/why-zsh-is-cooler-than-your-shell-16194692">Why Zsh is Cooler than Your Shell</a> from <a href="http://www.slideshare.net/jaguardesignstudio">jaguardesignstudio</a> really got my thinking it must be worth it.</p><p>I’ve got some usefull aliases from this <a href="http://askubuntu.com/questions/1577/moving-from-bash-to-zsh">post on askubuntu</a>, too.</p><h3 id="step-2--installation">Step 2 : installation</h3><p>Most of you will find this easy in your package management tool and install it. The package is called zsh . </p><p>I came upon the problem of not having root access right on some machines so i needed and alternative. I found it on <a href="http://zsh.sourceforge.net/">sourceforge</a>. </p><p>Big lines clone the git repo:</p><pre><code>git clone git://git.code.sf.net/p/zsh/code
</code></pre><p>than follow INSTALL intructions. Be aware thought, only for advanced users with time on their hands. I’m trying to put up a script that does this for me, but in less busy days.</p><h3 id="step-3--customization">Step 3 : customization</h3><p>I ran across <a href="https://github.com/robbyrussell/oh-my-zsh/wiki/themes">this list of themes</a> and tried a few. I liked some of them: af-magic, arrow, sporty_256, bira, powerline.</p><p>I must say <a href="https://github.com/steadystatic/dotfiles/tree/master/oh-my-zsh-powerline-theme">powerline</a> brought to me an entire new world of customizations. Fir of all I had some troubles when <a href="https://github.com/Lokaltog/powerline-fonts">installing a custom font</a> . This job must be done on your local machine and the magic arrows in powerline will reveal themselves.</p><p>Edit: Powerline is happiest with Zsh because it allows for prompts to be built out from both the left and right. Bash is not so nice, and so the default Powerline Bash display prompt is not great. The standard theme (which only displays the “left” segments in Bash) leaves out important things like Git status/branch info. The “default_leftonly” theme, is better, but it still puts a lot of information, uncondensed, on a single line, so that you end up with 70 characters of stuff in your 80 character window prior to the insertion point. Not great.</p><p><em>You can see my files in this <a href="https://github.com/decebal/dotfiles">repo</a></em></p><pre><code> https://github.com/decebal/dotfiles
</code></pre>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day 10 of Machine Learning in Review]]></title>
            <link>/post/day-10-of-machine-learning-in-review</link>
            <guid>/post/day-10-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<ul><li><p>What Kind Of Data Scientist Do You Want To Be?</p><p>Video: <a href="https://youtu.be/QB2r06mpI0I">https://youtu.be/QB2r06mpI0I</a></p><p>According to this video, there are several data scientist archetypes:</p><ul><li>The Detective, a master of analysis,</li><li>The Oracle, a master of modeling,</li><li>The Maker, a master of engineering, and</li><li>The Generalist, proficient at everything.</li></ul><p>I liked the fact that they offered insights on the niches of Machine Learning
inside a company. Looking forward I was so tempted to set myself the goal of
becoming a Generalist without realising how good an Oracle I am.</p><p>I loved the point made about people in the industry that avoid becoming proficient
in data mechanics.
</p></li><li><p>Coding Challenge #100.2: Neuroevolution Flappy Bird - Part 2</p><p>Video: <a href="https://youtu.be/YtRA6tqgJBc">https://youtu.be/YtRA6tqgJBc</a></p><p>Loads of fun, knowledge and practical bits.
Comes with a plethora of great link, here is what I went thorough briefly:</p><ul><li><a href="https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH">Coding Challenges Playlist</a></li><li><a href="https://youtu.be/cXgA1d_E-jY">Part 1</a></li><li><a href="https://www.youtube.com/playlist?list=PLRqwX-V7Uu6aCibgK1PTWWu9by6XFdCfh">Neural Networks Playlist</a></li><li><a href="https://www.youtube.com/playlist?list=PLRqwX-V7Uu6bJM3VgzjNV5YxVxUwzALHV">Genetic Algorithms</a></li><li><a href="https://www.amazon.com/shop/thecodingtrain">Book Recommendations</a></li></ul></li><li><p>How to Study Machine Learning</p><p>Video: <a href="https://youtu.be/waXHrc2m9K8">https://youtu.be/waXHrc2m9K8</a></p><p>Here is my assessment of my own situation through the steps:</p><ol><li><em>Live a healthy lifestyle.</em>
I gave up a gym subscription in February due to an expectation of moving home,
but I have already started to pay the price. I can confirm an ever improving
healthy lifestyle was at the root of my professional rise so far. For the past
3 months I have been working on my diet. I consider part of it to be a dose
of daily reading as it keeps the mind active and I gave up listening to music
while working, instead I listed to youtube case studies. I failed to integrate
podcasts into my routine so far.</li><li><em>Optimize your learning environment.</em> I cannot wait to swap houses,
already overdue due to lender complications. The new house has a dedicated
room to study and video recording.</li><li><em>Create a personalized learning path.</em> I plan to use my 15 days of
the challenge to put a plan in place. I am an audio learner, but learning
ML needs all my senses.     	</li><li><em>Prioritize</em> I too have todo lists, with the help of airtable I was able
to bring all of my lists together. Each morning I make sure to put the most important
3 tasks for the day in my Today list while updating a backlog for the day. </li><li><em>Be an active learner.</em> I love the Fast framework myself, while on more complex
tasks like learning a new language I love applying <a href="https://simpleprogrammer.com/">John Sonmez</a>&#x27;s
10 step method based on the same Fast principles. My method of teaching others
at the moment consist in writing blog articles, I am eager to expand it to video
recordings. I had a try last summer with Packt Publishing, but my current situation
makes it complicated for video recordings.</li></ol></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day 6 of Machine Learning in Review]]></title>
            <link>/post/day-6-of-machine-learning-in-review</link>
            <guid>/post/day-6-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<h3 id="resources-explored">Resources explored</h3><p>For people whom need a little more structure I looked into some courses,
here’s what I found so far:</p><ul><li><p>Practical Convolutional Neural Networks: The Course Overview | packtpub.com
<a href="https://youtu.be/EgKQeuwmTEk">https://youtu.be/EgKQeuwmTEk</a></p><ul><li>Looks amazingly useful for beginners</li><li>Love the examples</li><li>Authors seem well versed on the subject </li></ul></li><li><p>TensorFlow 1.x Deep Learning Recipes for Artificial Intelligence App: Course Overview | packtpub.com
<a href="https://youtu.be/RMILgtLeNVc">https://youtu.be/RMILgtLeNVc</a></p><ul><li>Dives into Deep Learning and generally goes a step further that the previous course</li><li>The recipes for TensorFlow are my personal favourite
</li></ul></li><li><p><a href="https://www.drivendata.org/competitions/">Driven Data Competitions</a></p><ul><li>their competition model almost ensures they always have a challenge open, currently 3–4 open</li><li>found this data source that might be useful for other purposes as well: <a href="https://data.worldbank.org/">https://data.worldbank.org/</a>,
although at first glance I wouldn’t know where to start if i was looking for a specific data set</li></ul></li><li><p><a href="https://www.kaggle.com/competitions">Kaggle Competitions</a></p><ul><li>You can even see Suraj (author of #100DaysOfMLCode Challenge) competing on his channel: <a href="https://youtu.be/suRd3UzdBeo">https://youtu.be/suRd3UzdBeo</a><ul><li>watching this approach of Suraj would give you the insights necessary to his development process </li></ul></li><li>I just had to pick a few really interesting challenges:<ul><li><a href="https://www.kaggle.com/c/trackml-particle-identification">TrackML Particle Tracking Challenge</a>
I just love what CERN is doing, it’s great to see how the new tech can be useful for old research processes </li><li><a href="https://www.kaggle.com/c/zillow-prize-1">Zillow’s Home Value Prediction</a>
This one I picked as would just love to be able to do this for myself.</li><li><a href="https://www.kaggle.com/c/imaterialist-challenge-furniture-2018">iMaterialist Challenge (Furniture) </a>
This is a past challenge, but it makes for a great task that I could get involved in.
Something like: Recognize valuable furniture in a second-hand/charity shop. </li></ul></li></ul></li></ul><ul><li><p><a href="https://youtu.be/h3l4qz76JhQ">Build a Neural Net in 4 Minutes</a></p></li><li><p><a href="https://www.picturethisai.com/">Plant Identification - Picture This App</a></p><ul><li><p>when it works it’s amazingly powerful</p></li><li><p>great idea of putting Neural Networks to work</p></li><li><p>the app still has some issues especially as I tried it out in the wild and was saying it had no connection, basically it needed loads of data to download</p></li><li><p>I love the use of community in this one in order to train the models</p></li><li><p>Some other resources on the subject:</p><ul><li><a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5458433/">Deep Learning for Plant Identification in Natural Environment</a></li><li><a href="https://link.springer.com/article/10.1007/s11042-017-5578-9">Plant identification based on very deep convolutional neural networks</a></li><li><a href="https://www.sciencedirect.com/science/article/pii/S0925231217300498">Plant identification using deep neural networks via optimization of transfer learning parameters</a></li><li><a href="https://arxiv.org/pdf/1506.08425.pdf">DEEP-PLANT: PLANT IDENTIFICATION WITH CONVOLUTIONAL NEURAL NETWORKS</a></li><li>Original Article: <a href="https://curiosity.com/topics/this-app-will-help-you-identify-the-plants-and-animals-you-see-in-nature-curiosity">This App Will Help You Identify the Plants and Animals You See in Nature</a></li></ul></li></ul></li><li><p><a href="https://experiments.withgoogle.com/collection/ai">AI Experiments</a></p><ul><li>One such experiment: <a href="https://youtu.be/wvsE8jm1GzE">A.I. Experiments: Visualizing High-Dimensional Space</a></li></ul></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day 7 of Machine Learning in Review]]></title>
            <link>/post/day-7-of-machine-learning-in-review</link>
            <guid>/post/day-7-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<h3 id="resources-explored">Resources explored</h3><ul><li><p><a href="https://youtu.be/TF1yh5PKaqI">Getting Started with Weka - Machine Learning Recipes #10</a></p><ul><li><a href="https://www.cs.waikato.ac.nz/ml/weka/index.html">Weka</a> looks a tool to try, but I am not the biggest fan of it’s UI. I comes with <a href="https://www.cs.waikato.ac.nz/ml/weka/datasets.html?utm_campaign=ai_series_wekadatasetshtml_022218&amp;utm_source=gdev&amp;utm_medium=yt-desc">datasets</a>, pretty useful.</li><li>other recipes from Google can be found <a href="https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal">in this playlist</a></li></ul></li><li><p><a href="https://towardsdatascience.com/a-complete-machine-learning-walk-through-in-python-part-one-c62152f39420">A Complete Machine Learning Project Walk-Through in Python: Part One</a></p><ul><li><p>awesome guide for this challenge</p></li><li><p>equally awesome for beginners trying to find their steps into this</p></li><li><p>i am looking forward to build on this process</p></li><li><p>you have to look at the whole series:</p><ul><li><a href="https://towardsdatascience.com/a-complete-machine-learning-project-walk-through-in-python-part-two-300f1f8147e2">part two</a></li><li><a href="https://towardsdatascience.com/a-complete-machine-learning-walk-through-in-python-part-three-388834e8804b">part three</a></li></ul></li><li><p>William is such a great author and guide, more of him here: <a href="https://towardsdatascience.com/@williamkoehrsen">@williamkoehrsen</a></p></li><li><p>Also really relevant series from him, Machine Learning Kaggle Competition :</p><ul><li><a href="https://towardsdatascience.com/machine-learning-kaggle-competition-part-one-getting-started-32fb9ff47426">Part One</a></li><li><a href="https://towardsdatascience.com/machine-learning-kaggle-competition-part-two-improving-e5b4d61ab4b8">Part Two</a></li><li><a href="https://towardsdatascience.com/machine-learning-kaggle-competition-part-three-optimization-db04ea415507">Part Three</a> </li></ul></li></ul></li></ul><h2 id="competitions">Competitions:</h2><ul><li><a href="https://numer.ai/learn">NUMERAI</a> is a weekly data science competition.</li></ul><h2 id="news">News</h2><ul><li><p><a href="https://thenextweb.com/artificial-intelligence/2018/07/18/deepmind-skype-and-tesla-founders-pledge-never-to-build-killer-robots/">DeepMind, Skype, and Tesla founders pledge never to build killer robots</a>
Funny One :)</p></li><li><p><a href="https://venturebeat.com/2018/07/18/kleiner-perkins-and-gv-invest-21-million-in-ai-healthcare-startup-viz-ai/">Kleiner Perkins and GV invest $21 million in AI health care startup Viz.ai</a></p></li><li><p><a href="https://techcrunch.com/2018/06/28/criteo-creates-an-ai-lab-in-paris/">Criteo creates an AI Lab in Paris</a>
- adtech space looks prone to go into ML with companies like Criteo</p></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day 8 of Machine Learning in Review]]></title>
            <link>/post/day-8-of-machine-learning-in-review</link>
            <guid>/post/day-8-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<h3 id="resources-explored">Resources explored</h3><ul><li><p><a href="https://www.cbinsights.com/research/collaborative-robots-reinvent-industries/">Smaller Collaborative Robots Are Disrupting The Robotics Industry</a></p><p>I love the reports from <a href="https://www.cbinsights.com/">www.cbinsights.com</a>, their research does more than scratch the surface and often offers myself a way to link up ideas with the state of the market. As it stands I have no partnership with them, I just consider them an awesome resource.</p><p><em>Warning, exponentially difficult business idea:</em>
Personally after reading the report I started dreaming of a personal cook robot with an AI that can adjust recipes based on my feedback on food and tailor it differently for my wife or my future children. </p></li><li><p><a href="https://github.com/Chakazul/Lenia">Lenia - Mathematical Life Forms</a></p><p>I have no clue how I can use this, but I am a sucker for learning Maths concepts through visualizations, this could come in handy later in my research.
So far I have only got to look at <a href="https://chakazul.github.io/Lenia/JavaScript/Lenia.html">https://chakazul.github.io/Lenia/JavaScript/Lenia.html</a> and play with the presents without any understanding of what is actually going on :).
The fact that I couldn’t find anything by googling the animals name didn’t help a great lot either.</p></li><li><p><a href="https://github.com/jupyter/repo2docker">jupyter-repo2docker</a></p><p>I just used this on <a href="https://github.com/techbanca/coinai">CoinAi</a> on my way to try
and explore crypto currency auto trading and statistics.</p><p>Really useful tool as long as it works on your targeted repository.</p></li><li><p><a href="https://www.youtube.com/user/keeroyz/videos">Two Minute Papers </a></p><p>I wouldn’t say this is great for learning, but an amazing resource for news in AI.
The format of 2–4 minutes per video is enough for delivering the news wanted to make you curious about it,
while keeping them close to the subject.</p><p>A few examples:</p><ul><li><a href="https://youtu.be/WMr9ljLomUI">An AI For Image Manipulation Detection</a> In this one, I find it of great help that he goes into enough specialised detail
to surface how the AI does the job and what constrains it has.
</li><li><a href="https://youtu.be/KL6U6iasUxs">AI-Based Large-Scale Texture Synthesis</a> This example is a good one for how good they are at exposing the use case of the AI involved.
</li></ul><p>*If you know of other similar sources please do share, along with your opinion if you’d like.
</p></li><li><p><a href="https://www.datablockchain.io/">Data BlockChain</a>	</p><p>Their subtitle looks like this: “﻿Merging Big Data, Artificial Intelligence and Blockchain Technology to Bring Critical Information to the World”
Which made me curious, but so far as I couldn’t find anything else to explain their <a href="https://medium.com/dbc-io/3-use-cases-for-datablockchain-io-5ad4bbda8425">use cases</a> I find these as rather marketing stunts in order to attract attention to their IPO.</p><p>However a Data Marketplace alone is an amazing proposition, my worry looking through it is that I don’t understand the source.
A data marketplace is any public blockchain, or maybe I need a better understanding to unclad my ignorance.</p></li><li><p><a href="https://www.scribd.com/search?content_type=tops&amp;page=1&amp;query=neural%20networks">Neural Networks on Scribd</a></p><p>Forgive my ignorance if you already knew about this, but I find this collection of resources amazing to start with. </p><ul><li><p>I have a knack for picking up old books, like
<a href="https://www.scribd.com/book/282476058/Neural-Networks-and-Pattern-Recognition">Neural Networks and Pattern Recognition</a>,
might be old in terms of publishing (1997), but it would make for a good introduction
to the methods of Pattern Recognition as theory.</p></li><li><p><a href="https://www.scribd.com/book/325574423/Deep-Learning-Fundamentals-in-Python">Deep Learning Fundamentals in Python</a>
is an introduction to the basics of Neural Networks. Looks great for settling some fundamentals if you’re into reading.
The introduction alone is enough for me.
</p></li><li><p><a href="https://www.scribd.com/document/146626812/Artificial-Neural-Networks-Architecture-Applications">Artificial Neural Networks Architecture Applications</a>
is amazing for the stage I am at as it exposes use cases like
“Use of Artificial Neural Networks to Predict TheBusiness Success or Failure of Start-Up Firms”
or “Robust Design of Artificial Neural NetworksMethodology in Neutron Spectrometry”.
This type of book is something I can easily get behind and search for more similar through scribd’s features.		</p></li></ul></li><li><p><a href="https://medium.com/@adityakaushik471/kmeans-algorithm-25634378261b">KMeans in less than 5 minutes</a></p><p>K-means clustering is a classification algorithm used to automatically divide a large group into smaller groups.
</p></li><li><p><a href="https://youtu.be/-cdxxrbKdho">Best Programming Languages for Machine Learning</a></p><p>Suraj goes through Python and Javascript as programming languages for Machine Learning.
There are plenty more to consider, my favourites are Julia and Go-Lang.</p></li><li><p><a href="http://eventregistry.org/intelligence?type=articles">Event Registry</a></p><p>Real time news content published by over 30,000 news publishers worldwide.</p><p>This type of resource is a great start on fake news break down effort
as well as a source for media publications.</p></li><li><p><a href="https://youtu.be/o_OZdbCzHUA">Twitter Sentiment Analysis - Learn Python for Data Science #2</a></p><p>Just went through <a href="https://github.com/llSourcell/twitter_sentiment_challenge/blob/master/demo.py">this sample from Suraj</a> and took the liberty to explore the tools referred in <a href="https://medium.com/@datamonsters/sentiment-analysis-tools-overview-part-2-7f3a75c262a3">Sentiment Analysis Tools Overview</a>
with his code and must say the packages for R helped me a great deal.</p></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day 9 of Machine Learning in Review]]></title>
            <link>/post/day-9-of-machine-learning-in-review</link>
            <guid>/post/day-9-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<h3 id="resources-explored">Resources explored</h3><ul><li><p><a href="https://www.cbinsights.com/research/blockchain-ai-startups/">7 Companies Using Blockchain To Power AI Applications</a></p><p>More explicitly this looks at 7 companies exploring this new frontier at the intersection of blockchain, AI, and data marketplaces.</p><p>I love what most of these companies propose, although at the moment their selling point might be on the part of exposing
data that wouldn’t normally be exposed. I guess this is where my limitations are at the moment.</p><p>Although I am confident these companies are serious and already have something on the market, their infrastructure
and data exchanges seem to be under development, but the prospect of early involvement can be quite enticing.
</p></li><li><p><a href="https://en.wikipedia.org/wiki/Generative_adversarial_network">What a GAN is</a></p><p>This Wiki link is worth it as this higher order concept leads to many other
definitions that are worth keeping an account of.
However, this wikipedia page is lacking, the next guide paints a way better picture.</p></li><li><p><a href="https://skymind.ai/wiki/generative-adversarial-network-gan">A Beginner’s Guide to Generative Adversarial Networks (GANs)</a></p></li><li><p><a href="https://towardsdatascience.com/using-unsupervised-learning-to-plan-a-paris-vacation-geo-location-clustering-d0337b4210de">Using Unsupervised Learning to plan a vacation to Paris: Geo-location clustering</a></p></li><li><p><a href="https://towardsdatascience.com/https-medium-com-piotr-skalski92-deep-dive-into-deep-networks-math-17660bc376ba">Deep Dive into Math Behind Deep Networks</a></p><p>This is enough to start on the Maths behind: <em>Single neuron</em>, <em>Single layer</em></p></li></ul><h3 id="tools-encountered">Tools Encountered</h3><ul><li><p><a href="https://deeplearning4j.org/index.html">Deep Learning for Java</a></p><p>Although I am not the biggest fan of Java, this library comes in handy for
some notions, the <a href="https://github.com/deeplearning4j/dl4j-examples">examples</a>
are quite useful. Between them, MLP Neural Nets, Convolutional Neural Nets and<br/>
Recurrent Neural Nets interest me as I would not know enough about them or the
others at this point.</p></li><li><p><a href="https://github.com/foolwood/DaSiamRPN">Distractor-aware Siamese Networks for Visual Object Tracking</a></p></li><li><p><a href="https://github.com/fastai/fast_progress">Simple and flexible progress bar for Jupyter Notebook and console</a></p></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day Five of Machine Learning in Review]]></title>
            <link>/post/day-five-of-machine-learning-in-review</link>
            <guid>/post/day-five-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<h3 id="resources-explored">Resources explored</h3><ul><li><p><a href="https://www.liveedu.tv/projects/request/">Streaming Project Requests</a>
This page is an amazing starting point for ideas on what to tackle next.
</p></li><li><p><a href="https://up-for-grabs.net/#/tags/machine-learning">Up for grabs</a> - repositories in machine learning looking for contributors openly
At the time of publishing there are only 3 such repositories &quot;up for grabs&quot;:</p><ul><li><a href="https://github.com/hangtwenty/dive-into-machine-learning">Dive into Machine Learning</a> - quite a big educational resource starting from beginner level</li><li><a href="https://evalai.cloudcv.org/">EvalAI</a> - part of <a href="https://cloudcv.org/">https://cloudcv.org/</a> , has a nice collection of ongoing challenges at the moment.
Access to data sets and jury criteria look particularly interesting to me.</li><li><a href="http://shogun.ml/">Shogun</a> - Unified and efficient machine learning library (sorry I haven’t done too much research on this one)</li></ul></li><li><p><a href="https://bons.ai/">Bonsai</a> - AI for Real-World Systems</p><p>The company has received substantial investments lately and looks set to lead
the pack in redefining Manufacturing and Energy (and 3 other huge markets).
Their <a href="https://bons.ai/blog">blog</a> is quite a source of inspiration.</p></li><li><p><a href="https://changelog.com/practicalai/2">Putting AI in a box at MachineBox</a> - podcast episode on building an <a href="https://machinebox.io/">ai company</a></p><p>Their blog is also particularly useful <a href="https://blog.machinebox.io/">https://blog.machinebox.io/</a> including <a href="https://blog.machinebox.io/my-5-favorite-practical-machine-learning-use-cases-5ec31d692357">My 5 favorite practical machine learning use cases</a>
<a href="https://changelog.com/practicalai">The podcast</a> looks like something worth to lend a ear to from time to time. </p></li><li><p><a href="https://www.openmined.org/">OpenMined</a> - Open Source community
with a really cool weekly newsletter, like this one <a href="https://digs.openmined.org/weekly-digs-10/">10</a>
this community is rather advanced people oriented.</p><p>Their slack channel community is really welcoming.
Unfortunately the blog only has one post, I say unfortunately because <a href="https://blog.openmined.org/training-cnns-using-spdz/">the one post</a>
is amazingly useful and well written.  </p></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day Four of Machine Learning in Review]]></title>
            <link>/post/day-four-of-machine-learning-in-review</link>
            <guid>/post/day-four-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<p>After last day I decided to continue researching for 15 days more, before diving into building a real-world app.
I already have a list of rough app ideas, but I expect more ideas to come to surface when going through these amazing resources out there.</p><h3 id="resources-explored">Resources explored</h3><ul><li><p>A Recap from TensorFlow Summit
<a href="https://youtu.be/kV2by5VNBsA">https://youtu.be/kV2by5VNBsA</a></p><p>  Speaker’s github <a href="https://github.com/fooljames">profile</a> contains a good
quantity of workshops using TensorFlow, between them one
<a href="https://github.com/tf-dl-workshop/tf-image-workshop">Image Recognition</a>
workshop seems interesting to study.</p></li><li><p><a href="https://github.com/awesomedata/awesome-public-datasets">Awesome Public Datasets</a>
I might not be the first person to refer this resource,
I wish these were rated as well as this list is confusing,
but it is an amazing place to start when one just wants to dabble some theories.</p><p> My picks in order to research them further are:</p><ul><li><a href="https://github.com/areinhardt/tracebase">tracebase</a> -  a collection of power consumption traces</li><li><a href="http://www.cs.cmu.edu/~jelsas/data/ancestry.com/">Ancestry forum archive</a> - Dataset is not available, but it’s something I would like to get into</li><li><a href="http://www.chalearn.org/">Challenges in Machine Learning</a> - I love that they keep an
archive of past challenges, like this one from <a href="http://clopinet.com/isabelle/Projects/NIPS2003/">2003</a>
that led me to <a href="https://www.drivendata.org/">Data science competitions to save the world</a></li><li><a href="https://www.kaggle.com/datasets">Kaggle Datasets</a> from which <a href="https://www.kaggle.com/cmenca/new-york-times-hardcover-fiction-best-sellers">this dataset with best sellers</a> is my personal favourite.
This list of data sets is a definite upgrade on the original “awesome list”.
</li></ul></li><li><p><a href="https://d3js.org/">D3.js</a> - My favourite Data-Driven Library, their <a href="https://github.com/d3/d3/wiki/Gallery">gallery</a> is awe inspiring.
<a href="http://mlvl.github.io/timeseries/">timeseries</a> is a nice example, I associate this with event streams.</p></li><li><p>Conversational Agents - TensorFlow and Deep Learning Singapore</p><div style="width:100%;height:100%"><div></div></div><p>  I love the format of this presentation, <a href="https://github.com/samwit">Sam</a> goes through technological considerations,
current and past state of chat bots before diving into his content.
<a href="https://github.com/samwit">Sam</a> has quite a library of Jupyter Notebook repositories playing with TensorFlow	   </p></li></ul><ul><li><p><a href="https://towardsdatascience.com/decision-trees-and-random-forests-df0c3123f991">Decision Trees and Random Forests</a></p><p>A sound introduction into Decision Trees and their super set : Random Forests.</p></li><li><p><a href="https://keras.io/">Keras: The Python Deep Learning library</a></p><p>This looks like a really promising tool for prototyping while on the 100 days challenge.
</p></li><li><p>Product Design in the Era of the ALGORITHM</p><p>  <em>used to be on youtube :(</em></p><p>  I loved what this talk explored in terms of the implications for product managers and designers.</p><p>  I just recently held an interview with a company where their products went through the hands of
data engineers and software engineers before reaching production, a thought that is as
delightful as it is scaring. </p><p>  Golden Nuggets:</p><ul><li>Make Data-Sets intrusive</li><li>don’t codify the paths to the product: <a href="https://www.mindtheproduct.com/">Mind The Product</a></li></ul></li><li><p><a href="https://www.tensorflow.org/guide/summaries_and_tensorboard">TensorBoard</a> - useful for visualizing your model’s computations , kind of on the go. (might be wrong here, need to explore this resource further)</p><p><a href="https://github.com/tensorflow/tensorboard">on github</a></p></li><li><p><a href="https://www.tensorflow.org/hub/">TensorFlow Hub</a> -  a library for reusable machine learning modules, I understand it contains only modules by Google and DeepMind</p></li><li><p><a href="https://www.manning.com/books/deep-reinforcement-learning-in-action">Deep Reinforcement Learning in Action</a> -</p><p>I love the format Manning uses for their books, can’t wait for this one to be finished and compare it with my research </p></li><li><p><a href="https://www.oreilly.com/learning/how-to-build-and-run-your-first-deep-learning-network">How to build and run your first deep learning network</a></p><p>I do like this beginners tutorial, although marginally helpful to myself.
I plan to do a translation of this tutorial as my first task after the documentation phase.</p></li><li><p><a href="https://github.com/openai/glow">Glow</a> - “Glow: Generative Flow with Invertible 1x1 Convolutions” - Glow Demos are particularly educational</p></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day 1 of Machine Learning in Review]]></title>
            <link>/post/day-one-of-machine-learning-in-review</link>
            <guid>/post/day-one-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<p>First and foremost I felt I need to do this with a purpose, an end goal.
I would love to be able to <em>diagnose profanity from uploaded pictures</em> at the end of this, but it feels somewhat limiting to start with this one so I decided to explore goals that I can set at the end of my first week into this within an industry or cause.
Hopefully I will have some more clarity on how I can contribute towards bringing “The Rising Billion” (Reference from <a href="https://amzn.to/2Jneq8a">“Abundance”</a>) closer to western living standards. </p><p>I chose to review my Machine Learning Resources to start with and expose them here with some comments on their usefulness towards my goal. </p><h2 id="what-is-100daysofmlcode">What is #100DaysOfMLCode?</h2><p>To start off, let me save you a few keystrokes:</p><ul><li>twitter tag <a href="https://twitter.com/search?vertical=default&amp;q=%23100DaysOfMLCode">#100DaysOfMLCode</a> or facebook <a href="https://www.facebook.com/search/posts/?q=%23100daysofmlcode">#100DaysOfMLCode</a></li><li><a href="https://youtu.be/cuQMBj1cWPo">100 Days of ML Code Challenge</a></li><li>wiki page for <a href="https://en.wikipedia.org/wiki/Machine_learning">machine learning</a></li><li>youtube is apparently full with information, not just for beginners <a href="https://www.youtube.com/results?search_query=machine+learning">Machine Learning on YouTube</a></li></ul><p>Here are a few entries I went through from people already taking on the challenge:</p><ul><li><a href="https://whitechills.com/day-2-of-100daysofmlcode/">WhiteChills trying Support Vector Regression</a></li><li><a href="https://youtu.be/3sz4Y4Apa-o">Lenilson Nascimento going through his learning live</a></li><li><a href="https://theinfogrid.com/tech/machine-learning/100daysofmlcode-join-the-challenge-and-learn-machine-learning/">“The info grid” introduction of this tag</a></li><li><a href="https://mc.ai/100daysofmlcode/">mc.ai introductory post</a>, he’s got some more Machine Learning articles on the blog, I really enjoyed going through <a href="https://mc.ai/serving-pytorch-nlp-models-on-aws-lambda/">Serving Pytorch NLP models on AWS Lambda</a></li><li><a href="https://youtu.be/uEdAinZeHN0">A rather funny introduction by Trackster</a></li></ul><p>So basically there are 2 main rules:</p><ul><li>dedicate at least <strong>One Hour a Day</strong> for 100 Days to learning or coding Machine Learning</li><li><strong>document your journey</strong> in order to make your dedication public</li></ul><hr/><h2 id="why-take-on-this-challenge-">Why take on this challenge ?</h2><ul><li>My belief is that <strong>learning something new</strong> adjacent to your daily work is tricky, a challenge like Raj’s can just about bring out some inherent motivation to the surface</li><li>If you are considering a career in the field, taking on a challenge like this would help build something to showcase your skills and talents while learning, take a look at <em>Engineered Thruth’s</em> perspective on <a href="https://youtu.be/WtbejUEcPaU">How To Get A Job in Machine Learning</a></li><li>This is FUN!</li><li>Also as a software developer reading <a href="https://www.oreilly.com/ideas/what-machine-learning-means-for-software-development">What machine learning means for software development</a>  convinced me I need to start and extend my skills into this domain. By the way <a href="https://www.oreilly.com/topics/ai">O’Reilly AI</a> is an amazing source of information <em>for beginners</em> in this field.</li><li><a href="https://vimeo.com/272696002">TRAIN AI 2018 - Building the Software 2.0 Stack</a> convinced me of the paradigm shift being eminent. New paradigm: instead of engineered code, make use of ai to find code that does what you need, while paying in <em>compute power</em>  </li></ul><hr/><h2 id="where-to-find-my-code">Where to find my code</h2><p>I plan to submit most of my code will be submitted on <a href="https://github.com/decebal/100DaysOfML">100DaysOfML</a>.
Don’t worry if you don’t see nothing there yet. <a href="https://www.huffingtonpost.com/stephanie-huston/6-practical-tips-for-gett_b_12253736.html">#SWGD</a> </p><hr/><h2 id="resources-for-study">Resources for study</h2><h3 id="my-resources-for-trying-to-identify-an-end-goal">My resources for trying to identify an end goal</h3><ul><li><a href="https://www.oreilly.com/ideas/how-to-think-about-ai-and-machine-learning-technologies-and-their-roles-in-automation">How to think about AI and machine learning technologies, and their roles in automation</a></li></ul><blockquote><p>reinforcement learning excels at problems that fall outside the realm of unsupervised and supervised machine learning</p></blockquote><blockquote><p>Despite these challenges, reinforcement learning is beginning to see real-world usage in areas like industrial automation</p></blockquote><ul><li><p>Bloomberg’s <a href="https://youtu.be/Dk7h22mRYHQ">The Rise of AI</a> Series </p><p>A few golden nuggets:</p><ul><li><p>If you want to understand a brain, build one first! (engineering approach)</p></li><li><p>“This is not going to work” vs “I am not going to make this work”</p></li><li><p>if we are to build intelligent life it is likely to understand our values and how to make the best use of us, rather than a “Terminator” scenario</p></li><li><p>danger comes from misuse of AI, eg mass manipulation </p></li></ul></li><li><p>Singularity University Summits’ Youtube playlist of <a href="https://www.youtube.com/watch?v=gPGzxWD223Q&amp;list=PLQU8wUs2JFrXGsO6IW1DjBpM_h0knFqUf">Exponential Manufacturing 2017</a>. This one is just packed with amazing ideas being explored, Additive Manufacturing and Collaborating Robots being my 2 favourites.</p></li><li><p>Rob May’s <a href="https://inside.com/ai">Inside AI</a> </p><p>Rob is a founder and VC in this space with amazing insight and interest in the current AI ecosystems.</p></li></ul><h3 id="resources-explored-on-day-one">Resources explored on day one</h3><p>Quick Note, I run by <a href="https://youtu.be/sCLHNP3cT3g">“A BAD Plan is BETTER Than NO Plan!”</a>.</p><ul><li><a href="https://youtu.be/ETeeSYMGZn0">Machine Learning APIs by Example (Google I/O &#x27;17)</a></li><li><a href="https://youtu.be/3ZiGmJipYG0">The Race to Quantum AI</a></li><li><a href="https://medium.com/machine-learning-for-humans/why-machine-learning-matters-6164faf1df12">Machine Learning for Humans🤖👶</a></li><li><a href="https://youtu.be/Nc8kZABv-KE">Tensorflow.js Explained by Siraj Raval</a></li><li><a href="https://youtu.be/FaHHWdsIYQg">Backpropagation Explained by Siraj Raval</a></li><li><a href="https://towardsdatascience.com/a-feature-selection-tool-for-machine-learning-in-python-b64dd23710f0">A Feature Selection Tool for Machine Learning in Python</a></li></ul><p>Unfortunately I didn’t get too much code on day one, this needs to change quick, looking forward for day 2.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day Three of Machine Learning in Review]]></title>
            <link>/post/day-three-of-machine-learning-in-review</link>
            <guid>/post/day-three-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<h3 id="resources-explored-on-third-day">Resources explored on third day</h3><ul><li><p><a href="https://opensource.com/article/18/5/top-8-open-source-ai-technologies-machine-learning">Top 8 open source AI technologies in machine learning</a>
The list of 8 libraries worth looking at before anything else:</p><ul><li><a href="https://www.tensorflow.org/">TensorFlow</a></li><li><a href="https://keras.io/">Keras</a></li><li><a href="http://scikit-learn.org/stable/">Scikit-learn</a></li><li><a href="https://www.microsoft.com/en-us/cognitive-toolkit/">Microsoft Cognitive Toolkit</a></li><li><a href="http://www.deeplearning.net/software/theano/">Theano</a></li><li><a href="http://caffe.berkeleyvision.org/">Caffe</a> = Convolutional Architecture for Fast Feature Embedding</li><li><a href="http://torch.ch/">Torch</a></li><li><a href="http://accord-framework.net/">Accord.Net</a></li></ul></li><li><p><a href="https://github.com/collections/machine-learning">Machine Learning - a Github Collection</a>
A really good source of training data sets and classified algorithms to explore.</p></li><li><p><a href="https://www.comet.ml/decebal/quickstart">Comet QuickStart</a></p></li><li><p><a href="https://www.liveedu.tv/projects/non-premium/data-science/">Data science Streams</a></p></li><li><p><a href="https://busy.org/@scipio/learn-python-series-11-numpy-part-1">Learn Python and NumPy - for beginners</a></p></li><li><p><a href="https://www.mlflow.org/">An open source platform for the complete machine learning lifecycle</a></p></li><li><p><a href="https://jalammar.github.io/visualizing-pandas-pivoting-and-reshaping/">Visualizing Pandas’ Pivoting and Reshaping Functions</a>
I don’t know about you, but I am a sucker for visualizing things when trying to grasp new concepts, thank you <a href="https://jalammar.github.io/">Jay Allamar</a> for this awesome blog.
He’s visuals about neural networks are worth several ml courses:</p><ul><li><a href="https://jalammar.github.io/feedforward-neural-networks-visual-interactive/">A Visual And Interactive Look at Basic Neural Network Math</a></li><li><a href="https://jalammar.github.io/visual-interactive-guide-basics-neural-networks/">A Visual and Interactive Guide to the Basics of Neural Networks</a> </li></ul></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Day Two of Machine Learning in Review]]></title>
            <link>/post/day-two-of-machine-learning-in-review</link>
            <guid>/post/day-two-of-machine-learning-in-review</guid>
            <content:encoded><![CDATA[<h3 id="resources-explored-on-second-day">Resources explored on second day</h3><ul><li><a href="https://www.oreilly.com/ideas/machine-learning-needs-machine-teaching">Machine learning needs machine teaching</a><blockquote><p>Machine teaching and machine learning are necessary complements to one another; you need both. And for the large part, most of what comprises machine teaching these days consists of giant label data sets.</p></blockquote></li></ul><blockquote><p>Common use cases for reinforcement learning: [..] tuning</p></blockquote><blockquote><p>Machine Teaching is the new <em>Programming</em></p></blockquote><ul><li><p><a href="https://www.oreilly.com/ideas/how-machine-learning-can-be-used-to-write-more-secure-computer-programs">How machine learning can be used to write more secure computer programs</a></p><blockquote><p>As an example, when you find a vulnerability in code, the question that often arises is whether there are similar vulnerabilities still in that same program.</p></blockquote></li><li><p><a href="https://www.oreilly.com/ideas/how-machine-learning-will-accelerate-data-management-systems">How machine learning will accelerate data management systems</a></p><blockquote><p>ML tools will free them [database administrators] to focus on complex tasks that are harder to automate.</p></blockquote></li></ul><blockquote><p>compute is becoming much cheaper. Suddenly, using machine learning to train this mapping actually pays off. </p></blockquote><ul><li><a href="https://medium.com/machine-learning-for-humans">Machine Learning for Humans</a></li></ul><p>Planning to go through this beginner ready series of tutorials, I like the way the’re explained so far.</p><ul><li><p><a href="https://www.youtube.com/watch?v=9kQ-6VcdtNQ&amp;list=PLLiX99yiA1FHwIA0Wl0FPkobBMKRmhrEF">My small Youtube Machine Learning Playlist</a></p></li><li><p><a href="https://www.informationweek.com/big-data/ai-machine-learning/4-types-of-machine-intelligence-you-should-know/a/d-id/1331480">4 Types of Machine Intelligence You Should Know</a></p><blockquote><p>Cognitive computing, AI, Machine learning, Deep learning</p></blockquote></li><li><p><a href="https://www.h2o.ai/">H2O</a></p></li></ul><p>Makes for an interesting exploration in AI , going through this list of steps to start with: <a href="http://h2o-release.s3.amazonaws.com/h2o/rel-wright/3/index.html">http://h2o-release.s3.amazonaws.com/h2o/rel-wright/3/index.html</a> .
Also planning to go through this <a href="http://h2o-release.s3.amazonaws.com/h2o/rel-wright/3/docs-website/h2o-docs/booklets/DeepLearningBooklet.pdf">Deep Learning with H2O</a> in order to try the h2o library offerings.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Deciding for a dotfiles installer platform]]></title>
            <link>/post/deciding-for-a-dotfiles-installer-platform</link>
            <guid>/post/deciding-for-a-dotfiles-installer-platform</guid>
            <content:encoded><![CDATA[<p>During the week-end I’ve browsed and tried some gems found on <a href="http://www.awesomecommandlineapps.com/gems.html">Build Awesome Command-Line Applications in Ruby</a>.</p><p>Until finding this stream of goodness I’ve struggled with deciding which language would serve my wishes better between bash, python, php, ruby and haskell. </p><p>I’ve decided to go with ruby only because I found usefull resources and examples. Bash seems like too complicated for building menu’s from scratch and using IO. Python and haskell are 2 languages in what I am not so proficient and as i have not found enought resources to go throught with one of them I left this options aside. Php just does not seem right for this kind of task, althought it can be done.</p><p>Finally I decided to go with capistrano and <a href="https://github.com/visionmedia/commander">Commander</a>. These are the articles that stroke me as essential to my decision :</p><ol><li><a href="http://www.sitepoint.com/ruby-command-line-interface-gems/">Ruby Command Line Interface Gems</a></li><li><a href="https://www.ruby-forum.com/topic/211630">Ruby Forum discussion</a></li><li><a href="http://www.plugingeek.com/categories/frameworks-scripting-command-line-applications-ruby-javascript">Framewors: Scripting for Command line applications</a></li><li><a href="https://cliff.readthedocs.org/">Python: cliff - Command Line Interface Formulation Framework</a></li></ol>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Docker for the simple programmer]]></title>
            <link>/post/docker-for-the-simple-programmer</link>
            <guid>/post/docker-for-the-simple-programmer</guid>
            <content:encoded><![CDATA[<p>I’ve been asked a lot what is docker lately and i found it difficult to adapt to each listener, but this video cleared all my doubts and I think it should be enought for all the english speaking programmers out there (i don’t really think that there are programmers that do not understand English, though) </p><div style="width:100%;height:100%"><div></div></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Domain Driven Design with React Native]]></title>
            <link>/post/domain-driven-design-with-react-native</link>
            <guid>/post/domain-driven-design-with-react-native</guid>
            <content:encoded><![CDATA[<p>Problem: how to guide programmers to implement domain driven design and <a href="https://dzone.com/refcardz/patterns-modular-architecture">modular architectecture</a></p><p>Relevant technologies used:</p><ul><li>apollo client</li><li>graphql</li><li>react native</li><li>nodejs</li><li>redux</li></ul><p>As a programmer I am always inclined to prioritise technical detail and <code>just making things work</code>.
One of the techniques to prevent building monolithic code bases closed to expansion is constant refactoring.</p><p>An architecture trick I picked up from developing Domain Driven Design is to twick the questions. When refactoring, I would usually ask myself “what does this object do ?”, which is a question about the domain, instead of “how do I make all these pieces work together”, a question about the underlying technologies or infrastructure.</p><p>In order to allow for paced development I learned that designing the Domain can be a longer process, as long as everyone agrees with the bigger picture and they work towards that goal.</p><p>Given that I decided to work on a goal given the techniques available with the technologies at hand. The architecture I used for php for refactoring a monolith looks something within these lines:</p><pre><code>application
     controllers[web-specific]
     services
model
     [bounded-contexts]
              entities
              interfaces[or contracts of the domain]
infrastructure
     [bounded-contexts]
          services
persistence
</code></pre><p>These generic lines can be followed in most languages, implementation and need for some of these parts however can be missed, in particular a react-native app could have little to no persistence needs to start with, but I would expect that to grow more important and ingrained in the domain model if fragments are used with the domain in mind.</p><p>As an extra when developing a react-native first code-base my lead question I like to ask when thinking about architecture is: <code>how would a web app use this module ?</code> . That is mainly due to the ability to swap presentation components from react native to react and get a web experience out of the same underlying logic.</p><p>While doing some research on the subject <a href="http://code.viget.com/microcosm/guides/quickstart.html">Microcosm</a> came the closest in terms of best help in modeling the domain I could find.
Microcosm can come out as a candidate for replacing redux in an application, however microcosm has rules of Domain Driven Design ingrained and can be used just as an architecture example at times.
Their recommendation <a href="https://www.viget.com/articles/microcosm-our-data-layer-for-react">here</a> might look like replacing redux, when building a relatively small app or just when starting that might be quite a fair assessment, I can see them work together, although redux might influence the architecture slightly as well.</p><p>One other big influence over your infrastructure will be <a href="https://reactarmory.com/answers/how-should-i-separate-components">How you separate your components</a> , the guys at armory talk about 4 component types, some might discard some a couple types when in a domain that has different boundaries defined, I can see these services (I would still use service components or functions) growing big as well, so at times these 4 categories will make sense.</p><p>These <a href="https://techblog.appnexus.com/five-tips-for-working-with-redux-in-large-applications-89452af4fdcb">tips on working with redux in Large Applications</a> are still relevant. A correct use of the domain tools would keep separation between data objects, but the other tips are brilliant, at least to be aware of.</p><p>Given that, I hope I gave you something to think of, chew while developing or refactoring your next react native app.
Don’t be shy to comment if you disagree or if you feel some of these views are completely out of wack.</p><p>Would appreciate any kind of feedback as this is an ongoing development.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Do the AngelHack - checked]]></title>
            <link>/post/done-the-angelhack-checked</link>
            <guid>/post/done-the-angelhack-checked</guid>
            <content:encoded><![CDATA[<p>
I recently got into hackathons and I feel like I can’t stop.
Angelhack was the best excuse for me to leave Exeter for a week-end and join the people that accepted the AngelHack challenge in London.
Just finished a day-long week-end, got some sleep. Must say it was the first time for me when I just wanted to work and not care about sleep at all, but I am strange that way..</p><p>Just being accepted as participant is a nice story by itself.</p><p>I met amazing people from all social circles, tech or non-tech, but all of them willing to collaborate and discuss tech.</p><h3 id="joining-the-hackathon---story">Joining the hackathon - story</h3><p>I just got home from NASA Apps Challenge determined to find a new challenge. Decided to follow the lead on the angelhack from hackaton.io but it was fully booked.</p><p>That doesn’t stop me usually so I wrote an email to the organizers.</p><p>After about 2 weeks <a href="http://www.hackathon.io/christina-lila">Christina</a> replied and asked if I would like to help as a volunteer. I was hyped at the thought so replied in no-time with an affirmative answer.</p><h3 id="joining-a-team-and-working-on-a-project">Joining a team and working on a project</h3><p>After helping the ambassadors set up I was allowed to join a team, I had a hard time choosing an idea to follow as most of the “interesting kids” worked almost in closed teams.</p><p>Some were still pitching and I decided for an idea that might help me at work as well. An idea about individual service reviews, which seemed pretty random and broad at the beginning. The team made it cool somehow, not cool enough it seems as we did not grab any prize .</p><h3 id="project-story">Project story</h3><p>We shortly did a mind mapping of an MVP (the meeting was a complete disaster by the way). The team was receptive and always discussed the ideas while working on them.</p><p>&quot;<a href="http://www.hackathon.io/integrity">Integrity</a>&quot; - was picked up by a thoughtful Daniel, a name which should have made reviews seem less mundane.</p><p>I was fascinated by my plan of back-end work, got to work with (react, redux) package for the first time.</p><p>Doing development on that once you get the architecture is so pleasant, the unit-tests ran just after saving, code review by the linters, browsersync live reloading… plenty of reasons not to sleep. I had to do the project all by myself in the end, but the front-end part with react and material ui was the easiest piece I have had done since I started programming (ever) and it was the best code I felt I ever wrote as well.</p><h3 id="other-teams-and-interaction">Other Teams and interaction</h3><p><a href="https://dev.havenondemand.com/apis">Heaven On Demand Api</a> was the best bit of discovery I have done this week-end. They just have so many cool things you can use, provided you need any sort of analysis on your data.</p><p>Most of the teams concentrated on using the Apis and some ideas made me feel so small at times. I love that feeling, it’s a sign that you are in the right place and you need to step up your game, no matter what your game is.</p><p>Most of the teams that coded worked overnight which was really encouraging.</p><p><a href="http://www.hackathon.io/heidi">The Heidi team</a> (they won the HPE prize) was composed of 2 enthusiastic programmers from Switzerland, they looked particular busy while having fun at the same time.</p><p>&quot;<a href="http://www.hackathon.io/speech-analytics">Awesome Speech Analytics Dashboard</a>&quot; was another pair challenger, a nice young couple whom used d3.js and the heaven api for a speech recognition app.</p><p>There was such a high amount of ideas being worked on.. I certainly see that as one of the part-bad pieces and would love to see people willing to merge teams in the future hackathons.</p><p>The tech stack each one used was around nodejs which made it easier for the teams that actually used node to interact overnight.</p><p>I certainly missed some of the people there, but the main reason was that there were too many for just one week-end and I am still just one.</p><h3 id="final-day-and-afterparty">Final Day and AfterParty</h3><p>I didn’t win any prize, but I felt like a winner nevertheless. Just making it alive through the night with a working, presentable project filled my energy levels.</p><p>I was fortunate enough to join the ambassadors (great bunch of young guys) , <a href="http://www.hackathon.io/memorybox">the winning team</a> and the judges for a drink after the event. Being the first time with them and having no sleep I must have been particularly quiet, but I enjoyed the company and the vibe of their thinking on startups, people and tech.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Exercise your programming skills online]]></title>
            <link>/post/exercise-programming-judges</link>
            <guid>/post/exercise-programming-judges</guid>
            <content:encoded><![CDATA[<p>A quick review of websites in the nurturing your programming skills industry.</p><p>I am so grateful there are so many websites where you can grow your programming skills to choose from.</p><p>I have seen many employers use <a href="https://codility.com/programmers/">codility</a>, but I am more inclined towards using <a href="https://www.hackerrank.com/challenges/">hacker rank</a>, the editor and tests from codility are so tedious and there is no transparency as to what is required from you, you really need to practice with them before, even then you might fell short, as I’ve done a few times.</p><p>However the best part in my experience about hacker earth is that you can exercise in any programming language you want. <a href="http://www.codewars.com/dashboard">Codewars</a> has some mainstream languages available but there are still some missing. They are inclined to the main stream ones as most of the challenges are made by community. There is high value to that, I must recon, and fun.</p><p>Codility, Codewars and HackerRank are just a few where you can train, but you can also advertise your skills. These are extremely helpful for programmers on any level, whether is that you need to do some maintenance on your skill levels, upgrade your skills, or learn a new skill.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[First impressions after passing zcpe]]></title>
            <link>/post/first-impressions-after-passing-zcpe</link>
            <guid>/post/first-impressions-after-passing-zcpe</guid>
            <content:encoded><![CDATA[<p>I wanted to share some of my first experiences and impressions little time after getting certified. </p><p>I managed to review a lot of my past work experiences and reflect on things that I could have done better. I realized that a programmer would always think that his coding skill is better even in front of his own code after a period of time, I like to say that the time taken between realizing that your code could be rewritten to be more efficient and the time the code was written defines how quickly you can improve,  therefore it defines ones potential. I do consider this must be the main asset for a programmer.</p><p>Back to the certification exam, I want to name some key words that I consider valuable for preparing the exam,  also for programming php at a higher level of understanding :</p><ul><li>ActiveRecord</li><li>Closure</li><li>Late static binding</li><li>Pear Authentication package</li><li>Generators</li><li>Objects as arrays</li><li>Namespaces</li><li>Operations with dates</li><li>Sorting arrays</li><li>Errors and exceptions</li><li>Magic</li></ul><p>Although i find it difficult to name the exact differences between php versions at times as this is by far a little thing to know about programming, I do think that one should be prepared when speaking of php with this knowledge , otherwise his opinion would be undermined.</p><p>I plan on doing some articles about each of the key words above.</p><p>Finally i would like to resume my impressions with a little pro vs cons section:</p><ul><li><p><em>Pro</em></p><ol><li>Although  you are an experienced programmer or not, you should know a little about what and why your website written in php needs,  what solutions are there and how they can be used,  such as those deprecated libraries from pear,  but whom carry big ideas that now have more abstract and evolved implementations (this argument i take it is a little on the cons side too).</li><li>Date vs idate,  a difference i wouldn’t have learned but the zcpe challenge </li><li>I learned new questions like,  why work with array object instead of array? </li><li>The exam demands more involvement than before,  you need code review skills as well code writing skills,  above theory tested through recognition or completion.</li></ol></li><li><p><em>Cons</em></p><ol><li>The certification and exam preparation seems a bit profit oriented instead of looking on how to showcase your php skill</li><li>I expected to escape some interview questions by showing off my certification, that did not happen for me, recruiters trust their opinion  above the certification, which makes me sad</li><li>Maybe xml was or is in trend but I rarely worked with,  all of my colleagues too, so that I see little need for so many questions on xml libraries</li><li>I would have enjoyed some testing on design patterns, if I remember well there were some shy questions on mvc,  too little as almost all projects on web demands such knowledge or of more advanced knowledge.</li></ol></li></ul><p>It may be more to say than just those, I tried to rule out some obvious points and let you tell me more from your point of view.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[gRPC as a better alternative to GEARMAN]]></title>
            <link>/post/grpc-alternative-to-gearman</link>
            <guid>/post/grpc-alternative-to-gearman</guid>
            <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/hpiynhbhq/image/upload/v1519346372/hlpcqlsk7bz0o6pti5jg.png" alt="Selection_014.png"/></p><h2 id="using-grpc-as-a-replacement-for-gearman-communication-between-php-and-python">Using gRPC as a replacement for GEARMAN communication between PHP and Python</h2><p>You might need or want to create a software architecture where everyone is welcome.</p><p>If there is an open source project that solves a problem of your domain like crunching metrics or storing some metadata somewhere else like analytics, I am sure you are used to just call an API through a simple HTTP call.</p><p>But when you want to deploy a service of your own, that is at the core of your domain you would definitely want to use something faster as execution, easier to maintain and simple.</p><blockquote><p>All computers wait at the same speed.</p></blockquote><p>Starting from the need to communicate between different programming languages, first you might arrive at the legacy option: GEARMAN. Although Gearman is a legacy, it is definitely good enough to get you started.</p><h3 id="problem-with-gearman">Problem with Gearman</h3><p>The job server processes the jobs one at a time with similar jobs having to wait to a worker to become available in order to have it’s workload processed. Now I know that this problem I experienced with Gearman might be considered unfair towards judging it or deffered.</p><p>In order to adjust for this the most common solution is to increase availability by having multiple workers waiting in the background. I experimented with 5 to 25 and still had availability problems due to my main consumer being quite needy.</p><p>That would be just one problem, but stacking on top of that:</p><ul><li>deprecated libraries</li><li>not <a href="http://gearman.org/">so rich documentation</a>, basically no one else knows how to use Gearman, as simple as it is, unless they try it by themsleves (my experience with Gearman is limited to php and python languages) </li><li>poor tooling for monitoring</li></ul><p>So, best solution to this problem would be something available on demand, an rpc, but fast and for me in particular, it has to be almost as fast as a function call in the same language. But between 2 different languages.</p><hr/><h3 id="why-grpc-also-referred-as-protocol-buffers-and-not-">Why gRPC (also referred as Protocol Buffers) and not …</h3><p>So when I discovered gRPC I thought it was a match made in heaven for my particular situation. After reading <a href="https://nordicapis.com/exploring-the-grpc-framework-for-building-microservices/">Exploring The gRPC Framework for Building Microservices</a> I decided to develop my own opinion on gRPC.</p><p>Really, really strong points for gRPC:</p><ul><li>simple definition using protobufers, shares a proto definition between programming languages</li><li>binary communication</li><li>declarative communication channels</li><li>https</li><li>uses http2</li><li>multiple libraries for different languages, supports Go-lang, Python, Php, Nodejs, Julia ..</li><li>monitoring, best with <a href="https://opensource.googleblog.com/2018/01/opencensus.html">opencensus</a></li><li>interceptors (middleware) both on the client and server side</li><li><a href="https://github.com/grpc/grpc/tree/master/doc">rich documentation and examples</a></li><li>quite an active <a href="https://github.com/grpc/grpc">open source community on github</a></li></ul><p>Some cons (really quite hidden):</p><ul><li>quite hard to reverse engineer (tried to reverse engineer the python server) - could be one of my biased opinions though</li><li>multiple versions with unstable reminiscences</li><li>documentation only covers the best case scenario, but it is expanding</li><li>php cover is really limited</li><li>python server does not support forking</li></ul><p>The exciting part about gRPC for me was that it allows <strong>streaming</strong> and it is quite declarative. </p><p>Valid alternatives to gRPC:</p><ul><li>MessagePack</li><li>jsonRPC</li><li>Protocol Buffers</li><li>Avro</li><li>Thrift</li><li>bson</li></ul><p>Sitepoint published an article on <a href="https://www.sitepoint.com/data-serialization-comparison-json-yaml-bson-messagepack/">Data Serialization Comparison: JSON, YAML, BSON, MessagePack</a> that is worth a read on the subject. Although quite old, read this <a href="https://www.igvita.com/2011/08/01/protocol-buffers-avro-thrift-messagepack/">article</a> for a somewhat richer comparison.</p><hr/><h3 id="using-grpc-as-a-replacement-for-gearman-communication-between-php-and-python-1">Using gRPC as a replacement for GEARMAN communication between PHP and Python</h3><p>If you arrived here you must be curious about how to get this running.
Here is my setup.</p><ol><li>First of all you need to define your <code>.proto</code> file, here is mine:</li></ol><pre><code class="language-bash" data-language="bash" data-highlighted-line-numbers=""><span class="token comment"># file protos/ouroboros.proto</span>
syntax <span class="token operator">=</span> <span class="token string">"proto3"</span><span class="token punctuation">;</span>

package Grpc.Ouroboros<span class="token punctuation">;</span>

// Ouroboros communication <span class="token function">service</span> definition.
// please notice the keyword *service*
<span class="token function">service</span> Ouroboros <span class="token punctuation">{</span>
    // A simple RPC.
    //
    // Obtains the <span class="token variable"><span class="token variable">`</span>Response<span class="token variable">`</span></span> based on the job asked <span class="token keyword">in</span> the <span class="token variable"><span class="token variable">`</span>Request<span class="token variable">`</span></span>
    // please notice the keyword *rpc*
    rpc SyncJob <span class="token punctuation">(</span>Request<span class="token punctuation">)</span> returns <span class="token punctuation">(</span>Response<span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>

    // We have a method called <span class="token variable"><span class="token variable">`</span>StreamJob<span class="token variable">`</span></span> <span class="token function">which</span> takes
    // parameter called <span class="token variable"><span class="token variable">`</span>Request<span class="token variable">`</span></span> and returns the message <span class="token variable"><span class="token variable">`</span>Response<span class="token variable">`</span></span>

    // The stream keyword is specified before both the request <span class="token builtin class-name">type</span> and response
    // <span class="token builtin class-name">type</span> to <span class="token function">make</span> it as bidirectional streaming RPC method.
    // please notice the keyword *stream*
    rpc StreamJob <span class="token punctuation">(</span>stream Request<span class="token punctuation">)</span> returns <span class="token punctuation">(</span>stream Response<span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span>

//please notice the keyword *message*
message Request <span class="token punctuation">{</span>
    // the value <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> defines the positional order of the attribute, please notice the scalar <span class="token builtin class-name">type</span> *string*
    string job <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
    string message <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

message Response <span class="token punctuation">{</span>
    string message <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre><ol start="2"><li>On the Php side of things you can only have a client, it seems.
It might just be that things have evolved and I just got across dated sources, please let me know if your research shows something else or if you wrote a server on your own.</li></ol><p>Here is how I ended up generating my client:</p><pre><code class="language-bash" data-language="bash" data-highlighted-line-numbers=""><span class="token comment"># file ourobouros_proto_gen.sh</span>
<span class="token comment">#!/bin/bash</span>
docker run -it --rm -v <span class="token environment constant">$PWD</span>:/src:rw <span class="token punctuation">\</span>
  decebal2dac/protoc-php  <span class="token punctuation">\</span>
  --php_out<span class="token operator">=</span>out <span class="token punctuation">\</span>
  --grpc-php_out<span class="token operator">=</span>out <span class="token punctuation">\</span>
  --plugin<span class="token operator">=</span>protoc-gen-grpc-php<span class="token operator">=</span>/grpc/grpc/bins/opt/grpc_php_plugin <span class="token punctuation">\</span>
  ./protos/*.proto
</code></pre><p>In order to be able to run this script, one needs the following dependencies:</p><ul><li>docker</li></ul><p>Prepare your current directory by creating the <code>out</code> directory before running the script above. Also make sure you have a <code>protos</code> directory for <code>ouroboros.proto</code> file to sit, containing the definition above.</p><p>The <a href="https://github.com/decebal/docker-protobuf-1">protobuf docker image</a> uses PHP 7.0 to generate the client.</p><p>At this stage you should have a generated client that looks similar to this <a href="https://github.com/decebal/grpc-example">example</a>. This works well with PHP &gt;= 5.6 (I am using it with 7.2) and the <a href="https://cloud.google.com/php/grpc">grpc and protobuf extensions</a>.</p><p>Now, here is what I tried in order to get a working client and didn’t work out for me so well. In the example above the
lines:</p><pre><code>  --grpc-php_out=out \
  --plugin=protoc-gen-grpc-php=/grpc/grpc/bins/opt/grpc_php_plugin 
</code></pre><p>were key to my trouble, as it is fairly easy to generate code without them. It also means you won’t have a working client.
I will go more into this in another article as there were plenty of mistakes I hope you won’t make, or at least I can only help you make your own mistakes.</p><ol start="3"><li>Server side - python 3.6</li></ol><p>I order to generate the server I picked up a small script from <a href="https://github.com/grpc/grpc">grpc</a> :</p><pre><code class="language-python" data-language="python" data-highlighted-line-numbers=""><span class="token comment"># file run_codegen.py</span>
<span class="token triple-quoted-string string">"""Runs protoc with the gRPC plugin to generate messages and gRPC stubs."""</span>

<span class="token keyword">from</span> grpc_tools <span class="token keyword">import</span> protoc

protoc<span class="token punctuation">.</span>main<span class="token punctuation">(</span><span class="token punctuation">(</span>
    <span class="token string">''</span><span class="token punctuation">,</span>
    <span class="token string">'-I./protos'</span><span class="token punctuation">,</span>
    <span class="token string">'--python_out=.'</span><span class="token punctuation">,</span>
    <span class="token string">'--grpc_python_out=.'</span><span class="token punctuation">,</span>
    <span class="token string">'./protos/ouroboros.proto'</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre><p>You should create both a server and a client, I used the client for testing purposes to start with. Either use examples from grpc to play around or <a href="https://www.programcreek.com/python/example/95419/grpc.server">Program Creek</a>, which was of great help in order to understand how interceptors can be used on the server.</p><p>Looking back at my little experiment I am sad I have not tried <a href="https://github.com/vmagamedov/grpclib">grpclib</a> which looks like a way better solution for my server problems. The <em>official</em> server runs on threads and does not support <em>forking</em> which creates a new problem, non-existent in my previous Gearman setup where each job was running in an isolated process.</p><br/><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@decebal2dac/grpc-as-a-better-alternative-to-gearman">Utopian.io -  Rewarding Open Source Contributors</a> and <a href="https://medium.com/funeralzone/grpc-as-a-better-alternative-to-gearman-ea1c4ce9b8ae">FuneralZone Engineering</a></em><hr/>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[High profile, new kid on the block - Docker]]></title>
            <link>/post/high-profile-new-kid-on-the-block-docker</link>
            <guid>/post/high-profile-new-kid-on-the-block-docker</guid>
            <content:encoded><![CDATA[<ul><li><p>What is docker ?
You can have a pick from these definitions smarter man gave:</p><p>  “Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications.” - docker.io</p><p>  “Docker is a great image distribution model for server templates built with Configuration Managers (like Chef, Puppet, SaltStack, etc)” - <a href="http://www.centurylinklabs.com/what-is-docker-and-when-to-use-it/">centurylink labs</a></p><p>  <a href="http://www.slideshare.net/hamiltont/introduction-to-docker-32352474">Introduction To Docker</a> from <a href="http://www.slideshare.net/hamiltont">Hamilton Turner</a>
</p></li><li><p>Why should I use it ?</p><p>  You really don’t have any reason why you shouldn’t . If you can switch to, you would have solved so many pains in the ass and save more time to improve your app instead of fixing issues, that you won’t think about the question above.</p></li><li><p>What isn’t docker ?</p><p>  “Docker Is Not A Configuration Manager Replacement (Like Chef, Puppet, Saltstack, Etc)” - centurylink labs
</p></li></ul><p>I’ve just completed my first back to back docker based web server. </p><p>How I did it? The guys from digitalocean.com gave a hand with basics. After that I had to decide what I was going to use for the webserver and the frontend, I went with jekyll and nginx as I was dying to try it on a blog.</p><p>So after reading <a href="http://troy.im/2014/09/21/dockerizing-jekyll/">a material on creating a docker image with an nginx server and jekyll</a> and how this other guy made his blog I’ve put my ideas straight and came up with my new blog nuuit.ro.</p><p>Oh and the docker newsletter is always full of good stuff, you can check it out <a href="http://blog.docker.com/docker-weekly-archives/">here</a>.</p><p>I have a full list of good references, I plan on doing posts on them, just because they deserve the attention, but to begin with it will sufice the above and to do a visit at hub.docker.com.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to prepare for Zend PHP Certification 5.5]]></title>
            <link>/post/how-to-prepare-for-zend-php-certification-55</link>
            <guid>/post/how-to-prepare-for-zend-php-certification-55</guid>
            <content:encoded><![CDATA[<p>Are you passionate about programming as I am ?</p><p>Why do you use php ? is it because your work requires it or the fast paced environment really suits you ?</p><p>First of all I want to be clear about my option on php, it’s not that I don’t know how to get my work done in ruby on rails or python with django, but I enjoy more that my work sees results than doing something for fun, so that I started exploiting the oportunities that came my way. I only had offers on php, based on my work history I think.</p><p>Let’s get on :</p><ul><li><p>Why take a cerification exam on php ?</p><p> I’m not gonna bore you with pros and cons, I found an interesting article on this <a href="http://www.sitepoint.com/pros-cons-zend-certification/">The Pros and Cons of Zend Certification</a> , althought it’s not the first time I documented on it, I found it pretty encouraging. </p><p> My motivation on taking the exam ? Well, it might not be a life changer, but I count on it beeing a boost to my career. On top of that, my <a href="http://www.emag.ro/">new workplace</a> promotes the certifications and have created a really nice vibe around it.</p><p> After all of that, getting certified on PHP 5.5 means for me an ocassion on getting up to date with all php releases along with a piece of history that might be helpfull on really understanding the code and maybe improve it in the future.</p></li><li><p>How to get prepared ?</p><p>  I scouted the net for info. It’s not so much, as I expected it to be somehow popular throught native english speaking people.</p><p>  First resource I found interesting was <a href="http://www.lornajane.net/posts/2014/zend-certified-php-developer-5-5">Lorna Jane’s post</a> as it comes with a dozen of usefull resources and some hot tips. The price of only 25$ on the sample questions pack sounds juicy. I plan to buy it, after I finish this post. Between all of her resources, I found of high value her study guide: <a href="https://www.slideshare.net/lornajane/zend-certification-preparation-tutorial">Zend Certification Preparation Tutorial</a> from <a href="http://www.slideshare.net/lornajane">Lorna Mitchell</a>.
The second resource that I found really cool is Chris Bell’s guide on How to become a Zend Certified Engineer (ZCE) on a budget, i this the title of the article really sells this one .</p><p>  I came across over a <a href="https://thomashunter.name/blog/zend-certified-engineer-zce-study-guide-links/">study guide made by links</a>, very usefull, be aware that it’s for PHP 5 not PHP 5.5 .</p></li><li><p>What about the exam experience ?</p><p>  If you have ever taken an exam outside school or college you should know that you want to get familiar with question types even if you are a genious, as most of programmers think about them, most of them are right, but getting some confort takes you a step further on passing the exam. You should read <a href="http://www.synet.sk/php/en/240-zce-zend-php-certification">this guy’s</a> opinion too. I imagine that the experience should be on the same side as his, althought he took the exam some years ago.</p></li><li><p>What next ?</p><p>  If you love the taste left after this experience, one can take on another challenges. In my line of work I plan to boost my career with all of this certifications:</p><ul><li>framework specific certificate - <a href="http://sensiolabs.com/en/symfony/certification.html">Symfony 2</a> for me</li><li>database development - <a href="https://www.mysql.com/certification/">Mysql</a> - this one is a two exam step, be aware</li><li>linux certification - in this field there are more than one posibility, I think one should begin with <a href="http://www.lpi.org/linux-certifications/programs/lpic-1">lpic 1</a> as it is lifetime valid, also a 2-step exam, I consider the first this as suficient for a programmer. I took the first step exam and failed, so, be prepared !</li></ul></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introduction]]></title>
            <link>/post/introduction</link>
            <guid>/post/introduction</guid>
            <content:encoded><![CDATA[<h2 id="blog-objective">Blog Objective</h2><p>I really wanted to start this blog asap, mainly beacause i plan on starting a blog on programming for a long time but never really got to it.</p><p>First of all a short introduction on who I am at the moment of writing this post:</p><ul><li>I am a romanian, born in Calarasi, currently living in Bucharest. Having that said you may realise that I’m not a native English speaker, so I really don’t mind being spell checked.</li><li>I changed a lot of jobs in the past years, but for me that was a register for progress. At the present time, my current programmer work involves some freelance tiny projects for friends using PHP/Python and Ext.js  and full-time employed by eMag.ro on projects and maintenance using symfony2 PHP Framework.</li></ul><p>I wish to write on a blog for monitoring my progress, discussing solutions I applied and more. My plan in this blog’s evolution involves starting 3 series that match my current interests:</p><ol><li>Choosing the right IDE by Programming language, tricks and shortcuts. (I plan on showing how the tricks really influence your day-by-day working hours)</li><li>Creating your own dotfiles . Why is this important to me and why it could be for you.</li><li>Creating an e-shop (I plan on adapting it at a beginner level). I plan on using latest tech on market involving steps on how to choose the techs to use. My first options are using Symfony2, doctrine, dart, Semantic</li></ol><p>I plan on adding new features to this blog also, but each one must be worth it.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[IoC - Understanding the need for binding interfaces to implementations]]></title>
            <link>/post/ioc-understanding-the-need-for-binding-interfaces-to-implementations-link-rel-stylesheet-href-extensions-vendor-salidasoftware-b</link>
            <guid>/post/ioc-understanding-the-need-for-binding-interfaces-to-implementations-link-rel-stylesheet-href-extensions-vendor-salidasoftware-b</guid>
            <content:encoded><![CDATA[<p>I found myself confused by this need of binding the interfaces to an implementation, maybe you have too.</p><p>I like explaining this kind of things by looking for the root of the problem it solves, as by itself it might not make sense.</p><p>If you are not familiar with the Inversion of Control container you might want to take a look at topics like this <a href="http://stackoverflow.com/a/3140/392502">What is Inversion of Control?</a></p><p>Actually this might not be new to most experienced programmers out there, but might help a few others.</p><p>The problem: <em>Write testable code.</em></p><p>Principles used: <em>Code to an Interface.</em></p><p>You might have found sense in that it is useful to set what Implementation is binded to a specific interface, but the purpose of it might escape your sight as the IoC handles that in a somehow magical way.</p><p>Illuminate’s IoC can resolve dependencies internal without the need for you to say which goes where, but how can you control that ? what is missing from all this magic picture ?</p><p>Getting into the code, let’s illustrate that with a simple example:</p><pre><code class="language-php" metastring="startinline=&quot;true&quot;" startinline="&quot;true&quot;" data-language="php" data-highlighted-line-numbers=""><span class="token keyword">namespace</span> <span class="token package">Core</span><span class="token punctuation">;</span>
<span class="token keyword">Class</span> <span class="token class-name-definition class-name">Template</span>  
<span class="token punctuation">{</span>
   <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">__contruct</span> <span class="token punctuation">(</span><span class="token class-name type-declaration">ViewInterface</span> <span class="token variable">$view</span><span class="token punctuation">)</span> 
   <span class="token punctuation">{</span>
        <span class="token variable">$this</span><span class="token operator">-></span><span class="token property">view</span> <span class="token operator">=</span> <span class="token variable">$view</span><span class="token punctuation">;</span>
   <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre><pre><code class="language-php" metastring="startinline=&quot;true&quot;" startinline="&quot;true&quot;" data-language="php" data-highlighted-line-numbers=""><span class="token keyword">namespace</span> <span class="token package">App</span><span class="token punctuation">;</span>
<span class="token keyword">Class</span> <span class="token class-name-definition class-name">ClientView</span> <span class="token keyword">implements</span> <span class="token class-name">ViewInterface</span>
<span class="token punctuation">{</span><span class="token punctuation">}</span>
</code></pre><p>We can easily solve the dependecy from the IoC container by binding the implementation in a somehow transparent way:</p><pre><code class="language-php" metastring="startinline=&quot;true&quot;" startinline="&quot;true&quot;" data-language="php" data-highlighted-line-numbers=""><span class="token variable">$ioc</span><span class="token operator">-></span><span class="token function">singleton</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Core\Template'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token variable">$ioc</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token keyword">new</span> <span class="token class-name">Template</span><span class="token punctuation">(</span><span class="token variable">$ioc</span><span class="token operator">-></span><span class="token function">make</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'App\ClientView'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre><p>Notes: </p><ol><li>In this case singleton is the method that bind the implementation, but it might differ in different versions of the IoC. bindShared it’s also another method of doing this, in the latest version the methods have the same implementation.</li><li>By using namespaced bindings as above e.g. <code>Core\Template</code> we empower the IoC to solve the class dependency, the old way of binding based on keys like this “core.template” won’t solve the problem.</li></ol><p>But we can also rely on the IoC solving our dependency, we just need to bind the ClientView implementation to the interface, before.</p><pre><code class="language-php" metastring="startinline=&quot;true&quot;" startinline="&quot;true&quot;" data-language="php" data-highlighted-line-numbers=""><span class="token variable">$ioc</span><span class="token operator">-></span><span class="token function">bind</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Core\ViewInterface'</span><span class="token punctuation">,</span>  <span class="token string single-quoted-string">'App\ClientView'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre><p>We won’t need binding of the Template class anymore as we can just get it from the IoC container and rely on it:</p><pre><code class="language-php" metastring="startinline=&quot;true&quot;" startinline="&quot;true&quot;" data-language="php" data-highlighted-line-numbers=""><span class="token variable">$ioc</span><span class="token operator">-></span><span class="token function">make</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Core\Template'</span><span class="token punctuation">)</span>
</code></pre><p>The new IoC from Illuminate can also solve dependencies for function calls if the implementations are binded to the IoC. Cool feature.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Learning new programming languages]]></title>
            <link>/post/learning-new-programming-languages</link>
            <guid>/post/learning-new-programming-languages</guid>
            <content:encoded><![CDATA[<p>Looking for the new hit or sticking with your known language ?</p><p>is this one of the big questions you are looking to get an answer to ?</p><p>First and foremost I want to begin with a saying that most programmers overlook: “A programming language is worth learning if it changes your way of thinking”.</p><p>With that in mind I want to make some people question they allegiance to a certain programming language. I gather impressions and knowledge from people around me out of curiosity from time to time. I was surprised to hear from some of the programmers I was looking up to, that they don’t really consider any other programming language.</p><p>One friend tried to convince me by sharing a experience with one of his bosses, I wise person I reckon, but no way he was near a world class programmer. Maybe he had some people working for him that after they quit working for him, evolved into this great programmers.</p><p>In my perspective what makes a programmer better are the experiences and problems he tackles. Learning a new programming language might open new doors, or not, but it certainly challenges you in a different manner.</p><p>I was looking at this number of programming languages that are taking the scene bit by bit. They indeed challenge your notions and skills you worked so hard to build. I am recommending even people that are just starting to take a look at some of these: go-lang, haskell, rust. If you are looking for simplicity or just starting out javascript might come in handy with the nodejs server.</p><p>This is just an introduction to describing some of my experiences of late. I hope that this might help some of you to get your heads around how to tackle this questions.</p><p>Another thing I consider similar is learning new fameworks that are somehow different from what you know of e.g. Codeigniter and Laravel5.</p><p>If you are looking for a quick intro or something about this, I found <a href="http://www.toptal.com/resources">this page from toptal</a> to be amazing.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Preparing for Mysql 5.6 Developer Certification]]></title>
            <link>/post/mysql-56-certification-first-step</link>
            <guid>/post/mysql-56-certification-first-step</guid>
            <content:encoded><![CDATA[<p>A quick review on what’s out there and what I think you should consider in order to get better prepared for 1Z1–882: MySQL 5.6 Developer.</p><p>I have browsed a little for some info on this subject and because <a href="http://decebalonprogramming.net/post/how-to-prepare-for-zend-php-certification-55">the article about zcpe</a> was a success I considered that even though this subject does not have the same exposure it’s worth an article on the subject.</p><p>However unlike preparing for zcpe there are no longer straightforward ways to prepare for Mysql Certification, most of the articles out there are about the advanced exam 1Z1–883: MySQL 5.6 Database Administrator, but a developer’s goal should be 1Z1–882: MySQL 5.6 Developer. Here is the official video from Oracle on MySQL 5.6 Developer.</p><p>However if you plan on learning with the University guidance you should take note that “Oracle University do not provide a trail of breadcrumbs to everything you must study, they generally contain hints on where you can find the information”.</p><p>Let’s start with a little bit of history on the certification exam. I’ve read <a href="http://mysqlblog.fivefarmers.com/2013/09/18/new-mysql-5-6-developer-certification-exam/">Todd’s review</a> and <a href="http://certmag.com/shuffling-deck-mysql-certs/">Matthew Moriss’s article</a> on obtaining his certification. If you want to understand exactly what you are buying to take the exam you should take a read on this articles as they explain which version is final and why the later versions have a higher quality. </p><p>The exam topics are well covered and updated on <a href="http://pattersonconsulting.ie/2014/05/mysql-5-6-developer-exam-topics/">Patterson Consulting</a>, too.</p><p>Mark Schoonover, also a DBA and Mysql Certified Administrator has exposed his preparing experience in a short <a href="http://ftp.nchu.edu.tw/MySQL/tech-resources/articles/preparing-for-mysql-5-certification.html">article</a> . I would highlight some of his advices:</p><ol><li>when you run into commands you never used before just go and try them out</li><li>do not skip sections in the guide you already know</li><li>pace yourself at the exam so that you have 10–15 minutes to review your answers</li></ol><p>If you are still confused on whether you should buy a book or not in order to get better prepared take a look at <a href="http://pattersonconsulting.ie/2014/05/how-do-i-get-certified-in-mysql-5-6/">How do I get certified in MySQL 5.6</a> . I decided that there is no value in buying a guide or a course, but for begginers you should consider “MySQL for Developers” Training as the certification is aligned with the course.</p><p>However, <a href="http://mysqlblog.fivefarmers.com/2013/10/15/exam-cram-preparing-for-the-mysql-5-6-certification-exams/">Exam Cram: Preparing for the MySQL 5.6 certification</a> exams is the most solid resource in order to get going and boost your preparation for the exam as you get what to study and a valid opinion.</p><p>Taking this to the next level I would recommend one to take action and read a few articles and discussions out there about things in MySQL (that won’t work as expected).</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Mysql Certification for developers - first try - first failure]]></title>
            <link>/post/mysql-certification-for-developers-first-try-first-failure</link>
            <guid>/post/mysql-certification-for-developers-first-try-first-failure</guid>
            <content:encoded><![CDATA[<p>For anyone looking for feedback on Mysql 5.6 Certification exam.</p><p>As a general impression if you work you queries on a weekly basis you should be safe just by practicing some more of that preparing for it.</p><p>I must say to begin with I was overwhelmed when reading the table of contents for the Certification Exam by the amount of chapters I thought I have not covered well. Big mistake, most of the questions where from a developer’s daily activity like interpreting results. query explanation and query design.</p><p>I was surprised by the approach of the exam as I value it more now, but in the same time I spent too much preparing for the theory part, which is only for 10% of questions at most. The exam does cover the new features from 5.6 version and optimizations, but still you need to work your queries rather than read info you might have not got through in your daily activity as a programmer.</p><p>Here are the chapters on which I sucked when taking the exam:</p><ol><li>Info on btrees and hash tables:</li></ol><ul><li><a href="http://stackoverflow.com/questions/7306316/btree-vs-hashtable">http://stackoverflow.com/questions/7306316/btree-vs-hashtable</a></li><li><a href="https://dev.mysql.com/doc/refman/5.5/en/index-btree-hash.html">https://dev.mysql.com/doc/refman/5.5/en/index-btree-hash.html</a></li></ul><ol start="2"><li>why would anyone use straight join and when ?</li></ol><ul><li><a href="http://stackoverflow.com/questions/5818837/why-does-straight-join-so-drastically-improve-this-query-and-what-does-it-mean">http://stackoverflow.com/questions/5818837/why-does-straight-join-so-drastically-improve-this-query-and-what-does-it-mean</a></li></ul><p>I covered the motivation for taking a Mysql Certification exam some time ago <a href="http://decebalonprogramming.net/post/how-to-prepare-for-zend-php-certification-55">here</a>.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How do I stay updated as a Software Architect]]></title>
            <link>/post/newsletters-software-architect</link>
            <guid>/post/newsletters-software-architect</guid>
            <content:encoded><![CDATA[<p>Staying up to date with technology developments is an important part of a modern software
developer’s daily activity as well as one of the defining behaviours for a successful
career.</p><p>As an engineer I find it exciting to stay in the loop with what my peers are working with or towards.
Here is a list of daily newsletters that I am grateful for:</p><h3 id="general">General</h3><ul><li><p><a href="https://pycoders.com/">PyCoders weekly</a> - python specific, this newsletter is
a dose of news across multiple technical verticals related by the python programming
language </p></li><li><p><a href="https://softwareleadweekly.com/">software lead weekly</a> - delivers a short email
with inspirational opinions about culture inside software companies</p></li><li><p><a href="https://golangweekly.com/">GoLang Weekly</a> - a dose of news across multiple technical verticals related by the python
programming language, recently devops is quite a theme within goLang communities</p></li><li><p><a href="https://weekly.statuscode.com/">StatusCode Weekly</a>: &quot;A weekly newsletter covering
software development, Web operations, infrastructure, platforms, and performance,
from browser down to the metal.&quot; Their own description works best.
</p></li><li><p><a href="https://ma.ttias.be/cronweekly/issue-135/?via=newsletter">Cron Weekly</a>: News articles
with security and DevOps at it’s core. This is so good that I sometimes click through
all the links inside the weekly edition.</p></li><li><p><a href="https://smash.vc/startup-newsletter/">FoundersGrid</a>: A well put together list of
stories from different startUps. Short list with a well formed opinion near each link.</p></li><li><p><a href="https://us15.campaign-archive.com/home/?u=3463f6d8dc11321cc468d9f9c&amp;id=d634852cd6">Maker Mind</a>:
Similar with Founders Grid in format, focused on improving brain and practices.</p></li><li><p><a href="https://www.typescript-weekly.com/">Typescript Weekly</a>: This newsletter is
short and slim, typescript focused.</p></li><li><p><a href="https://thequantumdaily.com">The Quantum Daily</a>: There are not that many Quantum Computing focused
newsletters, this one kept my eye as it has some case studies and book recommendations
such as <a href="https://thequantumdaily.com/2020/05/15/7-quantum-computing-books-for-the-uninitiated/">7 Quantum Computing Books For The Uninitiated</a>.</p></li></ul><h3 id="frontend">Frontend</h3><ul><li><p><a href="https://news.vuejs.org/">Vue.js News</a>: My favourite front-end framework’s news.
The newsletter is not as rich, but is so much better these days with quite a
few communities contributing such as nuxt-community.</p></li><li><p><a href="https://react.statuscode.com/">React Status</a>: Love this one for exploring
what other cool libraries are out there. React focused, while always comes with a load
of cool stories and experiments. </p></li><li><p><a href="https://javascriptweekly.com/">Javascript Weekly</a>: Similar to React Status, with
additional stories and suggestions from other frameworks such as VueJs
or other libraries less front end focused.</p></li><li><p><a href="https://wasmweekly.news/">WebAssembly Weekly</a>: WebAssembly is a promising secure
web environment to bring other programming languages out of the backend end (joke).
The newsletter is slim for now, while still worthwhile to keep in the mail box. </p></li></ul><h3 id="serverless">Serverless</h3><ul><li><a href="https://serverless.email/issues">Serverless Status</a>: Serverless is one of the most
talked subjects these days, we have picked up at least one new feature each week
based on the suggestions in the serverless status weekly.</li></ul><h3 id="ai">AI</h3><ul><li><p><a href="https://inside.com/ai">Inside AI</a>: Rob May’s roundup of stories and commentary
on Artificial Intelligence, Robotics, and NeuroTechnology. Rob May is an authority
for me regarding companies built with AI at their core.</p></li><li><p><a href="https://towardsdatascience.com">towards data science</a>: Various research and case
studies for data science.</p></li></ul><h3 id="books">Books</h3><ul><li><p><a href="https://www.humblebundle.com">Humble Bundle</a>: for some reason I always
tend to find a bundle that will take me at least a year to go through.</p></li><li><p><a href="https://www.manning.com">Manning - Weekly Newsletter</a>: Manning seems to me to have
books always on the edge of programming that are worth keeping around when planning
new software products.</p></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[On DevTalks Bucuresti]]></title>
            <link>/post/on-devtalks-bucuresti</link>
            <guid>/post/on-devtalks-bucuresti</guid>
            <content:encoded><![CDATA[<p>I’ve witnessed my first dev conference on Wednesday 11th June. I was excited with some talks and I decided that it won’t hurt to pay them a small tribute.</p><p>For anyone who wants to see the full agenda, I hope it will be forever available <a href="http://devtalks.ro/agenda">here</a>.</p><p>There were 4 tracks to assist to so I created my own program with what seemed worthy of my time. I also checked for feedback from some of my colleagues that I knew before the conference and were present, also one of my sisters were there following another track as she is only a junior programmer.</p><p>My Agenda:</p><ul><li>10:00 - 12:00 - general audience introduction and speeches</li><li>12:00 - Cloud computing - changing the vendor landscape</li><li>12:20 - One bug per month</li><li>13:20 - Cloud the hidden parts</li><li>14:30 - Your strategy. Tour Cloud. Your choice</li><li>15:00 - Competing with Chef</li><li>15:30 - StarVault Elastic Cloud</li><li>16:00 - Developing the next generation of Cloud applications with bluemix platform</li><li>17:00 - HTML5 multilayer game - proof of concept</li><li>17:20 - What you need to know about SQL Injection and XSS</li></ul><p>I’m really sorry that I missed “Public Cloud Adoption - Impact on Application design” at 18:10, all my fault.</p><p>General impression:</p><p>I was impressed  be the numbers of audience and I really enjoyed the location, I’m not really sure if people think of these services as given, but the attention for people and the view payed off for me. My track was pretty intense with useful information and food for thought. I’m measuring my gains and I know that this conference will help me more in the long run.</p><p>I also learned of the trends in IT exposed by <a href="http://shkspr.mobi/blog/">Terrence Eden</a> and Cristiano Betta. I am pretty sure that they are already at the nth presentation of the same trends but nonetheless I enjoyed it, that must be because I never thought about watching those trends or documenting about before. I pretty much agree with the importance of Html5 in mobile industry and with the revolution of offline to online commerce flow, but fail to see a clear path on these roads.</p><p>Among others I left the conference with a baggage of links and twitter influencers to follow, also with a yammer account with the possibility to connect to the few people that activated their account for the conference. </p><p>Here are the links and bagage that I claimed after:</p><ol><li><a href="https://speakerdeck.com/patkoscsaba/one-bug-per-month">Slides</a> from Csaba Patkos - his presence at the conference was more valuable, i recogn</li><li>An insight on Terrence <a href="https://thelab.o2.com/">work</a> </li><li>A <a href="http://lucian-ciufudean.blogspot.ro/">blogger</a> that writes about cloud automation and tools like <a href="http://www.getchef.com/chef/">chef</a></li><li>I learned about what romanian cloud market has to offer. Tools like <a href="http://www.star-vault.ro/de-ce-starvault.aspx">star-vault</a> which is a service oriented on developers that need quick configuration and control over their cloud, they use <a href="http://jelastic.com/">jelastic</a> as a cloud configuration interface. <a href="https://ace.ng.bluemix.net/">Bluemix</a> from IBM is a similar tool, a platform for developers now in beta.</li><li>I’ve got some suggestion on multilayer browser games developing: <a href="http://mobiledetect.net/">mobile detect</a> and <a href="http://impactjs.com/">impact</a> are 2 libraries that worth mentioning when choosing your tools.</li><li>I found a <a href="https://www.owasp.org/index.php/Main_Page">community driven by security issues</a> that needs to be addressed every time you code.</li></ol>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Php resque pool]]></title>
            <link>/post/php-resque-workers-maintenanceheadsnippet</link>
            <guid>/post/php-resque-workers-maintenanceheadsnippet</guid>
            <content:encoded><![CDATA[<p>Resque is a great tool for creating background jobs, but the task of managing the queues and maintaining is not quite as straight forward. There is quite a lot of noise and a nice amount of options when it comes to translations of the resque pool to php language.</p><p>Some people might wonder why would anyone translate the tool to another language. I did too, but it is real value in having the majority of tools under the same umbrella. It might seem confy or strange sometimes, but the community adds value around tools like this ussualy.</p><p>Task at hand:</p><ul><li>create a pool of workers on each country</li><li>be able to handle each pool on the same server</li><li>modify environment variables before starting the workers</li><li>listen to queues prefixed with a country identifier</li></ul><p>The project php resque pool does not allow half of them, although it is really nice at handling how many workers you can start to listen on each queue. It is also a struggle to find a currently maintained pool, most of them have not had contributions in the past years.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Sass - css for programmers]]></title>
            <link>/post/sass-css-for-programmers</link>
            <guid>/post/sass-css-for-programmers</guid>
            <content:encoded><![CDATA[<p>If you like long stories you could use a read on this <a href="http://alistapart.com/article/getting-started-with-sass">http://alistapart.com/article/getting-started-with-sass</a> . If not, sass is a professional grade css extension language, so let’s get on with it.</p><p>After reading about the fuss around sass the fears of switching to it may seem as ill grounded. There is no real danger in the command line or setting up a ruby environment, if you have difficulties with that go for help, me and others more experienced or more gifted are happy to help in order make a better internet.</p><p>First of all you may want to choose your tools, just to get started. I found a list on sitepoint with  tools: <a href="http://www.sitepoint.com/my-favorite-sass-tools/">http://www.sitepoint.com/my-favorite-sass-tools/</a> , but I must confess I used that article only for study, haven’t got any plan to use the tools, but if you are one that needs to play a little before getting to the real thing, the references and notes are great. </p><p>Another article on SitePoint really got my attention and got me to do some changes in the old code in terms of planning and optimising my files and code. The article <a href="http://www.sitepoint.com/8-tips-help-get-best-sass/">http://www.sitepoint.com/8-tips-help-get-best-sass/</a> is one of my favorite ways on getting started with a new tech. I like applying best practices from the very start, so you may use another great tips article like this one : <a href="http://zerosixthree.se/8-sass-mixins-you-must-have-in-your-toolbox/">http://zerosixthree.se/8-sass-mixins-you-must-have-in-your-toolbox/</a> .</p><p>As I have joined a project on which the choice between compass and bourbon was already made, in favour of compass, I hadn’t the privilege to assist the decision or understand it, but I guess that bourbon is lighter and we really need as many features as we can grab. Although if you are privileged with the decision take a look at this great article: <a href="http://www.sitepoint.com/compass-or-bourbon-sass-frameworks/">http://www.sitepoint.com/compass-or-bourbon-sass-frameworks/</a></p><p>After all that if you are still confused on sass vs scss extensions you can read a little history here: <a href="http://thesassway.com/editorial/sass-vs-scss-which-syntax-is-better">http://thesassway.com/editorial/sass-vs-scss-which-syntax-is-better</a> .</p><p>Final step before getting to work maybe choosing a compiler for you sass code to css. If you are serious with you coding skills, one will not argue that the recommended way to compile the code is by using the command line, you’ll need ruby (rvm recommended) on your machine, but to remain short and correct, you’ll need to follow the steps recommended on <a href="http://sass-lang.com/install">http://sass-lang.com/install</a> . When I read it I found that they cover almost all cases, so enjoy.</p><p>Sass awesomeness:</p><ul><li><a href="https://github.com/HugoGiraudel/awesome-sass">https://github.com/HugoGiraudel/awesome-sass</a>  — really awesome list of links</li><li><a href="http://www.sache.in/">http://www.sache.in/</a>  — discover sass extensions</li></ul><p>TreeHouse has released some great video tutorials on sass:</p><ul><li>about mixins: <a href="https://www.youtube.com/watch?v=FGx80JSmLBc">https://www.youtube.com/watch?v=FGx80JSmLBc</a></li><li>I invite you to discover more      </li></ul><p>Compass useful references:</p><ul><li>examples:  <a href="http://compass-style.org/examples/">http://compass-style.org/examples/</a></li><li>utilities: <a href="http://compass-style.org/reference/compass/utilities/">http://compass-style.org/reference/compass/utilities/</a></li><li>you maybe not know what this really refers to, but as you get into sass you will need to have defined the term of typography, here is the compass page:
<a href="http://compass-style.org/reference/compass/typography/">http://compass-style.org/reference/compass/typography/</a></li><li>some insight, useful specs by an experienced dev: <a href="http://hugogiraudel.com/2013/03/25/compass-extensions/">http://hugogiraudel.com/2013/03/25/compass-extensions/</a></li></ul><p>Maybe this comment is not related to sas, but it is worth mentioning that if you are considering applying the latest standards, a page which lists all the styles and patterns you have worked on and anyone can use just by including parts of you code must be setting an example. This one: <a href="http://patterns.alistapart.com/">http://patterns.alistapart.com/</a> will come as the best reference and it’s not as time consuming as it may seem.</p><p>Sass and compass are already used in company of some frameworks. In my case I use it with laravel in a personal project like this <a href="https://github.com/panique/laravel-sass">https://github.com/panique/laravel-sass</a> . Also at commercial level with symfony2 <a href="http://alexandre-salome.fr/blog/Sass-Compass-Assetic-In-Ten-Minutes">http://alexandre-salome.fr/blog/Sass-Compass-Assetic-In-Ten-Minutes</a> or somewhere in those lines.</p><p>Sass is also great with creating sprites I think.. I haven’t tried it just yet, but I found what this guy (<a href="http://www.codechewing.com/library/automatically-generate-css-sprites-with-sass/">http://www.codechewing.com/library/automatically-generate-css-sprites-with-sass/</a>) is saying really cool.</p><p>That being said, have fun and let me know of any type of feedback, I’ll be more than happy to learn with you.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Serverless Days 2019]]></title>
            <link>/post/serverless-days-2019</link>
            <guid>/post/serverless-days-2019</guid>
            <content:encoded><![CDATA[<h1 id="serverless-days---london---my-key-takeaways">Serverless Days - London - My Key Takeaways</h1><hr/><p><em>Twitter</em>: <a href="https://twitter.com/serverlessldn">https://twitter.com/serverlessldn</a></p><p><em>Official Announcement</em>: <a href="https://london.serverlessdays.io/news/keynote-speakers-2019/">https://london.serverlessdays.io/news/keynote-speakers-2019/</a></p><hr/><p>Table of contents:</p><ul><li>The what, why and who of the event</li><li>Followed Agenda</li><li>My Key TakeAways from the event</li></ul><h3 id="the-what-why-and-who-of-the-event">The what, why and who of the event</h3><p><strong>What</strong>: Serverless Days in London I found to be a great opportunity to see what other people are doing with the serverless technologies out there and what is the state of this space, in particular what is the state of the conference space and what level of maturity the community has in London.</p><p><strong>WHY</strong>: I have been using serverless for more and more projects recently and wanted to see if some of the questions I have been running into are being answered by anyone else, I will be diving into some in the next chapter, luckily for me this conference has provided above and being my stated reasons to attend.</p><p><strong>WHO</strong>: Besides the <a href="https://london.serverlessdays.io/speakers/">speakers</a>, which I only have heard before briefly, the <a href="https://london.serverlessdays.io/sponsors/">sponsors panel</a> looked really promising as the sponsors are keeping a close eye on the space and seem to be quite close to the event either by organising workshops, doing their own talks or organising a boot. </p><h3 id="followed-agenda">Followed Agenda</h3><p>The official event agenda can be found at <a href="https://london.serverlessdays.io/agenda/">serverless days - agenda</a></p><h4 id="observability-workshop">Observability workshop</h4><p>I was fortunate enough to be able to get to one of the <a href="https://london.serverlessdays.io/workshops/">workshops</a>. The workshop was titled <a href="https://london.serverlessdays.io/workshops/thundra/">Building a 100% Serverless Blog Site Application with the Right Observability</a>, while aimed at beginners in the art of programming it served my own agenda of studying <em>best ways to introduce observability in a microservice/serverless architecture</em> quite well. So I managed to gather the following intelligence on thundra.io, the software product:</p><ul><li><p>Pros:</p><ul><li><p>Support for: GoLang, NodeJs, Python</p><ul><li>Supports a couple more
</li></ul></li><li><p>Allows integration through a serverless layer</p><p>as a fallback there is also support for integration through a callback.
note: with the layer, the <code>runtime</code> has to be set to <code>provided</code> as it’s manipulated by the serverless layer (thundra’s)</p></li><li><p>Comprehensive Dashboard</p><ul><li>contains error filtering</li><li>contains coldstart status</li><li>shows the number of tries between services ( e.g. lambda → sns )
</li></ul></li><li><p>Can Target Invocation Tracing based on tags
<a href="https://github.com/thundra-io/serverless-blog-site-workshop/blob/master/blogApi.js">https://github.com/thundra-io/serverless-blog-site-workshop/blob/master/blogApi.js</a></p></li><li><p>Comprehensive Documentation</p><p><a href="https://docs.thundra.io/docs/getting-started-with-thundra-new">https://docs.thundra.io/docs/getting-started-with-thundra-new</a></p></li><li><p>Integrates with HoneyComb</p><p><a href="https://docs.thundra.io/docs/thundras-honeycomb-integration">https://docs.thundra.io/docs/thundras-honeycomb-integration</a></p></li><li><p>Can Obfuscate sensible data</p><ul><li><a href="https://docs.thundra.io/docs/node-trace-requestresponse#section-mask-request-response-tracing-for-lambda">through applying custom masks</a></li><li><a href="https://docs.thundra.io/docs/node-trace-requestresponse#section-programmatic-configuration">by turning off response | request as needed</a></li></ul></li></ul></li><li><p>Cons: </p><ul><li>apparently only supports integration through serverless (hence the list of supported languages)</li><li>only works on aws</li><li>alerts are still a WIP (or alpha phase)</li><li>no public backlog of features/customer interaction</li><li>does not yet support grpc</li></ul></li><li><p>Main competitors / alternatives:</p><ul><li><a href="lumigo.io">Lumigo</a> - early days</li><li><a href="honeycomb.io">HoneyComb</a></li><li><a href="https://zipkin.io/">Zipkin</a></li></ul></li></ul><h4 id="keynote---bringing-webassembly-outside-the-web-with-wasi">Keynote - Bringing WebAssembly outside the Web with WASI</h4><p>In summary, super presenters Lin Clark and Till Schneidereit introduced myself in the world of WASI and helped shape ideas around a subject that although it’s far from being mainstream at the moment, seems to be in a prime position to help front end support from other programming languages than the mainstream javascript.</p><p>Lin had the best imagery:</p><p>She illustrated how files permissions are defined at the moment</p><p><img src="https://i.ibb.co/r3zt1jL/20190711-101941.jpg" alt="s0.jpg"/></p><p><img src="https://i.ibb.co/PFnxqbZ/20190711-101926.jpg" alt="s.jpg"/></p><p>And the new needs of security
<img src="https://i.ibb.co/f45wmWG/20190711-102406.jpg" alt="s1.jpg"/></p><p>while introducing WASI as a solution at the core of new front-end projects
<img src="https://i.ibb.co/dpzhzCF/20190711-102107.jpg" alt="s2.jpg"/></p><h4 id="keynote---serverless-attack-vectors">Keynote - Serverless Attack Vectors</h4><p>Teri helped raise awareness of security needs for production setups
<img src="https://i.ibb.co/3BtMSpV/20190711-104805.jpg" alt="sav.jpg"/></p><p>In particular for aws lambdas
<img src="https://i.ibb.co/NFfCGCZ/20190711-105714.jpg" alt="sav2.jpg"/></p><p>while also going through a series of relevant stories and examples that were recently in the media. As a result I started looking for a solution, but I did not get further away than <a href="https://snyk.io/blog/serverless-is-great-but-what-about-the-security-of-my-aws-lambda-functions-and-their-dependencies/">this snyk blog post</a> , with <em>snyk</em> showing a way of testing security pre-deployment.</p><h4 id="break">Break</h4><p>Here are my notes from all 3 breaks, it would be mean to say that the breaks were the most meaningful, but it wouldn’t be too far from it. Most of the event was static, while the 3 breaks were really dynamic with really good, well purposed booths.</p><p>Putting aside that I managed to nick some memorabilia from the kind people around the booths
<img src="https://i.ibb.co/tDMJNbv/20190712-124110.jpg" alt="mem.jpg"/></p><p><img src="https://i.ibb.co/8d3RYr9/20190712-124138.jpg" alt="mem2.jpg"/></p><p>I’ve also learned about </p><ul><li><a href="https://stdlib.com/">Stardard Library</a> and how good a replacement they are for IATT or Zapier; really keen to show this off at <a href="https://flyt.io">Flyt</a></li><li><a href="https://github.com/aws-samples/aws-serverless-airline-booking">AWS Serverless Airline Booking</a>, a superb tutorial series for building serverless architecture to serve a complete web app, their <a href="https://pages.awscloud.com/GLOBAL-devstrategy-OE-BuildOnServerless-2019-reg-event.html">video series</a> are an amazing fit for what this whole conference represents for myself and my future short term goals. </li><li>OpenWhisk is too simple to be ignored, I will give this technology a chance in the near future</li></ul><h4 id="lightning-talk">Lightning Talk</h4><p><strong>Machine Learning on Mobile and Serverless</strong></p><p>A serverless app deployed using GCP
<img src="https://i.ibb.co/44RstFm/20190711-120344.jpg" alt="gcp.jpg"/></p><blockquote><p>Speaker: Alexandra Abbas @alexandraabbas
<em>works at DataTonic as Data Scientist</em></p></blockquote><ul><li><p>Keynotes</p><ul><li><p>image classification model that can run on mobile ios and android</p></li><li><p>core ML does not perform too well on android</p></li><li><p>multiple challenges on mobile (device specific)</p></li><li><p>TFLite can execute models on mobiles with reduced functionality from TensorFlow</p></li><li><p>the model need to be retrained (manually -&gt; on demand) regularly and deployed</p></li></ul></li></ul><hr/><p>Pipeline Def: upload (gcs) -&gt; (data preparation -&gt; Machine Learning) Cloud Composer</p><p>TFRRecords -&gt; Train/Eval Sets -&gt; Data Augumentation -&gt;&gt;</p><p>Apache Beam for Batch Data processing -&gt; Dataflow (Python)</p><hr/><ul><li><p>Impressions</p><ul><li>using gcp seems to be a lot more about dealing with the problems than the platform</li><li>you have to understand what components you can use in order to be effective</li></ul></li></ul><p><strong>Discovering the microbiological world with Apache OpenWhisk and Rust</strong></p><p>A serverless app deployed using OpenWhisk
<img src="https://i.ibb.co/yyjbFcr/20190711-121754.jpg" alt="ow.jpg"/></p><blockquote><p>Speaker: Robert Diaz @rdiaz82</p></blockquote><ul><li><p>Keynotes</p><ul><li><p>Story of Peter: the Quality Manager</p></li><li><p>provide an image as input, sequence of filters</p></li><li><p>openwhisk is based on docker -&gt; easy to develop locally</p></li><li><p>internally: simple openwhisk architecture based on kafka as an event distributer</p></li><li><p>implemented using RUST</p></li><li><p>hold notes of improvements and future lines</p></li><li><p>try and make the platform generic and reusable</p></li></ul></li><li><p>Impressions</p><ul><li>how wonderful it is to explain functionality with a story related to one use case</li></ul></li></ul><p><strong>Serverless testing, the required adaptation to our testing methodologies</strong></p><blockquote><p>Speaker: lumigo.io</p></blockquote><ul><li>Keynotes<ul><li>Load Testing is a prime time for intoducing trace monitoring before production</li><li>serverless is a really effective technology for load testing</li></ul></li></ul><p><strong>shop.LEGO.com</strong></p><p>This lighting talk made me curious and sought further to discover lego’s journey about moving into serverless from the monolith.
Here are my 3 vetted resources on lego:</p><ul><li><a href="https://danilop.s3.amazonaws.com/Presentations/2019/ServerlessJourney+-+HEL+Revised.pdf">https://danilop.s3.amazonaws.com/Presentations/2019/ServerlessJourney+-+HEL+Revised.pdf</a></li><li><a href="https://twitter.com/sheenbrisals">https://twitter.com/sheenbrisals</a> is so so cool</li><li><a href="https://www.youtube.com/channel/UCYzAnR_SebAmLRkKIbK_YoQ">https://www.youtube.com/channel/UCYzAnR_SebAmLRkKIbK_YoQ</a> - after presenting to a couple serverless days events, I am sure one of lego talks will make it here (on the serverless days official youtube channel)</li></ul><h4 id="how-aws-builds-serverless-services-using-serverless">How AWS Builds Serverless Services Using Serverless</h4><p>The Event Bridge announcement, stole the show
<img src="https://i.ibb.co/YNCJw2D/20190711-170535.jpg" alt="eb.jpg"/></p><p>I wasn’t following the news coming out of AWS at the time, so this particular piece of news devised a new way of doing things in areas I was previously hacking around, I am hoping to match the Event Bridge with the video series discovered on the breaks (I bet they’re using Cloudwatch events).</p><p>A few other amazingly useful resources:</p><ul><li><a href="https://www.trek10.com/blog/amazon-eventbridge/">https://www.trek10.com/blog/amazon-eventbridge/</a></li><li><a href="https://www.serverlesschats.com/5">https://www.serverlesschats.com/5</a></li></ul><h3 id="my-key-take-aways-from-the-event">My Key Take Aways from the event</h3><ul><li>Trace Stacks are amazing for monitoring/debugging production setups, such are the ones introduced by thundra.io and lumigo.io</li><li>I need to replace watching a tv show with these <a href="https://pages.awscloud.com/GLOBAL-devstrategy-OE-BuildOnServerless-2019-reg-event.html">video series</a></li><li>Replace my hacked used of Cloud Watch events with Event Bridge</li><li>comments can be helpful
<img src="https://i.ibb.co/nCtRy9p/20190711-173213.jpg" alt="com.jpg"/><br/></li></ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Using MariaDb FlexiViews]]></title>
            <link>/post/using-mariadb-flexiviews</link>
            <guid>/post/using-mariadb-flexiviews</guid>
            <content:encoded><![CDATA[<p>In the quest to filtering data I ended up looking for a tool that allows me to move a part of a query that needed too many unions in order to achieve simple things that where not thought trough from the beginning.</p><p>Task at hand:</p><ul><li>make a step in moving from a faulty database design to a new organized data model</li><li>don’t affect current query performance</li><li>reduce the effort in building the query from backend</li><li>apply conditions like using a field in a joined table for deciding the type of join the query needs</li><li>keep query maintainable</li></ul><p>A database view comes usually with the disadvantage of not having indexes like a table does, it depends on the performance of the query builder and most of the time is intended at shadowing sensitive information from possible sql query vulnerabilities. So it does add a step in the right direction, might not affect query performance and reduces the effort of building the query from backend, but sorting or ordering might become an overhaul.</p><p>Looking at <a href="https://mariadb.com/kb/en/mariadb/flexviews/">MariaDb FlexiViews</a> I was wondering which of these points does that help improve and arrived at the following conclusions:</p><ul><li>FlexiViews are good are preparing data for large requests</li><li>it has some limitations. But making a workaround might be an improvement in performance</li><li>Flexiviews are maintainable from php and plugabble, which is a great feature</li><li>it actually uses a table for caching data</li></ul><p>Found a nice introduction by the author <a href="https://www.slideshare.net/MySQLGeek/flexviews-materialized-views-for-my-sql">https://www.slideshare.net/MySQLGeek/flexviews-materialized-views-for-my-sql</a> .</p><p>For anyone considering development using flexviews consider reading the <a href="https://github.com/greenlion/swanhart-tools/tree/master/flexviews">code base</a>.</p>]]></content:encoded>
        </item>
    </channel>
</rss>