[2020] The Best Creality Ender 3 (and Pro) Upgrades and Mods

Ender 3 upgrades and modsEnder 3 upgrades and mods
Improve your overall printing experience—and quality.
Zach Zach (217)
0
Updated: February 28th, 2020
Calling all writers!

Are you a writer who loves 3D printing? Send us a message

The Ender 3 is an amazing 3D printer. For the money, it’s hard to find one that will give you better prints right out of the box. However, it’s far from perfect.

In this guide, I’ll show you the top must-have upgrades and mods for the Ender 3 and Ender 3 Pro—both 3D-printable and purchased upgrades/mods.

A note on this guide:

In researching this guide, I found a lot of others with massive lists containing every upgrade and mod under the sun—unfortunately, many of those upgrades are pointless wastes of time and money. So, in this guide, I’ll cut through the BS and cover the most impactful items that will give you better prints while also improving your overall printing experience.

Here’s everything you’ll need to complete this guide:

Creality Ender 3 3D printerCreality Ender 3 3D printer×1
3D-printable Ender 3 mods3D-printable Ender 3 mods
Also visible in this photo are my Raspberry Pi enclosure and camera for use with OctoPrint.

Below are the top 3D-printable Ender 3 mods and upgrades you can perform. Tons of other printable mods exist, but this is the core list that will give you the best bang for your print time.

Board fan guard

Before you print anything else, print this mod. The location of the mainboard fan is directly beneath the build plate, meaning bits of filament can fall in and damage the fan or board. The model is available on Thingiverse.

Filament guide

This filament guide holds the filament away from the feeder, allowing for a more consistent feed rate and less skipping. It snaps directly into the side of the upper support.

Cable chain

This cable chain is a must-have for preventing dangerous cable snags when the bed moves along the Y-axis.

Display PCB cover

This simple screen cover protects your Ender 3 display’s PCB (printed circuit board) from damage.

Bowden tube fitting fix

If your Bowden tube has popped out of place or if you’re having print quality issues, you might want to print these pressure fitting shims that will prevent your Bowden tubes from shifting or popping out during printing.

Beeper silencer

You’ve probably noticed how loud the Ender 3 beeps when navigating the menu interface. This beep can level villages and knock satellites out of orbit. This 10-minute print mutes the beep quite a bit, getting rid of that annoyance and protecting our countrysides and space assets.

Ender 3 board upgradeEnder 3 board upgrade

There are two main sources of noise on your printer: 1) fans, and 2) the drivers (chips) that run your stepper motors. The “whirring” noise you associate with printing is caused by the cheap stepper motor drivers used on the stock Ender 3 board.

Enter the Creality Silent Mainboard (v1.1.5). This board directly replaces your existing Ender 3 mainboard, upgrading your printer to the silent TMC2208 stepper motor drivers. This is the biggest “sound” upgrade you can make. It reduces your printer’s noise from approximately 48dB to 36dB, with the remaining sound coming from the Ender 3’s fans (which can also be upgraded to quieter fans).

If I had to choose a single upgrade from this guide (other than OctoPrint), it would be this one. Combined with the MeanWell PSU upgrade also mentioned in this guide, I often forget my printer is running since it now generates so little noise.

Of course, in addition to decreasing noise, this board and its upgraded stepper motor drivers improve the quality of your prints.

OctoPrint Ender 3 setupOctoPrint Ender 3 setup

OctoPrint is the #1 upgrade for making the overall 3D-printing experience easier and more enjoyable. While this upgrade doesn’t relate directly to print quality, it will save you a ton of time and headaches. With OctoPrint, you won’t need to load and start prints from an SD card ever again.

In a nutshell, OctoPrint is a library that runs on the small Raspberry Pi computer. When you want to print something, you’ll log into a slick interface from your computer. This interface will allow you to control your printer, start and stop prints, and more. You can even monitor your printer remotely using a small camera!

I wrote a full guide on installing and using OctoPrint on the Ender 3, as well as a video:

Ender 3 touchscreenEnder 3 touchscreen

If you’re already using OctoPrint, why not add a nice touchscreen to your Ender 3? Check out my full guide on this, as well as my video:

For this project, I used the Adafruit 3.5″ PiTFT Plus—but other touchscreens will work as well.

Stock vs. MeanWell Ender 3 PSUStock vs. MeanWell Ender 3 PSU

There are several reasons to upgrade your Ender 3 to a MeanWell PSU including noise, safety, and even reducing bed-leveling issues.

Noise

Compared to the stock PSU whose fan runs continuously, the MeanWell PSU only runs when it needs to—usually less than 20% of the time. This means a much quieter printer, especially when paired with the silent board upgrade. This reason alone made the upgrade worth it to me. I work in the same room as my printer, so noise is a huge issue.

Safety

MeanWell PSUs use higher quality components than the cheap stock unit, providing cleaner power with fewer of the electrical spikes and sags that could pose a safety hazard.

Reduce auto-bed-leveling issues

If you’re using an auto-leveling sensor such as the BLTouch or EZABL, the MeanWell PSU’s consistent, clean power reduces issues related to power ripples and grounding.

Form factor

The MeanWell PSU is noticeably thinner than the stock unit, which is handy if you’re using an enclosure and need to relocate it.

Which one to buy (and where)

The MeanWell LRS-3500-25 PSU is the correct 24V MeanWell power supply for the Ender 3, and this upgrade takes about 20 minutes to perform, excluding PSU housing print time.

Ender 3 glass bedEnder 3 glass bed

There are tons of different build plate surfaces out there: metal, magnetic, BuildTak, painter’s tape, and tons more. But after printing for many years on several different printers, I’ve always had the best experience with glass.

Glass beds are supremely flat, fixing the all-too-common “warped Ender 3 bed” issue that many of us experience. Glass beds also save on prep time, are easy to clean, and offer effortless print removal with a semi-glossy print finish.

Choosing a bed

I wrote a comprehensive guide to 3D printing on a glass bed if you’d like to dive into the details. tl;dr; Choose a thin borosilicate glass bed, and adhere it directly to the existing build plate using small binder clips. This 235x235mm glass bed is the one I recommend for the Ender 3.

BLTouch Ender 3 sensorBLTouch Ender 3 sensor

Bed leveling is key to the perfect first layer and overall print quality. Unfortunately, it’s also one of the most annoying “chores” in 3D printing. Just when things are going well, you realize you forgot to relevel your bed and things look terrible.

“I love leveling my 3D printer’s bed” -Nobody, ever

But what if a simple sensor, installed in just 45 minutes, could automatically level your bed for you every time? That’s what BLTouch does.

How BLTouch works

BLTouch uses a small probe to build a mesh of points at the beginning of each print to determine exactly how unlevel (or warped) your bed is, and in which directions. It then takes that into account when performing a print, altering each GCODE instruction as needed to account for the imperfect build surface.

The process

Here’s a breakdown of what goes into this upgrade:

  • Hardware: The probe mounts next to your print head assembly and connects to the existing Ender 3 mainboard.
  • Software: A slight firmware modification is needed to allow BLTouch to work.
  • Slicer/OctoPrint: You’ll need to insert a few lines into your slicer (and OctoPrint, if equipped) so that each GCODE file you generate will include some BLTouch instructions at the top.

This Instructables guide does a good job of explaining how to do this on the CR-10, though the process is similar for the Ender 3.

Which one to buy (and where)

I recommend this BLTouch sensor (V3.1 or newer) since older versions won’t work with newer Marlin firmware.

Ender 3 LED stripEnder 3 LED strip

Proper print illumination allows you to identify issues with your prints early—it’s also nice to be able to see what’s happening clearly. There are tons of methods for adding an LED strip to your 3D printer. I prefer one that places the light source as high as possible in order to illuminate the entire print bed, not just the current print area.

I wrote a comprehensive guide on adding an LED strip to your 3D printer, featuring the Ender 3 specifically. Using the method outlined there, you can even power your LED strip directly from your Ender 3 by regulating the voltage using this buck converter in conjunction with this XT60 splitter cable.

Check out that guide for step-by-step instructions on what to print and how to wire everything up!

Ender 3 spring upgradeEnder 3 spring upgrade

Your bed springs might seem like an insignificant part of your 3D printer, but they’re actually quite important to bed leveling and stability.

The stock Ender 3 bed springs are terrible and can lead to print issues and frequent bed leveling. These issues are largely caused by:

  • The cheap metal used to manufacture the springs, and
  • The rounded design of the springs themselves

In fact, if you compare the stock and upgraded springs side by side, you can see only the upgraded ones feature a flat surface on the top and bottom. This leads to less shifting compared to the stock springs.

Upgraded Ender 3 springs take minutes to install and mean less frequent bed leveling between prints. This upgrade costs about $10, making it one of the least expensive Ender 3 upgrades out there.

Ender 3 all-metal feeder assemblyEnder 3 all-metal feeder assembly

The plastic metal feeder assembly on the Ender 3 leaves something to be desired, and improper tension can even cause feeder gear skips, leaving gaps in the layers of your print. Installing an all-metal feeder assembly such as this one will add durability and stability to your printer.

Ender 3 stepper motor dampersEnder 3 stepper motor dampers

Yet another noise mod—adding these dampers to your X- and Y-axis stepper motors decreases the noise they generate by 5-10dB. This is a simple, inexpensive mod with a measurable noise reduction impact.

Ender 3 firmware updateEnder 3 firmware update

Most Ender 3s ship with an outdated version of the Marlin firmware, which lacks mandatory safety features such as thermal runaway protection. Thermal runaway is a condition where a failure in the thermocouple (temperature sensor) can cause your extruder to continue heating, forever, until your extruder block melts and a fire occurs.

Here’s a video demonstrating thermal runaway in action:

Thankfully, newer versions of Marlin have thermal runaway protection, a software-level safeguard that polls periodically for an increase in temperature and shuts things down if something isn’t right.

I wrote an in-depth guide to updating your Ender 3 firmware that you can follow to perform this mod. You’ll need any kind of Arduino to perform the firmware update, such as this inexpensive Arduino clone. This is a safety upgrade that you shouldn’t skip.

Did I miss a mod or upgrade that you think is a must-have? Let me know in the comments section below!

We’re hiring!
Are you a passionate writer or editor? We want to hear from you!

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.

[2020] The Best Creality Ender 3 (and Pro) Upgrades and Mods

Ender 3 upgrades and modsEnder 3 upgrades and mods
Improve your overall printing experience—and quality.
Zach Zach (217)
0
Updated: February 28th, 2020
Calling all writers!

Are you a writer who loves 3D printing? Send us a message

The Ender 3 is an amazing 3D printer. For the money, it’s hard to find one that will give you better prints right out of the box. However, it’s far from perfect.

In this guide, I’ll show you the top must-have upgrades and mods for the Ender 3 and Ender 3 Pro—both 3D-printable and purchased upgrades/mods.

A note on this guide:

In researching this guide, I found a lot of others with massive lists containing every upgrade and mod under the sun—unfortunately, many of those upgrades are pointless wastes of time and money. So, in this guide, I’ll cut through the BS and cover the most impactful items that will give you better prints while also improving your overall printing experience.

Here’s everything you’ll need to complete this guide:

Creality Ender 3 3D printerCreality Ender 3 3D printer×1
3D-printable Ender 3 mods3D-printable Ender 3 mods
Also visible in this photo are my Raspberry Pi enclosure and camera for use with OctoPrint.

Below are the top 3D-printable Ender 3 mods and upgrades you can perform. Tons of other printable mods exist, but this is the core list that will give you the best bang for your print time.

Board fan guard

Before you print anything else, print this mod. The location of the mainboard fan is directly beneath the build plate, meaning bits of filament can fall in and damage the fan or board. The model is available on Thingiverse.

Filament guide

This filament guide holds the filament away from the feeder, allowing for a more consistent feed rate and less skipping. It snaps directly into the side of the upper support.

Cable chain

This cable chain is a must-have for preventing dangerous cable snags when the bed moves along the Y-axis.

Display PCB cover

This simple screen cover protects your Ender 3 display’s PCB (printed circuit board) from damage.

Bowden tube fitting fix

If your Bowden tube has popped out of place or if you’re having print quality issues, you might want to print these pressure fitting shims that will prevent your Bowden tubes from shifting or popping out during printing.

Beeper silencer

You’ve probably noticed how loud the Ender 3 beeps when navigating the menu interface. This beep can level villages and knock satellites out of orbit. This 10-minute print mutes the beep quite a bit, getting rid of that annoyance and protecting our countrysides and space assets.

Ender 3 board upgradeEnder 3 board upgrade

There are two main sources of noise on your printer: 1) fans, and 2) the drivers (chips) that run your stepper motors. The “whirring” noise you associate with printing is caused by the cheap stepper motor drivers used on the stock Ender 3 board.

Enter the Creality Silent Mainboard (v1.1.5). This board directly replaces your existing Ender 3 mainboard, upgrading your printer to the silent TMC2208 stepper motor drivers. This is the biggest “sound” upgrade you can make. It reduces your printer’s noise from approximately 48dB to 36dB, with the remaining sound coming from the Ender 3’s fans (which can also be upgraded to quieter fans).

If I had to choose a single upgrade from this guide (other than OctoPrint), it would be this one. Combined with the MeanWell PSU upgrade also mentioned in this guide, I often forget my printer is running since it now generates so little noise.

Of course, in addition to decreasing noise, this board and its upgraded stepper motor drivers improve the quality of your prints.

OctoPrint Ender 3 setupOctoPrint Ender 3 setup

OctoPrint is the #1 upgrade for making the overall 3D-printing experience easier and more enjoyable. While this upgrade doesn’t relate directly to print quality, it will save you a ton of time and headaches. With OctoPrint, you won’t need to load and start prints from an SD card ever again.

In a nutshell, OctoPrint is a library that runs on the small Raspberry Pi computer. When you want to print something, you’ll log into a slick interface from your computer. This interface will allow you to control your printer, start and stop prints, and more. You can even monitor your printer remotely using a small camera!

I wrote a full guide on installing and using OctoPrint on the Ender 3, as well as a video:

Ender 3 touchscreenEnder 3 touchscreen

If you’re already using OctoPrint, why not add a nice touchscreen to your Ender 3? Check out my full guide on this, as well as my video:

For this project, I used the Adafruit 3.5″ PiTFT Plus—but other touchscreens will work as well.

Stock vs. MeanWell Ender 3 PSUStock vs. MeanWell Ender 3 PSU

There are several reasons to upgrade your Ender 3 to a MeanWell PSU including noise, safety, and even reducing bed-leveling issues.

Noise

Compared to the stock PSU whose fan runs continuously, the MeanWell PSU only runs when it needs to—usually less than 20% of the time. This means a much quieter printer, especially when paired with the silent board upgrade. This reason alone made the upgrade worth it to me. I work in the same room as my printer, so noise is a huge issue.

Safety

MeanWell PSUs use higher quality components than the cheap stock unit, providing cleaner power with fewer of the electrical spikes and sags that could pose a safety hazard.

Reduce auto-bed-leveling issues

If you’re using an auto-leveling sensor such as the BLTouch or EZABL, the MeanWell PSU’s consistent, clean power reduces issues related to power ripples and grounding.

Form factor

The MeanWell PSU is noticeably thinner than the stock unit, which is handy if you’re using an enclosure and need to relocate it.

Which one to buy (and where)

The MeanWell LRS-3500-25 PSU is the correct 24V MeanWell power supply for the Ender 3, and this upgrade takes about 20 minutes to perform, excluding PSU housing print time.

Ender 3 glass bedEnder 3 glass bed

There are tons of different build plate surfaces out there: metal, magnetic, BuildTak, painter’s tape, and tons more. But after printing for many years on several different printers, I’ve always had the best experience with glass.

Glass beds are supremely flat, fixing the all-too-common “warped Ender 3 bed” issue that many of us experience. Glass beds also save on prep time, are easy to clean, and offer effortless print removal with a semi-glossy print finish.

Choosing a bed

I wrote a comprehensive guide to 3D printing on a glass bed if you’d like to dive into the details. tl;dr; Choose a thin borosilicate glass bed, and adhere it directly to the existing build plate using small binder clips. This 235x235mm glass bed is the one I recommend for the Ender 3.

BLTouch Ender 3 sensorBLTouch Ender 3 sensor

Bed leveling is key to the perfect first layer and overall print quality. Unfortunately, it’s also one of the most annoying “chores” in 3D printing. Just when things are going well, you realize you forgot to relevel your bed and things look terrible.

“I love leveling my 3D printer’s bed” -Nobody, ever

But what if a simple sensor, installed in just 45 minutes, could automatically level your bed for you every time? That’s what BLTouch does.

How BLTouch works

BLTouch uses a small probe to build a mesh of points at the beginning of each print to determine exactly how unlevel (or warped) your bed is, and in which directions. It then takes that into account when performing a print, altering each GCODE instruction as needed to account for the imperfect build surface.

The process

Here’s a breakdown of what goes into this upgrade:

  • Hardware: The probe mounts next to your print head assembly and connects to the existing Ender 3 mainboard.
  • Software: A slight firmware modification is needed to allow BLTouch to work.
  • Slicer/OctoPrint: You’ll need to insert a few lines into your slicer (and OctoPrint, if equipped) so that each GCODE file you generate will include some BLTouch instructions at the top.

This Instructables guide does a good job of explaining how to do this on the CR-10, though the process is similar for the Ender 3.

Which one to buy (and where)

I recommend this BLTouch sensor (V3.1 or newer) since older versions won’t work with newer Marlin firmware.

Ender 3 LED stripEnder 3 LED strip

Proper print illumination allows you to identify issues with your prints early—it’s also nice to be able to see what’s happening clearly. There are tons of methods for adding an LED strip to your 3D printer. I prefer one that places the light source as high as possible in order to illuminate the entire print bed, not just the current print area.

I wrote a comprehensive guide on adding an LED strip to your 3D printer, featuring the Ender 3 specifically. Using the method outlined there, you can even power your LED strip directly from your Ender 3 by regulating the voltage using this buck converter in conjunction with this XT60 splitter cable.

Check out that guide for step-by-step instructions on what to print and how to wire everything up!

Ender 3 spring upgradeEnder 3 spring upgrade

Your bed springs might seem like an insignificant part of your 3D printer, but they’re actually quite important to bed leveling and stability.

The stock Ender 3 bed springs are terrible and can lead to print issues and frequent bed leveling. These issues are largely caused by:

  • The cheap metal used to manufacture the springs, and
  • The rounded design of the springs themselves

In fact, if you compare the stock and upgraded springs side by side, you can see only the upgraded ones feature a flat surface on the top and bottom. This leads to less shifting compared to the stock springs.

Upgraded Ender 3 springs take minutes to install and mean less frequent bed leveling between prints. This upgrade costs about $10, making it one of the least expensive Ender 3 upgrades out there.

Ender 3 all-metal feeder assemblyEnder 3 all-metal feeder assembly

The plastic metal feeder assembly on the Ender 3 leaves something to be desired, and improper tension can even cause feeder gear skips, leaving gaps in the layers of your print. Installing an all-metal feeder assembly such as this one will add durability and stability to your printer.

Ender 3 stepper motor dampersEnder 3 stepper motor dampers

Yet another noise mod—adding these dampers to your X- and Y-axis stepper motors decreases the noise they generate by 5-10dB. This is a simple, inexpensive mod with a measurable noise reduction impact.

Ender 3 firmware updateEnder 3 firmware update

Most Ender 3s ship with an outdated version of the Marlin firmware, which lacks mandatory safety features such as thermal runaway protection. Thermal runaway is a condition where a failure in the thermocouple (temperature sensor) can cause your extruder to continue heating, forever, until your extruder block melts and a fire occurs.

Here’s a video demonstrating thermal runaway in action:

Thankfully, newer versions of Marlin have thermal runaway protection, a software-level safeguard that polls periodically for an increase in temperature and shuts things down if something isn’t right.

I wrote an in-depth guide to updating your Ender 3 firmware that you can follow to perform this mod. You’ll need any kind of Arduino to perform the firmware update, such as this inexpensive Arduino clone. This is a safety upgrade that you shouldn’t skip.

Did I miss a mod or upgrade that you think is a must-have? Let me know in the comments section below!

We’re hiring!
Are you a passionate writer or editor? We want to hear from you!

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.

Python Dictionary Comprehension (With Examples)

Tyler Tyler (275)
0
Updated: February 28th, 2020

In Python, comprehensions are a useful construct that allows us to create new sequences in a very concise way. Many people are familiar with Python list comprehension, but the comprehension syntax can be used to create dictionaries as well. In this guide, I’ll explain the syntax, walk through a few examples of how dictionary comprehension works, and show how it can be used to simplify your code.

Posted in these interests:

python
PRIMARY
62 guides
code
65 guides

If you’re new to comprehensions, this syntax might be a little confusing. So I’ll break it down:

{key: value for x in iterable}

A conditional can optionally included like this:

new_dict = {key: value for x in iterable if condition}

In many use cases, the elements in the iterable will provide the key and value, but it’s not required. We iterate over iterable assigning each item to the variable x. Then the new dictionary is formed using the variables key and value.

Here’s a simple example:

> {str(x): x for x in range(3)} {'0': 0, '1': 1, '2': 2}

The following shows how our example maps to the syntax instruction from above.

Syntax Example
key str(x)
value x
iterable range(3)

In the remainder of this guide, I’ll provide examples of how dictionary comprehensions can be used to improve your code.

Sometimes we have a list of dictionaries, and we need to lookup a dictionary by a particular key. This can be the case with database query results or data read from a csv.

Goal: Convert a list of dictionaries to a nested dictionary, so we can look up elements by their id.

The initial data is structured like this:

data_list = [ {'id': '1', 'name': ...}, {'id': '2', 'name': ...}, {'id': '3', 'name': ...}, ... ]

If we need to lookup rows by id, we could search the list, but that would be inefficient for multiple lookups. A better way is to convert the list of dictionaries to a dictionary, where the key is the id.

data_dict = { '1': {'id': '1', 'name': ...}, '2': {'id': '2', 'name': ...}, '3': {'id': '3', 'name': ...}, }

Now we can easily and efficiently lookup dictionaries by their id.

some_dict = data_dict[id]

So how do we accomplish this?

Using a for loop

data_dict = {} for item in data_list: data_dict[item['id']] = item

We iterate over the list, grabbing the id from each item. Then we create a new dictionary key and value during each iteration.

This is not too bad, but we can simplify even more using dictionary comprehension.

Using dictionary comprehension

data_dict = {d['id']: d for d in data_list}

Hopefully you can see how both examples accomplish the same thing. They both include the same components, but the second example is cleaner.

Suppose we have a dictionary with many key-value pairs, and we want to copy that dictionary and filter out specific values.

Goal: Create a dictionary of U.S. state data including only states established on or after 1900.

Our initial dictionary contains data for all 50 U.S. states. It looks like this:

state_data = { 'Alabama': { 'Abbreviation': 'AL', 'Capital': 'Montgomery', 'Established': 1819 }, 'Alaska': { 'Abbreviation': 'AK', 'Capital': 'Juneau', 'Established': 1959 }, ... }

So we want to filter our dictionary and include only states that were established on or after 1900.

Using a for loop

states_after_1900 = {} for k, v in state_data.items(): if v['Established'] >= 1900: states_after_1900[k] = v

This gives us the answer we’d like, but with dictionary comprehensions we can accomplish this in a single line of code.

Using dictionary comprehension

states_after_1900 = {k: v for k, v in state_data.items() if v['Established'] >= 1900}

Notice this includes all of the same components, but it’s much more concise.

The results

In order to conserve space, while still proving this worked as expected, I’ll just print the state and the date it was established:

for k, v in states_after_1900.items(): print(k, v['Established']) # => Output Alaska 1959 Arizona 1912 Hawaii 1959 New Mexico 1912 Oklahoma 1907

In some cases, we start with a dictionary that is structured in a specific way, but we need the values to be transformed.

I’m going to use a contrived example to demonstrate how this works. Suppose we have a dictionary, where the key is a user id, and the value is the user’s first name. For some reason, we want to display the users names in reverse, possibly multiple times. We could use the extended slice operator or the reversed function as needed, but that could be wasteful if we’re planning on doing this multiple times for each name. Another option is to create a new dictionary where the names are reversed.

Note: For more details on reversing strings in Python check out our guide.

Here’s the initial names dictionary.

names = { 1: 'Sam', 2: 'Clark', 3: 'Carol', ... }

We’ll create a new dictionary where each value is mapped to it’s reverse.

Using a for loop

names_reversed = {} for k, v in names.items(): names_reversed[k] = v.reversed()

Using dictionary comprehension

names_reversed = {k: v[::-1] for k, v in names.items()}

Results

names_reversed => Output {1: 'maS', 2: 'kralC', 3: 'loraC'}
We’re hiring!
Are you a passionate writer or editor? We want to hear from you!

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.

The Dirty Cow exploit takes advantage of a recently discovered vulnerability in the Linux kernel that has existed since the inception of the operating system. COW stands for copy-on-write and it is a mechanism in the Linux kernal that manages the way modifiable resources are shared among multiple callers. The exploit allows a user to perform privilege escalation and gain root access to the system.

This issue also affects Raspbian (and thus most Raspberry Pi users), but luckily it’s easy to Fix the Dirty Cow Exploit on the Raspberry Pi.

The Dirty Cow exploit takes advantage of a recently discovered vulnerability in the Linux kernel that has existed since the inception of the operating system. COW stands for copy-on-write and it is a mechanism in the Linux kernal that manages the way modifiable resources are shared among multiple callers. The exploit allows a user to perform privilege escalation and gain root access to the system.

This issue also affects Raspbian (and thus most Raspberry Pi users), but luckily it’s easy to Fix the Dirty Cow Exploit on the Raspberry Pi.

The Dirty Cow exploit takes advantage of a recently discovered vulnerability in the Linux kernel that has existed since the inception of the operating system. COW stands for copy-on-write and it is a mechanism in the Linux kernal that manages the way modifiable resources are shared among multiple callers. The exploit allows a user to perform privilege escalation and gain root access to the system.

This issue also affects Raspbian (and thus most Raspberry Pi users), but luckily it’s easy to Fix the Dirty Cow Exploit on the Raspberry Pi.

What is the dirty cow exploit?

Tyler Tyler (285)
0
Updated: February 27th, 2020

Posted in these interests:

linux
PRIMARY
41 guides
pi
215 guides
Howchoo News
news
38 guides

What is the dirty cow exploit?

linuxpinews
Tyler Tyler (285)
0
Updated: February 27th, 2020
Tyler
1
 

Posted in these interests:

linux
PRIMARY
41 guides
pi
215 guides
Howchoo News
news
38 guides
linux
PRIMARY
41 guides
pi
215 guides
Howchoo News
news
38 guides
PRIMARY
Howchoo News
Calling all writers!

We’re hiring. Write for Howchoo

1
 
In these interests
linux
PRIMARY
41 guides
pi
215 guides
Howchoo News
news
38 guides
linux
PRIMARY
41 guides
pi
215 guides
Howchoo News
news
38 guides
PRIMARY
Howchoo News

The Dirty Cow exploit takes advantage of a recently discovered vulnerability in the Linux kernel that has existed since the inception of the operating system. COW stands for copy-on-write and it is a mechanism in the Linux kernal that manages the way modifiable resources are shared among multiple callers. The exploit allows a user to perform privilege escalation and gain root access to the system.

This issue also affects Raspbian (and thus most Raspberry Pi users), but luckily it’s easy to Fix the Dirty Cow Exploit on the Raspberry Pi.

Calling all writers!

We’re hiring. Write for Howchoo

Tyler's profile pictureTyler
Joined in 2015
Software Engineer and creator of howchoo.
Tyler's profile picture
Share this guide!
RedditEmailText
Related to this guide:
Check Ubuntu VersionCheck Ubuntu Version
Confirm your edition with a simple command.
Ash's profile picture AshView
In these interests: ubuntulinux
Manjaro vs UbuntuManjaro vs Ubuntu
In these interests: ubuntulinux
Download and Install ManjaroDownload and Install Manjaro
Looking for a new flavor of Linux?
Ash's profile picture AshView
In these interests: linux
Check Ubuntu VersionCheck Ubuntu Version
Confirm your edition with a simple command.
Ash's profile picture AshView
In these interests: ubuntulinux
Ash's profile pictureViewubuntulinux
Manjaro vs UbuntuManjaro vs Ubuntu
In these interests: ubuntulinux
Ash's profile pictureViewubuntulinux
Download and Install ManjaroDownload and Install Manjaro
Looking for a new flavor of Linux?
Ash's profile picture AshView
In these interests: linux
Ash's profile pictureViewlinux
People also read:
There are a few reasons you might want to set up password-less login via SSH. Manual login For manual login, typing your password over and over is a pain—especially if you’re doing this frequently.
If you are using Windows on your PC, it may be easier to code or program by running Linux or another Unix-based operating system alongside Windows.
Drive a motor or light up an LED based on Linux sound output!
Proceed with caution Some users have reported that these settings have messed up their trackpads.
Boot Camp is a great feature of mcOS, but it won’t help you install Linux. To do that we’re going to use a tool called rEFInd.
The Dirty Cow exploit is a serious exploit in the Linux kernel that allows users to gain root access to the system.
If you spend a lot of time staring at log files, you might want to consider installing CCZE. CCZE is a tool that color highlights your log files making them much easier to read.
Best Raspberry Pi Beginngers Books
For Raspberry Pi beginners who still love to follow along in a book.
Astro Pi on the ISS
What’s better than an experiment? An experiment in space!
There are a few reasons you might want to set up password-less login via SSH. Manual login For manual login, typing your password over and over is a pain—especially if you’re doing this frequently.
If you are using Windows on your PC, it may be easier to code or program by running Linux or another Unix-based operating system alongside Windows.
Drive a motor or light up an LED based on Linux sound output!
Proceed with caution Some users have reported that these settings have messed up their trackpads.
Boot Camp is a great feature of mcOS, but it won’t help you install Linux. To do that we’re going to use a tool called rEFInd.
SSH Login Without a Password
How to Set Up Linux on Your PC Using a Virtual Machine
How to Detect Sound Output in Linux and Use It to Call a Program (Or Drive a Motor!)
The Perfect (almost) Touchpad Settings on Linux
How to Install and Dual-Boot Linux on a Mac
The Dirty Cow exploit is a serious exploit in the Linux kernel that allows users to gain root access to the system.
If you spend a lot of time staring at log files, you might want to consider installing CCZE. CCZE is a tool that color highlights your log files making them much easier to read.
Best Raspberry Pi Beginngers Books
For Raspberry Pi beginners who still love to follow along in a book.
Astro Pi on the ISS
What’s better than an experiment? An experiment in space!
How to Fix the Dirty Cow Exploit on Raspberry Pi
How to colorize your logs with CCZE
How to Test Sendmail from the Shell
Best Raspberry Pi Beginngers Books
Best Raspberry Pi Beginngers BooksThe Best Raspberry Pi Beginner’s Books [2020]
Astro Pi on the ISS
Astro Pi on the ISSAstro Pi Lets Kids Run Their Programs in Space
Posted in these interests:
linuxlinux
linux
PRIMARY
pipi
The Raspberry Pi is a small, inexpensive computer developed by the Raspberry Pi Foundation in the United Kingdom.
Howchoo NewsHowchoo News
Get the latest news from our most popular interests including 3D printing, Raspberry Pi, Retro Gaming, Python, and more!
linuxlinux
linux
PRIMARY
PRIMARY
Explore
pipi
The Raspberry Pi is a small, inexpensive computer developed by the Raspberry Pi Foundation in the United Kingdom.
Explore
Howchoo NewsHowchoo News
Get the latest news from our most popular interests including 3D printing, Raspberry Pi, Retro Gaming, Python, and more!
Explore
Discuss this guide:
We’re hiring!
Are you a passionate writer? We want to hear from you!
We’re hiring!
Are you a passionate writer? We want to hear from you!
View openings

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.

Donate
Tyler's profile pictureTyler
Joined in 2015
Software Engineer and creator of howchoo.
Share this guide!
Related to this guide:
How to Open URLs in Google Chrome from the macOS TerminalHow to Open URLs in Google Chrome from the macOS Terminal
If you spend any amount of time working on the command line in macOS, you’ll eventually want to automate the process of opening URLs in your favorite browser.
Tyler's profile picture TylerView
In these interests: chromemacosbash
Ubuntu MATE Raspberry PiUbuntu MATE Raspberry Pi
Get your favorite open-source OS on the Pi.
Ash's profile picture AshView
In these interests: ubuntulinuxpi
SSH Login Without a PasswordSSH Login Without a Password
There are a few reasons you might want to set up password-less login via SSH. Manual login For manual login, typing your password over and over is a pain—especially if you’re doing this frequently.
Tyler's profile picture TylerView
In these interests: sysadminlinux
People also read:
Raspberry Pi Gadget Mode
Program your Pi without a keyboard, monitor, or network connection
Which version of Raspbian do I have?
Whether you’re using a Raspberry Pi desktop or headless, you’ll likely need to open a Linux shell at some point.
Bash aliases are essential for anyone using the command line. An alias is basically just a shortcut for some other, typically longer command.
If you are using Windows on your PC, it may be easier to code or program by running Linux or another Unix-based operating system alongside Windows.
Posted in these interests:
Discuss this guide:
We’re hiring!
Are you a passionate writer or editor? We want to hear from you!
We’re hiring!
Are you a passionate writer or editor? We want to hear from you!

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.

Every website and application needs a way to access and process data, and this means being able to manage your database. Database management systems are sometimes conflated with databases, but in reality, they allow you to interact with a database and perform management tasks such as controlling access, writing data, and running queries.

Most database management tools use a relational database management system (RDBMS) to organize data, and most relational databases use structured query language (SQL) to process and query the data. RDBMSs use a table-oriented data model, in which the relation schema is defined by the name of the table and a set of attributes with fixed data types. While there are non-SQL data models available, the relational data model remains the first choice for most organizations worldwide.

The two most popular open source RDBMSs are MySQL, developed by Oracle, and PostgreSQL. When choosing which database management tool to use, organizations consider memory, reliability, and query response time, but they also consider compatibility issues and the level of support offered. For this reason, the popularity of a tool can be a good measure of accessibility and the size of the open source community.

Comparing MySQL and PostgreSQL

In the competition to dominate the world of software, each tool has its advantages. MySQL was the most popular open-source RDBMS for several years, powering some of the world’s largest websites like Facebook, Twitter, and Netflix. However, a recent study indicates that PostgreSQL now has the lead and is ranked at #4 in terms of overall database popularity. PostgreSQL is used, for example, by Apple, Cisco, and Skype.

So let’s take a look at why some organizations choose either MySQL or PostgreSQL.

MySQL is a robust yet affordable database management system. Most websites and web applications can work easily on MySQL, as it is flexible and relatively scalable. PostgreSQL, on the other hand, is an open-source object-relational DBMS and is considered the most advanced and powerful tool of its kind. It is also more SQL compliant and works well with complex database designs. PostgreSQL is highly extensible and is optimized for complex queries and concurrency, which means it can handle multiple tasks at the same time.

Functionality

In terms of functionality, PostgreSQL offers more possibilities, but MySQL has in-memory capabilities. PostgreSQL has less efficient memory performance, as it forks a new process for every connection, and each process takes up about 10MB of memory. If your database has many connections, the memory can add up, so it is unsuited to simple read-heavy operations when compared with MySQL.

Languages

MySQL supports more languages, but PostgreSQL is compatible with more operating systems. While both databases support numeric, date and time, and string data types, PostgreSQL also supports geometric shapes, text searches, network addresses, and other exotic and custom data types.

Replication

Let’s take a look at how they differ in terms of data replication (storing data in more than one place). MySQL has one-way asynchronous replication, which involves a master server and slave servers. This allows you to replicate selected tables within your database. PostgreSQL has synchronous (2-safe) replication, which runs two database instances simultaneously, while the master database is synchronized with a slave database. This makes it more suitable for concurrent read-writes.

Otherwise, PostgreSQL queries are usually identical to MySQL queries.

Community

As open source tools, both RDBMSs require support in terms of the open source community, and both have a large community that develops them and contributes tools and information on how to use them. However, development of MySQL appears to have stagnated, and the community can no longer react quickly to issues or implement changes. PostgreSQL, on the other hand, has strong community and third-party support.

Downsides

Now let’s consider some of the downsides of each tool. MySQL is designed for speed and reliability, but this comes at the expense of full adherence to standard SQL. MySQL also has some issues with stability and clustering, and it doesn’t support full outer joins.

PostgreSQL is optimized for complex operations and concurrency and helps protect data integrity, but it is inefficient for read-heavy operations. It is also not suited for speed or simple setups. Unless you are dealing with massive databases and complex queries involving multiple CPUs, PostgreSQL could be overkill, consuming large amounts of memory.

PostgreSQL is better for an application with many users writing data to it simultaneously. It is also appropriate for large systems that need to authenticate date, or if you need your database to perform custom procedures. Otherwise, MySQL may be the better option for a project that only needs a database for simple data transactions.

Final Takeaway

Many organizations are choosing to migrate from legacy database management tools like MySQL, but there are not necessarily switching to NoSQL. Migration from Oracle to PostrgeSQL doesn’t have to be difficult, given that PostgreSQL is easily integrated with a wide range of tools, and it may be worthwhile if you want to shift to a more complex and customizable system.

While MySQL certainly has its uses, for a growing number of companies, PostgreSQL has the edge.

Every website and application needs a way to access and process data, and this means being able to manage your database. Database management systems are sometimes conflated with databases, but in reality, they allow you to interact with a database and perform management tasks such as controlling access, writing data, and running queries.

Most database management tools use a relational database management system (RDBMS) to organize data, and most relational databases use structured query language (SQL) to process and query the data. RDBMSs use a table-oriented data model, in which the relation schema is defined by the name of the table and a set of attributes with fixed data types. While there are non-SQL data models available, the relational data model remains the first choice for most organizations worldwide.

The two most popular open source RDBMSs are MySQL, developed by Oracle, and PostgreSQL. When choosing which database management tool to use, organizations consider memory, reliability, and query response time, but they also consider compatibility issues and the level of support offered. For this reason, the popularity of a tool can be a good measure of accessibility and the size of the open source community.

Comparing MySQL and PostgreSQL

In the competition to dominate the world of software, each tool has its advantages. MySQL was the most popular open-source RDBMS for several years, powering some of the world’s largest websites like Facebook, Twitter, and Netflix. However, a recent study indicates that PostgreSQL now has the lead and is ranked at #4 in terms of overall database popularity. PostgreSQL is used, for example, by Apple, Cisco, and Skype.

So let’s take a look at why some organizations choose either MySQL or PostgreSQL.

MySQL is a robust yet affordable database management system. Most websites and web applications can work easily on MySQL, as it is flexible and relatively scalable. PostgreSQL, on the other hand, is an open-source object-relational DBMS and is considered the most advanced and powerful tool of its kind. It is also more SQL compliant and works well with complex database designs. PostgreSQL is highly extensible and is optimized for complex queries and concurrency, which means it can handle multiple tasks at the same time.

Functionality

In terms of functionality, PostgreSQL offers more possibilities, but MySQL has in-memory capabilities. PostgreSQL has less efficient memory performance, as it forks a new process for every connection, and each process takes up about 10MB of memory. If your database has many connections, the memory can add up, so it is unsuited to simple read-heavy operations when compared with MySQL.

Languages

MySQL supports more languages, but PostgreSQL is compatible with more operating systems. While both databases support numeric, date and time, and string data types, PostgreSQL also supports geometric shapes, text searches, network addresses, and other exotic and custom data types.

Replication

Let’s take a look at how they differ in terms of data replication (storing data in more than one place). MySQL has one-way asynchronous replication, which involves a master server and slave servers. This allows you to replicate selected tables within your database. PostgreSQL has synchronous (2-safe) replication, which runs two database instances simultaneously, while the master database is synchronized with a slave database. This makes it more suitable for concurrent read-writes.

Otherwise, PostgreSQL queries are usually identical to MySQL queries.

Community

As open source tools, both RDBMSs require support in terms of the open source community, and both have a large community that develops them and contributes tools and information on how to use them. However, development of MySQL appears to have stagnated, and the community can no longer react quickly to issues or implement changes. PostgreSQL, on the other hand, has strong community and third-party support.

Downsides

Now let’s consider some of the downsides of each tool. MySQL is designed for speed and reliability, but this comes at the expense of full adherence to standard SQL. MySQL also has some issues with stability and clustering, and it doesn’t support full outer joins.

PostgreSQL is optimized for complex operations and concurrency and helps protect data integrity, but it is inefficient for read-heavy operations. It is also not suited for speed or simple setups. Unless you are dealing with massive databases and complex queries involving multiple CPUs, PostgreSQL could be overkill, consuming large amounts of memory.

PostgreSQL is better for an application with many users writing data to it simultaneously. It is also appropriate for large systems that need to authenticate date, or if you need your database to perform custom procedures. Otherwise, MySQL may be the better option for a project that only needs a database for simple data transactions.

Final Takeaway

Many organizations are choosing to migrate from legacy database management tools like MySQL, but there are not necessarily switching to NoSQL. Migration from Oracle to PostrgeSQL doesn’t have to be difficult, given that PostgreSQL is easily integrated with a wide range of tools, and it may be worthwhile if you want to shift to a more complex and customizable system.

While MySQL certainly has its uses, for a growing number of companies, PostgreSQL has the edge.

Every website and application needs a way to access and process data, and this means being able to manage your database. Database management systems are sometimes conflated with databases, but in reality, they allow you to interact with a database and perform management tasks such as controlling access, writing data, and running queries.

Most database management tools use a relational database management system (RDBMS) to organize data, and most relational databases use structured query language (SQL) to process and query the data. RDBMSs use a table-oriented data model, in which the relation schema is defined by the name of the table and a set of attributes with fixed data types. While there are non-SQL data models available, the relational data model remains the first choice for most organizations worldwide.

The two most popular open source RDBMSs are MySQL, developed by Oracle, and PostgreSQL. When choosing which database management tool to use, organizations consider memory, reliability, and query response time, but they also consider compatibility issues and the level of support offered. For this reason, the popularity of a tool can be a good measure of accessibility and the size of the open source community.

Comparing MySQL and PostgreSQL

In the competition to dominate the world of software, each tool has its advantages. MySQL was the most popular open-source RDBMS for several years, powering some of the world’s largest websites like Facebook, Twitter, and Netflix. However, a recent study indicates that PostgreSQL now has the lead and is ranked at #4 in terms of overall database popularity. PostgreSQL is used, for example, by Apple, Cisco, and Skype.

So let’s take a look at why some organizations choose either MySQL or PostgreSQL.

MySQL is a robust yet affordable database management system. Most websites and web applications can work easily on MySQL, as it is flexible and relatively scalable. PostgreSQL, on the other hand, is an open-source object-relational DBMS and is considered the most advanced and powerful tool of its kind. It is also more SQL compliant and works well with complex database designs. PostgreSQL is highly extensible and is optimized for complex queries and concurrency, which means it can handle multiple tasks at the same time.

Functionality

In terms of functionality, PostgreSQL offers more possibilities, but MySQL has in-memory capabilities. PostgreSQL has less efficient memory performance, as it forks a new process for every connection, and each process takes up about 10MB of memory. If your database has many connections, the memory can add up, so it is unsuited to simple read-heavy operations when compared with MySQL.

Languages

MySQL supports more languages, but PostgreSQL is compatible with more operating systems. While both databases support numeric, date and time, and string data types, PostgreSQL also supports geometric shapes, text searches, network addresses, and other exotic and custom data types.

Replication

Let’s take a look at how they differ in terms of data replication (storing data in more than one place). MySQL has one-way asynchronous replication, which involves a master server and slave servers. This allows you to replicate selected tables within your database. PostgreSQL has synchronous (2-safe) replication, which runs two database instances simultaneously, while the master database is synchronized with a slave database. This makes it more suitable for concurrent read-writes.

Otherwise, PostgreSQL queries are usually identical to MySQL queries.

Community

As open source tools, both RDBMSs require support in terms of the open source community, and both have a large community that develops them and contributes tools and information on how to use them. However, development of MySQL appears to have stagnated, and the community can no longer react quickly to issues or implement changes. PostgreSQL, on the other hand, has strong community and third-party support.

Downsides

Now let’s consider some of the downsides of each tool. MySQL is designed for speed and reliability, but this comes at the expense of full adherence to standard SQL. MySQL also has some issues with stability and clustering, and it doesn’t support full outer joins.

PostgreSQL is optimized for complex operations and concurrency and helps protect data integrity, but it is inefficient for read-heavy operations. It is also not suited for speed or simple setups. Unless you are dealing with massive databases and complex queries involving multiple CPUs, PostgreSQL could be overkill, consuming large amounts of memory.

PostgreSQL is better for an application with many users writing data to it simultaneously. It is also appropriate for large systems that need to authenticate date, or if you need your database to perform custom procedures. Otherwise, MySQL may be the better option for a project that only needs a database for simple data transactions.

Final Takeaway

Many organizations are choosing to migrate from legacy database management tools like MySQL, but there are not necessarily switching to NoSQL. Migration from Oracle to PostrgeSQL doesn’t have to be difficult, given that PostgreSQL is easily integrated with a wide range of tools, and it may be worthwhile if you want to shift to a more complex and customizable system.

While MySQL certainly has its uses, for a growing number of companies, PostgreSQL has the edge.

MySQL vs. PostgreSQL: 2020 Showdown

MySQL vs PostgreSQLMySQL vs PostgreSQL
Comparing performance, syntax, replication, and features.
Gilad Gilad (1)
0
Updated: February 27th, 2020

Posted in these interests:

webdev
PRIMARY
58 guides
mysql
9 guides
postgresql
1 guide

MySQL vs. PostgreSQL: 2020 Showdown

webdevmysqlpostgresql
Comparing performance, syntax, replication, and features.
Gilad Gilad (1)
0
Updated: February 27th, 2020
Gilad
1
 

Posted in these interests:

webdev
PRIMARY
58 guides
mysql
9 guides
postgresql
1 guide
webdev
PRIMARY
58 guides
mysql
9 guides
postgresql
1 guide
PRIMARY
Calling all writers!

We’re hiring. Write for Howchoo

1
 
In these interests
webdev
PRIMARY
58 guides
mysql
9 guides
postgresql
1 guide
webdev
PRIMARY
58 guides
mysql
9 guides
postgresql
1 guide
PRIMARY

Every website and application needs a way to access and process data, and this means being able to manage your database. Database management systems are sometimes conflated with databases, but in reality, they allow you to interact with a database and perform management tasks such as controlling access, writing data, and running queries.

Most database management tools use a relational database management system (RDBMS) to organize data, and most relational databases use structured query language (SQL) to process and query the data. RDBMSs use a table-oriented data model, in which the relation schema is defined by the name of the table and a set of attributes with fixed data types. While there are non-SQL data models available, the relational data model remains the first choice for most organizations worldwide.

The two most popular open source RDBMSs are MySQL, developed by Oracle, and PostgreSQL. When choosing which database management tool to use, organizations consider memory, reliability, and query response time, but they also consider compatibility issues and the level of support offered. For this reason, the popularity of a tool can be a good measure of accessibility and the size of the open source community.

Comparing MySQL and PostgreSQL

In the competition to dominate the world of software, each tool has its advantages. MySQL was the most popular open-source RDBMS for several years, powering some of the world’s largest websites like Facebook, Twitter, and Netflix. However, a recent study indicates that PostgreSQL now has the lead and is ranked at #4 in terms of overall database popularity. PostgreSQL is used, for example, by Apple, Cisco, and Skype.

So let’s take a look at why some organizations choose either MySQL or PostgreSQL.

MySQL is a robust yet affordable database management system. Most websites and web applications can work easily on MySQL, as it is flexible and relatively scalable. PostgreSQL, on the other hand, is an open-source object-relational DBMS and is considered the most advanced and powerful tool of its kind. It is also more SQL compliant and works well with complex database designs. PostgreSQL is highly extensible and is optimized for complex queries and concurrency, which means it can handle multiple tasks at the same time.

Functionality

In terms of functionality, PostgreSQL offers more possibilities, but MySQL has in-memory capabilities. PostgreSQL has less efficient memory performance, as it forks a new process for every connection, and each process takes up about 10MB of memory. If your database has many connections, the memory can add up, so it is unsuited to simple read-heavy operations when compared with MySQL.

Languages

MySQL supports more languages, but PostgreSQL is compatible with more operating systems. While both databases support numeric, date and time, and string data types, PostgreSQL also supports geometric shapes, text searches, network addresses, and other exotic and custom data types.

Replication

Let’s take a look at how they differ in terms of data replication (storing data in more than one place). MySQL has one-way asynchronous replication, which involves a master server and slave servers. This allows you to replicate selected tables within your database. PostgreSQL has synchronous (2-safe) replication, which runs two database instances simultaneously, while the master database is synchronized with a slave database. This makes it more suitable for concurrent read-writes.

Otherwise, PostgreSQL queries are usually identical to MySQL queries.

Community

As open source tools, both RDBMSs require support in terms of the open source community, and both have a large community that develops them and contributes tools and information on how to use them. However, development of MySQL appears to have stagnated, and the community can no longer react quickly to issues or implement changes. PostgreSQL, on the other hand, has strong community and third-party support.

Downsides

Now let’s consider some of the downsides of each tool. MySQL is designed for speed and reliability, but this comes at the expense of full adherence to standard SQL. MySQL also has some issues with stability and clustering, and it doesn’t support full outer joins.

PostgreSQL is optimized for complex operations and concurrency and helps protect data integrity, but it is inefficient for read-heavy operations. It is also not suited for speed or simple setups. Unless you are dealing with massive databases and complex queries involving multiple CPUs, PostgreSQL could be overkill, consuming large amounts of memory.

PostgreSQL is better for an application with many users writing data to it simultaneously. It is also appropriate for large systems that need to authenticate date, or if you need your database to perform custom procedures. Otherwise, MySQL may be the better option for a project that only needs a database for simple data transactions.

Final Takeaway

Many organizations are choosing to migrate from legacy database management tools like MySQL, but there are not necessarily switching to NoSQL. Migration from Oracle to PostrgeSQL doesn’t have to be difficult, given that PostgreSQL is easily integrated with a wide range of tools, and it may be worthwhile if you want to shift to a more complex and customizable system.

While MySQL certainly has its uses, for a growing number of companies, PostgreSQL has the edge.

Calling all writers!

We’re hiring. Write for Howchoo

Gilad's profile pictureGilad
Joined in 2019
Gilad's profile picture
Share this guide!
RedditEmailTextPinterest
Related to this guide:
How to export clean HTML from Google DocsHow to export clean HTML from Google Docs
By default, the HTML exported from Google Docs includes tons of classes, styles, and is generally messy. This short guide will teach you how to export clean HTML devoid of classes and inline styles.
Zach's profile picture ZachView
In these interests: googledocswebdevcode
Filtering Google Analytics language spamFiltering Google Analytics language spam
Google Analytics spam is nothing new. But now spammers have realized that, since language appears in the initial Google Analytics dashboard view, spoofing the language code reaches eyeballs.
Zach's profile picture ZachView
In these interests: webdev
How to Convert XML to JSON in PHPHow to Convert XML to JSON in PHP
Converting XML files to JSON is a good practice for providing easy manipulation and preparing service responses. You can accomplish this efficiently with just three lines of code.
Jeremy's profile picture JeremyView
In these interests: phpwebdevjavascript
How to export clean HTML from Google DocsHow to export clean HTML from Google Docs
By default, the HTML exported from Google Docs includes tons of classes, styles, and is generally messy. This short guide will teach you how to export clean HTML devoid of classes and inline styles.
Zach's profile picture ZachView
In these interests: googledocswebdevcode
Zach's profile pictureViewgoogledocswebdevcode
Filtering Google Analytics language spamFiltering Google Analytics language spam
Google Analytics spam is nothing new. But now spammers have realized that, since language appears in the initial Google Analytics dashboard view, spoofing the language code reaches eyeballs.
Zach's profile picture ZachView
In these interests: webdev
Zach's profile pictureViewwebdev
How to Convert XML to JSON in PHPHow to Convert XML to JSON in PHP
Converting XML files to JSON is a good practice for providing easy manipulation and preparing service responses. You can accomplish this efficiently with just three lines of code.
Jeremy's profile picture JeremyView
In these interests: phpwebdevjavascript
Jeremy's profile pictureViewphpwebdevjavascript
People also read:
Part of being a web developer is testing things that will inevitably break in insane and unexpected ways in Internet Explorer.
As a developer, I’ve customized my bash prompt to always show the current git branch if I’m in an initialized git repository. This is convenient, but it can make for a very long bash prompt.
This guide will show you how to set up a LAMP environment in macOS and OS X.
I’ll spoil it – “printenv” is your friend. This guide will show a few examples of how to use it.
Surprisingly, normal YouTube embeds are not automatically sized to the browser window as it is resized.
I started programming in PHP, so by default I would use apache even when I just wanted to test basic HTML files. As I was learning Python, I discovered a great HTTP request handler.
As a web developer, I stare at Chrome’s developer tools — particularly the Elements and Console tabs — all day long. As a result, all light and no dark makes Zach’s eyes dull and tired.
You can echo the current MODX resource’s full page URL without the use of a snippet call.
Renaming a MySQL table is very simple, but sometimes the syntax is hard to remember.
Part of being a web developer is testing things that will inevitably break in insane and unexpected ways in Internet Explorer.
As a developer, I’ve customized my bash prompt to always show the current git branch if I’m in an initialized git repository. This is convenient, but it can make for a very long bash prompt.
This guide will show you how to set up a LAMP environment in macOS and OS X.
I’ll spoil it – “printenv” is your friend. This guide will show a few examples of how to use it.
How to Run Internet Explorer on Mac (For Free)
Adjust the Length of Your Bash Prompt on the Fly
How to Set Up a LAMP server in macOS
How to Print Environment Variables in Linux/Unix
GitHub Pull Requests: How and Why to Use Pull Requests
Surprisingly, normal YouTube embeds are not automatically sized to the browser window as it is resized.
I started programming in PHP, so by default I would use apache even when I just wanted to test basic HTML files. As I was learning Python, I discovered a great HTTP request handler.
As a web developer, I stare at Chrome’s developer tools — particularly the Elements and Console tabs — all day long. As a result, all light and no dark makes Zach’s eyes dull and tired.
You can echo the current MODX resource’s full page URL without the use of a snippet call.
Renaming a MySQL table is very simple, but sometimes the syntax is hard to remember.
Make YouTube Video Embeds Responsive Using Pure HTML and CSS
Using Python’s simple HTTP server
Tell Chrome Developer Tools to Use a Dark Theme
How to Print the Current Page URL in MODX
Rename a MySQL table
Posted in these interests:
webdevwebdev
webdev
PRIMARY
All things web development.
webdevwebdev
webdev
PRIMARY
All things web development.
PRIMARY
ExploreExploreExplore
Discuss this guide:
We’re hiring!
Are you a passionate writer? We want to hear from you!
We’re hiring!
Are you a passionate writer? We want to hear from you!
View openings

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.

Donate
Updated: February 27th, 2020
security
PRIMARY
23 guides
Calling all writers!

We’re hiring. Write for Howchoo

security
PRIMARY
23 guides
Calling all writers!

We’re hiring. Write for Howchoo

Nate's profile pictureNate
Joined in 2015
Kerbal Space Industrialist and Walking Beard
Stop the random chiming and install a new battery in minutes.
Zach's profile picture ZachView
In these interests: homesecurity
In these interests: lastpasssecurity
In these interests: cryptographysecurity
Most people use the same password for every account they have on the Internet. This is highly insecure for obvious reasons.
Public key encryption is also known as asymmetric because it requires two different keys – a public key and a private key. Encryption requires the public key, and decryption requires the private key.
Learn how to connect to your work or private VPN on Windows.
Don’t want to delete your passwords one at a time? No problem.
Tired of Zoom’s security issues? Get rid of it.
Create your own Raspberry Pi OpenVPN server.
Protect your investment. Lock it up.
Improve your chances of recovering your bike if it gets stolen!
Make sure your Pi is fresh.
If you need to keep your work secure, it’s important to keep your computer locked whenever it’s unattended.
security
PRIMARY
Updated: February 27th, 2020
django
PRIMARY
6 guides
python
67 guides
howchoo
2 guides
Calling all writers!

We’re hiring. Write for Howchoo

django
PRIMARY
6 guides
python
67 guides
howchoo
2 guides
Calling all writers!

We’re hiring. Write for Howchoo

Tyler's profile pictureTyler
Joined in 2015
Software Engineer and creator of howchoo.
By default, Django migrations are run only once. But sometimes we need to rerun a Django migration, especially when testing custom migrations during development.
Tyler's profile picture TylerView
In these interests: pythondjango
Django forms are an excellent way to manage user input in a Django application. Once you learn how to wield them, you’ll never go back to manually coding a form tag and handling the response.
Dayne's profile picture DayneView
In these interests: djangopython
Today, I stumbled upon a use case where I needed to have a querysets that had objects from different models. Django has a neat “contenttypes framework” which is a good way to achieve this.
Ashley's profile picture AshleyView
In these interests: djangopython
Get the latest edition of Python in just minutes.
Run Python scripts in command prompt without typing the whole path.
You can run any Python script in a command-line interface.
Got a Python question? We’ve probably answered it here.
Not sure what version of Python you’re running? Time to find out!
Python is a very popular programming language for data visualization.
In Python, comprehensions are a useful construct that allows us to create new sequences in a very concise way.
Slack has become one of the most important tools for communication in many companies, mine included.
Use IFTTT to create your own Bitcoin price alert system
If you’re familiar with Python’s keyword-only arguments, then you’ve probably wondered why the same constraint doesn’t exist for positional arguments. This changes with Python 3.
django
PRIMARY
Python is howchoo’s favorite programming language. We believe python promotes the most organized and performant codebase possible. We also love Django so, naturally, we love Python.
The official interest for howchoo.com news!

Automated Coffee Grinder Uses Raspberry Pi To Create Perfect Cup

Raspberry Pi Coffee GrinderRaspberry Pi Coffee Grinder
Put the calculator away, we’re having Pi for coffee.
Ash Ash (295)
0
Updated: February 27th, 2020

User lateant on Reddit is making mornings a little bit easier with this awesome Raspberry Pi automated coffee grinder. The project features a Pi-controlled coffee grinder that grinds the perfect amount of coffee beans at the push of a button. What is the perfect amount? You decide what that means using the custom LCD interface.

You can buy automated coffee grinders that measure your coffee grinds for you, but this was a more affordable (and interesting) DIY option. Lateant provides an overview of the construction on the full Reddit thread.

Posted in these interests:

Howchoo News
news
PRIMARY
39 guides
pi
213 guides
coffee
17 guides
Raspberry Pi Coffee Grinder LCDRaspberry Pi Coffee Grinder LCD
 Photo: Lateant

Using a Raspberry Pi 3, the weight is detected from the coffee grinder using an HX711 load cell amplifier. Lateant is a programmer by profession and developed a python server to control the coffee grinder with a custom user interface. The UI was created using Vue.js and interfaces with the load cell using a library from Github.

According to Lateant, the coffee to water ratio is set using the LCD interface. The Raspberry Pi calculates the precise amount of coffee needed to create the cup defined in the settings. The Pi signals an outlet power relay (by Adafruit) to turn off the grinder once the desired weight has been detected by the load cell.

We really appreciate a good cup of coffee here at howchoo. Any opportunity to streamline the experience with a Raspberry Pi is definitely a plus in our book. Be sure to check out the full thread on Reddit for more details and updates from Lateant.

We’re hiring!
Are you a passionate writer? We want to hear from you!

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.

Zach's profile pictureZach
Joined in 2015
Web developer, designer, tinkerer, and beer enthusiast living in Tampa, Florida.
Related to this guide:
Ender 3 upgrades and modsEnder 3 upgrades and mods
Improve your overall printing experience—and quality.
Zach's profile picture ZachView
In these interests: ender33dprinting
Ender 3 MeanWell PSU upgradeEnder 3 MeanWell PSU upgrade
An inexpensive upgrade to make your Ender 3 quieter and safer
Zach's profile picture ZachView
In these interests: 3dprintingender3
Ender 3 FAQEnder 3 FAQ
The most common Creality Ender 3 questions answered!
Ash's profile picture AshView
In these interests: ender33dprinting
People also read:
Ender 3 Board Upgrade
Make your Ender 3 quieter and improve your prints with this board upgrade.
Ender 3 spring upgrade
An inexpensive upgrade that greatly reduces bed leveling frequency!
Marlin firmware on the Ender 3
Update your 3D printer’s firmware and add thermal runaway protection.
Make Money 3D Printing
You can’t print money, but you can make money printing.
See how 3D printer manufacturer, Prusa Research, is helping meet the demand for hand sanitizer by repurposing equipment.
Prusa MK3S 3D printer review
An incredible desktop 3D printer for a great price
Posted in these interests:
Ender 3 3D printerEnder 3 3D printer
ender3
PRIMARY
An interest for owners of the Ender 3, an amazing budget 3D printer from Creality. Have a specific question? Be sure to check out our Ender 3 FAQ.
3dprinting3dprinting
Think of it like a 2D printer, but with an extra dimension.
octoprintoctoprint
Discover awesome OctoPrint guides and projects and control your 3D printer remotely! Just getting started? Learn how to install OctoPrint.
Discuss this guide:
We’re hiring!
Are you a passionate writer or editor? We want to hear from you!
We’re hiring!
Are you a passionate writer or editor? We want to hear from you!

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.

Want to support Howchoo? When you buy a tool or material through one of our Amazon links, we earn a small commission as an Amazon Associate.