<?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: Claudio Davi</title>
    <description>The latest articles on Forem by Claudio Davi (@claudiodavi).</description>
    <link>https://forem.com/claudiodavi</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%2F154943%2F57dd8273-5caa-4409-a06e-e0433fd50b2a.jpeg</url>
      <title>Forem: Claudio Davi</title>
      <link>https://forem.com/claudiodavi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/claudiodavi"/>
    <language>en</language>
    <item>
      <title>What does a Machine Learning Engineer actually do?</title>
      <dc:creator>Claudio Davi</dc:creator>
      <pubDate>Mon, 21 Jun 2021 18:29:24 +0000</pubDate>
      <link>https://forem.com/claudiodavi/what-does-a-machine-learning-engineer-actually-do-5f07</link>
      <guid>https://forem.com/claudiodavi/what-does-a-machine-learning-engineer-actually-do-5f07</guid>
      <description>&lt;p&gt;Recently Paige Bailey  - &lt;a href="https://twitter.com/DynamicWebPaige/"&gt;Twitter&lt;/a&gt;, &lt;a href="https://github.com/dynamicwebpaige"&gt;Github&lt;/a&gt; -  Tweeted an analysis she did on the state of Machine Learning cohorts. Using her &lt;a href="https://github.com/dynamicwebpaige/kaggle-survey-spelunking/blob/main/README.md"&gt;Article&lt;/a&gt; as a basis, I'd like to share my view on what I've doing for the past three years as a Machine Learning Engineer and where I believe I find myself in.&lt;/p&gt;

&lt;p&gt;There's a lot of contradiction of what a Machine Learning Engineer is today and most job openings just assume what it is based on the company's needs. Researches like Paige's help us understand and begin to draw lines of what we should be doing or even know what our job title should be. &lt;br&gt;
I constantly receive job offers asking if I'm interested in positions such as Data Engineer (ML) or Software Developer - Data, which to my understanding, does not fit my profile.&lt;/p&gt;

&lt;p&gt;With this in mind here's my take on what I, as a Machine Learning Engineer, am doing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Basic Exploratory Data Analysis (EDA)&lt;/strong&gt;: It is impossible to do any Machine Learning work without knowing your data first. I say BASIC here because I'm looking to find the underlying structure of the data, not doing a fancy report or discovery. What I usually do here is to find which features I'm going to use, which are irrelevant and which machine learning methods are the most appropriate for the problem at hand. What I &lt;strong&gt;DON'T&lt;/strong&gt; do: Fancy reports, customer dashboards and presentations. That would be a Data Scientist's or Data Analyst's job.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traditional Machine Learning&lt;/strong&gt;: As I stated before, it is quite hard to do ML without EDA, so after finding out the problem I'm dealing with, I'll generally mess around with some ML techniques. That could be Sklearn, XGBoost, or even Tensorflow/Pytorch. Again, I'm not looking for state of the art performance, nor big fancy models as you see on NeurIPS article's or OpenAI releases. I'm looking to solve a small very specific problem inside my domain. Nothing fancy. Considering this, it would put me in somewhere along the lines of the Data Scientist – Business, Traditional ML.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product Integration&lt;/strong&gt;: Here is where I think the Engineering part of ML Engineering comes in. I already have built a model that solves a very specific domain problem, now what can I do to make it available for everyone? Here I'll usually look for the best approach to put the model in production, create a data pipeline and if needed updating and training pipelines for future use. Generally this is done with Docker containers and some frameworks like MLFlow and a hosting platform like AWS or GCP. This will fill into the ML Ops practitioner bucket&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As the team evolves and more people come in, I can see the ML Engineer focusing more and more on 2 and 3. Sometimes you can receive a ML Model built on Sklearn with several preprocessing steps, which will yield a model with hundreds of MB if not GB and poor performance. Those can be optimized and I already have found myself doing these kind of optimizations.&lt;/p&gt;

&lt;p&gt;As a finishing thought, according to Paige's cohort studies I'd be a mix of MLOps practitioner and Data Scientist - Business, Traditional ML. These are the roles I'd fit in the most and probably the mix that - for me - would describe what a ML Engineer does.&lt;/p&gt;




&lt;p&gt;What do you think? Am I missing something? &lt;br&gt;
What is a Machine Learning engineer to you?&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>career</category>
      <category>datascience</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>You Have Built a Machine Learning Model, Now What??</title>
      <dc:creator>Claudio Davi</dc:creator>
      <pubDate>Fri, 26 Jun 2020 14:57:41 +0000</pubDate>
      <link>https://forem.com/claudiodavi/you-have-built-a-machine-learning-model-now-what-6n0</link>
      <guid>https://forem.com/claudiodavi/you-have-built-a-machine-learning-model-now-what-6n0</guid>
      <description>&lt;p&gt;This topic feels too close to home to many of us, it does for me at least.&lt;/p&gt;

&lt;p&gt;Almost every tutorial you will find on the Internet will help you build a very simple model to show you that Machine Learning works and how awesome it is. You followed it, finished, proud even. You used it on the few examples that they gave you. &lt;/p&gt;

&lt;p&gt;IT WORKS!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cool, but now what? Should I use my Jupyter Notebook to make predictions? &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That doesn't feel right, does it? It only does not, as it is not very useful, like, really, you are not going to use it like that.&lt;/p&gt;

&lt;p&gt;One of the first steps that you go through when building a machine learning model is how to preprocess your data. &lt;br&gt;
This process alone raises one of the most important questions that the tutorials are not telling you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How will I preprocess the incoming inputs (requests from clients)? &lt;br&gt;
If I create another sklearn's &lt;code&gt;StandardScaler()&lt;/code&gt;, won't be I just creating a scale based on nothing?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Spoiler: Yes you are.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How can I export to save this thing then?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now it depends on your stack. &lt;/p&gt;

&lt;p&gt;If you are following the most common pipeline which uses Pandas for manipulation, Scikit-learn for preprocessing and Keras or even one of sklearn's models, you can have a sklearn &lt;a href="https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html"&gt;Pipeline()&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That way you can divide your pipeline into small steps, one for each preprocessor and then use your model.&lt;/p&gt;

&lt;p&gt;This process tends to be the easiest one for beginners, and I highly recommend it. Although, you will probably see that your pipeline can become a huge &lt;code&gt;.pkl/.joblib&lt;/code&gt; file if you are using big datasets.&lt;/p&gt;

&lt;p&gt;My workflow for this type of machine learning environment is something along the lines of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;## Create Pipeline
clf = Pipeline(steps=[
        ('preprocessor', preprocess), 
        ('classifier', sklearn_wrapper.KerasClassifier(keras_model, args))
])

clf.fit(train, labels)

## Save model as a different file, so keras can save everything correctly

clf.named_steps['classifier'].model.save(f'./model/{MODEL_NAME}.h5')
clf.named_steps['classifier'].model = None

## Dump the pipeline (this file is the one that can be huge)
with open(f"./new_model/{MODEL_NAME}-pipeline.pkl", "wb") as model_file:
    pickle.dump(clf, model_file, protocol = 4)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To use it, just rebuild the pipeline with &lt;code&gt;pickle.load&lt;/code&gt; and the model with &lt;code&gt;keras.load_model()&lt;/code&gt;, set model back, and it should work fine.&lt;/p&gt;

&lt;p&gt;Another alternative, is to use Tensorflow for everything.&lt;br&gt;
You can still have your keras model, but now you will have to preprocess everything inside the tensorflow graph. And for newcomers, I would not go this way first.&lt;/p&gt;

&lt;p&gt;With tensorflow, you should be at least familiar with &lt;a href="https://www.tensorflow.org/api_docs/python/tf/feature_column"&gt;feature_columns&lt;/a&gt;, &lt;a href="https://www.tensorflow.org/guide/data"&gt;tf.data&lt;/a&gt; and &lt;a href="https://www.tensorflow.org/tfx/transform/get_started"&gt;tensorflow-transform&lt;/a&gt;. As I said, I would not go straight to this route. I rarely use it myself.&lt;/p&gt;

&lt;p&gt;Now you have your model saved that will preprocess your data for you on the fly.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Well, how do I use it now?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Glad you asked.&lt;br&gt;
You can use Google Cloud's Machine AI Platform Models or any other model hosting platform of your choice. However with preprocessing and everything you should build a &lt;a href="https://cloud.google.com/ai-platform/prediction/docs/custom-prediction-routines#scikit-learn"&gt;custom prediction routine&lt;/a&gt;. Be aware of the prices, request-rate and auto-scaling options.&lt;/p&gt;

&lt;p&gt;I personally use Docker + Flask + Gunicorn, deployed under a load balancer of your choice. Why? Simplicity. Docker and Flask make everything easy for me to edit and improve. Flask handles my requests, Docker my infrastructure, gunicorn the workers. There are several tutorials for those. I'll link one from a follow Dev.to writter &lt;a href="https://dev.to/marounmaroun/running-docker-container-with-gunicorn-and-flask-4ihg"&gt;Docker-Flaks-Gunicorn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Best Practices for this architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Save your model on the cloud - I use AWS S3 and sometimes Google's Cloud Storage - download it on your docker CMD command. so every instance will have it on startup.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build the model before your first endpoint. Alongside with your Flask(app) instance. This will save you tons of resources, because your are not building it every request. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stress test. Check your input/output rate, scale as you see fit.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is what works for me. Your situation may be different, I hope I have provided you with a good few options to solve your problem.&lt;/p&gt;

&lt;p&gt;I will finish this article with the elephant in the room. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What about TFX?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I may not be the best person to talk about it, as I have very little experience with it. However, the fact that most of you have never heard of it proves the point that I want to make. &lt;br&gt;
There's no one using or writing about it, in other words, there's no community. There's the documentation and the source-code, and that's all. &lt;br&gt;
I've had the privilege to talk with one of the TFX's core devs a couple of weeks ago. They are aware that the documentation is lacking and everything is very experimental at this point. &lt;br&gt;
However it has the potential to be my go to technology for machine learning pipelines. It solves most of the problems I have when building machine learning models for production. But not at this stage of development. &lt;/p&gt;

&lt;p&gt;I will definitely keep experimenting with it and hopefully change my mind in the near future.&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;




&lt;p&gt;What are your thoughts on ML Processes and pipelines?&lt;br&gt;
if you are using your machine learning models in production, what is your go to stack?&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>discuss</category>
      <category>architecture</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What do you do to stay productive?</title>
      <dc:creator>Claudio Davi</dc:creator>
      <pubDate>Tue, 19 Nov 2019 20:47:16 +0000</pubDate>
      <link>https://forem.com/claudiodavi/what-do-you-do-to-stay-productive-5ej0</link>
      <guid>https://forem.com/claudiodavi/what-do-you-do-to-stay-productive-5ej0</guid>
      <description>&lt;p&gt;I'm worried about my mental health, but I'm also worrying - and I feel like I'm not alone - that I am not doing enough. &lt;/p&gt;

&lt;p&gt;We were all sold the idea that we should be productivity machines, working all hours and building the future. However, we forget to take care of our mental health in this process. Hours that should be labeled 'me time' becomes 'learning time' and we find it very hard to make that distinction.&lt;/p&gt;

&lt;p&gt;I work 8 hours of my day and I want to make the most of it. So, what do you guys do to stay productive and always on top of your game, without sacrificing 'me time'?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>State of AI 2019: TL;DR;</title>
      <dc:creator>Claudio Davi</dc:creator>
      <pubDate>Thu, 11 Jul 2019 00:27:29 +0000</pubDate>
      <link>https://forem.com/claudiodavi/state-of-ai-2019-tl-dr-4f16</link>
      <guid>https://forem.com/claudiodavi/state-of-ai-2019-tl-dr-4f16</guid>
      <description>&lt;p&gt;Another year has passed since the very first state of AI report, so this year I decided to do (as it turns out not so) quick run down into a couple of topics that I find interesting on the report.&lt;br&gt;
The report is a compilation of 'points of interest' put together by a VC and an Angel investor both focused on AI technologies. The report can be found on &lt;a href="https://www.stateof.ai/"&gt;slideshare&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First things first, they considered the following key dimensions in their report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Research&lt;/strong&gt;: Technology breakthroughs and their capabilities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Talent&lt;/strong&gt;: Supply, demand and concentration of talent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Industry&lt;/strong&gt;: Large platforms, financing areas of application for AI-driven innovation today and tomorrow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;China&lt;/strong&gt;: With two distinct Internets, they considered AI in China a different category&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Politics&lt;/strong&gt;: Public opinion on AI, economic implications and emerging geopolitics of AI&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Research
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Conquered
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AlphaStar&lt;/strong&gt;: DeepMind beat a world class Startcraft II player by a whooping 5-0. This represents a huge breakthrough because the AI was running on imperfect information and controlling a huge action space in real time, on top of that, it had to make strategic decisions for long term goals, I personally was watching the match live on Youtube, as a former SC player, it was thrilling.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How&lt;/strong&gt;: The network was trained watching humans play (supervised learning) then it created agents and played against itself (Reinforcement Learning).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAi Five&lt;/strong&gt;: Dota2 bot win rate goes up to 99.4% win rate over 7,000 games with 15,000 live players.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How&lt;/strong&gt;: They upped their hardware, this new version now consumes about 800 petaflop/s-days.
### Next&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creating Creativity&lt;/strong&gt;: We use rewards in Reinforcement learning to make our algorithm learn, as in real life it's hard to encode rewards,  researchers are starting to also give rewards when the algorithm tries new approaches to the problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;From Lab to Prod&lt;/strong&gt;: With the recent release of Facebook's Horizon a Reinforcement Learning platform as an Open Source Software, RL systems optimizations starts to become more widespread. This platform can be used to optimize a set of actions based on the state of the agent at any given moment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AlphaFold is at it again&lt;/strong&gt;: Despite the huge breakthrough last year in protein folding, this year Alpha Fold has significantly outperformed itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Natural Language Processing&lt;/strong&gt;: This going almost without saying, after the scandal around OpenAI's GPT-2 Model going dark, several labs reported great improvements on this area. Pre-trained models is where it is at guys!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common Sense - Some Machines have it, most humans don't&lt;/strong&gt;: Researchers at NYU trained inferential knowledge to acquire common sense and reason about previously unseen events.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growing Interest on Federated Learning&lt;/strong&gt;: This is like, distributed systems, but for AI. Instead of having a monolithic centralized machine, training is distributed into mobile devices for computation. Google just released their architecture on Federated Learning and how they are using it on GBoard. On top of that, Tensorflow gains a new flavor: Tensorflow Federated. Keep one eye on this one, the health care industry is all over this one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy&lt;/strong&gt;: Companies like Google are starting to give emphasis on data privacy for ML models, Tensorflow Privacy now gives a strong mathematical guarantee that they do not remember your personal details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reading Thoughts&lt;/strong&gt;: Neural networks can decode your thoughts from brain waves. The technique is still invasive requiring an electrocorticography (for now) but who knows about what can we develop in the next few months???&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evolutionary AutoML&lt;/strong&gt;: Evolutionary algorithms are being used for neural network architecture and hyperparameter optimization. The previous technique consisted of RL algorithms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The age of Deep Fakes&lt;/strong&gt;: State of the art GANs are evolving fast, from images to audio, some companies are creating full body pictures with clothes for retail purposes. You guys remember the AI that sounded like Joe Rogan? So, that, and image, and video, and basically everything now.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Talent
&lt;/h2&gt;

&lt;p&gt;Top Players (By number of articles on NeurIPS):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Google&lt;/li&gt;
&lt;li&gt;MIT&lt;/li&gt;
&lt;li&gt;Stanford&lt;/li&gt;
&lt;li&gt;CMU&lt;/li&gt;
&lt;li&gt;Berkeley&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;88% of the researchers at NeurIPS, ICML or ICLR were men.&lt;/li&gt;
&lt;li&gt;80% of AI professors are men and 75% of students of AI are also men&lt;/li&gt;
&lt;li&gt;Data Labelling jobs are on the rise. ($1.47/h)&lt;/li&gt;
&lt;li&gt;China's studies are growing in average citation rate, despite Europe securing the most number of AI papers published.&lt;/li&gt;
&lt;li&gt;China again: AI courses enrollment is on the rise.&lt;/li&gt;
&lt;li&gt;US, China, UK, Germany and Canada account for 72% of the authors of papers in 2018-2019&lt;/li&gt;
&lt;li&gt;Hiring AI researchers is going down. Perhaps this is a sign to bring this applied research into production environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Industry
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;With big investments, comes ..&lt;/strong&gt;: Venture Capital in AI grows to reach &amp;gt; $27B/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Big Tech investments&lt;/strong&gt;: Big Tech continues to eat AI-first startups&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robots taking over&lt;/strong&gt;: Robotics are on the rise, several processes can be improved like, warehouse management, supply-chain for e-commerce and even robots for building robots.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self Driving Road Bump&lt;/strong&gt;: Self Driving Cars are not the hype at the moment, several players retreated and most companies are missing deadlines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demand forecasting&lt;/strong&gt;: As more data becomes available in digital form, it becomes increasingly more interesting to use machine learning to forecast demand. With better forecasts, business can prepare supply and reduce waste increasing their profitability. Usage Examples: Travel, Local Businesses, Logistics, Retail and others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reading Machines&lt;/strong&gt;: With the advances of Natural Language Processing, there's a growing interest in reading and writing machines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Drugs&lt;/strong&gt;: The FDA approved 3 AI based diagnostic products and pharma companies are investing in AI-driven drug development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Increasing the knowledge gap&lt;/strong&gt;: AI Patents are on the rise. The most patented field is Computer Vision&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Hardware&lt;/strong&gt;: AI hardware seems to be an interesting field to be in. Several global startups are investing into this technology&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handheld AI&lt;/strong&gt;: Samsung, Huawei and Xiomi top the list for performance in AI tasks for mobile devices.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Huawei Hold the Doors&lt;/strong&gt;: Huawei owns most of the essential patents for 5G tech, likely becoming the key player for building an ecosystem for network providers.&lt;/p&gt;
&lt;h2&gt;
  
  
  Politics
&lt;/h2&gt;

&lt;p&gt;This section is mostly about two surveys, so I'll summarize the results here:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Americans are not in favor of AI for Warfare unless they know someone is doing it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Americans don't know who should decide how AI is developed and deployed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Most people agree that companies should have an AI review board to address ethical decisions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The general public believe that high level AI is just around the corner - 9 years - (considerably sooner than the predictions made by experts)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The majority of Americans trust the US military or academic researchers to develop AI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Facebook was rated the least trustworthy AI developer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Governance Challenges: Preventing AI-assisted surveillance from violating privacy and civil liberties; Preventing AI from spreading fake or harmful content; Preventing cyber attacks; Protecting data privacy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Angela Merkel plans to invest 3 billion Euros in AI by 2025&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finland is training 1% of its population in the basis of ML, becoming the first European country to put a national AI strategy in place.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finland's goal is to become the a world leader in practical AI applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trump signed an executive order creating a program called the "American AI Initiative" with unclear goals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;With Google's exit from project Maven (ML enabled military imagery) a startup was founded and takes over the project and is pushing to employ drones into large-scale conflicts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;With recent developments in cameras, mass surveillance is growing in technical sophistication&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;California approved a bill last year that criminalize the use of bots to interact with a California person "with the intent to mislead".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As stated before, deep fakes are being discussed in the American House of Representatives.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Researchers find racial bias in Amazon's Rekognition&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Georgetown Centre for Security and Emerging Technology is the largest US centre focused on AI and policy.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  China
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Alibaba and JD.com have entered the animal and insect husbandry business.&lt;/li&gt;
&lt;li&gt;China R&amp;amp;D spending grows fast but lags in market share&lt;/li&gt;
&lt;li&gt;China is going through increases in industrial automation and job displacement.&lt;/li&gt;
&lt;li&gt;Robots are taking over warehouses in China&lt;/li&gt;
&lt;li&gt;China is publishing more high impact machine learning academic research&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Predictions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;There is a new wave of start-ups for NLP. They will raise over $100M&lt;/li&gt;
&lt;li&gt;Self-driving will stay in R&amp;amp;D.&lt;/li&gt;
&lt;li&gt;Privacy-preserving ML will be adopted by Fortune 2000 companies to beef up data security and privacy policy.&lt;/li&gt;
&lt;li&gt;Institutions will build AI undergraduate degrees to fill talent void.&lt;/li&gt;
&lt;li&gt;Google will have a major breakthrough in quantum computing hardware, triggering at least 5 startups to do quantum ML.&lt;/li&gt;
&lt;li&gt;Governance and AI will become a bigger topic and one major AI company will make a substantial change to their governance model.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;What are your thoughts on their report? What are you most excited about in AI for 2019-2020?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>machinelearning</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Show us your current Wallpaper!</title>
      <dc:creator>Claudio Davi</dc:creator>
      <pubDate>Thu, 04 Jul 2019 12:08:53 +0000</pubDate>
      <link>https://forem.com/claudiodavi/show-us-your-current-wallpaper-5g4e</link>
      <guid>https://forem.com/claudiodavi/show-us-your-current-wallpaper-5g4e</guid>
      <description></description>
      <category>discuss</category>
    </item>
    <item>
      <title>Reducing VSCode Memory Consumption</title>
      <dc:creator>Claudio Davi</dc:creator>
      <pubDate>Wed, 19 Jun 2019 19:54:57 +0000</pubDate>
      <link>https://forem.com/claudiodavi/reducing-vscode-memory-consumption-527k</link>
      <guid>https://forem.com/claudiodavi/reducing-vscode-memory-consumption-527k</guid>
      <description>&lt;h1&gt;
  
  
  How to reduce VSCode memory usage
&lt;/h1&gt;

&lt;p&gt;I've been using VSCode for quite a while now and one of the most annoying things that I have noticed is how much memory it uses, specially in comparison with Sublime Text.&lt;/p&gt;

&lt;p&gt;I will present you a few tips that I have found to at least make it usable for big projects.&lt;/p&gt;

&lt;p&gt;Disclaimer: I mostly use Python, therefore I'm sure that you will find a lot more options to optimize for Javascript or your preferred language.&lt;/p&gt;

&lt;p&gt;Most of the tips below must be placed into your user settings (JSON)&lt;/p&gt;

&lt;h3&gt;
  
  
  Telemetry
&lt;/h3&gt;

&lt;p&gt;First, did you know that VSCode sends data to Microsoft about it's usage?&lt;br&gt;
If you want to turn it off is quite simple, place&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;"telemetry.enableTelemetry": false&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
 into your configurations and you are all set.&lt;/p&gt;
&lt;h3&gt;
  
  
  Search Indexing
&lt;/h3&gt;

&lt;p&gt;Search is one of the most memory consuming activity VSCode does. It has to keep an index of all your files and their contents. You probably don't want to search inside your node_modules/ or env/ folder right?&lt;br&gt;
I have had this problem before and I don't know if they come disabled by default now, but it is on my config file so here it goes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"search.exclude"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/node_modules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/bower_components"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/venv"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  File Watcher
&lt;/h3&gt;

&lt;p&gt;The file watcher is used to detect changes in your working files and folders.&lt;br&gt;
If you are like me and every new package you have to &lt;code&gt;pip | npm install&lt;/code&gt; it on the fly you probably have a lot of changes in your secondary files and folders.&lt;br&gt;
So we are going to disable the watcher for those folders and whatever else we don't want to follow, like our git/objects folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"files.watcherExclude"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.git/objects/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.git/subtree-cache/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/node_modules/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/env/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/venv/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"env-*"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Organizing your Explorer
&lt;/h3&gt;

&lt;p&gt;Ok, now we have optimized for performance, now we want to optimize for productivity. One of the most important things to do is to reduce the clutter in your workspace.&lt;/p&gt;

&lt;p&gt;To do that we are going to remove files from the Explorer tab. Why? We don't really want to see files that we are not going to work with.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"files.exclude"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.git"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.DS_Store"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.vscode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/__pycache__"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.pytest_cache"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/node_modules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"venv"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"*.sublime-*"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"env*"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That will leave you with most of the clutter out of sight. Which is Great!&lt;/p&gt;

&lt;h3&gt;
  
  
  Extra Tips
&lt;/h3&gt;

&lt;p&gt;A few extra tips to help you:&lt;/p&gt;

&lt;h4&gt;
  
  
  Workspaces
&lt;/h4&gt;

&lt;p&gt;Workspaces are great, create several of them. I always have a few instances of VSCode open for the same project, if you are doing Full-Stack use one for back-end and another for front-end development. If you, like me, are building microservices you can use one workspace for each service. You are going to see how clean it all becomes.&lt;/p&gt;

&lt;h4&gt;
  
  
  Extensions
&lt;/h4&gt;

&lt;p&gt;Keep the minimum amount of extensions that you can possibly have, most of them are not optimized. Keep what you use daily and disable or uninstall the others. I go through my extensions once a month and do a Marie-Kondo-style cleanup.&lt;/p&gt;

&lt;h4&gt;
  
  
  Full Script
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"files.exclude"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.git"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.DS_Store"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.vscode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/__pycache__"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.pytest_cache"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/node_modules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"node_modules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"venv"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"*.sublime-*"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"env*"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
 &lt;/span&gt;&lt;span class="nl"&gt;"search.exclude"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/node_modules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/bower_components"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/venv"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"files.watcherExclude"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.git/objects/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/.git/subtree-cache/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/node_modules/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/env/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"**/venv/**"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"env-*"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Do you have any more tips that can improve VSCode performance? Share with us!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The Journey From Java to Python</title>
      <dc:creator>Claudio Davi</dc:creator>
      <pubDate>Tue, 11 Jun 2019 19:44:28 +0000</pubDate>
      <link>https://forem.com/claudiodavi/the-journey-from-java-to-python-5h1m</link>
      <guid>https://forem.com/claudiodavi/the-journey-from-java-to-python-5h1m</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;I'm definitely not one of these wizard kids that started programming at 13 and were a genius by the time they completed 20. I started programming at 18 years old and I started with Java. I was terrible at it, the first time I saw a &lt;code&gt;for loop&lt;/code&gt; I thought it was magic.&lt;br&gt;
I'm 25 now and have been programming since then, 3 years professionally and two of them coding in Java.&lt;/p&gt;

&lt;h3&gt;
  
  
  Background and Java
&lt;/h3&gt;

&lt;p&gt;I went to college get the title of BSC in Software Engineering, I thought all my colleagues were at the same level - level 0 - but boy was I wrong. Almost everyone there could program, I did not. That made me the underdog, and as such I had to learn and study harder than most people.&lt;br&gt;
From 2011 to 2016 I've been studying Java, it's patterns, code styles, best practices and idiosyncrasies. I'm sure I barely scratched the surface of the language, but after some time I started to feel productive. That's when I landed my first job as a Software Engineer Jr, back in January 2017.&lt;br&gt;
Fast forward to September of the same year. At that time I was into Machine Learning and had already developed a few ML algorithms in Java by hand, then I experimented developing a few of them in Python.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python with Love
&lt;/h3&gt;

&lt;p&gt;At this point I already knew how to code and collaborate. Picking up a new language was not going to be as hard as it was the first time, but Python was so friendly and the community so active that I barely had any problems.&lt;br&gt;
It took me another year to get a job as a full time Python developer, but today I'm way more productive in Python than I have ever been in Java. It feels fresh, clean and powerful.&lt;br&gt;
It used to take me a day to go from a Factory to a full REST endpoint with Java, now it takes me a couple hours to model a basic CRUD application with Python and Flask.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I miss the most about Java
&lt;/h3&gt;

&lt;p&gt;Python also has its weaknesses, after I transitioned what I miss the most is the static checked type system. That saved me a lot of trouble and ensured my code would work wherever I needed to use it. In python to remedy this, I use the type hints and doc strings. It is still not checked and still gives me run-time errors, but when your software is growing, it can save you a lot of time that you would spend reading and refactoring your old code.&lt;/p&gt;

&lt;h3&gt;
  
  
  How could you transition to another language?
&lt;/h3&gt;

&lt;p&gt;I started reading and experimenting, published a few articles on Medium in Portuguese (my native language), started tweeting about it and got some contacts. I suggest you follow the same path, study, write about it, tell people about your experiences and teach. &lt;br&gt;
I started programming fairly late considering my peers, If I did it, you can do it too.&lt;/p&gt;




&lt;p&gt;Did you change paths in your career? Tell me in the comments!&lt;/p&gt;

</description>
      <category>java</category>
      <category>python</category>
      <category>career</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
