Johan Vhttps://johan.vandegriff.net/wordpress
If you can't fix it, it ain't broke.Tue, 10 Apr 2018 16:07:20 +0000en-UShourly1https://wordpress.org/?v=4.9.9Linux!https://johan.vandegriff.net/wordpress/2018/04/10/linux/
https://johan.vandegriff.net/wordpress/2018/04/10/linux/#respondTue, 10 Apr 2018 15:53:10 +0000http://johan.vandegriff.net/wordpress/?p=41Linux is an operating system, comparable to Windows or MacOS. You can use it to browse the web, run applications, edit files, and all the normal tasks you use computers for. But Linux is fundamentally different from Windows and MacOS in several ways that I find very appealing.

This article covers my reasons for using the Linux, and some cool things you can do with it (such as a keyboard shortcut for an airhorn sound). Along the way, it has links to different tutorials and resources for learning more. If you have a question or a suggestion, don’t hesitate to leave a comment at the bottom of the article and I will be happy to respond.

Why I Love Linux

User Rights

The main reason I love Linux is that it respects the user’s rights. Linux is free and open source software, which means anyone can modify, distribute, and use the source code. Even people like me who are not well-versed in writing operating systems still benefit from the diversity that this creates.

Linux is not run by a single company, but a large number of organizations that maintain distributions, or “distros”. Some examples are Ubuntu, Linux Mint, ElementaryOS, Fedora, and Arch. Because of the separate distros, there is no single company trying to lock you into an ecosystem of services. If one distro tried to do that, people would stop using it and switch to a different one, or someone would create and distribute a copy of it without the restrictive aspects. There are no applications that cannot be removed (unlike Edge on Windows), and components of the system can even be uninstalled and replaced with alternate types to suit your needs. Different distros have different forms of these alternate components to appeal to audiences with specific interests.

Security and Privacy

Linux’s security comes from the fact that it is open source. This might seem counter-intuitive as anyone could examine the code for vulnerabilities. But, since there are more benevolent people examining the code than malicious ones, this has the demonstrated effect of bugs and security holes being found quicker on average than proprietary operating systems. Because it is open source, it is verifiable that no telemetry data is being sent back through the OS to a company to collect and track Linux users.

The actual level of security depends on the distro. There are some security focused distros such as QubesOS, which runs every application in a separate container to keep it isolated from other applications and personal data. Another security distro is Tails, which runs from a USB drive and resets every time you start up (for ultra-paranoid people, or anonymous journalists).

All this being said, no system is completely secure from a determined hacker or government, but Linux has shown itself to be the most secure.

Control of Updates

One of the most freeing things about Linux is that there are no forced updates! You can choose to update whenever you want, or never update at all (not recommended, but possible). You can using the system while it is being updated, and most updates do not require a restart. When updating, you can choose which updates you want, and you can downgrade each application later if you want to.

When a large update is released, such as a significant change to the layout of the desktop, there are usually a group of people who like the old layout better. On other operating systems, they would be out of luck. But on Linux, the programmers among them make a copy of the component (called a “fork”). They are able to maintain that fork and anyone is still able to use it and keep getting updates for it. The two versions then continue in parallel and most everyone is happy.

Customizability

There are hundreds of Linux distros to choose from, dozens of which with a significant number of users. There are also many “desktop environments,” a component that determines the layout of the menus and apps on the desktop.

These are all Linux desktop environments, each with a different layout and workflow suited for different tasks and types of people:

GNOME – unique setup with a sidebar, and “activities” at the top-left corner

Pantheon on ElementaryOS with Leos 7 icon pack – made to look like MacOS

Budgie on Solus Linux – clean and simple start-menu style interface

XFCE – lightweight, this particular setup has the menu on the top

MATE on Fedora – fork of GNOME 2, menus on top and bottom in this setup

Cinnamon on Linux Mint – fork of GNOME, start-menu based (I use this one)

i3 tiling window manager – for real hackers (my friend uses this one)

Linux Mint Cinnamon Settings

Within each desktop environment, you can change the position of the menu(s), the theme, the position of buttons on the windows, and much more. Some desktop environments even have extensions that people can write, such as an extension I downloaded to make windows become transparent when being dragged so I can see the window underneath.

I have set up many keyboard shortcuts, ranging from silly sound effects played when I press Shift-F1, Shift-F2, etc (more on how to set this up later in the article!), to application launchers on Super-A (Arduino IDE), Super-B (Web Browser), Super-C (LibreOffice Calc), etc. I also set up shortcuts for moving windows around, like Alt-Left/Right to snap a window to one side of a screen, and Alt-<1-9> with the numberpad to move a window to a corner or edge of the screen.

Bootable USB

You can boot Linux from a USB drive! This is very useful for a variety of tasks. You can troubleshoot computers that won’t boot by booting from the USB drive and running diagnostics. You can remove passwords from Windows computers using a utility. You can retrieve files from any computer you forgot the password to (as long as it is not encrypted). If you accidentally formatted (erased) a hard drive, you may be able to recover it with a bootable Linux USB. It is also great for working with storage devices in general since Linux is compatible with all major file systems, and has some great easy-to-use tools for partitioning. I have put together a USB drive with multiple distros on it with software called MultiBootUSB.

Terminal Stuff

Nethack, a game that runs in the terminal

A terminal is an application that allows the user to type commands to interact with the system if different ways. Linux comes with a very diverse and useful set of terminal commands for just about anything. Basically, the terminal acts as the glue for the system, giving access to all utilities, and allowing you to write scripts that automate tasks like backup of files, changing desktop backgrounds and themes, or installing apps on a new system. One of my favorite scripts lets me swap between the default skin of Linux Mint and a Windows XP theme that someone made for Linux Mint!

Later in the article I will discuss some of the fun terminal apps you can run.

Lightweight

Linux uses very few system resources. Depending on the distro, it can use about 300 MB (0.3GB) to 800MB (0.8GB) of ram with no apps open, leaving the rest for all those browser tabs that somehow take up 250MB (0.25GB) each… By comparison, Windows 10 uses 1GB to 2GB of ram with no apps open. Linux also uses only a few GB of disk space, and boots very fast (again, depending on the distro).

This makes Linux perfect for…

Old Hardware

A lightweight distro such as Lubuntu or Debian can run on old hardware (or cheap hardware like a chromebook) and still receive security updates. You can finally turn that 10-year-old laptop into a portable emulator for the Atari 2600 (among many others)! This project took a computer from 1989 and put modern Linux on it, and it still gets updates.

Ease of Technical Use

I have tried to install python on Windows before, and it is not a good experience. Linux, on the other hand, has python already installed and even has multiple versions for compatibility with older python programs. Setting up custom networking with a system of servers, or even devices around the home is a lot easier and cheaper (no licences required) in Linux. If you want to set up an audio production machine, you can use the Ubuntu Studio distro, or install the programs it uses on any other distro to create your customized audio setup.

Home Server

While Linux only has 3% market share on personal computers, it dominates the server market, with about 2/3 of the world’s servers running some form of Linux. That means that you most likely use Linux without knowing it every time you use the internet! This makes it the ideal choice for a home server since there is so much high quality server software available for free. You can use Linux to host your own website, store a backup of your laptop, run a minecraft server, act as a DVR, stream music, control home automation, etc. Since most of the world’s servers run Linux, having experience with Linux servers is an important skill to have if you are going into IT or web development.

Cool Things to Do with Linux

Open a terminal in Linux (Ctrl-Alt-T on most systems) and type the following command to install some fun scripts:

Press Shift-F1 and enjoy! You can add more sounds to the other Shift-F<1-12> keys using the same process. Here is a link to all the sound effects I added.

Conclusion

Thanks for reading (or skipping) all the way to the end! This has been my perspective on the world of Linux. Whether you find Linux appealing, appalling, or somewhere in between, I hope you got something useful out of this article. The appendix has some useful articles on learning more about Linux if you are interested. You can also leave a comment if you have any questions, suggestions, or… well… comments!

]]>https://johan.vandegriff.net/wordpress/2018/04/10/linux/feed/0Third Party’s the Charmhttps://johan.vandegriff.net/wordpress/2018/01/18/third-partys-the-charm/
https://johan.vandegriff.net/wordpress/2018/01/18/third-partys-the-charm/#respondThu, 18 Jan 2018 22:41:15 +0000http://johan.vandegriff.net/wordpress/?p=37I wrote an essay last semester at UMD about a proposed system for voting that would allow people to vote for a third party without wasting their votes. Voters would indicate their first, second, and third choices for candidates and the system would evaluate the choices so that if a voter’s first choice candidate did not win, the vote would be reassigned to the second choice, and the count would be re-evaluated.

I have known for a while that Google is one of the largest companies with most of us using their services daily. But recently I have realized the extent which they use those services to track you, and some of the negative impacts. One example of this is shown by a tool built by Carnegie Melon called AdFisher, which sends out “hundreds or thousands of automated Web browsers” to build up a profile of interests with ad-targeting networks. The tool found that fake users who were male job seekers were more likely than equivalent female job seekers to be shown ads for high-paying jobs. (Full Article: https://www.technologyreview.com/s/539021/probing-the-dark-side-of-googles-ad-targeting-system/) Another reason I switched is on the principle of supporting the “little guy” rather than super-large corporations.

So, I decided to start making small incremental steps away from Google’s services, the first of which being Gmail. My new email uses ProtonMail, which I set up a while ago but recently started using more frequently, then bought a custom domain and made the switch. (I still have my Gmail account set up to forward to the ProtonMail for people who still have my old email.) ProtonMail uses end-to-end encription so that no one can read your messages on their way to the recipient, not even ProtonMail itself! They also have apps for iPhone and Android.

You might think that the Google search engine might be the hardest to stop using, but I found an alternative called DuckDuckGo, “The search engine that doesn’t track you.” It is almost as good as Google at searches and there have only been a few instances where the results have missed the context and I had to add a few keywords. A small price to pay for Google knowing less about you per day.

Google Drive, Calendar, and Hangouts/Video Calls can be replaced with a service called NextCloud, which you can host yourself for free or pay for a company to host it for you. I am currently testing it on a Raspberry Pi to see if I like it, and so far it’s been great!

I currently have an Android phone, but I found a Linux-based privacy-focused phone that comes out in Jan 2019 made by Purism, a company that has made secure Linux Laptops in the past (https://puri.sm/shop/librem-5/).

The last few services that will be hard or impossible to switch away from are Google Maps, Translate, YouTube, Google Groups (when joining a club, organization, etc.). I don’t see a problem with using a few Google services as long as Google doesn’t have access to all my emails, files, calendars, and searches.

That’s all folks; thanks for reading. I’ll leave you with this limerick taken from my last post:

Johan’s become opposed to Google,
The Internet kit and caboodle.
He wants to stop being tracked,
And get privacy back,
But all of it’s just too dang useful.

]]>https://johan.vandegriff.net/wordpress/2017/10/27/why-i-switched-to-protonmail/feed/1My Story by Johan Vandegriffhttps://johan.vandegriff.net/wordpress/2017/10/24/my-story-by-johan-vandegriff/
https://johan.vandegriff.net/wordpress/2017/10/24/my-story-by-johan-vandegriff/#commentsTue, 24 Oct 2017 04:01:13 +0000http://johan.vandegriff.net/wordpress/?p=22Here are some limericks that I wrote for an assignment to tell my story.

Johan is one quarter Lebanese,
And three quarters white as swiss cheese.
He’s spent so long in MoCo,
That he’s started to go loco,
And he plans to take a trip overseas.

In 5th grade he became a Boy Scout,
And liked to make fires and camp out.
He advanced up in rank,
Supportive family to thank,
And got Eagle before the time ran out.

In High School he built many a robot,
But never gave the plan enough forethought.
They were piles of metal,
Duct taped to a tea kettle,
But they advanced to Worlds on a longshot.

Tinkering is Johan’s main token.
From this there’s a proverb he’s spoken:
For in work or playing,
He lives by the saying,
If you can’t fix it, it ain’t broken.

When he was bored he played board games,
In Dominion and Boggle he scored claims,
But when railroads got gold studded,
Monopoly got cold-blooded,
And the friendships descended toward flames.

On February 14, what’s he doing?
Not sending cards, giving candy, or wooing.
He’s in his room with a CD,
Reading a tutorial wiki,
Installing Arch Linux on his PC.

Johan’s become opposed to Google,
The Internet kit and caboodle.
He wants to stop being tracked,
And get privacy back,
But all of it’s just too dang useful.

Now Johan’s a college freshman,
Studying for a lofty profession.
He’ll be a double E,
Hitting the books with glee,
Until he runs into crippling depression.
(Just kidding

]]>https://johan.vandegriff.net/wordpress/2017/10/24/my-story-by-johan-vandegriff/feed/6Log.e() – Tales from the electron Voltshttps://johan.vandegriff.net/wordpress/2017/10/06/log-e-tales-from-the-electron-volts/
https://johan.vandegriff.net/wordpress/2017/10/06/log-e-tales-from-the-electron-volts/#commentsFri, 06 Oct 2017 19:54:19 +0000http://johan.vandegriff.net/wordpress/?p=8The following is a log of the FTC meetings at the electron Volts. Our website is at http://www.gearbox4h.org/

Coder’s Log.e()

An account follows of the myriad of adventures I have had with the electronVolts. My aim is that the narrative shall be as accurate as possible and will serve useful in reference during future events.

Saturday, October 1, 2016

We were visited by a band of rookies. They do not perceive the insurmountable tasks that lie ahead of them. I attempted to affright them by disclosing to them the monster that is The Code, but alas, they took an interest in this beast. I fear there is no way to warn them; their days ahead appear grim.

The Great Git attacked our code today. I researched its weaknesses in the Archives of Google and found individuals who were in a similar predicament. Armed with this knowledge, we were able to send it howling back from whence it came.

Sunday, October 2, 2016

I found it necessary today to journey into the desert of robot wiring. There are wires in every direction, extending out into the distant horizon. The shortage of water and software for three hours is starting to affect my sanity.

Tuesday, October 4, 2016

The wiring problem has been worsening. Connectors spew forth from every surface of the modules. Fortunately, I have discovered a solution. Unfortunately, the aforementioned solution requires an expedition into the jungle of printed circuit board design. The prospect of water makes the adventure more appealing.

This evening I spent a good while researching a mysterious artifact called the Chunk of Modularity. Legend has it that the Chunk can be constructed by connecting a set of modules in a vertical manner, with one large module running perpendicular to the rest. My first attempt at creating this enigmatic system was incomplete, but after a trip to the Amazon, I will finally have the components I need. The trip is scheduled to depart on the morrow and return within one fourth of a fortnight.

Wednesday, October 5, 2016

A portion of my crew sailed across the ocean to visit our backers today. They showed the backers the robots we have built. Whilst they were gone, I deemed it important to reorganize the software. As William once said, “Everything’s going swimmingly.”

Saturday, October 8, 2016

We are embarking on today’s journey with high hopes and a long trek ahead. The hardware team is scheduled to have some simple mechanisms built by the end of today.

As we reach the midpoint of our voyage, the hardware team is drawing out charts and diagrams.

During today’s expedition, the hardware team lagged behind and the rest of us had to wait for them. Typical.

There have been more developments on the Chunk of Modularity today. The trip to the Amazon has returned with some of the components. Now we plan to additively manufacture an enclosure for the chunk through the ancient ritual of “3D printing”.

Sunday, October 9, 2016

The printed circuit board design has been completed and now all that remains is to have it procured.

Tuesday, October 11, 2016

I sorted our collection of small engines, perceptive devices, and other curiosities. The rest of the team worked on building components of the robot’s hardware. We requested the printed circuit board to be constructed at the end of today’s gathering.

Wednesday, October 12, 2016

I have finally solved the servo inits, an issue that has been plaguing us since last year. They will be a bother to us no longer.

They have bothered their last bother. Their bothersomeness will have lasted the first botherer. You get it.

Headway is being made on the collector. We performed a test and recorded it with a device that is called a “Cam Ra”.

Saturday, October 15, 2016

Our shipment from Mr. Andy Mark arrived with the new gearboxes, which we secured to the test bot. Then we contrived a means of activating the beacons during the autonomous mode. Subsequently, a run of tests for the code was in order. The teleoperator mode is in fine condition. The task designation system and the operator option selection require more attention. I have succeeded in creating version one point oh of The Chunk of Modularity. The hardware team has done a quite excellent good job with the prototype collector. It performed very well at collecting particles at a rapid rate of speed.

Tuesday, October 18, 2016

Today’s effort was expended in recording the various and sundry functions of the code for other persons to research. The hardware team attempted to position the collector such that the robot shall fit into the standard space required.

Saturday, October 22, 2016

Disaster strikes!

My latest escapade was to wire the beacons together to be powered from one source. It became apparent that the wall adapter offered a supplementary four volts in addition to the twelve promised on the label. This unfortunate overabundance caused the beacons to become not unlike expensive bricks. I spent the remainder of the day repairing said bricks by replacing the innards with an Arduino device.

Tuesday, October 25, 2016

The unfortunate mishap involving the beacons has been mitigated. All the innards have been replaced and revitalized. The surplus meeting time was applied to the hardware efforts. Deadeye Mike lined up some perfect launches with the catapult. Unfortunately, none of them came to fruition.

Saturday, October 29, 2016

Today I showed to my apprentice Divya the mysterious process by which the code is modified. The hardware team busied themselves by improving the catapult to improve the consistency of their launches.

———————-

Tuesday, November 1, 2016

I coupled the line sensor array to the test robot.

Sunday, November 6, 2016

Divya and I activated the line sensor array. Then we tested the encoder boards and sent in an order for 500 to give to other teams.

Monday, November 7, 2016

Birthday

Set up vuforia to feed frames to opencv

Calibrated the distance sensors

Tuesday, November 8, 2016

Wrote beacon color detection

Saturday, November 12, 2016

Removed the defunct distance sensor and calibrated the other distance sensor

Monday, November 14, 2016

Michael sent a motivational email

Tuesday, November 15, 2016

Tested the autonomous

Improved the vision processing

The line sensor broke

Wednesday, November 16

Tested line up — center of mass calculations are wrong

Saturday, November 19, 2016

Meet the field day:

Helped one team rotate the opencv frame

Second team had multiple dex files — started fresh

Team 3&4 were completely new to it and went through the whole process

Team meeting:

Fixed center of mass calculations

Fixed line sensor array

Tuesday, November 22, 2016

Tested the line up – doesn’t work that well

Wednesday, November 23, 2016

Attached the chunk

Friday, November 25, 2016

Met for 12 hours

Built shooter

William stayed the night and played Dominion

Saturday, November 26, 2016

Finished shooter

Built collector — has problems

Attached line sensor and phone case

Thursday, July 20, 2017

It has been quite some time since I last put into writing the various and sundry misadventures that have befallen me as a volt of electrons. I will preface by remarking that much has gone on that I fail to recall during that time. However, some of our exploits are as follows.

Gone are the glorious days of the Chunk of Modularity, the epic tales of Deadeye Mike, the frequent and costly expenditures to Mr. Andy Mark, who never rests. Those days of hope and expectation for successful ventures are gone, for we have brushed infinitesimally close to the line sensor threshold of success, but have fallen into the Integer.MIN_VALUE of failure. At the state tourney in Mary’s land, we were distraught at the insufficiency that was contained in one infernal machination known only as…

“THOSE DANG ROOOOOLLLLLLEEEEEERRRRRRSSSSS!!!!!!”

Darkness. A long pause. A point of light in the distance. It moves closer and closer. Could it be? No, certainly not. But as it approaches, it is unmistakeable. Yes, surely… We have our lives back. Our grades begin to improve. Free time becomes more than a concept. The servo inits are no longer a problem. And, more importantly, I am able to speak and write modern English properly.

Log.d()

We needed a break. While we were in the thick of it, we wanted to win, but looking back, going to Super-Regionals would have been more stressful. The new team members would not have the motivation that they do now to get there on their own if we had made it to Worlds. We wouldn’t have had the time needed to train people before the next season. Lastly, it reminded us that we value learning over winning, which we had forgotten while being so desperate to win.

After that, we found out about the 4-H Robotics Challenge, which takes place during the summer and uses a similar field to FTC. Since the teams are 2-4 people, we decided to split into three teams: Kelvin and Hobbes, Sherlock Ohms and Doctor WATTson, and the Crown Joules (which I am on).

I decided to work on a control system to use instead of the Modern Robotics system, since the other two teams would be using up the modules anyway. It uses an arduino on the robot which communicates with a Raspberry Pi on the driver station. After I started building it, FTC announced that they would be using the Rev Robotics Expansion Hub next season, so all my work on the system was unnecessary. I decided to use it anyway since I had already ordered the parts.

You might think that the FTC season was completely over at this point, and you would be technically right. But there was one more unofficial tournament, the Maryland Tech Invitational, that we signed up for. It was a two day event, with judging and qualifying matches on the first day, and the rest of the qualifying matches, finals, and awards on the second. Several companies had sponsored the event and provided cash prizes for various awards.

There were teams there who had gone to worlds, teams with amazing robots, and teams from New Hampshire, Iowa, and many other states who had all done very well. Then there was us. We hadn’t modified our robot since states, where we fixed the rollers after our last match. We realized from the start that we had no chance at winning, except maybe a small chance at the Sensor Fusion award, and we went just for fun.

I enjoyed talking to other teams about their robots, FTC, and robotics in general, especially the coaches of the Iowa team, the Cybots. We came up with an idea for an Arduino battery internal resistance sensor.

We did very well in the qualifying matches, and only lost 2, even though every match came very close. We ended up in 2nd place! Our first pick was Mechanical Paradox. When it came around to us again, our second pick, Gluten Free (from New Hampshire), was still available since we did our scouting well.

We recognized that we were the weak link in the alliance, so we ran the other two teams as much as possible. Mechanical Paradox had some hardware issues at one point, but they fixed it just in time for the match. We won the semi-finals against the 3rd seed alliance, but watching the scores other semi-finals made us anxious. They even had a tie and had to go to a 4th match!

In the finals, we and Mechanical Paradox ran first and lost. Then MP and GF won the second match. We were all nervous about the last match, and all eyes were fixed on Gluten Free’s robot as they autonomously… pressed the wrong color beacon!!! That was a big disappointment, and watching the numbers of shots, we weren’t exactly making up the difference in that department. Then end game rolls around and both teams pick up the large particles (as the announcer called them). Then the opposing team dropped the ball! Literally and figuratively! The gears turned on the field and in our brains trying to calculate our score based on the missed autonomous, the number of shots, and the dropped cap ball. It still didn’t seem like enough, when everyone looked down and saw that ALL the beacons were blue! We had definitely won the match! “We” meaning the teams we picked in alliance selection, anyway.

During the awards ceremony, while we were still trying to comprehend what had just happened in those last 10 seconds of the match, we were surprised to get the judges award! It came with a free Rev Expansion Hub, which was strange since we had just sent an extra one back in the mail a few weeks before.

There was a lot of luck involved, but two things (maybe the only two things) that were not luck were our scouting and our reliable autonomous. This tournament was a fantastic end to my last season of FTC.

And they all rode off into the sunset. [Fade to black.]

[The camera pans up from behind a table in the garage as team members are frantically trying to build their 4-H challenge robots. Various remarks are heard.]

“We said we would DESIGN it this time.”

“Man, we should have been working this hard 2 months ago.”

“I thought this 4-H thing would be easy!”

“Hey, pass the pizza. Do we have any pepperoni left?”

[Overhead rotating shot of people running around, grabbing parts, fastening bolts, fake-typing on keyboards, and the obligatory sparks flying from the grinding wheel.]

Narrator: Here we observe the robotics team in its natural habitat. Its diet consists of pizza, oreos, and, as it would seem, scrap metal. This amazing creature, while smart, is prone to procrastination. Little is known about how it manages to complete its tasks at the last possible minute, or how it turns stock metal into swiss cheese.

Narrator: And that’s all for now. Tune in next time where we dissect the inner workings of a dysfunctional bureaucratic government agency.