Showing posts with label Arduino. Show all posts
Showing posts with label Arduino. Show all posts

Thursday, January 21, 2021

The Raspberry Pi Pico is officially released

The Raspberry Pi Pico is the first microcontroller from the Pi foundation and can be programmed in C or MicroPython
Source: Raspberry Pi

As many already forecasted, it's finally official. The Raspberry Pi foundation enters the microcontrollers segment with its new Raspberry Pi Pico offered on a very-affordable U$4.00.

About Raspberry Pi Pico

Raspberry Pi Pico is designed as a low-cost breakout board for RP2040. It pairs RP2040 with 2MB of Flash memory, and a power supply chip supporting input voltages from 1.8-5.5V allowing it to be powered from a variety of sources, including two or three AA cells in series, or a single lithium-ion cell.

Source: Raspberry Pi

What it includes

Other details of the Raspberry Pi Pico include:

  • a Dual-core Cortex-M0+ processor
  • 2MB Flash
  • 264K SRAM
  • USB 1.1 with device and host support
  • programmable I/O
  • 26 multifunction GPIO pins
  • 3 analogue inputs
  • temperature sensor
  • Operating temperature varying between -20°C to +85°C
  • a single push button, which can be used to enter USB mass-storage mode at boot time 
  • a general input, and a single LED exposing 26 of the 30 GPIO pins on RP2040, including three of the four analogue inputs, to 0.1”-pitch pads; 
  • solder headers allowing to solder Pico directly to a carrier board

Were to buy

The Pico is available now on the Raspberry Pi Store today online or via the trusted reseller network. But, you can also get a Pico with the purchase of a HackSpace magazine comes with a free Pico, as well as plenty of guides and tutorials to help you get started with it.

Source: Raspberry Pi

Documentation

The organization is also releasing an official guide. You can find complete documentation for Raspberry Pi Pico, and for RP2040, its SDK and toolchain, here. The book is ideal for beginners who are starting with microcontrollers.

Get Started with Raspberry Pi Pico book

The book is also available for free on this link and on it, you will learn how to:

  • Set up your Raspberry Pi Pico and start using it
  • Start writing programs using MicroPython
  • Control and sense electronic components
  • Discover how to use Pico’s unique Programmable IO
  • Make a reaction game, burglar alarm, temperature gauge, and many more

MicroPython

Differently from Arduino, the Raspberry Pi Pico can be programmed with C or MicroPython, a lightweight implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller. MicroPython is a full Python compiler and runtime that runs on the microcontroller's hardware.

Source

See Also

Monday, October 5, 2020

Why Linux is perfect for web developers

Linux runs the cloud, the Internet and super-computers. Learn why web developers love Linux too!
Photo by Ilya Pavlov on Unsplash

Following up on our previous discussion on why use Linux, and learned why Linux is ideal for development. Today, let's focus on why Linux is a fantastic system for web developers.

If you recall our previous post, we started alluding to this StackOverflow pool, where Linux was cited as the most loved technology by developers at 83%. There are multiple reasons for that. Let's learn about them next.

Linux is free

Obviously, one of the main reasons to run Linux is because Linux is free. As poverty (unfortunately) grows around the world, it's important to minimize costs for users and companies. Since prices for Windows lincenses are really high and utilizing MacOS, almost impeditive for most of us, being free allows Linux to reach a much wider audience including independent developers, small organizations taught and used in schools, universities and research labs at a really low cost.

Robust package management

While it's true that MacOS users can use brew to enhance their terminal experience, and even Microsoft is building Windows a package manager (despite 20years late 😌) they are nothing more than a poor adaptation of Linux's built-in package mangers. It's on Linux where the real experience shines since the package manager integrates into the update system which integrates into the shell. 

Quicker access to modern tools

You'll get quicker access to the latest releases of your favorite programming language on Linux too. Linux users frequently get earlier access to Golang, Rust, NodeJS - just to name some - without resorting to building them from scratch.

Streamlined workflow

Beyond getting access to the latest tools, developing on Linux will be a much more pleasant experience to to the nature of the system: an awesome and powerful shell (Bash on most cases) accessible via a powerful window manager (GNOME or KDE) being backed by a super solid system with an extensible list of packages available to install at your fingertips.

Awesome command line tooling

Developers love the command line. Using the command line is key to automate your tasks and to opmitze tasks, resulting in huge productivity gains. Today, even tasks that are commonly UI-based such as browsing the web, managing files and even watching YouTube. Web developers can gain signifiant productivity if they embrace this workflow which's the recommended way to building new web apps quickly with ReactJS, VueJS, Angular. Popular tools and frameworks such as WordPress and even proprietary tools such as SendGrid or HubSpot have their own CLIs.

Plus, tools such as tmux or i3, allow you to multitask without sacrificing your productivity.

On the left man git, on the right: vim on top and htop on bottom

Streamlined cloud and container integration

As Red Hat usually says, containers are Linux. Creating your web app today requires probably a lot of dependencies, some of which (a database server, for example) may not be trivial to install - or may use a lot of your resources. Containers are today the way to streamline that process as you can build complex applications with tools such as DockerDocker Compose and Minikube.

Dotfiles

Once you get comfortable with the shell, you'll probably want to customize it to your needs. Developers realize that they really make them productive. Since it's common days to work on multiple machines, an elegant solution to that problem is to host your dotfiles in a private or public repository like GitHub so you can quickly restore your favorite settings in any of your development machines.

Integrated Git

Git is an essential requirement today. On Linux git is an integral part of the workflow (of course, it was invented by Linux Torvalds, Linux creator to facilitate the complex integration workflow of the Linux kernel). Using git in Linux makes everything simpler as it integrates into your command line and shell.

A powerful shell

Bash (and siblings such as ZSH and Fish) is a really powerful tool in Linux. Developers who know it can leverage it to enhance their workflows. For example, you could map the following three commands:
  • git add .
  • git commit -m <your-message>
  • git push
As one operation, the following gcp command:
gcp(){
        msg="More updates"
        if [ -n "$1" ]
        then
                msg=$1
        fi
        git add . && git commit -m "$msg" && git push;
}
So that using it, would be:
gcp "Some commit message"

Oh, and simply typing gcp would do all the above using "More updates" as the git commit message. Use but don't abuse 😊.

Linux is reliable

Writing software requires a a reliable system. As you probably know, Windows (and even Macs) are not as reliable as their companies tell advertise. Your Linux system will rarely crash. You'll also realize that Linux tools will be more stable than their Windows or Mac equivalents.
Remember this?

Excellent Documentation

Developers have to frequently access the documentation. Linux comes the man tool allowing you access to the documentation you need available regardless of your exposure to to the internet. Just run man <cmd> to view documentation for the software you need:

Good for old hardware

Linux is also excellent for old hardware. For example, you can run lighter tools that utilize less resources. Most distributions (such as Fedora LXDE shown below) release alternative lightweight versions optimized for lower-end hardware.

Updated Software

Another reason why developers love Linux is because (1) they're exposed to the cutting edge software and (2) they'll get frequent updates/upgrades. Regarding the latter, updates on Linux are not only reliable but are more frequent than anything you'd get on those systems. The system will be updated multiple times a week and a new version can be available every 6 months depending on the distribution with long-term releases available every 2 years.

Outstanding software availability

Not only installing software on Linux is simple  Every Linux distribution provides a tool to manage software with lots (literally, thousands) of apps. Visual Studio Code, Slack? You'll find on Linux. You'll also find enterprise software like Zoom and Microsoft Teams if you need to talk to your clients.
Source: Slack Downloads

Networking tools

Web development is all about networking. Linux comes with powerful networking tools, some of which you probably heard of. Samba, nmap, whois, nslookup, ping, curl, ssh, among others are natively available. There's just so much here and once you learn these tools you probably wouldn't be able to work without them.

Cloud-native tools

Linux comes with lots of tools to use in cloud development. The most commons are Docker (and its sibbling podman) and Kubernetes but it also has easily installable access to tooling for Azure, AWS, GCP and devops/automation tooling such as Ansible, Helm, Vagrant and more.

Support from a huge community

Linux users are spread around communities over the internet. Being on Reddit or on forums of your specific distribution, developers frequently share their thoughts with similarly minded folks around the web. This helps them share knowledge, news, learn new things and obviously, help others.

Linux is highly customizeable

Another reason web developers can benefit from using Linux is due to its extensive customization. With the right instructions they can customize their system as they wish resulting in a quicker setup or, in case containers aren't sufficient, modelling their systems as per the customer's requirements.

 Some of the things you can tweak in Linux are:

  • Desktop Managers: don't like GNOME or KDE? There's XFCE, LXQT, LXDE, etc for you.
  • Login Managers: how you login to your system.
  • Desktop themes: configure themes, colors, etc.
  • Fonts: customize your fonts, sizes, etc.
  • Shell: shell is the application that runs on your terminal and also can be changed or customized.
  • Systems and Services: your system will have an endless list of services to choose from.
  • Kernel: even the kernel, the main process of your system can be customized. 

Enterprise-Grade Security

Linux comes with built-in enterprise security tooling. Beyond that, curated repositories Linux users are used to having repositories curated by the community and available for them. That means less viruses, no adware, unsafe or untrusted software running on your machine.

Conclusion

On this post we understood a little more why developers use and love Linux. You too could benefit from using it today! We hope you learned something new today and are excited to try out Linux and use it as your main system as we do!

See Also

Monday, September 28, 2020

Why Developers love Linux

Linux runs the cloud, the Internet and super-computers. Learn why developers use and love Linux too.
Photo by Arget on Unsplash

Following up on our previous discussion on why use Linux, today we will discuss why Linux is the favorite operating system of developers, the folks who build the software you use. To get started, let's back up our assumption using StackOverflow's own insights, where it shows Linux is the most loved technology by developers:

Linux is free

Obviously, one of the main reasons to run Linux is because Linux is free. As poverty (unfortunately) grows around the world, it's important to minimize costs for users and companies. Since prices for Windows licenses are really high and utilizing MacOS, almost impeditive for half of the world, being free allows Linux to reach a wider audience including independent developers, small organizations, schools, universities and research labs.

Linux is (way) more secure

Linux is also (way) more secure than Macs and Windows. That's mainly due to its:
  • open-source code: due to its open nature, researches and hackers frequently inspect and crack the code. When issues are found, they're reported and fixed by community.
  • open collaboration model: open-source code also fosters open collaborations. Developers from all over the world will frequently push fixes to the software you use making it better and more secure.
  • enterprise-grade software: tools like SELinux that are run on mission critical environments run on your machine too.
  • different permission model: Linux users run on a low permission level making it very improbable that even if you're hit by a virus, you would infect the machine.
  • frequent updates: your system will always be updated getting the latest security, software and kernel fixes. These are usually the holes crackers explore to target you.
  • smaller exposure to viruses: yes, Linux has viruses but on an infinite smaller proportion than Windows users get. Linux also has anti-viruses if you need too.
  • curated repositories: the easiest way to install software on your Linux is by using its own repositories. These repositories are curated and are less prone to have viruses.

Awesome Command Line

Developers love the command line. Using the command line is key to automate your tasks and to opmitze tasks, resulting in huge productivity gains. Today, even tasks that are commonly UI-based such as browsing the web, managing files and even watching YouTube can be accomplished from the terminal. Plus, tools such as tmux or i3, allow you to multitask without sacrificing your productivity.
On the left man git, on the right: vim on top and htop on bottom

Linux is reliable

Writing software requires a a reliable system. As you probably know, Windows (and even Macs) are not as reliable as their companies tell advertise. Your Linux system will rarely crash. You'll also realize that Linux tools will be more stable than their Windows or Mac equivalents.
Add caption

Excellent Documentation

Developers have to frequently access the documentation. Linux comes the man tool allowing you access to the documentation you need available regardless of your exposure to to the internet. Just run man <cmd> to view documentation for the software you need:

Good for old hardware

Linux is also excellent for old hardware. For example, you can run lighter tools that utilize less resources. Most distributions (such as Fedora LXDE shown below) release alternative lightweight versions optimized for lower-end hardware.

Updated Software

Another reason why developers love Linux is because (1) they're exposed to the cutting edge software and (2) they'll get frequent updates/upgrades. Regarding the latter, updates on Linux are not only reliable but are more frequent than anything you'd get on those systems. The system will be updated multiple times a week and a new version can be available every 6 months depending on the distribution with long-term releases available every 2 years.

Streamlined cloud and container integration

As Red Hat usually says, containers are Linux. Creating your application today requires probably a lot of dependencies, some of which (a database server, for example) may not be trivial to install - or may use a lot of your resources. Containers are today the way to streamline that process as you can build complex applications with tools such as Docker, Docker Compose and Minikube.

Dotfiles

Once you get comfortable with the shell, you'll probably want to customize it to your needs. Developers realize that they really make them productive. Since it's common days to work on multiple machines, an elegant solution is to hosting your dotfiles in a private or public repository like GitHub so you can quickly restore your favorite settings in any of your development machines.

Integrated Git

Git is an essential requirement today. On Linux git is an integral part of the workflow (of course, it was invented by Linux Torvalds, Linux creator to facilitate the complex integration workflow of the Linux kernel). Using git in Linux makes everything simpler as it integrates into your command line and shell.

A powerful shell

Bash (and siblings such as ZSH and Fish) is a really powerful tool in Linux. Developers who know it can leverage it to enhance their workflows. For example, you could map the following three commands:

  • git add .
  • git commit -m <your-message>
  • git push
As one operation, the gcp command listed below:
gcp(){
        msg="More updates"
        if [ -n "$1" ]
        then
                msg=$1
        fi
        git add . && git commit -m "$msg" && git push;
}
So that using it, would be:
gcp "Some commit message"

Oh, and simply typing gcp would do all the above using "More updates" as the git commit message. Use but don't abuse 😊.

Outstanding software availability

Not only installing software on Linux is simple but Linux distributions come with thousands of applications to choose from. Need communication software? Linux has Slack, Skype, Zoom and even Microsoft Teams. Need a modern development environment? Try Visual Studio Code.
Source: Slack Downloads

Powerful build tooling

Its really simple to install the build tools you'll need in Linux. GCC, Make, glibc, Gdb, git and many other tools needed on their development workflows are available either out of the box or from their systems' package manager.

Powerful networking tooling

Linux is perfect for networking. And it offers lots, lots, and lots of tools in the space. Some of them you probably heard of are Samba, nmap, whois, nslookup, ping, curl, ssh, among others. There's just so much here and once you learn these tools you probably wouldn't be able to work without them.

Cloud-native tools

Linux comes with lots of tools to use in cloud development. The most commons are Docker (and its sibling podman) and Kubernetes but it also makes it very simple to install tooling for Azure, AWS, GCP and devops/automation tooling such as Ansible, Helm, Vagrant and others.

Support from a huge community

Linux users are spread around communities over the internet. Being on Reddit or on forums of your specific distribution, developers frequently share their thoughts with similarly minded folks around the web. This helps them share knowledge, news, learn new things and obviously, help others.Curated repositories Linux users are used to having repositories curated by the community and available for them. That means no viruses, adware, unsafe or untrusted software.

Linux is highly customizable

Another reason developers use Linux is due to its extensive customization. Here are some of the things that can be customized on Linux:

  • Desktop Managers: don't like GNOME or KDE? There's XFCE, LXQT, LXDE, etc for you.
  • Login Managers: how you login to your system.
  • Desktop themes: configure themes, colors, etc.
  • Fonts: customize your fonts, sizes, etc.
  • Shell: shell is the application that runs on your terminal and also can be changed or customized.
  • Systems and Services: your system will have an endless list of services to choose from.
  • Kernel: even the kernel, the main process of your system can be customized.

Powerful hardware integrations

Into IoT, Rasperry Pi, Arduino? Due to the open nature of these platforms and to the vast documentation available, developers have access to an outstanding amount of technical information on how everything works. And Linux is the best system to do so.

Conclusion

On this post we understood a little more why developers use and love Linux. You too could benefit from using it today! We hope you learned something new today and are excited to try out Linux and use it as your main system as we do!

See Also

Monday, September 21, 2020

Why use Linux

Linux runs the cloud, the Internet and super-computers. Learn why you should run it too.
Photo by Ian Parker on Unsplash

Linux runs the cloud, the Internet and supercomputers. Turns out that Linux could be a very solid choice for your computer as well regardless of how old it is and learn how Linux is a good fit for anyone, regardless of their technical skills.

Linux is free

Linux is free. And this is a very important reason to use Linux. As poverty in the world grows and more and more people use digital devices in emerging markets, it's important to keep prices low so these folks can also have access to newer technologies. Prices are very high for Windows and impeditive for Mac for half the world. Being free allows Linux to reach those markets saving you and/or your company a lot of money throughout the years.

Linux is more secure

Linux is way more secure than Macs and Windows. That's mainly due to:
  • open-source code: due to its open nature, researches and hackers frequently inspect and crack the code. When issues are found, they're reported and fixed by community.
  • open collaboration: open-source code also fosters open collaborations. Developers from all over the world will frequently push fixes to the software you use making it better and more secure.
  • enterprise-grade software: tools like SELinux and AppArmor that protect and run on mission critical environments run on your machine too.
  • a different permission model: Linux users run on a low permission level making it very improbable that even if you're hit by a virus, you would infect the machine.
  • frequent updates: your system will always be updated getting the latest security, software and kernel fixes. These are usually the holes crackers explore to target you.
  • less viruses: yes, Linux has viruses but on an infinite smaller proportion than Windows users get. Linux also has anti-viruses if you need too.
  • curated repositories: the easiest way to install software on your Linux is by using its own repositories. These repositories are curated and are less prone to have viruses.

Linux will feel familiar

Linux will feel familiar for Windows and Mac users. Most distributions will either use GNOME and KDE, the most popular desktop environments that will contain applications for everything that you expect: file managers, contacts, calendars, email, communication tools, etc. For example, GNOME, the standard for most distributions looks like this:
While KDE looks like this:

You'll continue using the tools you love

Linux also supports your favorite browsers such as Google Chrome, Brave and Firefox and runs your cloud services such as Netflix and Spotify without issues. Visual Studio Code, Slack? You'll find on Linux. Even Microsoft releases tools for Linux these days.
Source: Slack Downloads

From super-computers to your machine

You won't lose a thing by using Linux, to the contrary. Linux is the most powerful system for your computer on the market. Linux runs the cloud, the Internet and super-computers. For some time already all of the world's super-computers run Linux, not only because Linux is better (and it is!) but because the engineers can configure the system as they wish as they have access to the code. Why wouldn't it run on your computer?

Linux is reliable

Linux rarely (really, rarely!) crashes. Linux is also way more stable than Windows and Mac. Even the tools you use on those systems are more stable on Linux.
Remember this? You'll probably not miss those days

Good for old hardware

Linux is also excellent for old hardware as it can be configured with lighter tools that utilize less resources. Most distributions (such as Fedora LXDE shown below) release alternative lightweight versions so you'll just need a simple install to get these systems optimized for lower-end hardware.

Reliable updates

We've seen a lot of mistakes recently made by either Microsoft and Apple with their Windows and Mac operating systems. Updates on Linux are not only reliable but are more frequent than anything you'd get on those systems. Your system's usually updated once or twice a week, every 6 months for a minor release and every 2 years for long-term supported releases.

Linux is not complicated

Despite what you saw elsewhere, setting up a Linux system at home is no longer a complex thing to do. Gone are the days you had to specifically configure your disk, manage partitions, know networking details or which kernel module you had to load to make your WIFI card work. Today, it simply works and most of the tools you'll need are four clicks away.

Linux is not difficult to install

Another misconception is that Linux is difficult to install. Today tools such as the below guide you trough a visual installation process making everything simpler:

Linux is beautiful

Linux is beautiful. As we saw, the main distributions today come with GNOME and KDE, full-featured desktop environments that allow you configure everything. But, in case you want to go the extra mile, you'll also encounter communities on the internet dedicated to even more customization.
Source: Pinterest

Installing software is simple

Installing software on Linux is simple. Every Linux distribution provides a tool to manage software with lots (literally, thousands) of apps. On GNOME, the Software tool looks like this:
Source: Gnome.org

A huge community to help

Linux users are spread around communities over the internet. Being on Reddit or on forums of your specific distribution, you'll end up find a lot of help on the internet.

Excellent Documentation

You'll realize that the tools you'll use have a lot of documentation. Plus, there are hundreds of sites you'll be able to use as a reference for your questions. No access to the internet? Linux ships with the man tool providing you fantastic documentation. Just run man <cmd> to view documentation for the software you need:

Linux is customizable

Another big advantage of Linux is that it's customizable. I'm not talking about the wallpaper or desktop theme. I'm talking everything. Here's some of the things you can change or customize:
  • Desktop Managers: don't like GNOME or KDE? There's XFCE, LXQT, LXDE, etc for you.
  • Login Managers: how you login to your system.
  • Desktop themes: configure themes, colors, etc.
  • Fonts: customize your fonts, sizes, etc.
  • Shell: shell is the application that runs on your terminal and also can be changed or customized.
  • Systems and Services: your system will have an endless list of services to choose from.
  • Kernel: even the kernel, the main process of your system can be customized.

Curated repositories

Linux users are used to having repositories curated by the community and available for them. That means no viruses, adware, unsafe or untrusted software.

Games

Linux run games too! Emulators, custom games and thousands of games are also available on Steam for Linux. PCGamer recently did an in-depth review and they also concluded that's surprisingly easy to switch a gaming PC to Linux today. Not only is Linux easier than ever to use, but it's totally viable for gaming in 2020."

Office Tools

There are many alternatives to Microsoft's Office suite on Linux including LibreOffice, OpenOffice, WPS and Calligra Suite. You'll probably not miss Word and Excel.
Source: linuxuprising.com

Frequent Updates

If you're using a major distribution such as Ubuntu, Fedora, etc, you'll probably get smaller updates everyday or so, minor releases every 6 months and major releases every 2 years. Your system will be constantly updated. For reference, the upgrade cadence for Windows and Macs average 4 years.

Awesome Terminal

You can do pretty much everything from the terminal: browse the web, manage your files, listen to the radio, send a tweet, read Reddit, watch YouTube. You can also use tools such as tmux and multitask on the terminal.
On the left man git, on the right: vim on top and htop on bottom

Linux is everywhere

If you accessed this page, you probably used hundreds of services, tools and systems running Linux. routers, switches, firewalls, servers, clouds, web servers, the internet runs on Linux. Running Linux at home means that you'll won't have many issues running the latest tools.

Your TV, smartphone, watches, Teslas, IoT devices (fridge, microwave), Raspberry Pis, nuclear plants and everything runs on Linux. And the trend is that going forward, more companies will use it into their products.

Changed the world? Was probably made on Linux

No matter which technology you use, it probably was developed on Linux. Clouds, web servers, databases, containers, firewalls, VPNs, databases. Most of the tools that changed the world incubated on the GNU/Linux operating system. Want to use reliable and cutting-edge technology? Run Linux.

Huge growth

The Linux marketshare just keeps growing. Today the cloud runs Linux. Learning Linux will get you in touch with the technologies that the world's using. Today, it's estimated that the number of developers running Linux is equal or bigger than MacOS users at 25%.

Linux is fantastic for development

There's a big difference between a developer who knows their tools and a developer who not only knows their tools but how they work. Using Linux will expose you to a vast resource of technical information making you know how things work behind the scenes. Plus, the more confident you get with the terminal, the less you'll rely on heavier tools such as IDEs making you a much better and more valuable developer.

Plus, developers love Linux! According to StackOverflow, Linux is the most loved technology by developers:
We'll address more how developers can benefit from using Linux in a future post.

You will learn how technology works

Due to the vast documentation available and due to the open-source nature of the tools you'll use, you have access to an outstanding amount of technical information on how everything works. That will help you not only learn more about your tools but also to learn how your computer works.

Perfect for hardware-lovers

Into IoT, Rasperry Pi, Arduino? Using this tools will teach you a lot about Linux itself but also about how your devices function and how they interact with your system. You'll also have access to a powerful documentation about how to setup and configure your devices.

Perfect for network engineers

If you want, learning networking on Linux is fun and a rewarding experience. As previously said, Linux runs the Internet today and its robust and reliable networking capabilities are to be given credit for allowing you to watch Netflix, YouTube or even FaceTiming Zooming with your friends. Want to work with networks? Use Linux.

Conclusion

On this post we discussed why use Linux and how you too could benefit from using it today. We hope you learned something today and are excited to try Linux.

See Also

Featured Article

Free Software, Open-Source, Libre, FOSS and FLOSS: what are the differences?

Are these just different names for the same thing? Or there are differences? Photo by Romain Vignes on Unsplash We have been discussing...

Popular this Week