<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Valerica Plesu</title>
    <description>The latest articles on Forem by Valerica Plesu (@valericaplesu).</description>
    <link>https://forem.com/valericaplesu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F65306%2F5b19ced5-bd79-471d-802e-46dfdac098ed.png</url>
      <title>Forem: Valerica Plesu</title>
      <link>https://forem.com/valericaplesu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/valericaplesu"/>
    <language>en</language>
    <item>
      <title>Android real-time pose detection app using TensorFlow Lite.</title>
      <dc:creator>Valerica Plesu</dc:creator>
      <pubDate>Thu, 09 Apr 2020 19:13:17 +0000</pubDate>
      <link>https://forem.com/valericaplesu/android-real-time-pose-detection-app-using-tensorflow-lite-3hjh</link>
      <guid>https://forem.com/valericaplesu/android-real-time-pose-detection-app-using-tensorflow-lite-3hjh</guid>
      <description>&lt;p&gt;I hope everyone is doing fine in the current situation.&lt;br&gt;
The quarantine was not something that I have ever imagined before. &lt;br&gt;
In Romania, we are on lockdown for almost one month now and we’ll continue one more. &lt;br&gt;
There are lots of articles about productivity work from home tips but let’s face it, it's hard, it’s stressful, it’s new. When was the last time you spent an entire month inside your home?&lt;/p&gt;

&lt;p&gt;I’m sure that each of us is doing their best, no need to overreact about this and I bet that no one is more productive now just because they are wfh, no, this is isolation, not the normal situation.&lt;br&gt;
We are all on the same boat, all over the world. &lt;br&gt;
Thank God we have &lt;strong&gt;The Internet&lt;/strong&gt; and everyone is still connected.&lt;/p&gt;

&lt;p&gt;When I feel down and I’m done with Netflix, HBO Go or other resources I try to redirect myself to self-improvement.&lt;br&gt;
I was thinking to try fitness since nowadays I do lack it, but I know myself and I know that I can get injured really easily. &lt;br&gt;
So why not combine Technology and Fitness?&lt;/p&gt;

&lt;h1&gt;
  
  
  Goal
&lt;/h1&gt;

&lt;p&gt;To keep me busy and to learn a bit more about technology. Developing an Android app using TensorFlow Lite.&lt;/p&gt;

&lt;h1&gt;
  
  
  What is TensorFlow Lite
&lt;/h1&gt;

&lt;p&gt;TensorFlow Lite is a production-ready, cross-platform framework for deploying ML on mobile devices and embedded systems.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ff96m64v3hqi54t7f23d8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ff96m64v3hqi54t7f23d8.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It enables &lt;strong&gt;on-device&lt;/strong&gt; machine learning inference with low latency and a small binary size.&lt;/p&gt;

&lt;p&gt;TensorFlow Lite consists of two main components:&lt;/p&gt;

&lt;p&gt;The TensorFlow Lite &lt;strong&gt;interpreter&lt;/strong&gt;, which runs specially optimized models on many different hardware types, including mobile phones, embedded Linux devices, and microcontrollers.&lt;br&gt;
The TensorFlow Lite &lt;strong&gt;converter&lt;/strong&gt;, which converts TensorFlow models into an efficient form for use by the interpreter, and can introduce optimizations to improve binary size and performance.&lt;/p&gt;

&lt;p&gt;TensorFlow Lite is designed to make it easy to perform machine learning on devices, "at the edge" of the network, instead of sending data back and forth from a server. &lt;/p&gt;

&lt;h1&gt;
  
  
  But what is it useful for?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzxo9h6eioguwu6f06ijb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzxo9h6eioguwu6f06ijb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are different models ready to be integrated into your app from the &lt;a href="https://www.tensorflow.org/lite/models/" rel="noopener noreferrer"&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Functionalities
&lt;/h1&gt;

&lt;p&gt;The app I develop will monitor my posture and remind me to stand up after a certain period of time and do some yoga exercises.&lt;/p&gt;

&lt;h1&gt;
  
  
  The problem
&lt;/h1&gt;

&lt;p&gt;How do I determine if the movement is a yoga one?&lt;/p&gt;

&lt;h1&gt;
  
  
  Development workflow
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Pick a model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first model I've used is the &lt;strong&gt;single-pose detection model&lt;/strong&gt;. Pose estimation is the process of utilizing computer vision techniques to estimate various elements of human posture within an image or segment of a video.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbh7u084rk333pq7wbtsj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbh7u084rk333pq7wbtsj.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PoseNet&lt;/strong&gt; provides a general-purpose pose estimation model. This model may be used for simple applications containing a single human body for the purpose of joint detection. As an example, the model can estimate the position of a person’s elbow and/or knee in an image. The pose estimation model does not identify who is in an image; only the positions of key body parts.&lt;/p&gt;

&lt;p&gt;What makes this model &lt;strong&gt;fascinating&lt;/strong&gt; is its ability to track joint movements in real-time with a relatively high level of accuracy and flow.&lt;/p&gt;

&lt;p&gt;TensorFlow Lite is sharing an Android sample application that utilizes the device’s camera to detect and display key body parts of a single person in real-time. Check out the &lt;a href="https://github.com/tensorflow/examples/tree/master/lite/examples/posenet/android" rel="noopener noreferrer"&gt;source code&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;The second model I've used is an Image classification model. &lt;br&gt;
&lt;strong&gt;Image classification&lt;/strong&gt; is a common use of machine learning to identify what an image represents. For example, we might want to know what type of animal appears in a photograph. &lt;/p&gt;

&lt;p&gt;The task of predicting what an image represents is called image classification. &lt;br&gt;
An image classification model is trained to recognize various classes of images.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Train and Convert the model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So back to my problem, my model should determine &lt;strong&gt;yoga&lt;/strong&gt; movements so I need to train it and at the end to convert the model to the TensorFlow Lite format since I need it to run on Android.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data Collection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ll be training a classification model, hence my dataset will contain different kinds of images that the model has to identify (yoga movements).&lt;/p&gt;

&lt;p&gt;I found that Python provides us with a handy third-party package called &lt;strong&gt;google_images_download&lt;/strong&gt;, which has easy-to-use syntax and can automate the search over the internet of yoga images.&lt;/p&gt;

&lt;p&gt;Before I train my model, it’s essential that I get rid of these images from the dataset that are garbage. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Train the model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm using &lt;strong&gt;AutoML Vision&lt;/strong&gt; to train and convert the model. A quick start you can find it &lt;a href="https://cloud.google.com/vision/automl/docs/edge-quickstart" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My dataset looks like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fggm4mn67vf16ax1kz178.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fggm4mn67vf16ax1kz178.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Doing this training in a traditional way would have taken way more time and effort on my end and would have involved installing and setting up dozens of third party packages. I think it is a good idea to use existing tools like AutoML.&lt;/p&gt;

&lt;p&gt;After completing this process I have exported the trained model files: a TF Lite file, a label file and a metadata file.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Test the model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I uploaded a test picture to see if it is classified right&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvp9tbnvaffwdg9ko3wje.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvp9tbnvaffwdg9ko3wje.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy &amp;amp; use &amp;amp; have fun!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I added my model to my existing app, so now I can run it on the android phone.&lt;/p&gt;

&lt;p&gt;I know that everyone is thinking about how to protect themselves and their families, food, and shelter but in the end, programming is how we get paid and we have to remember the privilege that we have by being able to work from home.&lt;br&gt;
Let's take this quarantine to show our passion, to connect with the people we love and to shift the mindset to something better.&lt;br&gt;
Don't get angry, don't let emotions drive you in and focus on what you can control.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>android</category>
      <category>career</category>
    </item>
    <item>
      <title>Developing for the future, My smart fridge</title>
      <dc:creator>Valerica Plesu</dc:creator>
      <pubDate>Mon, 02 Mar 2020 16:41:29 +0000</pubDate>
      <link>https://forem.com/valericaplesu/developing-for-the-future-32pc</link>
      <guid>https://forem.com/valericaplesu/developing-for-the-future-32pc</guid>
      <description>&lt;p&gt;In a constantly changing world where powerful AI-based applications are day by day more accurate and efficient than any technology, it’s hard to keep track of such a big transformation. &lt;br&gt;
As &lt;strong&gt;developers&lt;/strong&gt;, we need to learn how to leverage the technology in such a way to solve problems from the real world and even if we are not implementing some of the world’s most cutting edge technologies we can integrate them into our daily workflows.&lt;/p&gt;

&lt;p&gt;My eagerness to try out the latest technology and the love for coffee made me search for a solution of a problem I had, &lt;strong&gt;how do I check if I have milk in the fridge?&lt;/strong&gt; (yes, I make my own cappuccino). &lt;br&gt;
Of course, many exciting systems came into my mind, like a bunch of pressure &lt;strong&gt;sensors&lt;/strong&gt; placed into the fridge or a &lt;strong&gt;cam&lt;/strong&gt; so I can read real-time what items do I own. But this comes with the obvious risk of not implementing it since it introduces the hardware part so the complexity grows.&lt;/p&gt;

&lt;p&gt;So back to &lt;strong&gt;my need&lt;/strong&gt; I started to implement an app for the &lt;strong&gt;Google Assistant&lt;/strong&gt;, an app to help me keep track of the items I have into the fridge.&lt;/p&gt;

&lt;h1&gt;
  
  
  But what are actions?
&lt;/h1&gt;

&lt;p&gt;Actions on Google lets you extend the functionality of the Google Assistant with Actions. Actions let users get things done through a conversational interface that can range from a quick command to turn on some lights or a longer conversation, such as playing a trivia game.&lt;br&gt;
There are many conversation design principles but the main idea is to create such a &lt;strong&gt;natural conversation&lt;/strong&gt; with the Assistant in a way that the user forgets that he is not speaking with a human.&lt;/p&gt;

&lt;h1&gt;
  
  
  Goal
&lt;/h1&gt;

&lt;p&gt;My goal is to have a &lt;strong&gt;fast and easy&lt;/strong&gt; way to check if I have milk. But why not extend this to any item that can be placed into the fridge and have sort of a &lt;strong&gt;“voice list”&lt;/strong&gt; to quickly access it through voice using Google Assistant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I started writing sample dialogs.&lt;/strong&gt;&lt;br&gt;
Sample dialogs are the key to creating great Actions on Google; they’ll give you a quick, low-fidelity sense of the “sound-and-feel” of the interaction you’re designing. &lt;br&gt;
They convey the flow that the user will actually experience, in my case a way to check if there is any milk into the fridge.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MpxxTef3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tewenf97olo2z8hkhvub.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MpxxTef3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tewenf97olo2z8hkhvub.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;During the conversation sketch, I was thinking of a possibility for the users to add any item (milk, eggs, etc) into the fridge, remove one or check what the fridge contains using only speech.&lt;/p&gt;

&lt;p&gt;Going deeper into any possible conversation that I can have with the application, I ended in some flows that are hard to follow on a device without any screen capability (like the google home mini). &lt;/p&gt;

&lt;p&gt;Available devices:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7hKZR6n7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hxyjwt4uwn8rausp9h9n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7hKZR6n7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hxyjwt4uwn8rausp9h9n.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, if I’m going to check all the items I have into the fridge and let’s say that I stored like, 20 or 30 items, to keep track of them by voice is hard. I need to adapt my spoken conversation into a multimodal conversation and check if there is a display available and build a list with all the items. &lt;br&gt;
In this way, I &lt;strong&gt;scale&lt;/strong&gt; my application across multiple devices (spoken alone or spoken with display).&lt;br&gt;
So for devices with an available display, I built a list:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yFlYd1DD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mroazp3vx1quxrgfmpwt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yFlYd1DD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mroazp3vx1quxrgfmpwt.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Development part
&lt;/h1&gt;

&lt;p&gt;Building your own natural language processing service can be challenging, so using Dialogflow is the best choice.&lt;br&gt;
First I created a developer project for Actions on &lt;strong&gt;Google Console&lt;/strong&gt;. &lt;br&gt;
Second I created a &lt;strong&gt;Dialogflow agent&lt;/strong&gt; where I started to define all my Actions (add, remove or check fridge items). To create the conversation, here is the place to define intents, to create conversation's grammar or the things users can actually say to the Action.&lt;/p&gt;

&lt;p&gt;Intents I've created:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sZ2mjgdS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vrn9npqi533z7jelqcdg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sZ2mjgdS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vrn9npqi533z7jelqcdg.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;backend&lt;/strong&gt; part I wrote it in &lt;strong&gt;Kotlin&lt;/strong&gt;. I use Firebase Firestore to save all users items and query for them when “check food” intent is matched.&lt;br&gt;
I deployed the application into the &lt;strong&gt;Google Cloud Platform&lt;/strong&gt;. This way I do not worry about managing the infrastructure and how to scale it. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KgUau3pd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o7ja2f7o2i48uhc21ybf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KgUau3pd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o7ja2f7o2i48uhc21ybf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;No matter what programming language you know, no matter what day by day projects you are working on, all the time look forward to solving a need. The technological range is quite big as well as the efficiency and reliability of the technology vary but this should not keep you from doing it. Maybe you will not revolutionize the future but definitely you are having fun trying it.&lt;/p&gt;

&lt;p&gt;You can check the app while talking with your Google Assistant, &amp;lt;&lt;strong&gt;Ok, Google, Ask Smarty Fridge to check my food&lt;/strong&gt;.&amp;gt;&lt;/p&gt;

&lt;p&gt;Let’s shape the future together.&lt;br&gt;
&lt;em&gt;Thank you for reading this. If you have any questions, comments or funny jokes comment below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>googleactions</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>What a difference a year makes in software development? Get in shape for 2020! 🥳</title>
      <dc:creator>Valerica Plesu</dc:creator>
      <pubDate>Sun, 29 Dec 2019 10:29:25 +0000</pubDate>
      <link>https://forem.com/valericaplesu/what-a-difference-a-year-makes-in-software-development-get-in-shape-for-2020-37fn</link>
      <guid>https://forem.com/valericaplesu/what-a-difference-a-year-makes-in-software-development-get-in-shape-for-2020-37fn</guid>
      <description>&lt;p&gt;While tech moves so fast you just need to be disciplined, a continuous learner and to be self-educated. It's really ok to look for something else, to have different hobbies, to do the things in your way. Just weigh the pros and cons when you have to.&lt;/p&gt;

&lt;p&gt;Here is my list of things I did better this year:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Chase a career, not a job&lt;/strong&gt; - Yes, I’m working on shifts, I do it on the job, I go home and I do it again. I go to conferences, I do networking, I learn new things. All of this is to improve me at my job and myself as a person.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Personal projects&lt;/strong&gt; - Yes, I do learn a lot through side projects. Also, I do chill out on the couch. Both of them are working just fine. Taking the opportunity and investing my time in certain technologies that I cannot use them at work helped me to learn more about Google Actions, building various projects on a Raspberry Pi or trying Augmented Reality applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Coding is the fun part&lt;/strong&gt; - Yes, I do LOVE coding. Also, coding isn’t easy. I sit alone for hours and trying to mentally inhabit pieces of software. And there is nothing nice about figuring out why an error message appears.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. People are unpredictable&lt;/strong&gt; - Yes, while I’m coding I feel it as a refugee from the unpredictability of humans. This means that I recharge my batteries with being by myself, alone or with my family. This is not good or bad, in the end, coders are humans too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The illusion of easy money&lt;/strong&gt; - No, actually I have to work really hard and being efficient. Unfortunately, there is no one to just give me a salary like that. There are lots of people saying that working in the technological field it’s easy but actually, it’s hard work. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. I am better then I think I am&lt;/strong&gt; - Yes, my intrinsic motivation is huge. I’m hungry, I’m curious, I’m chasing experiences, learning programming languages, frameworks, and new technologies day by day. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. I’m not as good as I think I am&lt;/strong&gt; - hilarious, reading point 6. Yes, I do need to focus more on unit testing my code, or TDD or better architecture. It’s my job to make sure that I deliver a better product day by day and to tell my manager about the importance of these.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Trust people&lt;/strong&gt; - the fear of trust is big but eventually, I realized that I’m not alone. My path of thought was on the wrong track the whole time, and the switch to get off was right there, trusting the people around me. I’m not gonna lie, going to talk at conferences made me a nervous wreck but I’m happy that I got the courage to do it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Learning and development opportunities&lt;/strong&gt; - Yes, I do invest time and money in order to become better. The company I work for has a budget for this also. Attending various conferences, books, and Udemy subscription. If you are willing to grow, the company should support you and if you are not getting along with the culture of the company, find another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. People don’t leave organizations. They leave managers&lt;/strong&gt; - Myth or truth? Yes, I do trust my manager. I find him supportive and I learned in the right environment that it’s ok to ask for help. Being able to figure out that I’m not able to perform a certain task in a specific time interval by myself and choosing between burning-out or ask for help this means to grow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. Teach others what you know&lt;/strong&gt; - Yes, I try to do this every time. I do Android classes for students, I attend local meetups or conferences where I share my knowledge about Android and Kotlin. The best feeling to hear someone says that they learned a certain topic from you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12. My smile, still, stays on&lt;/strong&gt; - my friends working at the same company are leaving the company. Yes, it is very sad and I feel that I cannot handle it but I promise myself that I will take the time to gear up the best response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13. Don’t hide your mistakes&lt;/strong&gt; - Yes, I do mistakes. But I’m able to figure out what went wrong and why. And more importantly how to fix it. This happens in a healthy environment. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;14. Process, Process, Process&lt;/strong&gt; - Yes, I do fight with Jira, meetings, tickets and so on. In a positive way, I’m not a strong opinioned person about it since I’m aware that those are improving the collaboration and work within the team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15. Stay committed&lt;/strong&gt; - Out there, so many tools, architecture patterns and a huge amount of information. Yes, I don’t know everything but I make sure though I know at least one thing really well and trying different paradigms to have at least a clue, knowing that this stuff exists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;16. Stay motivated&lt;/strong&gt; - Yes, I’m not all the time motivated. There are times I have to work on a project that doesn’t spark a lot of joy. What I do is to search for challenges that I can conquer so my ego thrives from the dark. In this way boredom cannot kill my joy and productivity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;17. Write&lt;/strong&gt; - Yes, I try to be a better communicator, to express my thoughts easier. This helps me to communicate technical requirements and specifications to others in an easier way. Being able to write code that can be understood by both a computer and by human beings is a skill developed over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;18. Ability to influence and persuade&lt;/strong&gt; - Coding, point 3, would be pointless without this ability. Yes, I do influence people. I structure my arguments to make a point through the idea I want to share. As developers, we work with other teams and maybe our goals are not completely aligned so choosing between the authority or the capability to influence it’s a growing. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thank you for reading this. Really thrilled to start my next adventures and to meet tons of incredible people next year. What an incredible 2019!&lt;br&gt;
🎉Happy New Year🎉&lt;/em&gt;&lt;/p&gt;

</description>
      <category>motivation</category>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🎄 How to decorate a Christmas tree like a programmer 🎄</title>
      <dc:creator>Valerica Plesu</dc:creator>
      <pubDate>Sat, 14 Dec 2019 18:26:06 +0000</pubDate>
      <link>https://forem.com/valericaplesu/how-to-decorate-a-christmas-tree-like-a-programmer-2ok5</link>
      <guid>https://forem.com/valericaplesu/how-to-decorate-a-christmas-tree-like-a-programmer-2ok5</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;Xmas&lt;/strong&gt; is around the corner! 🎁🎅
&lt;/h1&gt;

&lt;p&gt;I know that not everyone celebrates Christmas, but for those that do or for those that just love Christmas I did an &lt;strong&gt;Android application&lt;/strong&gt; to make this Christmas &lt;strong&gt;devtastic&lt;/strong&gt;!  &lt;/p&gt;

&lt;p&gt;Why not start and build something using your skills? There are lots and lots of programming languages so why to stick to a single one?&lt;/p&gt;

&lt;h1&gt;
  
  
  Stack
&lt;/h1&gt;

&lt;p&gt;ArCore for Android. I started with the Sceneform sample found &lt;a href="https://developers.google.com/ar/develop/java/quickstart"&gt;here&lt;/a&gt;.&lt;br&gt;
Going through the sample you will learn how to display an arSceneView and how do you detect a plane in order to place different virtual objects. &lt;/p&gt;

&lt;p&gt;The next step is to add a bunch of models from &lt;a href="https://poly.google.com/"&gt;poly&lt;/a&gt;. Notice that those are published under a CC-BY license. You're free to use them as long as you credit the author.&lt;/p&gt;

&lt;h1&gt;
  
  
  Compatibility
&lt;/h1&gt;

&lt;p&gt;Android devices with Android version &amp;gt; 7.0&lt;/p&gt;

&lt;h1&gt;
  
  
  The Outcome
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Go33OYMv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/z4gftd1poz8ptnhvc5ho.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Go33OYMv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/z4gftd1poz8ptnhvc5ho.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you decorate your Christmas tree?
&lt;/h2&gt;

&lt;p&gt;Go ahead and post your Christmas tree! 🎄🎄🎄 &lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>android</category>
      <category>arcore</category>
    </item>
    <item>
      <title>Ok Google, How Do I Build My Action for the Assistant Using a Kotlin backend?</title>
      <dc:creator>Valerica Plesu</dc:creator>
      <pubDate>Sun, 17 Nov 2019 15:31:42 +0000</pubDate>
      <link>https://forem.com/valericaplesu/ok-google-how-do-i-build-my-action-for-the-assistant-using-a-kotlin-backend-4dcg</link>
      <guid>https://forem.com/valericaplesu/ok-google-how-do-i-build-my-action-for-the-assistant-using-a-kotlin-backend-4dcg</guid>
      <description>&lt;p&gt;Learning is a big part of a coder life, and from my point of view, it’s important to look at programming as a hobby.&lt;br&gt;
Besides the main technology you are learning, there are many other technologies and lots of soft skills. One important is &lt;strong&gt;curiosity&lt;/strong&gt;.&lt;br&gt;
In this article I would like to share with you my experience with how to develop &lt;strong&gt;an action for the Google Assistant&lt;/strong&gt;, using Kotlin. I will focus mainly on the struggles I had using Koltin as a backend and App Engine as a container for it.&lt;br&gt;
All this started with my curiosity about how an action work and taking the extra mile to build an action and share it with the GDG community.&lt;/p&gt;

&lt;h1&gt;
  
  
  But why the need for this?
&lt;/h1&gt;

&lt;p&gt;Working in the technology area it’s a complex job. Out there, so many tools, architecture patterns and a huge amount of information. Nobody can know everything and you need to choose what you invest your time. My Java background and for the last two years, Kotlin pushed me to try the Google Actions Kotlin library and not to learn and invest my time into node js, no offense here :) Google Actions development is based on node js and almost every tutorial out there is based on it so for me was like &lt;strong&gt;challenge accepted&lt;/strong&gt;!&lt;/p&gt;

&lt;h1&gt;
  
  
  Small talk
&lt;/h1&gt;

&lt;p&gt;Because Actions are powered by &lt;strong&gt;AI&lt;/strong&gt;, they interact as humans do. No user manual or learning curve required. Google reports that 41% of people who own a voice-activated speaker say it feels like talking to a friend or another person.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actions on Google&lt;/strong&gt; is the platform where developers can build Actions for Google Assistant. Actions are conversational interactions that allow users to talk with Google Assistant. Your Action’s users will be able to ask, “Ok Google, talk to  . . .” your action name and your Action will respond!&lt;/p&gt;

&lt;p&gt;Users don’t have to install anything to use your Action; however, all Actions must be submitted and approved by Google before they can be discovered.&lt;/p&gt;

&lt;h1&gt;
  
  
  Start design
&lt;/h1&gt;

&lt;p&gt;At a first sight, the set-up process seems a bit hard but Google has broken down the process into an easier process to follow &lt;strong&gt;Conversation Design&lt;/strong&gt;, which comes with extremely in-depth guides to understanding each step of the process. Details &lt;a href="https://developers.google.com/assistant/actions/design"&gt;here&lt;/a&gt;.&lt;br&gt;
If you are at the very beginning stage with Google Actions, I recommend these &lt;a href="https://github.com/actions-on-google/actions-on-google-nodejs"&gt;res1&lt;/a&gt; &lt;a href="https://www.grokkingandroid.com/using-the-actions-sdk/"&gt;res2&lt;/a&gt; &lt;a href="https://codelabs.developers.google.com/?cat=Assistant"&gt;res3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Action I build using DialogFlow&lt;/strong&gt;&lt;br&gt;
Bucharest DevFest is an action intended to help Bucharest GDG organizers to share information about their next DevFest event. DevFests are community-led developer events hosted by Google Developer Groups around the globe. GDGs are focused on community building and learning about Google’s technologies.&lt;/p&gt;

&lt;p&gt;With this in mind, I started to develop the action which would be able to share information about what is this event about, where and when would take place and which are the topics.&lt;/p&gt;

&lt;p&gt;Here's &lt;strong&gt;a sketch&lt;/strong&gt; of what a conversation with this app looks like: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fSZSAx59--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0ufqyc39yv22ifn3ke4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fSZSAx59--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0ufqyc39yv22ifn3ke4v.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project setup and tools&lt;/strong&gt;&lt;br&gt;
Because I wanted to write the code my way (using Kotlin) I chose Google Cloud's serverless platform &lt;strong&gt;App Engine&lt;/strong&gt; to take care of managing the underlying infrastructure.&lt;/p&gt;

&lt;p&gt;I started with their git project &lt;strong&gt;template&lt;/strong&gt; and did all the steps mentioned &lt;a href="https://github.com/actions-on-google/dialogflow-webhook-boilerplate-java"&gt;there&lt;/a&gt;.&lt;br&gt;
The first step (already created a new project in google action console, and linked it to a DialogFlow project) is to import the &lt;strong&gt;Agent&lt;/strong&gt; in your DialogFlow project: &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vj0qnmeS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/7ljaj8gmteehofjzcboh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vj0qnmeS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/7ljaj8gmteehofjzcboh.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After cloning the above repo, you can use &lt;strong&gt;IntelliJ&lt;/strong&gt; to open it and start writing your own code.&lt;/p&gt;

&lt;p&gt;The first remark to say is that if you try to run the code locally the used logger (org.slf4) will crash so none of your debugging logs will be there. (this happens because somehow their boilerplate code is some commit behind the library repo.&lt;/p&gt;

&lt;p&gt;To fix it you need to add this dependency into the &lt;strong&gt;build.gradle&lt;/strong&gt; file:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;compile 'org.slf4j:slf4j-simple:1.6.1'&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After this, you can start your local server from within IntelliJ, open the Gradle tray and run the &lt;strong&gt;appEngineRun&lt;/strong&gt; task. In the Run tray you should have an out like this one: &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B_eSfP90--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/19ggkmpegytaywpifxlv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B_eSfP90--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/19ggkmpegytaywpifxlv.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Now your local server is running.&lt;/p&gt;

&lt;p&gt;Next, you need to make this accessible from the internet, so your google assistant can access it. To do this I used &lt;strong&gt;ngrok&lt;/strong&gt; to expose my localhost &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lUdTJJts--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/dfua5eee42kzvjajj3z5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lUdTJJts--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/dfua5eee42kzvjajj3z5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The third step is to go back in the Dialogflow console, from the left navigation menu under Fulfillment &amp;gt; Enable Webhook, set the value of URL to https://&amp;lt;...&amp;gt;.ngrok.io and Save.&lt;/p&gt;

&lt;p&gt;Now is the moment when you are able to test your action using your local webserver.&lt;/p&gt;

&lt;p&gt;Now comes the fun part, the &lt;strong&gt;coding&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You add your &lt;strong&gt;Intents&lt;/strong&gt; into the DialogFlow console and then you are handling the request in the &lt;strong&gt;MyActionsApp&lt;/strong&gt; class which extends DialogflowApp() like this: &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hzYXxget--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qgt1vcu58ef83rzieu4t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hzYXxget--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qgt1vcu58ef83rzieu4t.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All the string resources are going into this directory &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_dakrluq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ari67knaxt6fkq3132bz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_dakrluq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ari67knaxt6fkq3132bz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This goes well if you want to distribute your action in &lt;strong&gt;different countries&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Another struggle I had was with the default project for the &lt;strong&gt;gcloud CLI&lt;/strong&gt;. Because I had an old project already setup with the Google Cloud, somehow that was my default project.&lt;br&gt;
To fix this I added two new build type to project &lt;strong&gt;gradle file&lt;/strong&gt; &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IDgBvtX7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/oeqjbtjpcmx7bb22rg54.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IDgBvtX7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/oeqjbtjpcmx7bb22rg54.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just set correctly your projectId. (you can check the id in the DialogFlow console).&lt;/p&gt;

&lt;p&gt;Another interesting and easy step to be done is to integrate your code with the &lt;strong&gt;Firebase Firestore&lt;/strong&gt; in order to get your action content dynamically. But this is another discussion.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So what do you think? would Google Action be your next fun project?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thank you for reading this. If you have any questions, comments or funny jokes comment below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>googleactions</category>
      <category>googleassistant</category>
      <category>heygoogle</category>
    </item>
    <item>
      <title>#InternationalProgrammersDay</title>
      <dc:creator>Valerica Plesu</dc:creator>
      <pubDate>Wed, 11 Sep 2019 19:50:22 +0000</pubDate>
      <link>https://forem.com/valericaplesu/internationalprogrammersday-3ppd</link>
      <guid>https://forem.com/valericaplesu/internationalprogrammersday-3ppd</guid>
      <description>&lt;p&gt;For all techies out there, &lt;strong&gt;Happy 256th day of 2019&lt;/strong&gt;, this Friday 13.&lt;/p&gt;

&lt;p&gt;Let's celebrate it as we all know best, by &lt;strong&gt;coding&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dare to code&lt;/strong&gt; a new app, a code snippet or whatever you want using a programming language/tool/API you don't know.&lt;/p&gt;

&lt;p&gt;I'm learning how to develop apps for &lt;strong&gt;Google Assistant&lt;/strong&gt; and I'm thrilled about it.  Here is what I've built: &lt;a href="https://assistant.google.com/services/a/uid/000000941f7dbef9?hl=en&amp;amp;source=web"&gt;Programmers Facts&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  daretocode,
&lt;/h1&gt;

&lt;p&gt;And big thank you to all the coders out there changing lives for the better&lt;/p&gt;

</description>
      <category>challenge</category>
    </item>
    <item>
      <title>How was your last on-boarding experience as a new employee?</title>
      <dc:creator>Valerica Plesu</dc:creator>
      <pubDate>Thu, 08 Aug 2019 17:34:57 +0000</pubDate>
      <link>https://forem.com/valericaplesu/how-was-your-last-on-boarding-experience-as-a-new-employee-42p7</link>
      <guid>https://forem.com/valericaplesu/how-was-your-last-on-boarding-experience-as-a-new-employee-42p7</guid>
      <description>&lt;p&gt;Hey techies!🚀 I'm cooking a new workshop for &lt;strong&gt;Google Actions&lt;/strong&gt; (actions sdk, dialogflow) and in preparation want to get your thoughts on something.&lt;/p&gt;

&lt;p&gt;📍We've all gone through the on-boarding experience as new employees with a company.&lt;/p&gt;

&lt;p&gt;I want to know what kind of &lt;strong&gt;information&lt;/strong&gt; you received that was useful and what kind of information you wish you would have received but didn't.&lt;/p&gt;

&lt;p&gt;📍Ex: finding info about other teams, where the cafeteria is, where the restroom is, where is the HR team, what kind of benefits you have, etc&lt;/p&gt;

&lt;p&gt;Comment below and help me shape this workshop.&lt;/p&gt;

&lt;p&gt;Thanks🙏&lt;br&gt;
Your insights will be greatly appreciated!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>help</category>
    </item>
    <item>
      <title>Soft skills: Coders by Clive Thompson – book review</title>
      <dc:creator>Valerica Plesu</dc:creator>
      <pubDate>Sat, 27 Jul 2019 13:59:44 +0000</pubDate>
      <link>https://forem.com/valericaplesu/soft-skills-coders-by-clive-thompson-book-review-3m31</link>
      <guid>https://forem.com/valericaplesu/soft-skills-coders-by-clive-thompson-book-review-3m31</guid>
      <description>&lt;p&gt;“Code shapes coders, and coders shape the code that changes how we think, every day of our lives. If you want to create a more humanistic digital world, read this book to get started” - Sherry Turkle, professor at MIT.&lt;/p&gt;

&lt;p&gt;On my way to becoming a well-rounded software developer, I found myself reading &lt;strong&gt;Coders&lt;/strong&gt; (The Making of a New Tribe and Remaking of the World) by &lt;strong&gt;Clive Thompson&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why?
&lt;/h1&gt;

&lt;p&gt;The reason for picking up this book was that like everybody else I do read a decent amount of books about technical subjects but what about the remaining part of life as a developer? I do want to equip myself with soft skills that complement technical skills, so this is the main reason for choosing this book.&lt;/p&gt;

&lt;h1&gt;
  
  
  Content of the book:
&lt;/h1&gt;

&lt;p&gt;The book is written by &lt;strong&gt;Clive Thompson&lt;/strong&gt; who from my point of view has done a very good job by putting down in words who coders are, what they do and what’s the culture of code.&lt;br&gt;
The book is divided into &lt;strong&gt;11 chapters&lt;/strong&gt;, it’s quick to read and guides readers through the undercovered history of programming and a better understanding of programmers. &lt;/p&gt;

&lt;p&gt;As the author states, in a world made of software, programmers are thus among the &lt;em&gt;most quietly influential people on the planet&lt;/em&gt;, they are the &lt;strong&gt;architects&lt;/strong&gt;.&lt;br&gt;
We want to understand how today’s world works but first we need to understand who are the people building it, what makes them tick, what’s their personality.&lt;/p&gt;

&lt;p&gt;I found out that the first record use of &lt;strong&gt;“Hello World!”&lt;/strong&gt; was in 1972 by Brian Kernighan, a young computer scientist. The idea came watching a cartoon of a chick coming out of an egg, saying “Hello, World!”. Nowadays, every single guide to a programming language has the “Hello, World!” how to do a tutorial.&lt;/p&gt;

&lt;p&gt;The author blows my mind multiple times when describing how coders are. An interesting explanation is that “The default state of everything that you’re working on is fucking broken. The type of people who end up being programmers is self-selected by the people who can endure that agony. That’s a special kind of crazy. &lt;strong&gt;You’ve got to be a little nut to do it.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“The programmer personality is someone who has the ability to drive a tremendous sense of joy from an incredible small moment of success”.  I do this day by day, and at the moment I quash a bug I’m like &lt;strong&gt;Sherlock Holmes&lt;/strong&gt; in his moments of cerebral triumph. &lt;/p&gt;

&lt;p&gt;Trying to dive into understanding what coding is, the author often says that coding isn’t easy, you have to sit alone for hours and trying to mentally inhabit the twisty nuances of a piece of software. &lt;br&gt;
&lt;strong&gt;There are no niceties&lt;/strong&gt;. If there is an error into the code, it just spits out an error message and the coder needs to figure out what he did wrong.&lt;br&gt;
When you meet a coder, you meet someone whose core daily job is of unending failure and grinding frustration.  This is going into his mind and personality. Coders tend to be good at thinking logically, systematically.&lt;/p&gt;

&lt;p&gt;A nice analogy is that the programmers are &lt;strong&gt;“near Sisyphean”&lt;/strong&gt; - day by day are resigned failure, watching the boulder roll back down the hill… until one day it tips over the crest. And what do they behold on the other side? Another hill. &lt;br&gt;
One central plank of coder psychology it’s a boundless, nigh masochistic ability to endure brutal, grinding frustration. That’s because most of the time they are finding bugs.&lt;/p&gt;

&lt;p&gt;I felt particularly attracted by &lt;strong&gt;“coding it’s a refuge from the unpredictability of humans, from their gray-scale emotions and needs”&lt;/strong&gt;. When I do code I’m sure that the computer would execute what I tell him to do, nothing can surprise me.  Of course, the computer is a complete asshole, it will not help me and will fail completely and spectacularly for any tiniest error, but still, humans are the ones unpredictable. &lt;/p&gt;

&lt;p&gt;Programmers are poets of bits. The author is giving us what’s the culture of a coder. Code is a form of artistic expression, they are giving it freely to everyone who wonders &lt;em&gt;“Hey, how’d you do that?”&lt;/em&gt; this way people are going to learn it.  All of this went to be known today as “free and open-source software”.&lt;/p&gt;

&lt;p&gt;Going page by page, chapter by chapter, the author successfully surprised me by unpacking the &lt;strong&gt;coder&lt;/strong&gt; in different ways, like unpacking a new pair of sneakers. Who does not like the unpackaging process?&lt;/p&gt;

&lt;p&gt;Reaching the end of the book it gives you a clear idea about how awesome programming is and why not give it a try yourself? &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I 100% recommend this book to anyone. If you are a programmer or you have to work with programmers it’s important to understand their culture.&lt;br&gt;
I enjoyed the book and I hope you have found this review useful. &lt;br&gt;
&lt;em&gt;Thank you for reading this. If you have any questions, comments or funny jokes comment below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>reading</category>
      <category>books</category>
      <category>review</category>
    </item>
    <item>
      <title>Cooking like a programmer, part 1</title>
      <dc:creator>Valerica Plesu</dc:creator>
      <pubDate>Tue, 05 Feb 2019 19:16:26 +0000</pubDate>
      <link>https://forem.com/valericaplesu/cooking-like-a-programmer-apo</link>
      <guid>https://forem.com/valericaplesu/cooking-like-a-programmer-apo</guid>
      <description>&lt;p&gt;The idea for this post and the next ones (yes, there will be a series of articles) came from my passion for coding and cooking. So why not combine both of them. &lt;br&gt;
Both are rule-based and are considered a form of art and science but what I like most is that they leave plenty of room for improvisation (or how I like to say, &lt;em&gt;“I seasoned some personality in”&lt;/em&gt;).&lt;br&gt;
This is not something new, but I find myself able to get the similarities between these two and write my own approach about how useful is programming day by day. So, this is my POC.&lt;/p&gt;

&lt;h1&gt;
  
  
  Background
&lt;/h1&gt;

&lt;p&gt;I felt in love with programming 7 years ago and currently, I have a full-time job as an Android Developer. &lt;br&gt;
I do love the idea of coaching. In my free time, I’m helping others to learn how to code (at &lt;a href="https://www.mobileacademy.ro/" rel="noopener noreferrer"&gt;MobileAcademy&lt;/a&gt;) and I’m an active member of local meetup events (such as &lt;a href="https://www.meetup.com/Women-Techmakers-Romania/members/" rel="noopener noreferrer"&gt;women techmakers romania&lt;/a&gt;, &lt;a href="https://www.meetup.com/Google-Developer-Group-Bucharest/" rel="noopener noreferrer"&gt;google developer group bucharest&lt;/a&gt;).&lt;br&gt;
Last year was the first time I was invited as a speaker at a well-known conference (&lt;a href="https://devfest.ro/" rel="noopener noreferrer"&gt;devfest&lt;/a&gt;) and I enjoyed it a lot.&lt;br&gt;
I’ve got a hacktoberfest t-shirt at &lt;a href="https://hacktoberfest.digitalocean.com/" rel="noopener noreferrer"&gt;#hacktoberfest18&lt;/a&gt; and what I’ve learned is that you should stay positive and show enthusiasm when opening a pull request and accept that your code is not perfect.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbbitgj2iwtm2hmlixv7p.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbbitgj2iwtm2hmlixv7p.jpg" alt="hacktoberfest t-shirt"&gt;&lt;/a&gt;&lt;br&gt;
I’ve been two times at &lt;a href="https://events.google.com/io/" rel="noopener noreferrer"&gt;Google IO&lt;/a&gt; event and I found this the most unique conference where you have to go at least once in a lifetime.&lt;br&gt;
Being active in this industry brings you many benefits. I do consider that taking a few days away from the office to participate in a conference is not at all a waste of time.&lt;br&gt;
&lt;em&gt;The mindset&lt;/em&gt; I choose to go with is that I can win friends and learn from a variety of points of view, get new ideas and trends, all these impacting my future results.&lt;/p&gt;

&lt;h1&gt;
  
  
  What I want to accomplish with this series of articles?
&lt;/h1&gt;

&lt;p&gt;I want to learn how to cook based on my programming skills and share programming basic concepts in a funny way, that anyone can understand.&lt;br&gt;
I’ll try to write about basic rules, like the &lt;em&gt;environment, the importance of planning, variables, algorithm, data structures, OOP, app architecture, teamwork&lt;/em&gt;, etc. Of course, I’ll do it &lt;strong&gt;agile&lt;/strong&gt; so everything can change :D&lt;br&gt;
I find programming a lifelong pursuit where there is always something new to learn and you need to get as much as you can and also help out the person next to you. &lt;br&gt;
Cooking is not different, and I don’t have big expectations that I will be a great Chef in a few days, so that’s why I propose myself to cook something new every week. (improving my cooking skills week by week, continuous learning). &lt;/p&gt;

&lt;h1&gt;
  
  
  So, let’s start!
&lt;/h1&gt;

&lt;p&gt;In this article, I will tackle the &lt;strong&gt;“Setting up the environment and planning what you want to code! Ups… cook”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first dish I want to cook is &lt;strong&gt;duck breast with orange sauce.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting up the environment.&lt;/strong&gt; In order to start writing code and solve actuals tasks, I need to get everything in place before coming up with a solution to a problem. &lt;br&gt;
So, I start with installing &lt;em&gt;iTerm, AndroidStudio, GIT, android sdk, android ndk, kotlin, sublime text&lt;/em&gt; (mac workstation). After everything is setup, I’m ready to go and plan what I need to implement next.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkt7hssd8aq9gizhwnl77.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkt7hssd8aq9gizhwnl77.jpg" alt="pic 1"&gt;&lt;/a&gt;&lt;br&gt;
So, with this in my mind, I cleared up the kitchen and everything is in place, as “Mise en place”.  Based on my skills I assume that if my work area is clean and my tools are where they should be, I’ll be able to handle this complex recipe. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Planning the work.&lt;/strong&gt;  I like to plan my workday… actually my entire day. If I have to handle a complex problem, I first start writing it down in pseudocode before actually start programming. &lt;br&gt;
I plan the app architecture in advance. I’m thinking of the app specifications and reading a lot about what APIs I’m going to use but in an agile way (things can change). My view has to match my team view, so I need to keep consistency.&lt;br&gt;
I like to write code, but coding is a long run, at each moment there is something from the past to refactor.&lt;/p&gt;

&lt;p&gt;Again, I’m using this coding approach to preparing the duck breast. I’m studying about duck meat properties, the ingredients I need for the recipe and extract the steps I need to perform (planning the architecture).&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbmkpdsd06twrln9dskjp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbmkpdsd06twrln9dskjp.jpg" alt="pic 2"&gt;&lt;/a&gt;&lt;br&gt;
What I’ve learned is that duck is nutritious and delicious, it is lean meat, an excellent source of selenium and zinc, both of which encourage good cellular metabolism.&lt;br&gt;
Duck fat it’s similar to olive oil and low in saturated fat. It’s the perfect choice for a health-conscious diet.&lt;/p&gt;

&lt;p&gt;After this recipe, what I’ve learned is like in software, where my app doesn’t work as I’m thinking (&lt;strong&gt;bugs are everywhere&lt;/strong&gt;) my dish tastes a bit strange… but at least looks good :D&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fu8ddmzqck9wp1jaxfql6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fu8ddmzqck9wp1jaxfql6.jpg" alt="pic 3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stay tuned for my next steps on learning how to cook like a programmer and discover what software development is like a pro. Stay happy!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thank you for reading this. If you have any questions, comments or funny jokes comment below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>android</category>
      <category>motivation</category>
    </item>
  </channel>
</rss>
