Made to Order Software Corporation Logo

Alexis Wilke's blog

3 Types of Software Every Business Needs

Are you struggling to stay on top of everything in your business? 

You don't need to handle everything all alone — there's software specifically designed to help your business thrive without you having to put in more hours. The right software will save you time by keeping everything organized and ready to go. 

Learn about the 3 types of software to keep your business running as it should while you focus on more important things. 

Accounting Forms (1099, W2, etc.) with a pocket calculator

What Type of Business Do You Have?

As we go through each type, understand that the software your business needs depends mainly ...

Tips for Downloading Software Safely

An Apple Office with a Mac and an iPad.

If you are downloading software online, are you taking the proper precautions to ensure your safety? You may be tempted to find links for downloading programs that cost a lot, but there is always the danger of exposing yourself to malware and data theft. It's possible to keep yourself safe from these risks while scrolling for the programs you need. You just have to know exactly what it takes to beef up your defenses when you are downloading a PC game or graphics design software. Here are a few tips to keep in mind:

1. Check if the website is trusted

The first thing you will need to ...

The Benefits of Keyword Research Software

Various Branches of SEO

You've heard it said that a team is only as good as its leader, right? In the world of computer systems, many times, a computer is only as good as its software.

If you do any marketing research or work for an online company, one of the best software you could ask for is a keyword finder. If your job focuses on marketing techniques and sale inquiries, keyword finders are the way to go. 

Why? Let's discuss the most significant benefits these handy tools can provide for you!

1. They Help Narrow the Search Results  

If you are searching for information about a subject ...

What is the Significance of Tiny PCBs?

A PCB board with drawings of the wires

It’s a common refrain that our electronics are always getting smaller. While there may be some up-and-down fluctuation between one phone release and the next, the broader trend is clear: From speakers, to laptops, to home appliances, we can pack a lot more power into a lot less space these days.

This trend leads to some near-fantastical speculation about where tech can go from here. For instance, Quartz posted about limits in processing power back in 2017, and speculated that light could be built into processing chips as a substitute for what we’d now think ...

HP Color LaserJet Pro Multifunction M479fdn Laser Printer

My new M479nfd printer, scanner, fax

Click to get this printer on Amazon.com where I'm an affiliate.

Not too long ago, I ordered a new color drump for my old printer and replaced it. Not very long after that the print simply decided to not print at all anymore. Literally, it would pass the page through just fine but it had nothing on the page. I know it was working since it was printinA picture of my old dinosaur printer, also from HP (an L2550 color laser printer)g just fine the day before and there was still plenty of black ink (it would have had the light on if the black was not enough.)

I'm thinking that may have been a ploy by the manufacturer to push me to buy a new printer...

In any event, ...

Don't Repeat Yourself When Writing Software

Nature tends to repeat itself, or reproduce with similar structure, but code should not.

For a very long time now, we have been using languages that support having functions that one can call. That was not always the case, although even really old versions of BASIC had a GOSUB instruction, which it had no concept of local variables so it was rather difficult to use safely.

Functions allow you to avoid repetition. You write a small snippet of code (or maybe not that small) within a function and then you call that function to reuse that snippet over and over again. Good programmers tend to do that even with one liners. However, many others often think: well, it's just one line, why don't I return copy & paste that wherever I need it, it's going to be faster.

Linux to the rescue!

Xtra-PC, a complete ready to go OS on a thumb drive

Doug and I have always thought that Linux would become the primary OS of today.

We've seen it go up and down, but now it's really becoming powerful, between OpenOffice, Chrome, The Gimp, Krita, Audacity, and many other tools, you can do so much that it more and more renders the expense of running MS-Windows less and less viable for most.

Now there is this new company offering a thumb drive with an optimized version of Linux called Xtra-PC which boots really fast and offers all the basics that one needs to run a computer. There is nothing to install, the OS will automatically detect ...

How small are computers getting?

Mini-computer versus Mouse

Click on picture to see on Amazon.com (which I'm an affiliate of).

Computer Stick

Looking at Mini Computers, I found this Fanless Mini PC based on the Intel Atom Z8350 processor by SmallRT. The picture includes a mouse to give you an idea of the size of that thing. It's tiny! Maybe not what you want, but you can already do a lot with that little one.

The connector on the left side is an HDMI plug which spits out 4K of video graphics. It's just totally amazing to me. Of course, we had the Pi3 and now we have the Pi4... but those are computers for hackers. Here we're ...

Safely Processing a Queue of Jobs

What is a Queue

In software a queue is a container which is used to add items on one side and remove them on the other in a very efficient manner.

Sorted Queues

When used by a Journal, a queue is often going to support some kind of sorted order. Some jobs are more important than others and these should be built sooner. In other words, we give those jobs a higher priority and we sort the queue by priority first then using the time at which the job gets inserted.

Note that the C++ std::queue and std::unque containers do not offer anyway to support a priority. Instead you have to use ...

Docker, an advanced chroot utility

Chasm—just like a Docker creates a chasm between two sets of software

SECURITY WARNING

Before installing Docker and containers with services on your Linux system, make sure to read and understand the risks as mentioned on this Docker and iptables page. Especially, Docker will make all your containers visible to the entire world through your Internet connection. This is great if you want to indeed share that service with the rest of the world, it's very dangerous if you are working on that container service since it could have security issues that need patching and such. Docker documents a way to prevent that behavior by adding the following rule to your firewall:

iptables -I DOCKER-USER -i eth0 ! -s 192.168.1.0/24 -j DROP

This means that unless the IP address matches 192.168.1.0/24, the access is refused. The `eth0` interface name should be replaced with the interface name you use as the external ethernet connection. During development, you should always have such a rule.

That has not worked at all for me because my local network includes many other computers on my LAN and this rule blocks them all. So really not a useful idea.

Instead, I created my own entries based on some other characteristics. That includes the following lines in my firewall file:

*filter
:DOCKER-USER - [0:0]

-A DOCKER-USER -j early_forward
-A DOCKER-USER -i eno1 -p tcp -m conntrack --ctorigdstport 80 --ctdir ORIGINAL -j DROP
-A DOCKER-USER -i eno1 -p tcp -m conntrack --ctorigdstport 8080 --ctdir ORIGINAL -j DROP
-A DOCKER-USER -i eno1 -p tcp -m conntrack --ctorigdstport 8081 --ctdir ORIGINAL -j DROP

My early_forward allows my LAN to continue to work. These are my firewall rules that allow my LAN computers to have their traffic forwarded as expected.

Then I have three rules that block port 80, 8080, and 8081 from Docker.

Docker will add new rules that will appear after (albeit not within the DOCKER-USER list) and will open ports for whatever necessary service you install in your Dockers.

Note that the only ports you have to block are ports that Docker will share and that you have otherwise open on your main server. If Docker opens port 5000 and your firewall does not allow connections to port 5000 from the outside, then you're already safe. On my end I have Apache running so as a result I block quite usual HTTP ports from Docker.

Docker

As we are helping various customers, we encounter new technologies.

In the old days, we used chroot to create a separate environment where you could have your own installation and prevent the software from within that environment access to everything on your computer. This is particularly useful for publicly facing services liek Apache, Bind, etc.