teleren/devto huggingface dataset:
Creating your first web app with Node.js

Tags: node, jfrog, meanstack, webapp
Published: 2019-12-02 03:41:26

Hello everyone! I hope you are all doing great. 🙂

Today we will create a very simple web application using Node.

Let's get started! 🙂

_"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."_ – Martin Golding

This is one of my favorite quotes. And actually it is not a bad idea to write a clean code. If you are looking back at your code after some months or years, at least you should be able to understand what you wrote.

So, lets first create a very simple file structure which will help in managing it easily. We will be putting most of the code of our Node application into the `server.js` file.


![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/oqz0zzofe2vf04lzaevj.png)

However, for larger applications, server.js should be broken down further to separate duties.

**Installing Modules**

The _package.json_ holds configuration of our application. Node’s package manager (npm) will use this to install and dependencies or modules that we are going to use.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/7x6fny4ty87ceanxwv42.png)

Now open your terminal, go to your project and run **npm install**, npm will look at this file package.json and install all dependencies.

**Node Configuration**

Our main file server.js will configure the app for Express, and listening on a port.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/sb35iker11h1hy15hysq.png)

**Start Your Application**

Now that we have `package.json` and `server.js` started up, we can start up our server and see whats going on. Just go to your project folder in your terminal and type command node server.js. Now you have a server listening on a port 3000. Going to http://localhost:3000, you should be seeing something like this:

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/v9mmv2pv4iigvl9v2dar.png)

You can also add a html which has code of our main view

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/782l3i6i15vvl25192n1.png)

and use the path in the server.js.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/q55hr5oczufyiiqjs094.png)

Note: The path you mention here must be absolute.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/iswlyt1qix42rew91s5b.png)

I hope this post helps 🙂
🎄 Christmas Tunes! 🎄
Tags: watercooler
Published: 2019-12-02 04:57:04

I know that not everyone celebrates Christmas, but for those that do or for those that just love Christmas songs, drop some in the comments. +1 for video and Spotify embeds.

Mina Markham's hilarious Tweet is what caused the inspiration.

{%twitter 1201240742577852418 %}


I'll get started with a few old school ones.

{%twitter 1201360346205831170 %}

Mandatory cheesy Wham Christmas tune

{%youtube E8gmARGvPlI %}

Who knows? Maybe you'll end up creating a playlist for the Advent of Code 😉

{%tag adventofcode %}

![Dog reindeer from The Grinch Who Stole Christmas](https://media.giphy.com/media/IaqBxsJSZNcBi/giphy.gif)
Which do you prefer vscode or Atom?
Tags: discuss, healthydebate, vscode, atom
Published: 2019-12-02 04:48:33

I have always had the need to find new tools for development purposes. They can be text editors, a library to manage tasks, a script to build an upcoming project, etc. The tools simplify the work environment and improve productivity at the same time. Among all text editors, Atom and Visual Studio Code are favorites among designers and developers. but is it interesting to know which one is preferred?
Advent of Code - Day 1
Tags: java
Published: 2019-12-02 04:30:14

---
title: Advent of Code - Day 1
published: true
description: We solve the day 1 challenges for the Advent of Code.
tags: java
cover_image: https://thepracticaldev.s3.amazonaws.com/i/c3owrem3q6t211etc188.jpg
---

{% youtube UYBN70hVAOU %}

We solve the day 1 challenges for the Advent of Code.
Dagger, the easy way Part 1: Why Should You Care?
Tags: dagger, android, dependencyinjection, intro
Published: 2019-12-02 04:15:30

---
title: Dagger, the easy way Part 1: Why Should You Care?
published: true
description: How Dagger helps in Android projects.
tags: dagger,android,dependency injection, intro
series: daggerandroidteaching
---

Dagger (in a simplified way) is for exactly one thing.
If you have a class that takes a constructor parameter, it provides that parameter.

Now you may wonder why we'd a library for that. It's because you'd want to handle:
1. The object you need in the parameter, also needs objects in its construct that also need objects and so on.
Which means you'd sit building up this object everytime you needed it.
If you change what parameters it has, you now have some awful refactoring to do.
2. Maybe you want to RealDb() as a parameter one place and FakeDb() as a parameter in your Android Tests.
3. You may want to reuse some of these objects and don't want to carefully manage when each one gets sent where.


If you want to get the full benefits that are involved with this, you could use an interface for the db.

As you go deeper into how it's used, you'll really appreciate something that creates your constructor parameters for you.
Another term for these constructor parameters, since the class that takes them, depends on them, is dependencies.

Dagger therefore provides your "dependencies" and when dependencies are just put into whatever class needs them, we call it "dependency injection".
A mouthful of a phrase which just means "gives you objects where you want them".

In the next article, we'll be looking into Setting up Dagger-Android and why it's easier than you think, and tremendously useful.

Comment if you have any questions! I'll re-write, clarify and simplify based on your feedback.
Heroku Ruveal
Tags: ruby, rails
Published: 2019-12-02 03:59:54

<h1><center>Rails + React + Redux - Pt 10 </center></h1>
*********************************************************

I'm nearly ready to make the DRAGnet backend accessible while I continue work on the frontend. I decided to run with Heroku, largely because I found their documentation to be so good. The setup was really simple so I've tested it and pulled it back down while I put together some documentation. 

*********************************************************
<h1><center> Let's get started! </center></h1>
*********************************************************

I had already installed the Heroku CLI onto my machine for a previous project- it was easy breezy. 

``` heroku login ```

Because I had previously stuck with the 'sqlite3' gem when creating the Rails project, I needed to switch to 'pg' in the gemfile.  

``` bundle install ``` 

With the database gem change I needed to update the config/database.yml file.

{%gist https://gist.github.com/JaredHarbison/577371ea97cdcbeeb34eb224298efd9c %}

The Heroku [documentation](https://devcenter.heroku.com/articles/getting-started-with-rails6#create-a-welcome-page) recommends setting up a welcome page, which I already had by a different name. The next step in their documentation is to store the project in git, which I had already already done. 

I ran `heroku create` from the root directory then verified the remote was added with `git config --list | grep heroku`.

I deployed the code with `git push heroku master` and migrated the database with `heroku run rake:db migrate`.

I ran a dyno with `heroku ps:scale web=1`, checked the state of the dyno with `heroku ps`, then paid a little visit `heroku open`!

*********************************************************
<h1><center> That's all folks! </center></h1>
Q&A Comment créer un compte Waves dans une app sans Waves Keeper
Tags: wavesplatform, blockchain, ride, smartcontract
Published: 2019-12-02 03:26:16

La chaîne youtube "Waves Dev France" proposera régulièrement de répondre aux questions les plus fréquemment posées via des vidéos explicative. Voici la première, n'hésitez pas à poser vos questions.

"CREER UN COMPTE WAVES SANS KEEPER"
https://www.youtube.com/watch?v=1MZ5rc-V5qg

L'idée est de pouvoir créer un compte sans utiliser Waves Keeper, stocker la seed encryptée afin de pouvoir y accéder plus tard pour signer une transaction.
Ici, l'étape 1, créer et encrypter un compte.

Un compte Waves c'est simplement :
Une Seed don't découle la Keypair (clé publique et clé privée) et de la clé publique découle l'adresse.

Librairie : https://github.com/wavesplatform/ts-lib-crypto

Premier Wébinaire le 17 décembre à 17h

Enregistrez vous!!
https://www.meetup.com/Paris-Waves-Blockchain-Meetup-Group/events/266557857/

A bientôt!!!

Suivez nous sur:

Telegram : https://t.me/wavesdappsFR
Twitter : https://twitter.com/WavesDevFr
Facebook : https://www.facebook.com/wavesfr
Dev.to : https://dev.to/gegesures
[Vim問題] Vimでファイル間の差分を表示する方法は？
Published: 2019-12-02 02:51:07

この記事では、Vimでプラグインを使わずに「ファイル間の差分を表示する」ためのコマンドについて、ご紹介します。 [解答] diff 機能を活用する 外部コマンドを使用する必要はありません。標準機能で十分実現することができ

つづきは[こちら](https://vim.blue/vim-diff-files/)。
[https://vim.blue/vim-diff-files/](https://vim.blue/vim-diff-files/)
[Vim問題] ソースコードの&#8221;&#8221;ブロックや{}ブロックの中身を空っぽにして変更する方法は？
Published: 2019-12-02 02:50:51

この記事では、Vim/neovimに関するキー操作「オペレータ＋モーション」について、詳しくご紹介します。 今回はプラグインなしのVim/neovimで、プログラムのソースコードで頻繁に利用する「&#8221;&#038;#822

つづきは[こちら](https://vim.blue/change-block-part/)。
[https://vim.blue/change-block-part/](https://vim.blue/change-block-part/)
[Vim問題] HTMLタグの値を簡単に変更する方法はなに？
Published: 2019-12-02 02:50:36

この記事では、Vim/neovimに関するキー操作「オペレータ＋モーション」について、詳しくご紹介します。 今回はプラグインなしのVim/neovimで「HTMLタグの値を簡単に変更する」キー操作です。 [解答] cit

つづきは[こちら](https://vim.blue/change-html-tag-value/)。
[https://vim.blue/change-html-tag-value/](https://vim.blue/change-html-tag-value/)
[Vim問題] ノーマルモードで cw と ciw を実行する違いはなに？
Published: 2019-12-02 02:50:19

この記事では、Vim/neovimに関するキー操作「オペレータ＋モーション」について、詳しくご紹介します。 Vimmerが思考の速度で編集できるようになる仕組みの1つです。ぜひ習得しましょう。 [解答] 変更する範囲が異

つづきは[こちら](https://vim.blue/vim-motion-operator-cw-ciw/)。
[https://vim.blue/vim-motion-operator-cw-ciw/](https://vim.blue/vim-motion-operator-cw-ciw/)
[Vim問題] ノーマルモードで c3f&#8221; を実行するとどうなる？
Published: 2019-12-02 02:50:01

この記事では、Vim/neovimに関するキー操作「オペレータ＋モーション」について、詳しくご紹介します。 Vimmerが思考の速度で編集できるようになる仕組みの1つです。ぜひ習得しましょう。 [解答] カーソル位置から

つづきは[こちら](https://vim.blue/vim-motion-operator-c3f/)。
[https://vim.blue/vim-motion-operator-c3f/](https://vim.blue/vim-motion-operator-c3f/)
[Vim問題] ノーマルモードで 2d3w を実行するとどうなる？
Published: 2019-12-02 02:49:45

この記事では、Vim/neovimに関するキー操作「オペレータ＋モーション」について、詳しくご紹介します。 Vimmerが思考の速度で編集できるようになる仕組みの1つです。ぜひ習得しましょう。 [解答] 同じ行の６単語を

つづきは[こちら](https://vim.blue/vim-motion-operator-2d3w/)。
[https://vim.blue/vim-motion-operator-2d3w/](https://vim.blue/vim-motion-operator-2d3w/)
Vim初心者にはどのチュートリアルが最高なの？
Published: 2019-12-02 02:49:27

Vim / neovim 初心者には必要不可欠なチュートリアルですが、Vim系エディタには標準搭載されています。 そこでこの記事では、Vim系エディタのチュートリアルをすべてご紹介します。 Vim (Vimtutor) 

つづきは[こちら](https://vim.blue/vim-editor-tutorial/)。
[https://vim.blue/vim-editor-tutorial/](https://vim.blue/vim-editor-tutorial/)
neovim とは何か？
Published: 2019-12-02 02:49:11

vim をベースとしたエディタ、いわゆる Vim系エディタ / Vimクローン / Vimフォークには様々な種類があります。 その中でも2015年以降にもっとも存在感を高めているのが&nbsp;neovim&nbsp;で

つづきは[こちら](https://vim.blue/what-is-neovim/)。
[https://vim.blue/what-is-neovim/](https://vim.blue/what-is-neovim/)
[Vim問題] cw と dw の違いは？
Published: 2019-12-02 02:48:55

この記事では、Vim / neovim で混同しやすいキーバインドの１つ「cw と dw」について、詳しく掘り下げてご紹介します。 [解答] 単語削除後のモード、スペースの扱い 次のような明確な差があります。 コマンド実

つづきは[こちら](https://vim.blue/vim-cw-dw-difference/)。
[https://vim.blue/vim-cw-dw-difference/](https://vim.blue/vim-cw-dw-difference/)
[Vim問題] ファイル内の英数字を全て小文字に変更する方法は？
Published: 2019-12-02 02:48:39

この記事では、Vimでプラグインを使わずに「ファイル内の英数字を全て小文字に変更する」ための方法について、ご紹介します。 [解答] ggVG u または gg gu G パターンA. ビジュアルモードを駆使する （ノーマ

つづきは[こちら](https://vim.blue/vim-all-char-lowercase/)。
[https://vim.blue/vim-all-char-lowercase/](https://vim.blue/vim-all-char-lowercase/)
[Vim問題] ファイル内の英数字を全て大文字に変更する方法は？
Published: 2019-12-02 02:48:23

この記事では、Vimでプラグインを使わずに「ファイル内の英数字を全て大文字に変更する」ための方法について、ご紹介します。 [解答] ggVG U または gg gU G パターンA. ビジュアルモードを駆使する （ノーマ

つづきは[こちら](https://vim.blue/vim-all-char-uppercase/)。
[https://vim.blue/vim-all-char-uppercase/](https://vim.blue/vim-all-char-uppercase/)
StringBuffer 밖에 모르는 사람들
Tags: java, korean
Published: 2019-12-02 02:27:24

자바에서 문자열을 많이 다루는데,
자바 기초부터 고급까지 반복적이거나 대량의 텍스트를 순차적이던 뭐던 복합적으로 다룰 때는  주저없이 `StringBuffer`를 쓴다.

자바 기초 강좌에서는 문자열을 다루는 세 가지 클래스를 제공한다.
`String`, `StringBuilder`, `StringBuffer` 이 세 가지다.
그리고 `StringBuilder`, `StringBuffer` 차이는 뭐냐, 스레드 안전한 지 여부, 즉, 동기화 지원 여부 말고는 없다.
그리고 이걸 배운 뒤 우리는 `StringBuilder`는 잊혀진 채 `StringBuffer`를 쓰고 있다.

게다가 한 술 더떠, `StringBuilder`보다 `StringBuffer` 가 성능상 이득이라고 한다.
물론 다행히도 몇몇 기술 블로그에서 정확하게 얘기해 주고 있기는 하지만...

하지만 계속 우리는 `StringBuffer`를 쓰고 있다.
심지어 단일 스레드에 동기화가 불필요한 단순 시나리오임이 대부분인데도 불구하고.
(물론 사양 좋아서 큰 차이는 없지만... 좀 알아 달라고.)

하지만 우리도 모르게 `StringBuilder`를 쓰고 있는 건 알랑가몰라.
왜냐면 `String` 의 `+` 연산은 자바 내부적으로 `StringBuilder` 를 쓰는 거거든.

```java
String a = "this" + "is" + "a" + "apple";
// it compiled as
String b = new StringBuilder("this").append("is").append("a").append("apple").toString();
```

하긴... 이걸 느끼려면 백만건 부를 정도로 강도높은 싱글 스레드 반복문을 써야 하니.
Using YAML to manage Python configurations
Tags: python, configuration, tips, devops
Published: 2019-12-02 01:30:48

---
title: Using YAML to manage Python configurations
published: true
description: How to use a YAML file to manage application's configurations
tags: python, configuration, tips, devops
---
On my last [weekend project](https://github.com/boris/usd_clp) I needed to talk to an API using an `AUTH_KEY` which should be private but should be included in the request instead of using any auth method.

The request I needed to run was:
```
requests.get('https://<URL>/<SOMETHING>/<SOMETHING_ELSE>.json/?auth_key=YOUR_AUTH_KEY')
```

![](https://media.giphy.com/media/l378lrNMtCj4tfyRa/giphy.gif)

So I decided to use [pyyaml](https://pypi.org/project/PyYAML/), and it's very easy to use! Here's a short example of the python file

```python
import json
import yaml

file = open('config.yml', 'r')
cfg = yaml.load(file, Loader=yaml.FullLoader)

url = 'https://<URL>/<SOMETHING>/<SOMETHING_ELSE>.json/?auth_key=' + cfg['auth']['key']
request = requests.get(url)

# then, everything else
```

Then, the `config.yml` is something like this:
```yml
auth:
  key: MY_AUTH_KEY
```
And not I can have my `config.yml` stored only in my laptop or, even better, in some secret place like a vault or something but not publicly accessible to anybody in GitHub.

Enjoy.
How To Create Custom Effect Hook - Custom Hooks ReactJS Mini Course Part 2
Tags: react
Published: 2019-12-02 01:29:05

---
title: How To Create Custom Effect Hook - Custom Hooks ReactJS Mini Course Part 2
published: true
description: Welcome to ReactJS Custom Hooks Mini Course. In this course we'll learn how to create custom hooks in React, how to test them using React Testing Library and how to publish them as a standalone npm package.
tags: react
series: Custom Hooks ReactJS Mini Course
---

{% youtube vn5gc0hmy5o %}

Welcome to ReactJS Custom Hooks Mini Course. In this course we'll learn how to create custom hooks in React, how to test them using React Testing Library and how to publish them as a standalone npm package.

Course playlist: http://bit.ly/35FHALa
Subscribe to the channel: http://bit.ly/2QZ2UY3
Debugging specific mouse clicks in JavaScript
Tags: debugging, javascript
Published: 2019-12-02 03:58:58

---
title: Debugging specific mouse clicks in JavaScript
published: true
date: 02/12/2019
tags: #debugging #javascript
canonical_url: https://darraghoriordan.com/2019/11/30/debugging-popups-in-chrome/
---

I recently needed to trigger the chrome debugger on a mouse click from an element that gets popped up based on a previous mouse click. 

The problem was that the code is old jQuery code that manually set handlers and it was all a bit spaghetti. I didn’t know where the click was registered to a handler or which parts of the code ran afterwards so adding a `debugger;` call wasn’t a great approach this time.

tl;dr: disable all breakpoints and just use the `ctrl-F8` keyboard shortcut to enable all breakpoints right before you perform the mouse action.

## Breakpoint Method

It can be hard to setup a mouse interaction break point to trigger just before you need it. The act of simply moving the mouse across elements can trigger stuff or you might need to click on something to open a popup and then you want to debug a subsequent click on an element in the popup.

Say I wanted to get the debugger to stop on a specific mouse click.

First enable the specific event breakpoint.

[![Event Listener Breakpoints](https://darraghoriordan.com/static/9eabb26d28f7527d5ae0ea46e801ad2b/d890f/debugger-console.jpg "Event Listener Breakpoints")](/static/9eabb26d28f7527d5ae0ea46e801ad2b/d890f/debugger-console.jpg)

Next disable ALL breakpoints using `ctrl-F8`

Navigate to get to the part of the page or interaction just before the one you want to break on.

Just before triggering the event with a click, hit `ctrl-F8` again to enable the breakpoints and now do your click event!
Monthly review: November
Tags: rust, sponsorships
Published: 2020-01-06 20:27:01

---
title: Monthly review: November
published: true
date: 2019-12-02 00:00:00 UTC
tags: rust, sponsorships
canonical_url: 
---

## New Sponsors

Thanks to [@oli-obk](https://github.com/oli-obk) and [@yaahc](https://github.com/yaahc), for their continuous support!

There haven’t been any new sponsors this month. If you want to support my work,please [consider sponsoring](https://phansch.net/thanks) :heart:

## What I’ve worked on

This past November I’ve been on vacation for two weeks, both of which requiredsome sort of preparation the days before. Therefore my main goal for Novemberwas getting just two PRs merged:

1. [Fixing a false positive in `derive_hash_xor_eq`](https://github.com/rust-lang/rust-clippy/pull/4766)
2. [Adding a custom ICE message](https://github.com/rust-lang/rust-clippy/pull/4588)

The first one is just a simple bug fix. The second one means that Clippy willpoint to the Clippy issues if there’s a crash happening in Clippy. Thishopefully prevents Clippy issue reports in the rust repo in the future.

## Reflections & Goals for December

**This December** I want to try and put more structure into my learning. Whileit’s fun and rewarding to fix Clippy bugs, I’m slowly coming to the realizationthat it’s not necessarily a good way to learn more about Rust or rustc.

To put down some precise goals:

- I want to finish [my fork](https://github.com/phansch/the-super-tiny-compiler-in-rust) of [the-super-tiny-compiler](https://github.com/jamiebuilds/the-super-tiny-compiler)written in Rust to help my understanding of compilers.
- I want to try and review some of the open Clippy PRs  
(there’s been a lot of activity :tada:).
- I want to create more flashcards with the things I’m learning. I’ve beenhovering at 50+ cards, but I want to double that this month.

See you here for the December review!
How to Remove Duplicates in $PATH zsh
Tags: bash, zsh, linux, unix
Published: 2020-03-03 16:34:22

---
title: How to Remove Duplicates in $PATH zsh
published: true
date: 2019-12-02 00:00:00 UTC
tags: bash, zsh, linux, unix
canonical_url: https://tech.serhatteker.com/post/2019-12/remove-duplicates-in-path-zsh/
---

It is so easy to do that in `zsh`:

```bash
typeset -U path
```

That's all.

As you can imagine `-U` stands for 'unique'. From [doc](https://github.com/antonio/zsh-config/blob/master/help/typeset):

```
       -U     For  arrays  (but not for associative arrays), keep only the
              first occurrence of each duplicated value.  This may also be
              set for colon-separated special parameters like PATH or FIG‐
              NORE, etc.  This flag has a different meaning when used with
```

Btw. just care it is not `-u`. This flag just converts the content to uppercase.

All OK!

## Appendix
You may wonder why is `path` instead of `PATH`? In `zsh` they are different but related things. The `$path` array variable is tied to the `$PATH` scalar string variable. The `$path` helps to find external programs, i.e.  anything not part of the shell, any command other than a builtin, function or alias. Any modification on `$path` or `$PATH` is reflected in the other.

If you check them, you will see:

```bash
$ echo $path
/usr/local/bin /usr/bin /bin /sbin

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/sbin
```

For more details you can go to : [A User's Guide to the Z-Shell -
Path](http://zsh.sourceforge.net/Guide/zshguide02.html#l24)
Start thinking inside the box
Tags: creativity, improvement
Published: 2019-12-02 23:15:19

---
title: Start thinking inside the box
published: true
date: 2019-12-02 00:00:00 UTC
tags: creativity, improvement
canonical_url: http://gsferreira.com/archive/2019/12/start-thinking-inside-the-box/
---

![Don't you freeze when you are asked to be creative and think outside the box?](http://gsferreira.com/images/start-thinking-inside-the-box.png)

Don't you freeze when you are asked to be creative and think outside the box?

If so, you probably have been in the following places. Rumbling through ideas without consequences. Don't know where to start. Being repetitive. Procrastinating. Those are just a few consequences when we are facing a clean slate.

These leads us to frustration, disappointment and lack of confidence in our creative skills.

Probably you even think: _"How the hell could Steve Jobs be so creative? That guy was a genius! He could think outside the box for sure."_ Well... I don't think so. Let's see why.


In 2007, Steve presented to the world the first iPhone. A device that began the revolution of our daily companion: The Smartphone.  Today we can't live without it, but in 2001, we weren't so dependent for sure.

iPhone wasn't the first pocket computer that we carried. But, the iPhone was the first one to be really usable. A genius move of Steve Jobs was to understand the limitations of the current devices and drive the innovation to create delightful touch experience. Yes, kids, we used to need a keyboard or even a pen to work with our "smartphones".

[![Phone Stylus](https://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/HTC_Touch2_used_with_a_stylus.jpg/1280px-HTC_Touch2_used_with_a_stylus.jpg)](https://pt.wikipedia.org/wiki/Stylus)


The constraints were there, since the first day. iPhone was built on the shoulders of giants but the difference was to put together in the same device a plot of technologies, a good touch screen and a whole new experience. 

As you can see, the **constraints applied to the User Experience guided Steve to question what can be done to bring a better experience to life**. For sure, the fact of Steve being so obsessed with perfection was a constraint that forced the Apple team to find a new path, **testing wild ideas**.

**If Apple had to start without constraints, they would need to forget the past, the Phone history.**

Everything that has been accomplished in the **past is for sure one of the most important guides in everything that we do.**

Embrace the constraints and let them guide your creativity, because sometimes **freedom, can be paralyzing.**

Always remember, that when you were a little kid, you could bring to life an house, a car or even a plane with just two simple ingredients: A cardboard box and your imagination.