Skip to content

Must-have VS Code Settings for Web Development

Last week I wrote about must-have VS Code extensions for web development. This time, I’m writing about the recommended settings to make sure these extensions and VS Code work correctly. 

VS Code is an
excellent tool for writing software, and when you install the right extensions, it can be very powerful. However, if these extensions and VS Code isn’t set up correctly, many of its features or extensions might not work the way you expect them to work.

Below is a list of settings that I use as my base when setting up VS Code for any type of web development. You can also get them from the gist located here:

https://gist.github.com/ricardodsanchez/179f693c8c843abc782e3e40112904aa

The way to get to the setting in VS Code is by typing Ctrl-Shift P and then type “settings”. A settings.json file will open and this is where you can remove all existing settings and paste the settings below.

{
  "telemetry.enableTelemetry": false,
  "telemetry.enableCrashReporter": false,
  "files.autoSave": "afterDelay",
  "files.associations": {
    "*.md": "markdown"
  },
  "window.zoomLevel": 0,
  "[html]": {
    "editor.defaultFormatter": "vscode.html-language-features"
  },
  "breadcrumbs.enabled": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "editor.acceptSuggestionOnEnter": "on",
  "editor.detectIndentation": false,
  "editor.fontFamily": "'Source Code Pro', Menlo, Consolas, Courier, monospace",
  "editor.fontSize": 13,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "editor.multiCursorModifier": "ctrlCmd",
  "editor.quickSuggestions": {
    "other": true,
    "comments": true,
    "strings": true,
  },
  "editor.renderWhitespace": "none",
  "editor.snippetSuggestions": "top",
  "editor.tabSize": 2,
  "editor.wordWrap": "on",
  "editor.wrappingIndent": "indent",
  "extensions.ignoreRecommendations": true,
  "extensions.showRecommendationsOnlyOnDemand": true,
  "files.exclude": {
    "**/._*": true
  },
  "files.insertFinalNewline": true,
  "html.format.endWithNewline": true,
  "html.format.extraLiners": "body",
  "html.format.indentInnerHtml": true,
  "html.format.unformatted": "b,em,i,span,strong,wbr",
  "html.format.wrapLineLength": 0,
  "liveServer.settings.donotShowInfoMsg": true,
  "liveServer.settings.port": 0,
  "workbench.colorCustomizations": {
    "editorIndentGuide.activeBackground": "#FFA500"
  },
  "workbench.editor.tabSizing": "shrink",
  "workbench.editor.enablePreview": false,
  "workbench.editor.enablePreviewFromQuickOpen": false,
  "gitlens.advanced.messages": {
    "suppressGitDisabledWarning": true
  }
}

That’s all for all folks, remember to subscribe and please let me know if you have any comments or questions below.

Must-have VS Code Extensions for Web Development

The VS Code editor is such a pleasure to work with; it is my code editor of choice when working with light C# projects or any other languages such as JavaScript or Ruby on Rails.

Below are my must-have extensions for anyone doing web development. There are many more magnificent extensions, but I feel like the following are not only useful but required to augment your web development experience with VS Code.

HTML Preview

An extension to preview HTML files while editing them in VSCode

The extension can be activated in two ways

  • Toggle Preview – ctrl+shift+v or cmd+shift+v
  • Open Preview to the Side – ctrl+k v or cmd+k v

Markdown Preview Enhanced

An extension to preview Markdown (MD) files while editing them in VSCode

The goal of this project is to bring you a wonderful markdown writing experience.

Keybindings: The cmd key for Windows is ctrl.

ShortcutsFunctionality
cmd-k vOpen preview to the Side
ctrl-shift-vOpen preview
ctrl-shift-sSync preview / Sync source
shift-enterRun Code Chunk
ctrl-shift-enterRun all Code Chunks
cmd-= or cmd-shift-=Preview zoom in
cmd– or cmd-shift-_Preview zoom out
cmd-0Preview reset zoom
escToggle sidebar TOC

Code Spell Checker

A basic spell checker that works well with camelCase code.

Functionality:

Load a TypeScript, JavaScript, Text, etc. file. Words not in the dictionary files will have a squiggly underline.

Example:

Example

GitLens – Git supercharged

GitLens increases the capabilities of Git built into Visual Studio Code. It helps you visualize code authorship at a glance through Git blame and code lens annotations, among other things.

Git Code Lens
Current line blame

ESLint

Integrate ESLint into VS code. ESLint statically analyzes your code to find problems quickly.

The setting below turns on Auto Fix for all providers including ESLint:

    "editor.codeActionsOnSave": {
        "source.fixAll": true
    }

In contrast, this configuration only turns it on for ESLint:

    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    }

You can also selectively disable ESLint via:

    "editor.codeActionsOnSave": {
        "source.fixAll": true,
        "source.fixAll.eslint": false
    }

Prettier – Code formatter

Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.

Default Formatter:

To ensure that this extension is used over other extensions you may have installed, be sure to set it as the default formatter in your VS Code settings. This setting can be set for all languages or by a specific language.

{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}

Intellisense for CSS class names

A Visual Studio Code extension that provides CSS class name completion for the HTML class attribute based on the definitions found in your workspace or external files referenced through the link element.


That’s all, folks! I invite you to try other extensions, but make sure not to clutter your VS Code experience by installing extensions you might not need or use.

Also, remember to adjust your VS Code settings to make sure you get the most productivity and the best experience when using VS Code and these extensions.

If you know of any other VS Code extensions for web development, please feel free to share them in the comments below. Cheers.

Here’s one way to cure procrastination

Photo of a group of icelandic horses

Writing is something I enjoy doing, , but to be very candid, it is hard for me to sit down and start writing. It’s the same feeling I have about working out, for example, love the feeling while exercising and then after when I’m done, but it isn’t easy to start an exercise routine; starting is what’s difficult for me. Does that happen to you? Well, it happens to me, and one word for it is procrastination.

Procrastination is something that happens to everyone, we know we need to do certain things, but we push them to the back-burner until that decision comes to burn us one day. Why do we do this? Why do we procrastinate?

As procrastination builds, it can start to affect us severely. For example, I’ve missed several flights, hotel reservations, tax returns, and a lot of money due to this by procrastinating. Since wasting money is not enjoyable, I had to change my ways so one day I sat down and decided to do something about it – hey, at least I didn’t procrastinate on that!

The Plan

The first step of my plan involved finding and installing popular to-do apps like Todoist, Microsoft To Do, Wunderlist, etc. and while some of these apps are well designed and helpful (I still use Microsoft To Do for simple items), I continued to procrastinate. Then I tried writing these tasks using pen and paper, it didn’t work either, but at least I now own a neat journal and beautiful and inexpensive pens from Muji which I use for other things. I’ll share more about that on another post.

After these two failures, and thinking about it retrospectively, a moment of clarification appeared and a new idea was born. That process alone helped me figure out an important truth, I wasn’t giving these tasks the priority that they deserved. You see, I had it all wrong, I was attempting to create a to-do list but what I really needed was a dislike-but-still-need-to-do-it list. What’s the difference you might ask? Keep on reading dear friend, you’ll soon find out.

With this information in mind, I decided to experiment. What if I treated my other tasks with a higher priority and added them to a dislike-but-still-need-to-do-it list? The initial idea was to create this list in a spreadsheet and include a column listing the specific consequences of not getting these things done. It’s very innovative, I know.

The dislike-but-still-need-to-do-it list included items like the following:

  • Apply for the Nexus program for my kids
  • Replace car’s headlamps with new ones I already bought
  • Other personal items I do not care to list because they are for me and not for you dear reader.

These are a few items that I have been dragging for months, and I know they are important, but can’t get myself to remember them enough to do them. These items were the first ones that I added to my dislike-but-still-need-to-do-it list along with the consequences, and it looked like this:

To-doConsequences
Apply for the Nexus program for my kidsBecause if I don’t, the next time we travel to Canada we could end up waiting in line at the border for a long time as we did last time.
Replace car’s headlamps with new ones I already boughtBecause if I don’t, the driving visibility at night will not improve and then I might have to deal with more serious consequences.

Great, now I have a list of things I don’t want to do with a fearful description of what could happen if I don’t do it. Perfect? Not quite.

A better plan

While this was a bit more motivating than just have a simple to-do list, it still wasn’t enough. To keep these items top of mind, I decided to list a few benefits gained if I did these things; I am not driven by fear, so listing the consequences wasn’t enough for me.

To-doConsequencesBenefit
Apply for the Nexus program for my kidsBecause if I don’t, the next time we travel to Canada we could end up waiting in line at the border for a long time as we did last time.Reducing time by using Nexus or Global Entry kiosks when entering the United States. Saves a lot of time.
Replace car’s headlamps with new ones I already boughtBecause if I don’t, the driving visibility at night will not improve and then I might have to deal with more serious consequences.Increased night visibility.
The car looks better.
Increase car’s re-sell value.

Ta-da! At first look I was excited, I really thought I had it, in fact, just writing the benefits and negative consequences motivated me to the point I wanted to take care of these things as I was adding them to this dislike-but-still-need-to-do-it list. But after looking at it for a few minutes, I noticed something wrong, something very wrong in fact that I almost ditched the whole idea right away.

In my attempt to prioritize and motivate myself to do these things, I spent a great deal of time writing a lot of words to convince myself that this was a good idea, but it wasn’t. Some of the items in this list could have taken me only 5 minutes to complete, and instead of getting them done, I spent a great deal of time thinking and writing about the consequences and the benefits of getting them done. Fail. Big fail. Huge fail. So what now?

I really liked the list and how it made me feel, but I couldn’t possibly maintain such a to-do list with so much detail describing consequences and benefits because that wasn’t going to scale. If you want to stop procrastinating, you have to lower or remove all barriers between you and what you want to get done.

What can be changed? I asked myself, what if I removed the consequences column, shortened the contents of the benefits column, and added a due date, after all, what’s a to-do list without a due date right? After those changes, the dislike-but-still-need-to-do-it list looked like this:

To-doBenefitDue date
Apply for the Nexus program for my kidsSaves a lot of time when entering the country.2/1/2020
Replace car’s headlamps with new ones I already boughtIncreased night visibility and car’s re-sell value.2/1/2020

Finally, a to-do list that is informative and manageable. It requires enough effort that keeps items top of mind by reminding me about the benefits of getting them done. Does it work? Only time will tell. So far I have been using this version of the list for almost a month, and since then many items have been completed, it seems to be working.

Conclusion

When going through the process of creating the dislike-but-still-need-to-do-it list list I learned something about myself I didn’t know. I’m driven and motivated by the potential benefits than by fear, knowing about a positive outcome moves me more than knowing the negative consequences of not doing something. I didn’t know this about myself. The process of writing the benefits along with my to-do items takes a little more time, but this extra time is well spent as it helps me understand better the reason I need to do it.

That’s it folks, hope that my experience with my dislike-but-still-need-to-do-it list helps some of you as it helped me to cure the procrastination and get more things done. Cheers.

My favorite writing apps

I recently spent some time trying to find the right writing app, I ran across many of them, and while a few were very good, it wasn’t until I ran across the Bear app that I decided to stop looking.

This app makes writing enjoyable to write, and how is that you ask? Well, it has a clean interface, a not-distraction mode, markdown syntax support, and many other features such as multiple options to share, export, etc.

I have tried other writing apps before, for example, before discovering Bear I was using iA Writer, another excellent writing app. While I still use iWriter when I’m on my iMac, I started using the Bear app because it has free versions for both macOS and iOS. iA Writer supports not only Apple operating systems, but also Windows and Android, and while they offer free trials, iA Writer doesn’t have free versions. I’d gladly pay for the software I use, that’s why I paid for iA Writer for my iMac.

Other Writing Apps and Tools

Another writing tool I use every day is Grammarly, their web interface is pretty good; it is fast and clean. I started using Grammarly out of necessity since English is my second language, a tool to help me fix grammar errors, and the like is something necessary. Grammarly also offers a keyboard for iOS and a browser plugin, but in my opinion, none of those work as well as the web version. Grammarly web is an excellent tool to check your writing, but as of now, it isn’t as good as the Bear app or iA Writer for writing.

WordPress is another place where a lot of my writing takes place, and until recently, their blog post editor was my primary writing editor. I use WordPress for blogging, and their editor has improved quite a bit. It’s a good text editor, it also supports markdown, which I appreciate, but it lacks some of the features the other two writing apps have. For example, the WordPress text editor is great for writing content for your blog, but it is not mean to be used for writing and then exporting your text.

What about MS Word and Google Docs? Well, I use those too, and while they are great for general note-taking or long-form writing, their interface feels dated, and unless you take time to remove some options, the editor will be very busy, it’s not a great writing experience. Other tools I use to take notes and to write ideas are OneNote, DayOne, both awesome apps but not for general writing.  

The ideal writing app

It’s not a surprise that the perfect writing app would be, at least for me, an app that combines the best of the apps I enjoy using for writing. The ideal writing app for me would be one that incorporates the following:

 • The clean design and the distraction-free environment of iA Writer

 • The export features, smart data recognition, rich keyboard shortcuts of the Bear app

 • The AI-powered writing assistance of Grammarly,

Now, if we can combine all of those things into one application, it would be a very valuable application to me and many other writers. B

What’s your ideal writing app? Are there any other apps you use and enjoy? 

How to host a static website on Amazon’s AWS with SSL using S3, Certificate Manager, CloudFront, and Route53

Photo of the ocean from a beach

So you have a static website and need to host it somewhere, there are many places to host your site but since you also want your site to have a security certificate, and you want all of this at a reasonable price, your options are limited.

Last year, I tried Azure Storage to host a static website, but at the time, the options to get and apply a security certificate to a site hosted on Azure storage was complicated, it was very confusing.

This time I decided to give AWS a try, and it turns out, hosting a static website using AWS’s S3 storage service works really well for static websites.

AWS also has a somewhat simple way to set up your new static website with a free security certificate. Below I will show you the steps to accomplish this.

These are the services you’ll need to configure to host your static website and an SSL certificate with Amazon’s AWS:

  • S3
  • CloudFront
  • Certificate Manager
  • Route53

The instructions below assume that you’ve already signed up for a AWS account.

S3 – Create and change the properties of your static website bucket

After you login to your AWS Console, search for S3 and create a new bucket for your static website. When creating the new bucket, you only need to give it a unique name, and then uncheck the Block all public access options under permissions. Don’t change any of the other default values or options.

Properties tab

After you’ve created a new bucket to hold your website files, click on the bucket name and then on the properties tab. From here, select the Static Website Hosting, it should look like the screenshot below.

In this window, you want to put the name of your main page (i.e. index.html), an optional error page, and any redirection rules, also optional.

Image of static website hosting properties in AWS S3

Before you move on to the next step, copy the Endpoint value from the Static website hosting window and save it, you’ll need it for the CloudFront Distribution section below. In the example above, the endpoint is the URL: http://solopractica.s3-website-us-west-2.amazonaws.com

Permissions tab

Make sure the Block all public access option is unchecked. Now go to the Bucket Policy option and click on Policy Generator.

Select the options as shown above, make sure the Amazon Resource Name (ARN) follows this format: arn:aws:s3:::YourBucketName/* and replace YourBucketName with the actual name of your newly created bucket.

Finally, click on Add Statement and then Generate Policy, a new window will open with your new bucket policy in JSON format. Copy the JSON document, and paste it into the Bucket Policy space back in the bucket properties page.

If you get the following error message after saving the new policy: Policy has invalid resource, make sure the bucket name value is correct, and save again.

You’ll see a warning informing you that your bucket has public access, that is fine, the bucket needs public access to host your static website.

CloudFront Distribution – Create and configure

A CloudFront distribution is required if you want to host a static site and distribute media files using HTTP or HTTPS.

To create a CloudFront distribution, go to the AWS console, and type CloudFront in the search box. When the CloudFront Service page opens, click on Create Distribution, and then select Get Started for the Web option.

CloudFront distribution properties

Do not be overwhelmed by the many options in this window, you only need to change a few of these properties. Below are basic instructions on how to fill out the Create Distribution form.

Origin Settings

  • Origin Domain Name: Select your bucket endpoint from this list.
  • Origin Path: Leave it blank.
  • Origin ID: It gets filled automatically when you select the origin domain name above.
  • Restrict Bucket Access: No.
  • Origin Custom Headers: Leave default/blank values.

Default Cache Behavior Settings

  • Path Pattern: Nothing to change here.
  • Viewer Protocol Policy: Redirect HTTP to HTTPS (but you can select any option, it is up to you).
  • Allowed HTTP Methods: GET, HEAD.
  • Field-level Encryption Config: Leave default/blank value.
  • Cached HTTP Methods: Leave default value.
  • Cache Based on Selected Request Headers: None.
  • Object Caching: Use Origin Cache Headers.
  • Minimum TTL: Leave default.
  • Maximum TTL: Leave default.
  • Default TTL: Leave default.
  • Forward Cookies: None.
  • Query String Forwarding and Caching: None.
  • Smooth Streaming: No.
  • Restrict Viewer Access: No.
  • Compress Objects Automatically: No.
  • Lambda Function Associations: Leave default/blank value.

Distribution Settings

  • Price Class: Use Only U.S., Canada and Europe (the cost of it will change based on what you select here. Click on the information icon next to this setting and make the right choice for you).
  • AWS WAF Web ACL: None.
  • Alternate Domain Names (CNAMEs): Type your domain name and any subdomains you have for the bucket hosting your static website. For example, for my site solopractica.com, I entered the following values here:
    solopractica.com
    http://www.solopractica.com
  • SSL Certificate: Custom SSL Certificate. This is where you’ll also be clicking on Request or Import a Certificate with ACM (see section below).
  • Supported HTTP Versions: HTTP/2, HTTP/1.1, HTTP/1.0
  • Logging: Off
  • Enable IPv6: Checked.
  • Distribution State: Enabled.

After you request a SSL certificate and complete all of the options, click on Create Distribution.

Certificate Manager – Request a Certificate

From the steps above, open up the window to request a new certificate by clicking on Request or Import a Certificate with ACM.

In this page, type your domain name and www version of it and then click Next. Example:

Select validation method

Choose the DNS validation option, it’s the fastest and easiest. If you don’t have access to your domain DNS settings, then you can try Email validation instead. Click Review, and then Confirm and request.

Validation

Once you go through the steps to validate your domain(s), you’ll see a window with your Request in progress and the instructions to add a CNAME record to the DNS configuration for your domain. Click Continue.

Certificates

This page will show the status of your certificate request, you can refresh the status of your request to get the status updated. The time to get your domain verified depends in part, on your domain registrar.

After your certificate has been approved, go back to your Distribution and click on it to edit it. From the edit page, make sure you have the Custom SSL Certificate option selected and then select your brand new SSL certificate from the list.

Route 53 – Create and configure

This is the last step, it will allow AWS to route your domain name and certificate to the appropriate resource.

Go to the AWS console and type Route 53 in the search box, click on the Route 53 link, and then on Hosted zones.

Hosted zones

Create a new hosted zone, enter your domain name, make sure the Public Hosted Zone is selected and click Create.

Record Sets

Two record sets are created by default when creating a new zone, a NS (Name Server), and SOA (Start of authority).

While selecting the newly created Hosted Zone, click on Create Record Set.

Use the following settings and values when creating the new record set:

  • Name: Leave the name box empty.
  • Type: A – IPv4 address.
  • Alias: Yes.
  • Alias Target: Select it from the list, you should see a value available if all of the steps above were completed successfully.
  • Routing Policy: Simple.
  • Evaluate Target Health: No.

After this, you can add another record set of type A for any additional domain names you might be using, for example, http://www.yourdomain.com.

That’s it, by now you should be able to open your browser and go to your domain, it should be available with the https protocol.

Cheers!

A simple change to my morning routine

Photo of ocean

There are many ideas and tips out there to help you become more productive and content about the work you do every day. I’ve read many books on the subject, many articles, blog posts, listened to podcasts, etc.

As you can imagine, many things in life can alter your productivity and the way you feel about yourself. With this post, I am not trying to list them all here or give you the ultimate advice about this. Instead, I want to share a simple change in my morning routine that so far, it’s working for me.

Wake up early and train your body to do it without an alarm.

This is an obvious thing to do if you want your day to last you longer. And it isn’t Just about waking up early, but In addition, to change the activities that we do after we wake up. I’ve heard about the idea of waking up at 4 in the morning, I applaud those who can do it, but that’s not me. My ideal wake up time is between 6 and 7 am.

Lately, I’ve been training myself to wake up around 6am but without the help of an alarm. I am doing this because waking up to the terrible and loud sound of a wake up alarm is not fun, and it causes me to feel anxiety just by listening to the terrible sound of my phone’s alarm.

This is what I’ve been doing, I set my alarm with a very soft sound that starts at a low volume level, and the sound increases consistently until it wakes me up. This alarm sound is very soft, even when louder, so it doesn’t make me jump out of bed as my previous alarm sound did.

In the past two weeks, my body has been adjusting to the softer sound, and slowly but surely, I’ve been waking up around 6 am, most days before the alarm goes off.

Drink water and then read for 15 to 30 minutes.

For many years, I’ve spent the first 20-30 minutes of every morning, reading social media posts and email with my phone. Another important bad habit I recently eliminated was to drink two cups of coffee or more, before drinking any water. It was bad.

Today I wake up without looking at my phone, then proceed to have at least one cup of water, and then I open my kindle and read for several minutes. After that, I shower, and then I have my first cup of coffee, a delicious, hot cup of java. In this new morning routine, my phone no longer plays an essential part of my morning, it is empowering.

Reading and drinking water before I look at my phone or computer makes me feel not only happier, but also more present and with more energy to start the day. It makes sense, the water hydrates me, and the reading stimulates my mind. Subsequently, avoiding looking at email and social media eliminates any negative feelings or anxiety.

This is not the first time I try to improve my morning routine, a few years ago I tried journaling every morning, it was the first thing I’ll do but the problem was, I used my computer to do it so opening a social media website was very easy and so I did it often.

Because of that I found journaling challenging, and so it wasn’t enjoyable. The easy access to social media sites in my computer while journaling caused me to fall into my bad habits again, undermining my efforts to avoid looking at my phone first thing every morning.

This time is different, I feel it, reading every morning is delightful to me and like I said above, having that cup of water after in the morning and before any coffee gives me the energy and concentration my body requires to do some reading every morning. It also puts me in a good state of mind to start my day.

Reading a book gives me clarity of mind and a blank palette to start my day. This is important because when I was waking up and reading social media posts, or email, it affected my state of mind, it made me feel stressed, or sad, or anxious about things that didn’t have any relation to my day.

A simple change to my morning routine with these small changes has resulted in a significant positive return. Since my morning routine change took place, my professional work output has increased, I fell less rushed every morning, and just feel more content with myself and the world around me.

Cheers.

Cómo consumir libros mientras caminas, manejas o lavas los platos. Una pista: audiolibros.

Books wrapped by headphones

La cuestión es que, por mucho que se disfrute leyendo libros de papel y también libros en el Kindle, es casi imposible y muy irresponsable hacerlo mientras caminas, lavas los platos o conduces tu automóvil, realmente no es seguro ni conveniente. Ahora, he sabido sobre audiolibros por un tiempo, pero por alguna razón, no había probado estos hasta hace poco. Sin embargo, escuchar podcasts mientras conduzco, camino, o lavo los platos, es algo que he estado haciendo durante mucho tiempo. Escuchar audio mientras realizas otras actividades físicas o muy repetitivas no solo es posible, sino que también es agradable, y sí, realmente lavo los platos a mano en casa para poder escuchar podcasts y audiolibros.

Los audiolibros cruzaron mi vida durante un viaje por carretera a Florida el año pasado, cuando experimenté escuchar un audiolibro de principio a fin mientras conducía durante varias horas desde Texas a Florida.

El audiolibro fue “Becoming” por Michelle Obama, mi esposa me había pedido que lo comprara, así que terminamos escuchándolo durante este viaje por carretera. El libro fue largo pero muy entretenido y emocionante, en general fue genial. Aprendimos mucho sobre Michelle Obama, y ​​también sobre su esposo, el presidente Obama. Pero lo que más me sorprendió fue que el formato de audio era realmente fácil de seguir, realmente lo disfrutamos. Y esto es todo lo que necesite para engancharme con los audiolibros.

Lo siguiente que hice después de eso fue comprar otro libro, Sapiens. De animales a dioses: Una breve historia de la humanidad por Yuval Noah Harari, este es un libro que quería leer desde hace ya un tiempo y desde que supe que iba a conducir desde Austin, TX a Seattle, WA, pensé que sería una excelente manera de pasar las horas manejando, escuchando este libro. Lo fue, y ahora es uno de mis libros favoritos que he escuchado o leído en este año, hasta la fecha.

Lo que pasa con los audiolibros es que, aunque no están tan pulidos como los podcasts, son una muy buena manera de consumir libros, especialmente si no puedes encontrar el tiempo para sentarte y leer. Ahora, para mí, los audiolibros no son un reemplazo de los libros en papel o Kindle, pero definitivamente son una opción cuando quieres consumir un libro mientras haces una actividad donde la lectura no es una opción.

Al final, lo que recomiendo es que consumas más libros, en forma de audio, o leyéndolos, no importa, simplemente hazlo. Elimina todas las barreras que te impiden aprender y descubrir cosas nuevas comúnmente ocultas en libros y/o audiolibros.

Recientemente escribí sobre cómo la lectura te ayuda a encontrar el éxito, la publicación está en español, pero puedes traducirla fácilmente o esperar hasta que publique una versión en inglés. Ve a leer y a escuchar más.

Anuncio: Pruebe Audible y obtenga dos audiolibros gratis

1 2 17