Brief: Bagisto is a relatively new open-source eCommerce platform built on Laravel. Let’s see what it has got to offer.
Bagisto: Free & Open Source eCommerce Platform Built On Laravel
I have discussed some of the best open-source eCommerce platforms to build shopping websites in the past. Recently, I came to know about a new platform called Bagisto. It’s built on Laravel, which is a free and open-source PHP framework.
On the first look, it’s impressive to find an open-source eCommerce solution that lets you craft beautiful shopping experiences. Hence, I decided to give a quick look on what it offers and if it’s something that you can try.
Features of Bagisto
Of course, just like any other eCommerce solutions, you should expect the essential options available to build a basic online shopping website. In this case, I think it ticks all the boxes for the basic requirements while also providing some useful/advanced options.
Ability to create a marketplace to allow other vendors to sell their products
Multi-store inventory to easily manage the stock you have in a physical retail store and a warehouse depending on your business
Search Engine Optimization options for your products
Access control level to prevent unnecessary access to agents, shopping partners, or an admin.
Detailed insights report for effective marketing campaigns and improvements
Convert your web experience into a Progressive Web App for mobile phones
Store pick up options (for businesses with physical stores)
Multi-currency support
Multi-language support
Tax calculation support
Several extensions to support mobile number login, Stripe payment gateway, dropshipping, Point of Sale and other options to extend the functionality
Getting Started with Bagisto
To get started using Bagisto, you need to first go through the documentation looking at the server requirements.
You can choose to deploy it locally for a test run or install it on your server after ensuring that it meets the minimum requirements. In either case, you can also take a look at their live demo to explore it.
If you’re going to self-host it, you should note that Instead of creating a standalone Bagisto image, they are using a hybrid method of running composer on an Apache PHP image.
So, yes, you can deploy it via Docker as well. You will also find their GitHub page for docker implementation useful with the necessary instructions.
If you’re curious to learn more, you can check out their recent video on the latest release (at the time of writing this):
Depending on what you require, you may go ahead and try some of the options that we mentioned in our list of open-source eCommerce platforms. Bagisto seems to be a good enough solution for most of the eCommerce businesses with essential and advanced options available.
What do you prefer to use to create your own online shopping website? Feel free to let me know your thoughts in the comments.
Python based application named Present lets you create markdown and YML based slides that you can present in your college or company and amuse people in the true geek style.
I have made a video showing what it would look like to present something in the Linux terminal with Present.
Play a simulation of code and output with codio YML files
Installing Present on Linux
Present is a Python based tool and you can use PIP to install it. You should make sure to install Pip on Ubuntu with this command:
sudo apt install python3-pip
If you are using some other distributions, please check your package manager to install PIP3.
Once you have PIP installed, you can install Present system wide in this manner:
sudo pip3 install present
You may also install it for only the current user but then you’ll also have to add ~/.local/bin to your PATH.
Using Present to create and present slides in Linux terminal
Since Present utilizes markdown syntax, you should be aware of it to create your own slides. Using a markdown editor will be helpful here.
Present needs a markdown file to read and play the slides. You may download this sample slide but you need to download the embed image separately and put it inside image folder.
Separate slides using — in your markdown file.
Use markdown syntax for adding text to the slides.
Add images with this syntax: ![RC] (images/name.png).
Change slide colors by adding syntax like <!– fg=white bg=red –>.
Add a slide with effects using syntax like <!– effect=fireworks –>.
Use codio syntax to add a code running simulation.
Quit the presentation using q and control the slides with left/right arrow or PgUp/Down keys.
Keep in mind that resizing the terminal window while running the presentation will mess things up and so does pressing enter key.
Conclusion
If you are familiar with Markdown and the terminal, using Present won’t be difficult for you.
You cannot compare it to regular presentation slides made with Impress, MS Office etc but it is a cool tool to occasionally use it. If you are a computer science/networking student or work as a developer or sysadmin, your colleagues will surely find this amusing.
Brief: Drawing is a basic image editor like Microsoft Paint. With this open source application, you can draw arrows, lines, geometrical shapes, add colors and other stuff you expect to do in a regular drawing application.
Drawing: A simple drawing application for Linux
For people introduced to computers with Windows XP (or earlier version), MS Paint was an amusing application from sketching random stuff. In a world dominated with Photoshop and GIMP, the paint applications still hold some relevance.
The app is unsurprisingly called Drawing and you can use it on both Linux desktop and Linux smartphones.
Features of Drawing app
Drawing has all the features you expect from a drawing application. You can
Create new drawings from scratch
Edit an existing image in PNG, JPEG or BMP file
Add geometrical shapes, lines, arrows etc
Dashed
Use pencil tool for free-hand drawing
Use curve and shape tool
Crop images
Scale images to different pixel size
Add text
Select part of image (rectangle, freehand and color selection)
Rotate images
Add images copied to clipboard
Eraser, Highlighter, Paint, Color Selection, Color Picker tools are available in preferences
Unlimited undo
Filters to add blur, pixelisation, transparency etc
My experience with Drawing
The application is new and has a decent user interface. It comes with all the basic features you expect to find in a standard paint app.
It has some additional tools like color selection and color picker but it might be confusing to use them. There is no documentation available to describe the use of these tools to you are on your own here.
The experience is smooth and I feel that this tool has good potential to replace Shutter as image editing tool (yes, I use Shutter for editing screenshots).
The thing that I find most bothersome is that it is not possible to edit/modify an element after adding it. You have the undo and redo options but if you want to modify a text you added 12 steps back, you’ll have to redo all the steps. This is something the developer may look into it in the future releases.
Installing Drawing on Linux
This is a Linux exclusive app. It is also available for Linux-based smartphones like PinePhone.
There are various ways you can install Drawing app. It is available in the repositories of many major Linux distributions.
Ubuntu-based distributions
Drawing is included in the universe repository in Ubuntu. Which means you can install it from the Ubuntu Software Center.
However, if you want the latest version, there is a PPA available for easily installing Drawing on Ubuntu. Linux Mint and other Ubuntu-based distributions.
Check your distribution’s package manager for Drawing and install it from there. If you want the latest version, you may use the Flatpak version of the app.
Suppose your system is taking too much of RAM or CPU. If you use top or some other system resource monitoring tool like Glances, you’ll notice that these tools cannot distinguish the opened tabs or extensions.
Usually, each Firefox tab is displayed as Web Content. You can see that some Firefox process is causing the issue but that’s no way to accurately determine which tab or extension it is.
This is where you can use the Firefox task manager. Let me show you how!
Firefox Task Manager
With Firefox Task Manager, you will be able to list all the tabs, trackers, and add-ons consuming system resources.
As you can see in the screenshot above, you get the name of the tab, the type (tab or add-on), the energy impact, and the memory consumed.
While everything is self-explanatory, the energy impact refers to the CPU usage and if you are using a Laptop, it is a good indicator to show you what will drain the battery quicker.
To quickly launch Firefox Task Manager, you can type “about:performance” in the address bar as shown in the screenshot below.
Alternatively, you can click on the menu icon and then head on to “More” options as shown in the screenshot below.
Next, you will find the option to select “Task Manager” — so just click on it.
Using Firefox task manager
Once there, you can check for the resource usage, expand the tabs to see the trackers and its usage, and also choose to close the tabs right there as highlighted in the screenshot below.
Here’s what you should know:
Energy impact means CPU consumption.
The subframes or the subtasks are usually the trackers/scripts associated with a tab that needs to run in the background.
With this task manager, you can spot a rogue script on a site as well whether it’s causing your browser to slow down.
This isn’t rocket-science but not many people are aware of Firefox task manager. Now that you know it, this should come in pretty handy, don’t you think?
I have been asked this question numerous time in the past. It was about time that I explained what is FOSS in Linux and the software world.
The distinction is important because FOSS is a generic world and it could mean different depending on the context. Here, I am discussing the FOSS principle in software.
What is FOSS?
FOSS means Free and Open Source Software. It doesn’t mean software is free of cost. It means that source code of the software is open for all and anyone is free to use, study and modify the code. This principle allows other people to contribute to the development and improvement of a software like a community.
The origin of FOSS
In the 60s and 70s, computers were hardware focused and the hardware were expensive. They were mainly used by academics in universities or researchers in labs. The limited amount of software used to come for free or with their source code and the users were allowed to modify the source code to suit their need.
In the late 70s and early 80s, the manufacturer’s stopped distributing source code in an attempt to not let their software run on their competitor’s computers.
This restrictive licensing led to the inconvenience and dislike of peoplewho were used to and fond of modifying software. In the mid 80s, Richard Stallman started the Free Software Movement.
Any user should be able to run the software for any purpose.
User should be free to see the source code of the software and if need be, user should be allowed to modify the code as well.
User should be free to distribute the copies of the software to others.
If a user modified the code, she/he should be free to distribute the modified code to others. The modified code must have the source code open.
If interested, I would advise reading this article on the history of FOSS.
Free in Free and Open Source Software DOES NOT mean free of cost
As you may have noticed, the ‘free’ in Free and Open Source Software doesn’t mean it is free of cost. It means freedom to run, modify and distribute the software.
People often wrongly think that FOSS or Open Source software cannot have a price tag. This is not correct.
Most Free and Open Source Software are available free of cost because of a number of reasons:
The source code is already available to public so some developers see no point in putting a price tag on the downloads.
Some projects are contributed by a number of volunteers for free. So, the main developer(s) find it unethical to charge for something that has been contributed freely by so many people.
Some projects are supported and/or developed by bigger corporate or non-profit organizations who employ developers to work on their open source projects.
Some developers create open source projects as hobby or out of their passion for contributing to the world with their code. Things like number of downloads, contributions and words of appreciations matter more than money for them.
To avoid the emphasis on ‘free’ some people use the term FLOSS. FLOSS stands for Free and Libre Open Source Software. The world libre (meaning freedom) is different than gartuit/gratis (free of cost).
Free as in free speech, not free as in free beer.
How do FOSS projects make money?
It is a myth that open source projects don’t make money. Red Hat was the first open source company to reach the billion dollars mark. IBM bought Red Hat for $34 billion. There are many such examples.
Many open source projects, specially the ones in the enterprise sectors, offer support and enterprise oriented features for a fee. This is main business model for Red Hat, SUSE Linux and more such projects.
Some open source projects like Discourse, WordPress offer hosted instance of their software for a premium fee.
Many open source projects, specially the desktop applications, rely on donations. VLC, GIMP, Inkscape and other such open source software fell in this category. There are ways to fund open-source programs but usually, you’ll find donation links on project websites.
Making money with open source software may be difficult but it is not entirely impossible.
But I am not a programmer. Why should I care if a software is open source or not?
This is a valid question. You are not a software developer, just a regular computer user. Even if the source code of the software is available, you won’t understand how the program works.
That’s fine. You won’t understand it but someone with the necessary skill sets will and that’s what matter.
Think of this way. Perhaps you won’t understand a complicated legal document. But if you have the freedom to look at the document and keep a copy of it, you can consult someone who can check the document for legal pitfalls.
In other words, open source software has transparency.
What is the difference between FOSS and Open Source?
You’ll often come across terms FOSS and open source. They are often used interchangeably.
Are they the same thing? It is difficult to answer in yes and no.
You see, the term ‘free’ in FOSS is confusing for many as people incorrectly assume that it as free of cost. Enterprise executives, higher ups and decision makers tend to focus on ‘free’ in Free and Open Source. Since they are business people focused on making money for their company, the term ‘free’ works as deterrence in adopting the FOSS principles.
This is why a new organization named Open Source Initiative was created in the mid 90s. They removed the ‘Free’ from Free and Open Source Software and created their own definition of open source. and their own set of licenses.
The term ‘open source’ got quite popular specially in the software industry. The executives are more comfortable with Open Source. The adoption of open source grew rapidly and I believe removal of ‘free’ term did play a role here.
Got questions?
This As I explained in the article what is Linux Distribution, the FOSS/open source concept played a big role in the development and popularity of Linux.
I tried to explain the concept of FOSS and open source in simpler terms in this jargon buster article. I have tried to avoid going too much in detail or technical accuracies.
I do hope you have a better understanding of this topic now. If you have got questions or suggestions, feel free to leave a comment and continue the discussion there.
Brief: Looking to deploy a static web-page? No need to fiddle with HTML and CSS. These open source static website generators will help you deploy beautiful, functional static websites in no time.
What is a static website?
Technically, a static website means the webpages are not generated on the server dynamically. The HTML, CSS, JavaScript lie on the server in the version the end user receives it. The raw source code files are already prebuilt, the source code doesn’t change with the next server request.
It’s FOSS is a dynamic website which depends on several databases and the web pages are generated and served when there’s a request from your browser. Majority of the web is powered by dynamic sites where you interact with the websites and there are plenty of content that often change.
Static websites give you a few benefits like faster loading times, less server resource requirements, and better security (debatable?).
Traditionally, static websites are more suitable for creating small websites with only a few pages and where the content doesn’t change too often.
This, however, is changing thanks to static website generator tools and you can use them to create blogs as well.
I have compiled a list of open source static site generators that can help you build a beautiful website.
Best Open Source Static Site Generators
It’s worth noting that you will not get complex functionality on a static website. In that case, you might want to check out our list of best open source CMS for dynamic websites.
1. Jekyll
Jekyll is one of the most popular open source static generator built using Ruby. In fact, Jekyll is the engine behind GitHub pages which lets you host websites using GitHub for free.
Setting up Jekyll is easy across multiple platforms which includes Ubuntu as well. It utilizes Markdown, Liquid (for template), HTML, and CSS to generate the static site files. It is also a pretty good option if you want to build a blog without advertisements or a product page to promote your tool or service.
Also, it supports migrating your blog from popular CMSs like Ghost, WordPress, Drupal 7, and more. You get to manage permalinks, categories, pages, posts, and custom layouts, which is nice. So, even if you already have an existing website that you want to convert to a static site, Jekyll should be a perfect solution. You can learn more about it by exploring the official documentation or its GitHub page.
Hugo is yet another popular open source framework for building static sites. It’s built using the Go programming language.
It is fast, simple, and reliable. You also get some advanced theming support if you need it. It also offers some useful shortcuts to help you get things done easily. No matter whether it’s a portfolio site or a blog, Hugo is capable enough to manage a variety of content types.
To get started, you can follow its official documentation or go through its GitHub page to install it and learn more about its usage. You can also deploy Hugo on GitHub pages or any CDN if required.
Hexo is an interesting open-source framework powered by Node.js. Similar to others, you will end up creating blazing fast websites but you will also get a good collection of themes and plugins.
You do get a powerful API here to extend functionality as per your requirements as well. If you already have a website, you can simply use its Migrator extension as well.
Gatsby is an increasingly open-source popular site generator framework. It utilizes React.js for creating fast and beautiful websites.
I was quite interested to give this a try for some experimental projects a few years back and it is impressive to see the availability thousands of new plugins and themes. Unlike other static site generators, you can use Gatsby to generate a site and get the benefits of static sites without losing any features.
It offers a lot of useful integrations from popular services. Of course, you can keep it simple or use it coupled with a popular CMS of your choice, which should be interesting. You can take a look at their official documentation and its GitHub page to find out more on it.
VuePress is a static site generator powered by Vue.js which happens to be an open-source progressive JavaScript framework.
If you know HTML, CSS, and JavaScript, you can easily get started using VuePress. You should find several useful plugins and themes to get a head start on building your site. Also, it seems like Vue.js is being actively improved and has the attention of more developers, which is a good thing.
Nuxt.js utilizes Vue.js and Node.js but it focuses on providing modularity and has the ability to rely on the server-side instead of the client-side. Not just that, it aims to provide an intuitive experience to the developers with descriptive errors, and detailed documentations among other things.
As it claims, Nuxt.js should be the best of both world with all of its features and flexibility that you get to build a static website. They also offer a Nuxt Online sandbox to let you directly test it without a lot of effort.
Docusaurus is an interesting open-source static site generator tailored for building documentation websites. It happens to be a part of Facebook’s open source initiative.
It is built using React. You get all the essential features like document versioning, document search, and translation mostly pre-configured. If you’re planning to build a documentation website for any of your products/services, this should be a good start.
Eleventy describes itself as an alternative to Jekyll and aims for a simpler approach to make faster static websites.
It seems easy to get started and it also offers proper documentation to help you out. If you want a simple static site generator that gets the job done, Eleventy seems to be an interesting choice.
Publii is an impressive open-source CMS that makes it easy to generate a static site. It’s built using Electron and Vue.js. You can also migrate your posts from a WordPress site if needed. In addition to that, it offers several one-click synchronizations with GitHub Pages, Netlify, and similar services.
You also get a WYSIWYG editor if you utilize Publii to generate a static site. To get started, visit the official website to download it or explore its GitHub page for more information.
An interesting open-source static site generator which is still in active development. Even though it’s not a full-fledged solution with all the features compared to other static generators, it is a unique project.
Primo aims to help you build and develop a site using a visual builder which can be easily edited and deployed to any host of your choice.
There are a lot of other site generators available out there. However, I’ve tried to mention the best static generators that gives you the fastest loading times, the best security, and an impressive flexibility.
Did I miss any of your favorites? Let me know in the comments below.
Want to contribute to the research on coronavirus? You don’t necessarily have to be a scientist for this. You may contribute with part of your computer’s computing power thanks to Rosetta@home project.
Sounds interesting? Let me share more details on it.
What is Rosetta@home?
Rosetta@home is a distributed computing project for protein structure prediction, based at the Baker laboratory at the University of Washington and running on the Berkeley Open Infrastructure for Network Computing (BOINC) open source platform, which was originally developed to support the SETI@home.
Not enough computing power? Utilize the power of distributed computing
To predict and design the structures of naturally occurring proteins is very computationally intensive. To speed up the process, Dr. David Becker had filled the entire lab and the hallway with desktop computers. Then they started getting complaints of heating up the building, but still didn’t have enough computing power to accurately predict and design protein structures.
How does Rosetta@home work?
Rosetta@home uses idle computer processing power from volunteers’ computers to perform calculations on individual work units. When a requested task is being completed, the client sends the results to a central project server where they are validated and incorporated into project databases.
As of 28th March 2020 the computing power of Rosetta@home has been increased up to 1.7 PetaFlops, due to the recently joined users looking to participate in the fight against the COVID-19 pandemic. Thanks to that, On 26th June 2020, Rosetta@home researchers announced they had created antiviral proteins that neutralized SARS-CoV-2 in the lab.
Is BOINC platform safe?
After few years of operation on millions of systems, there have been no security incidents reported due to BOINC. This fact doesn’t mean that there is no possibility of a security risks.
BOINC uses a mechanism called code signing, based on public-key cryptography, that eliminates the vulnerability, as long as projects use proper practice. Each project has a code-signing key pair consisting of a public key and a private key which is used to create “signatures” for programs. The BOINC client will only run programs with valid signatures.
Projects are instructed to keep the private key only on a computer that is permanently offline to create signatures. Therefore hackers cannot trick BOINC into running malware.
Most BOINC projects follow these practices. If you’re concerned about security, you should attach to a project only if you know it follows the code-signing procedure correctly. If in doubt, you may ask project administrators to describe how they do code signing.
Contributing to Rosetta@home with BOINC platform
If you are interested in contributing to the scientific research by donating some computing power, you’ll find rest of this article helpful.
I’ll discuss the following:
Prerequisite for joining BOINC platform
Using BOINC platform to donate computing power to a project of your choice via your desktop Linux
Using Raspberry Pi to run BOINC all the time
System Requirements of the BOINC platform
The BOINC distributed computing platform with which you can access Rosetta@home is available on a 64bit operating system such as Windows, Linux, and macOS and FreeBSD.
You will need a CPU of at least 500 MHz, 200 megabytes of free disk space, 512 megabytes of RAM, and Internet connectivity.
The more CPU cores your system has, the more RAM is required as a work unit will “feed” each core.
Create a user account on BOINC platform
Before you configure the BOINC platform, create an account using your computer. If you will use a Raspberry Pi, you can join the “crunch-on-arm” team.
Please note that the same account can be used to multiple machines at a time. All of your machines will appear on your account.
Install BOINC platform on various Linux distributions
BOINC application has the following element:
boinc-client (daemon that runs the platform)
boinctui: terminal based interface for selecting projects and other settings
boinc-manager: GUI-based interface for selecting projects and other settings
If you are using a server, you should install boinctui. If you are using Linux desktop, you can opt for boinc-manager.
I’ll stick with the GUI tool in this part of the tutorial.
First, make sure that the EPEL repository is enabled, by running following command on a terminal:
sudo yum install epel-release
You can now install the necessary packages:
sudo yum install boinc-client boinc-manager
Open the BOINC manager and add a project
After installing, open BOINC manager. You will be asked to add a project and to create an account or login to an existing.
Add your credentials and click finish when prompted.
After a few minutes, the status will change to running.
You don’t need to worry if your system resources will be consumed when you want to use your computer. By default, if the BOINC manager notices that the user needs more than the 25% of CPU resources, the BOINC computation will be suspended.
If you want the application to be suspended at a lower or higher CPU usage, you can change your profile settings on the website where you created your account.
Rosetta@home on a Raspberry Pi 4
An ideal device to run 24/7 the Rosetta@home application is a Raspberry Pi, which is powerful enough and with very low power consumption.
To fight COVID-19 using a Raspberry Pi 4, you need a model with 2 GB RAM or more. My personal recommendation is the 4 GB RAM option, because with my 2 GB model one of the cores is idling as it is running out of memory.
To install the BOINC client and the command line management interface run the following command on server running on the Raspberry Pi.
sudo apt install boinc-client boinctui
Additional steps for Raspberry Pi 2 GB model
Your account by default is set to utilize 90% of the memory when the user is idling. The Rosetta work units require 1.9gb of memory to run on the Quad core Raspberry Pi, so there is a possibility for the client not be able to start due to the initial reading. If the Raspberry Pi runs out of memory, it will suspend one of the 4 running tasks as mentioned earlier. To override the 1.9gb threshold add the following lines to the location below:
This setting will increase the default memory available to Rosetta to the maximum amount of memory on the board.
Step 3: Add Rosetta@home project
On your Raspberry Pi command line type ‘boinctui’ and click enter to load the terminal GUI.
boinctui
Press F9 on the keyboard, to bring down the menu choices. Use the arrow keys to go to Projects and press Enter.
You may notice a few available projects to choose from but if you are interested to actively support the fight against COVID-19 choose Rosetta. You will be prompted to either create a user account or to use an existing account.
Select “Existing User” and the enter the credentials you created on the website at the initial step. As you can see, I have already selected the Rosetta project.
It will take a moment to download the work units, and then automatically it will start crunching data on your Raspberry Pi 4!
Conclusion
If you want to stop using BOINC, simply delete the boinc packages you installed earlier. I believe you know how to use your distribution’s package manager for removing software.
One of the benefits of distributing computing is to allow user’s to donate their system resources for the common good. Despite the grief the pandemic has spread worldwide, it can make us also to realize the necessity of volunteering in one way or the other.