Linux has many available tools that simply just work. That’s why I prefer it over other operating systems. I can get things done, usually faster and much simpler from a command line in a terminal, or multiple terminals.
Windows has useful and powerful shells, and I use them when I need to work on that OS, but I prefer to work in bash. I make use of simple, but elegant installation applications, most notably Apt and PacMan – depending on which of my two preferred distros I have installed. I can install simple, but powerful tools to pull out information about my system’s operation and performance.
One of my goto tools is nmon. (Nigel’s performance Monitor for Linux) – originally used by IBM and released as open source in 2009.
I wouldn’t categorize “nmon” as old school, but it sure has that vibe going on. Anything I can run in a terminal from a command line to see what is not always obvious is useful. The ability to export the data it gathers as .csv to use in a graph or for use in analyses applications is sometimes overlooked by casual users – but it’s available.
I don’t use the export function, but I expect that it might be beneficial in some situations. I mostly use nmon in the “Interactive mode” Just a quick glance at some of the output screens presents you with a lot of useful performance information.
From NMON (nmon -h) Hints:
-f Must be the first option on the line (switches off interactive mode)
Saves data to a CSV Spreadsheet format .nmon file in the local directory
Note: -f sets a default -s300 -c288 which you can then modify
Further Data Collection Options:
-s <seconds> time between data snapshots
-c <count> of snapshots before exiting
-t Includes Top Processes stats (-T also collects command arguments)
-x Capacity Planning=15 min snapshots for 1 day. (nmon -ft -s 900 -c 96)
Although you can gather and present much data quickly,
don’t just glance at the data – really look at what it’s telling you, and if you don’t understand what you’re looking at – then look it up and find out what you may be missing.
— Toggles on/off to control what is displayed —
b = Black and white mode (or use -b command line option)
c = CPU Utilization stats with bar graphs (CPU core threads)
C = CPU Utilization as above but concise wide view (up to 192 CPUs)
d = Disk I/O Busy% & Graphs of Read and Write KB/s
D = Disk I/O Numbers including Transfers, Average Block Size & Peaks (type: 0 to reset)
g = User Defined Disk Groups (assumes -g <file> when starting nmon)
G = Change Disk stats (d) to just disks (assumes -g auto when starting nmon)
h = This help information
j = File Systems including Journal File Systems
J = Reduces “j” output by removing unreal File Systems
k = Kernel stats Run Queue, context-switch, fork, Load Average & Uptime
l = Long term Total CPU (over 75 snapshots) via bar graphs
L = Large and =Huge memory page stats
m = Memory & Swap stats
M = MHz for machines with variable frequency 1st=Threads 2nd=Cores 3=Graphs
n = Network stats & errors (if no errors it disappears)
How does the Xbox One X compare to a gaming computer?
Xbox One X Specs:
CPU: 8 custom x86 cores clocked at 2.3GHz
GPU: 40 customized compute units at 1172MHz
Memory: 12GB GDDR5
Hard Drive: 1TB 2.5-inch
Optical Drive: 4k UHD Blu-ray
Things to remember:
On the Xbox One X, the hardware and software will be tightly integrated allowing the hardware to be fully optimized. The memory will be split up with not all going to the GPU but some will be used as the systems ram. The optical drive that comes with the Xbox is a top of the line piece of hardware that is truly impressive to be included.
You could save money on this build if you wanted to go with slower ram, ( Please Note: Ryzen processors do much better with faster memory). The issues you will find with this build will be the optical drive not being able to compete with the optical drive found on the Xbox. The Xbox drive is capable of reading 4k discs.
If you will run Windows on the computer that could run you another $100, or you can run any Linux distro for free.
This build prices out to $1410 after mail in rebates which is almost $1,000 more than the Xbox One X. Plus add in if you want a Windows operating system and/or a better optical drive.
With a stronger 8-core, 16 thread Ryzen CPU you won’t find any CPU bottlenecks. This build also includes the new Samsung 960 M.2 drive offering much fast read and write speeds which will help loading times for games. Included in this build is the new AMD Vega 56 GPU offering a much smoother display especially when paired with a Freesync monitor.
KEY BUILD NOTES:
CPU: AMD Ryzen 7 1700
This CPU rocks a true 8 core processor with 16 total threads. You will not see any bottlenecking of the CPU with any games you can throw at it and if a game is optimized to use more cores then be ready to see this show its true power.
RAM: G.Skill – Ripjaws V Series 16GB (2 x 8GB) DDR4-3200 Memory
Knowing Ryzen processors do much better with a higher speed ram we went with DDR4 – 32oo
We added another 8GB of ram to make it 16gb to make sure you won’t have any issues running games.
Storage: Samsung 960 EVO 250GB M.2-2280 SSD
With the drive capacity only being 250GB we would recommend running the OS on this drive as well as any games/ applications you mainly use. Anything else you can throw on the 1 TB spinning hard drive also included.
AMD’s newest line of GPUs the VEGA series includes the 56 and 64 VEGA. This build includes the 56 version which is capable of running 4k with at least 30 fps.
Power Supply: EVGA – SuperNOVA P2 850W 80+ Platinum Certified Fully-Modular ATX Power Supply
This build we went with a higher quality PSU that was certified platinum and fully modular allowing an easier build time and cleaner cable management.
The Xbox One X is priced very well for the amount of power you’re getting. Pair it with a new 4k Freesync monitor and you will really be able to tell a difference. Some say the jump in resolution feels more like going from 480p to 720p rather than the last jump of 720p to 1080p.
Do you think you can build a better computer priced closer to $500 ? Let me know and show me what you got!
Sometimes you find yourself working on a Windows-based machine, have to perform a quick task that might normally be very straightforward on a LINUX machine, and you don’t want to spend too much time fumbling through the GUI pointing and clicking until you stumble across what you’re looking for.
My first gut instinct usually is to get to the command line quickly and work from there.
I installed the “Microsoft” Ubuntu command line “App” on a Windows 10 test machine recently hoping it would become the perfect solution to such situations, but it has been a disappointing experience so far. Maybe I’ll have a better opinion after I spend more time with it, but I doubt I’ll see this installed on too many machines I run into – at least for a while. Luckily Windows command line tools are pretty robust – especially PowerShell.
As a side note, I really find Sysinternals very useful as a nice set of tools for some very interesting challenges you might run into while doing some diagnostic investigation on problematic systems.
For the most part, Windows usually has some nice built-in diagnostic tools – if you know where to look and can find them in a timely manner.
I had a question come up recently about port connections. Usually, I suggest Wireshark as a go-to tool for any supporting operating system, but this situation was for a system that did not have it available – disregarding the fact that you might or might not have the ability to monitor the packet traffic with a tap or port forwarding access via a test laptop. The discussion was on using the computer in question for any diagnostics – and of course, it wasn’t a LINUX machine. Anyhow, here’s a few ideas I floated for such situations – try a few if you haven’t already and see what you think.
Finding port connections in Windows
Use Wireshark to parse out port numbers by adding Destination and Source port columns for both TCP and UDP port numbers. Under each corresponding Wireshark header right-click on destination/source and apply as a column. Edit the name to differentiate between UDP or TCP.
Filtering for a specific protocol number is just as straightforward.
tcp.dstport == 80
tcp.srcport == 80
If you’re a fan of Sysinternals you may find TCPView a nice alternative to monitor your PC’s connections – close to a real-time view of connections made and unmade.
Either from the basic Windows CMD or from within Powershell “netstat” similar to its LINUX long-lost cousin is a simple and quick way to view connection status.
While you’re working in Powershell, check out network connections with Get-NetTCPConnection.
If your set on using the GUI on Windows, the “Resource Monitor” Network – Listening Ports works quite well.
Back on Linux, you can run netstat, lsof, ss, or nmap.
Each has many options and allow you to customize your scans.
Here a few quick checks:
netstat -a | grep CONNECTED
ss | less
You could always load nmap and scan your own local ports as an alternative port check.
Technology has become a complex beast for businesses to handle in the modern age. Especially small businesses that rely on technology for their daily workday. Businesses tend to think that complex systems are better than a simple solution. That is not always the case; often simple solutions can cut costs and produce benefits. A great example of this would be a Raspberry Pi computer. Utilizing a Raspberry Pi as a database and web server for a small business is a simple solution that has greater benefits than trying to run a complex solution where other companies are required to provide a service. Such benefits include the low cost of operation, control, and security of business information.
To be able to build a Raspberry Pi capable of this task will require a LAMP (Linux, Apache, MySQL, PHP) software stack. Once configured to the specific business needs the outcome will be a fully functioning web server graphical user interface (GUI) that will be connected on the back end to a MySQL database.
As technology evolves, businesses continue looking for new ways to provide benefits at cheaper costs. Small businesses typically have a major disadvantage compared to corporations because of their lack of capital to invest in new technology. If a small business needs to have an operating database or server, they could be looking at spending thousands of dollars, if not more, to pay for a service company to create and support their database.
The Raspberry Pi computer could eliminate the need for an outside company, and in doing so could help a business to save on expenses. In recent years, the security of some of the world’s biggest companies has been breached. In this new era of business, a major concern is the security of the company’s information, as well as the customer’s information. For small businesses, this is especially complicated, because unlike major corporations, they don’t have the same resources to fight or fix any security issues. Thinking in these terms, running a Raspberry Pi is a great way to ensure that the company is secure because it holds all of its information on site.
*The small business that will be the focus of this project is a local lacrosse equipment store in a typical suburban town. This business is looking to get away from paper files, files that include information on employees, customers, and products. They would like everything to be in one place in order to reduce the time spent searching for documents. Previously, They have looked into buying cloud-based databases as well as storage services from a corporate company, but the expenses are too high for the business to absorb.*
What is a Raspberry Pi Computer?
A Raspberry Pi computer is a single-board computer that is about the size of a deck of playing cards. Inside this small board is everything necessary for a computer, even including an HDMI port for display and USB ports for peripherals. There are many benefits to using a Pi computer instead of just an ordinary desktop. First, Raspberry Pi computers are very inexpensive; prices range from five to thirty-five dollars. Various attachments and configurations, though not needed, can be purchased for additional costs. For this project, the basics of the Raspberry Pi 2 model B, and a case for the card were used. This put us at a total cost of approximately forty dollars. Raspberry Pi computers are often programmed to run autonomous programs; here we will be using software to turn the Pi into a small database and web server.
The objective of the Project:
The objective of this project is to provide a new cost-efficient way for smaller businesses to manage their own databases while still having complete control. The Raspberry Pi will be a headless unit that is able to run a database and can be accessed by any computer on the network. There will also be a web server connected to the database through a local website, making it simpler to use. This will allow employees with no knowledge of SQL to easily add, delete, or search the database.
Scope and Limitations:
The Raspberry Pi computer is designed to benefit smaller businesses by fulfilling the roles of both a database and a web server. It is great for a business that wants a low overhead, or one that is low on space. A larger company could also use Raspberry Pi computers, as each one could be designed for a small project, and then connected with others. For this specific project, a low cost and secure device is a perfect fit for the business.
A business would need an employee that knows how to set up the device, and knows MySQL language. Or, a contractor would need to be hired to come in and set up the system. The major limitation of using a Pi computer is that the processing power is lower than that of a normal computer. This means that the database cannot handle a lot of people using it at the same time. User overload could become problematic.
• At least an 8GB SD card (can be larger)
• Raspberry Pi 2 B Computer
• A case for the Pi (Not Required but highly recommended)
The Raspberry Pi was built using a 16GB SD card; you can upgrade all the way up to a 64 GB, but for this build a 16GB was sufficient. The first task was to install an operating system on the SD card. In order to do this, the SD card was plugged into the SD reader on my Mac. Then the operating system (OS) Raspbian was installed. Raspbian is similar to most Linux operating systems but is specific to Raspberry Pi.
Once the OS was installed on the SD card, it was then plugged into the Pi and turned on. Once turned on, it was time to install updates in order to ensure that software running was the newest version.
Since this Pi will be running off WiFi, you will need to manually change the network configuration files to allow this. At this time, it would be best to give the Pi a static IP address, so that anytime it is restarted, it would still be found under the same IP.
The last thing physically done at the Pi when connected to a monitor and keyboard was to enable SSH. Once enabled, I could then continue building the project from any computer on the same network.
• An admin table only non-connected table used to login to the web server to make changes to the database.
• The employee table is connected to transaction with Employee_ID.
• Customer is connected to Transaction with Customer_ID.
• Product is connected to both Transaction and Supplier by Product_ID.
Building the database using MySQL.
First, the structure of the database was built, including the tables that were going to be used. Then deciding on the primary keys and foreign keys, which allow the tables to be connected and have relations with each other. Lastly, the database was filled with data in order to do some testing, checking to make sure that everything was working in the correct way. Testing was conducted by running queries and making sure that the information that came back was as expected and that the primary and foreign keys were working properly.
After building the database
It’s time to build a web server that would have the MySQL database incorporated into it and could run from the Raspberry Pi. The server will be running Apache server and will be using both HTML and PHP code. The server will also be secured by having employees log in with their given username and password.
The finished prototype is a functioning server that will house the company’s database and the web GUI used to access and edit the database. The Pi will already have a LAMP stack installed. The actual physical product will be a simple Raspberry Pi card, housed in a case for safety. Attached to the device will be either an Ethernet cord or a WiFi USB adapter, depending on what works best in the specific environment. The device will then have a micro USB power cord connected.
The first step to actually implementing the device is to gather information beforehand. I want to find out if the device will be connected with Ethernet or WIFI; if WIFI is chosen, then we must change the networking configuration and will need a USB WIFI adapter
Once the hardware is all set we can move on to the software necessary. On the Raspberry Pi should be a LAMP stack already installed and ready to begin. We will need to make some changes to the Apache configuration files to make sure the web server works correctly. We will need to set the IP address and create the root user.
Next, create the MySQL database structure that will be used and then connected when we are finished to the local web server. First, we log into MySQL through our terminal as the root user, and then we need to make the database, which for this project will be named Capstone. Now we will build our database structure and relations that we will be able to populate with data through the web server. The tables that we will create are Employee, Customer, Supplier, Product, Transaction, and admin. The admin table will be where we create users that can interact with the database by logging into the web page.
Once the database structure is all set we can move onto creating the local web page that employees can log into from any computer or device while on the same network. We will start by making a directory that will house the files that will become our web page. Within this directory, there will be subdirectories for each table and an option to search, insert, or delete from the database. We will also need to create files that connect us to the database and a way to secure the site by utilizing an employee’s login page.
After completing the project, you can see how a Raspberry Pi can successfully be implemented in a business setting. Doing so can benefit a business in ways that the typical route of paying a company for a service can’t. The biggest benefit is the affordability of the Pi device.
If you had gone with a professional service, your information would more than likely be stored in a cloud setting. Information in a cloud storage setting has already had a history of being breached. My recommendation for other businesses is that this type of device is more suited for a smaller company. One that might not have the room and overhead to run another type of local server. I would look into how many employees would actually be accessing the device at once. How much processing power and storage your business would need. A bigger company could also go this route by running multiple Pi devices as almost a small supercomputer.
After all the buzz in the news lately, are you now finally planning on patching your WiFi router, buying a new one, or just saying the hell with it and going back to Cat 5e Ethernet?
“Krack” WiFi exploit news got you bummed out, or are you just now learning about Re-using a “Nonce” to fake out your trusty old router with a “key re-installation attack”……that you always thought was secure using WPA2?
How often have you even heard of or used the word “nonce” in a sentence?
You don’t want someone decrypting your packets and/or forging new ones to basically hijack your connection. Maybe you don’t care and like to surf the web on public WiFi at your favorite coffee shop. That’s up to you.
It’s been a very odd year for cyber security issues.
If privacy isn’t your main concern, then maybe avoiding someone or something trashing your laptop with malware is. Either way bad things seems to appear to be accelerating, or maybe it just feels that way because such reports are more readily available online than a few years ago. (More information = more awareness……and often stress)
For a very rudimentary, somewhat sketchy and brief explanation let’s say that in a WiFi 4 way handshake there is the possible retransmission of the 3rd message because a potential loss of the final message. (the other end for whatever reason never sees it)
– Apparently this creates a potential exploit against the “client” because of the odd rule set or way in which the WiFi router fumbles the ball with encryption. This all happens because of a possible “PERSON in the MIDDLE” attack,
Is a VPN or Cellular link a better alternative?
– hmm, possibly.
Actually, I do think WiFi will be around as a consumer LAN for a while. So, you’ll just have to keep current with all the available security parameters……forever?
What can the average user actually do?
-Well, let’s first make sure your “clients” are all patched and up to date. Your laptop, TV, refrigerator, security cameras and anything else connected to your local network
-If you have access and permissions, check to see if you can disable your router’s ability to act as a client (maybe you use your router as a repeater or access point) and see if your equipment’s vendor has or will have a patch soon.
-Running a relatively modern operating system and keeping your patches up to date is always a good idea.
-A decent firewall policy and a trusted Anti Virus program make sense for most user’s systems.
-Having a backup procedure or scheme could be very handy also.
-Using strong password protection policies and in some cases encryption for your computer drives are all common sense now.
Nothing really new, just a reminder, but unfortunately replacing your WiFi router each time a new vulnerability is publicized could get a little expensive especially if that’s the only fix available.
As a general recommendation I’d say update your client equipment’s software/firmware if you can soon.
Relax, you’ll be fine…..Probably.
Do you depend on venders and your local Internet providers to patch there “rental” equipment or do you add your own newly updated super cool WiFi router ? (Probably both would be nice)