<?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: André Ferreira</title>
    <description>The latest articles on Forem by André Ferreira (@asf89).</description>
    <link>https://forem.com/asf89</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%2F240328%2Fb65750e3-8ce4-4efe-8dd4-831fcd4aac00.jpeg</url>
      <title>Forem: André Ferreira</title>
      <link>https://forem.com/asf89</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/asf89"/>
    <language>en</language>
    <item>
      <title>Unit testing in Erlang using Rebar3 and EUnit</title>
      <dc:creator>André Ferreira</dc:creator>
      <pubDate>Thu, 22 Dec 2022 22:27:09 +0000</pubDate>
      <link>https://forem.com/asf89/unit-testing-in-erlang-using-rebar3-and-eunit-44jp</link>
      <guid>https://forem.com/asf89/unit-testing-in-erlang-using-rebar3-and-eunit-44jp</guid>
      <description>&lt;p&gt;Hello! In this article, let’s set up a simple project in Erlang with unit testing, following the basic steps of Test-Driven Development (TDD), using the Erlang build tool Rebar3 and the unit testing framework EUnit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Motivation
&lt;/h2&gt;

&lt;p&gt;I want to give beginners and professionals a primary starting point for developing in Erlang with testing. With more helpful content made about fundamentals of software engineering applied in a functional programming language, it can make the interest in this language rise and at least experiment with developing projects with the language.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;You must have &lt;a href="https://dev.toIndex%20-%20Erlang/OTP"&gt;Erlang&lt;/a&gt; and &lt;a href="https://dev.toGetting%20Started%20|%20Rebar3"&gt;Rebar3&lt;/a&gt; installed on your computer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a project
&lt;/h2&gt;

&lt;p&gt;Let’s go! In the terminal, in a chosen directory, let’s create a simple project with Rebar3:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rebar3 new app simple_app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create a directory called &lt;code&gt;simple_app&lt;/code&gt;, that will contain the following content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/
  simple_app.erl
  simple_app_sup.erl
  simple_app.app.src
rebar.config
.gitignore
LICENSE
README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Creating the test
&lt;/h2&gt;

&lt;p&gt;Let’s start creating a simple unit test. First, we create a folder called &lt;code&gt;test&lt;/code&gt; inside the &lt;code&gt;simple_app&lt;/code&gt; directory. The directory should have the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/
  simple_app.erl
  simple_app_sup.erl
  simple_app.app.src
test/
rebar.config
.gitignore
LICENSE
README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once created, we enter the folder and create a file called &lt;code&gt;simple_app_test.erl&lt;/code&gt;. In this file, we write the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-module(simple_app_test).
-include_lib("eunit/include/eunit.hrl").

add_test() -&amp;gt;
    ?assertEqual(5, simple_math:add(2, 3)).


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

&lt;/div&gt;



&lt;p&gt;The project should now have the structure below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/
  simple_app.erl
  simple_app_sup.erl
  simple_app.app.src
test/
  simple_app_test.erl
rebar.config
.gitignore
LICENSE
README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, execute the test:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rebar3 eunit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The following output should appear:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Failures:

  1) simple_app_test:add_test/0: module 'simple_app_test'
     Failure/Error: {error,undef,
                        [{simple_math,add,[2,3],[]},
                         {simple_app_test,'-add_test/0-fun-0-',0,
                             [{file,
                                  &amp;lt;test-file-location&amp;gt;},
                              {line,5}]},
                         {simple_app_test,add_test,0,[]}]}
     Output:

Finished in 0.007 seconds
1 tests, 1 failures
===&amp;gt; Error running tests

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

&lt;/div&gt;



&lt;p&gt;As predicted, it failed. Now we go create the function &lt;code&gt;add&lt;/code&gt; to make the test work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making the test work
&lt;/h2&gt;

&lt;p&gt;Let’s be organized and create the &lt;code&gt;lib&lt;/code&gt; folder in the &lt;code&gt;simple_app&lt;/code&gt; directory, where we will put the file with the &lt;code&gt;add&lt;/code&gt; function. The &lt;code&gt;simple_app&lt;/code&gt; directory should have the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lib/
src/
  simple_app.erl
  simple_app_sup.erl
  simple_app.app.src
test/
  simple_app_test.erl
rebar.config
.gitignore
LICENSE
README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside the &lt;code&gt;lib&lt;/code&gt; folder, we will create the file &lt;code&gt;simple_math.erl&lt;/code&gt;, where we will write the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-module(simple_math).
-export([add/2]).

-spec(add(integer(), integer()) -&amp;gt; integer()).

add(Val1, Val2) -&amp;gt; Val1 + Val2.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, we need to get the &lt;code&gt;lib&lt;/code&gt; folder to be recognized by Rebar3 in order to make the test work. In the &lt;code&gt;rebar.config&lt;/code&gt;, write the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{erl_opts, [debug_info, {src_dirs, [“src”, “lib”]}]}.
{deps, []}.

{shell, [
  % {config, "config/sys.config"},
    {apps, [simple_app]}
]}.

{eunit_tests, [{module, simple_app_test}]}.


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

&lt;/div&gt;



&lt;p&gt;Finally, we execute the test again. The following output should appear:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Finished in 0.005 seconds
1 tests, 0 failures
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That means the test has succeeded.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Thanks for reading! If you want to know more about unit testing with Erlang, check the section in the online book ‘&lt;a href="https://dev.toEUnited%20Nations%20Council%20|%20Learn%20You%20Some%20Erlang%20for%20Great%20Good!"&gt;Learn you some Erlang for great good!&lt;/a&gt;’ dedicated to EUnit!  &lt;/p&gt;

</description>
      <category>firstpost</category>
      <category>java</category>
    </item>
    <item>
      <title>Basic unit testing in Haskell using HUnit and Cabal</title>
      <dc:creator>André Ferreira</dc:creator>
      <pubDate>Sat, 10 Dec 2022 22:30:29 +0000</pubDate>
      <link>https://forem.com/asf89/basic-unit-testing-in-haskell-using-hunit-and-cabal-16p0</link>
      <guid>https://forem.com/asf89/basic-unit-testing-in-haskell-using-hunit-and-cabal-16p0</guid>
      <description>&lt;p&gt;Testing is an essential step in software development and if done early, it can avoid hours of stress in debugging the code. When I came to know Test-Driven Development (TDD), I became an adopter of this way of development and looked to apply it to my code. Another piece of knowledge that I became a fan of was the functional paradigm of programming, which has a more mathematical approach to code thinking.&lt;/p&gt;

&lt;p&gt;Therefore, I invite you, reader, to a hike with me so I can show you how to apply TDD with functional programming by making a simple unit test using Haskell, with the HUnit library and  Cabal (Common Architecture for Building Applications and Libraries).&lt;/p&gt;

&lt;h2&gt;
  
  
  Motivation
&lt;/h2&gt;

&lt;p&gt;I wanted to apply TDD with Haskell. Although there were numerous sources where I could look, these sources addressed specific points in different styles of making unit tests with Haskell. With this post, I want to establish a basic starting point for those that wish to implement TDD in Haskell without much configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;For this hike, we need to prepare ourselves. It is necessary to have GHC and Cabal installed on your computer. You can find the installer in the Haskell.org &lt;a href="//Downloads%20(haskell.org)"&gt;download section&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;All ready! Let’s go!&lt;/p&gt;

&lt;h2&gt;
  
  
  The  Cabal village
&lt;/h2&gt;

&lt;p&gt;Let’s start our hike by creating a simple folder, named &lt;code&gt;basic-sum&lt;/code&gt; and get inside it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir basic-sum &amp;amp;&amp;amp; cd basic-sum
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;let’s use Cabal to create all the files for our test purposes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cabal init 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the initial setting will be like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app/
  +- Main.hs
basic-sum.cabal
CHANGELOG.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;our file of interest will be the &lt;code&gt;basic-sum.cabal&lt;/code&gt;, which is where we will configure the test suite for our application. Its initial look will be this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cabal-version:      2.4
name:               basic-sum
version:            0.1.0.0

-- A short (one-line) description of the package.
-- synopsis:

-- A longer description of the package.
-- description:

-- A URL where users can report bugs.
-- bug-reports:

-- The license under which the package is released.
-- license:

-- The package author(s).
-- author:

-- An email address to which users can send suggestions, bug reports, and patches.
-- maintainer:

-- A copyright notice.
-- copyright:
-- category:
extra-source-files: CHANGELOG.md

executable basic-sum
    main-is:          Main.hs

    -- Modules included in this executable, other than Main.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:    base ^&amp;gt;=4.14.3.0
    hs-source-dirs:   app
    default-language: Haskell2010


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

&lt;/div&gt;



&lt;p&gt;So far, so good!&lt;/p&gt;

&lt;h2&gt;
  
  
  Time to camp
&lt;/h2&gt;

&lt;p&gt;Let’s start our camp by mounting our test suite. First, create a directory called &lt;code&gt;lib&lt;/code&gt;, which will be our library that will contain the functions that we want to test. Inside it, create a file named &lt;code&gt;BasicSum.hs&lt;/code&gt;. The layout will be like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app/
  +- Main.hs
lib/
  +- BasicSum.hs
basic-sum.cabal
CHANGELOG.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, we need to inform cabal of the existence of this library. In the &lt;code&gt;basic-sum.cabal&lt;/code&gt; put the following section:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cabal-version:      2.4
name:               basic-sum
version:            0.1.0.0

-- A short (one-line) description of the package.
-- synopsis:

-- A longer description of the package.
-- description:

-- A URL where users can report bugs.
-- bug-reports:

-- The license under which the package is released.
-- license:

-- The package author(s).
-- author:

-- An email address to which users can send suggestions, bug reports, and patches.
-- maintainer:

-- A copyright notice.
-- copyright:
-- category:
extra-source-files: CHANGELOG.md

library basic-sum-lib
    exposed-modules: BasicSum
    hs-source-dirs: lib
    build-depends: base ^&amp;gt;=4.14
    default-language: Haskell2010

executable basic-sum
    main-is:          Main.hs

    -- Modules included in this executable, other than Main.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:    base ^&amp;gt;=4.14.3.0
    hs-source-dirs:   app
    default-language: Haskell2010

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

&lt;/div&gt;



&lt;p&gt;Now to create our test suite. Create a directory called &lt;code&gt;tests&lt;/code&gt; and inside it create a file named &lt;code&gt;BasicSumTest.hs&lt;/code&gt;. The layout should be like the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app/
  +- Main.hs
lib/
  +- BasicSum.hs
tests/
  +- BasicSumTest.hs
basic-sum.cabal
CHANGELOG.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we add the following section to our &lt;code&gt;basic-sum.cabal&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cabal-version:      2.4
name:               basic-sum
version:            0.1.0.0

-- A short (one-line) description of the package.
-- synopsis:

-- A longer description of the package.
-- description:

-- A URL where users can report bugs.
-- bug-reports:

-- The license under which the package is released.
-- license:

-- The package author(s).
-- author:

-- An email address to which users can send suggestions, bug reports, and patches.
-- maintainer:

-- A copyright notice.
-- copyright:
-- category:
extra-source-files: CHANGELOG.md

library basic-sum-lib
    exposed-modules: BasicSum
    hs-source-dirs: lib
    build-depends: base ^&amp;gt;=4.14
    default-language: Haskell2010

executable basic-sum
    main-is:          Main.hs

    -- Modules included in this executable, other than Main.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:    base ^&amp;gt;=4.14.3.0
    hs-source-dirs:   app
    default-language: Haskell2010

test-suite tests
    type: exitcode-stdio-1.0
    main-is: BasicSumTest.hs
    build-depends: base ^&amp;gt;=4.14, HUnit ^&amp;gt;=1.6, basic-sum-lib
    hs-source-dirs: tests
    default-language: Haskell2010

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Following the trail of TDD
&lt;/h2&gt;

&lt;p&gt;Let’s make a test. In the file &lt;code&gt;BasicSumTest.hs&lt;/code&gt;, we will import the function library &lt;code&gt;BasicSum&lt;/code&gt; (in the &lt;code&gt;lib&lt;/code&gt; folder), which has the function &lt;code&gt;basicSum&lt;/code&gt; that takes two integers and return the sum, the &lt;code&gt;HUnit&lt;/code&gt; library, and the &lt;code&gt;System.Exit&lt;/code&gt;, which outputs the success or failure of the test:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module Main where
import BasicSum
import Test.HUnit
import qualified System.Exit as Exit

test1 :: Test
test1 = TestCase (assertEqual "should return 3" 3 (basicSum 1 2))

tests :: Test
tests = TestList [TestLabel "test1" test1]

main :: IO ()
main = do
    result &amp;lt;- runTestTT tests
    if failures result &amp;gt; 0 then Exit.exitFailure else Exit.exitSuccess


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

&lt;/div&gt;



&lt;p&gt;In the &lt;code&gt;BasicSum.hs&lt;/code&gt;, just put the following line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module BasicSum where
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the &lt;code&gt;BasicSum&lt;/code&gt; library be recognized by Cabal. Now let’s run the test executing the following command in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cabal test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result should be this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Build profile: -w ghc-8.10.7 -O1
In order, the following will be built (use -v for more details):
 - basic-sum-0.1.0.0 (lib:basic-sum-lib) (first run)
 - basic-sum-0.1.0.0 (test:tests) (first run)
Preprocessing library 'basic-sum-lib' for basic-sum-0.1.0.0..
Building library 'basic-sum-lib' for basic-sum-0.1.0.0..
[1 of 1] Compiling BasicSum         ( personal_info)
Configuring test suite 'tests' for basic-sum-0.1.0.0..
Preprocessing test suite 'tests' for basic-sum-0.1.0.0..
Building test suite 'tests' for basic-sum-0.1.0.0..
[1 of 1] Compiling Main             (personal_info)

tests/BasicSumTest.hs:7:52: error:
    Variable not in scope: basicSum :: t0 -&amp;gt; t1 -&amp;gt; a0
  |
7 | test1 = TestCase (assertEqual "should return 3" 3 (basicSum 1 2))
  |                                                    ^^^^^^^^

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

&lt;/div&gt;



&lt;p&gt;It is expected that an error occurs, don’t worry. Following the trail of TDD, you first create a test that fails, then you start to develop the code to make the test pass. Now we create the function &lt;code&gt;basicSum&lt;/code&gt;  in the &lt;code&gt;BasicSum&lt;/code&gt; library:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module BasicSum where

basicSum :: Int -&amp;gt; Int -&amp;gt; Int
basicSum x y = x + y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we execute &lt;code&gt;cabal test&lt;/code&gt; again and the result should be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Build profile: -w ghc-8.10.7 -O1
In order, the following will be built (use -v for more details):
 - basic-sum-0.1.0.0 (lib:basic-sum-lib) (file lib/BasicSum.hs changed)
 - basic-sum-0.1.0.0 (test:tests) (dependency rebuilt)
Preprocessing library 'basic-sum-lib' for basic-sum-0.1.0.0..
Building library 'basic-sum-lib' for basic-sum-0.1.0.0..
[1 of 1] Compiling BasicSum         (personal_info)
Preprocessing test suite 'tests' for basic-sum-0.1.0.0..
Building test suite 'tests' for basic-sum-0.1.0.0..
[1 of 1] Compiling Main             (personal_info)
Linking &amp;lt;path_to_the_test_info_in_cabal&amp;gt;
Running 1 test suites...
Test suite tests: RUNNING...
Test suite tests: PASS
Test suite logged to:
&amp;lt;path_to_the_test_log&amp;gt;
1 of 1 test suites (1 of 1 test cases) passed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The End of the Hike
&lt;/h2&gt;

&lt;p&gt;That’s it! Thanks for the company! Feedback is appreciated, I am constantly improving so I can help more and more people. Until next time! &lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>The future of data storaging is on...DNA!?</title>
      <dc:creator>André Ferreira</dc:creator>
      <pubDate>Sat, 01 Feb 2020 19:05:40 +0000</pubDate>
      <link>https://forem.com/asf89/the-future-of-data-storaging-is-on-dna-52fi</link>
      <guid>https://forem.com/asf89/the-future-of-data-storaging-is-on-dna-52fi</guid>
      <description>&lt;p&gt;Recently I read an &lt;a href="https://onezero.medium.com/whos-going-to-use-dna-to-store-their-data-7ad06645050d"&gt;article&lt;/a&gt; from OneZero, a Medium page about news of the world of technology, that interviewed Emily Leproust, CEO of Twist Bioscience, about the use of DNA to storage data. It was very exciting to see the very beginning of a potential change about the hardware we utilize to read and write files.&lt;/p&gt;

&lt;p&gt;This could also mean a change on the matter of data security. The interview covered this topic briefly, but the imagination it inspires runs wild (I wonder if someone already wrote a sci-fi book about the use of such technology).&lt;/p&gt;

&lt;p&gt;More and more we can see that Biotechnology applied to Computation will cause significant changes (to say the least, I dare) to our world. What changes, though, my crystal ball won't tell me.&lt;/p&gt;

&lt;p&gt;What are your thoughts on the article? It would be awesome to hear your opinion!&lt;/p&gt;

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

</description>
      <category>biotechnology</category>
      <category>discuss</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Technology and the environmental challenges in this decade</title>
      <dc:creator>André Ferreira</dc:creator>
      <pubDate>Sat, 25 Jan 2020 20:59:59 +0000</pubDate>
      <link>https://forem.com/asf89/technology-and-the-environmental-challenges-in-this-decade-5dg6</link>
      <guid>https://forem.com/asf89/technology-and-the-environmental-challenges-in-this-decade-5dg6</guid>
      <description>&lt;p&gt;Recently came to an end the World Economic Forum 2020, in Davos, Switzerland. Its theme was about the climatic change around the globe, with several leaders and activists speaking about the need to take energic action to avoid a catastrophic future. As a human and a scientist, I think it should be interesting to share some of my visions about the information given in Davos and our role as producers of technology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is important to note that this is my personal point of view&lt;/strong&gt;. It is my belief that the plurality of perceptions is vital to better understand the reality and form the basis for creative and innovative thinking.&lt;/p&gt;

&lt;p&gt;We have only one home at the moment: this planet. The actions that causes environmental changes reverberate through all the globe, slowly but surely. Our economic models don't create a sustainable development and the result is starvation, unemployment, enormous unequality and other sad consequences. Some of the leaders in Davos have sopken about some initiatives to recover environments in their countries, but it is, unfortunately, too little for the power of the challenge we must surpass.&lt;/p&gt;

&lt;p&gt;We have knowledge and technology to address the problems of our time. We no longer are separated by geographical barriers and because of Internet we can discuss, plan and develop more solutions than past centuries. Seeing some of the speeches of Davos, I started to realize: &lt;em&gt;It's time to be decisive, active and start to liberate the potential of our technology to create a sustainable society, to better care for our world&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;We can go to Mars, create colonies on the Moon, but I think we should first put our humanity ahead of our technology. We still pollute our streets, our rivers, extinguish animals and plants without much thinking about the future consequences. &lt;strong&gt;This reflects in the technology we create today. This reflects in the mindset we adopt today&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We can do better. We as developers have the tools to create a sustainable future. I would like and example of projects you are working that are linked with the issues of environment in your countries.&lt;/p&gt;

&lt;p&gt;This can be a unusual post, but I think it is worth discuss topics about the direction we want our technology to go. I invite you, reader, to post your thoughts about this topic. Thanks for reading.   &lt;/p&gt;

</description>
      <category>technology</category>
      <category>environment</category>
      <category>engineering</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
