Warehouse concerns

Here’s my thoughts on this whole thing. It’s your choice to ignore what I say, or to read it. Completely up to you.

Holding back the ocean with a broom. It’s a silly, old saying. It’s quite apt as a parable here however. Your words are the broom, the ocean is change, and Amazon is just the current wave in front of us. Like a broom and the ocean, there’s nothing that can be said to prevent the project. At this stage, even a lawsuit will only work to hinder progress.

However, before ground breaking, there were words said. When it mattered. Those who spoke up had many changes made to the plans. Honestly, these changes should had been implemented from the beginning by the designers. Some of the notable changes made to the plans is the addition of a high living barrier (dirt wall with plants), trailer parking and warehouse docks on the interstate side of the warehouse, and traffic restrictions for trucks entering and leaving the warehouse.

I joking commented earlier about wanting the area to be a pig farm. (I love bacon, ham, porkchops) The absolute stench a pig farm would produce would be terrible. However, until Amazon became interested in the area, there was a high potential for the land to be used for agricultural uses. Mind you, the city would not had allowed a pig farm there, I’m certain. But that being said, there are worse things which could exist there than a warehouse.

Yes, from my understanding, there was a sign placed on the property indicating the arrival of a Publix. However, I happen to know that Publix never had any solid plans of building at that location. Their interested waned greatly due to new housing “crash” – Their interest was based on the developing and growing area, which ceased for quite a while. Publix also has a long standing habit of pulling out of a project if their name is attached without their consent. This is doubly so if their interest in a parcel or building is not solid. The sign itself may have been enough for them to withdraw their considerations.

As far as traffic is concerned – there will be two types: commercial/delivery and employee. From my understanding, the commercial and truck traffic will be using an entrance much closer to interstate, but still on the main through-way. Employee traffic will be routed to the entrance at the end of the residential feeder. There may be the occasional vehicle at that intersection throughout the day, but most of the employee traffic will be during 3 or 4 times a day. Trucks will probably be leaving and entering at all hours. They’re actually not as loud as people think, and won’t be disturbing anyone’s sleep.

Consider for a moment that Publix had built a store and retail center at that area. This would cause a constant and continual flow of traffic for most of the day. Consumers entering and leaving at all hours of day. Trucks and delivery vehicles would still exist (albeit not at the same quantity) and there would be no traffic restrictions preventing residential roads from becoming a through-way for those shoppers. There’s the possibility of an alcohol serving restaurant, or even a bar existing at that strip mall. Now, there’s a high potential of drunk drivers on these roads, which lead to our communities. Roads where big trucks won’t be driving. Personally, I say that’s a win for the area. Employees won’t be driving inebriated.

Let’s talk about the economics real quick. The sale of the land, lots of taxes to the county and City. Yearly taxable income. 500 new jobs (say 10% are filled by transfers, that’s still 450) This has already resulted in another parcel being considered for commercial building – so yet more taxes, more employees. $15 per hour wages. Ok, so let’s consider the work those employees will be doing, and the conditions in which they’re doing it. Warehouse workers are the new coal miners, the new boilermakers, the new high-rise riveters and steel workers. It’s a job not for everyone. Extremely physically demanding. Very mentally draining. There’s going to be a lot of burn-outs who will look at less stressful positions, even if it means taking a pay cut. But in the mean time, those employees will be living and shopping in the area. They will be spending their money in our home. That’s more taxes, more little stores getting income. That’s the potential for /more/ little stores.

Housing and property valuations. This is a big concern for high end communities. I get that. It’s also quite true that the values of houses will drop slightly. With the amount of employees Amazon will have at this location, there are certain to be new homes in the area built. Older homes purchased. The area will grow. If these homes are high value family residences, that will ultimately bring the value of existing homes and neighborhoods up again. However, if these new constructions are allowed to be dozens upon dozens of low-end or starter homes – I can’t say the values will raise at all. Now, I’m not talking about new neighborhoods of high-end communities, but rather $250-$500k homes. So, it is with that concern that the residents in the area should concentrate. Ensuring that any new developments have stipulations of being mid-level communities. Not just for area housing valuations, but so they are actually affordable by those who will be working at Amazon, and thus will purchase them and live there.

If the area were to have been used for a retail center – Publix or not – it would drive a lower end push for housing in the area. Sub $200k homes. Starter homes. In a few years, they would be sold off to others. There’s no attachment, and thus those neighborhoods would quickly fall into less optimal aesthetics. With Amazon, there is a chance of new neighborhoods being valued higher – both financially and emotionally, and will be better taken care of… and add to the value of existing neighborhoods.

There will be new homes, new commercial, retail and industrial projects in the area. It’s not stoppable. Not unless someone purchases all of the surrounding land. It’s progress (like it or leave it) It is up to us, the stewards of our community, to help shape the direction this growth takes. There will always be things not in our control. There is still plenty which can be done however. We just need to pick the fights we have a chance to win. Having the new construction and businesses make concessions to ease the burden they will put on the area. To compromise on designs to increase the overall happiness of both parties. To help direct the City in area restrictions and code. But it must be done appropriately, at the times and places when it matters, and always with high moral, ethical and legal intentions.

Simple batch file clock

A very simple batch file clock to run in a command prompt or powershell window.
This was intially written to watch for OS freezes for Wolf68k, when he was streaming. The concept is simple: show an ever changing display which will cease updating during system freezes. I’ll go over the lines one at a time below.


|@echo off
|title JDenslinger's local system Time
|color 0a
|cls
| :CLOCK
| | cls
| | echo %time%
| | ping localhost -n 1 >null
| goto CLOCK

wordpress seems to want to delete all my extra space. I hate it. so, here, in the code section, there is a pipe | preceeding the lines. Remove the pipes if you use this code, otherwise it will not function properly or at all!

@echo off
– Ths provides for the system to not show any of the commands, and to only output the time
title JDenslinger’s local system Time
– two parts here, to form the titlebar display:
— title – the command to initiate the titlebar display
— JDenslinger’s local system time – the words to be displayed.
color 0a
– the background (0) and text (a) colors, black and lime, respectively
cls
– clears the screen, ensuring that the display is only a single line
:CLOCK
– basic function pointer, can be called later in the script
cls
– this clears the previous time allow for the new time to be displayed
echo %time%
– echo (output to the display) the current time (%time% is a system variable)
ping localhost -n 1 >null
– poor man’s timer. On very slow systems, this can more close to a second or longer delay.
goto CLOCK
– This directs the script to go back to our function pointer, creating an infinite loop.

This script can be stopped with ctrl-c or by closing the window.

Icecast music streaming…

This is an old guide I wrote back in 2014. It may still be applicable, or it may be completely useless now. But at least it’s shows the steps I took years ago to set up a streaming station.

BEGIN:==========================================================================
Poor man’s basic Icecast source setup instructions
Everything needed to set up a basic streaming system without the mess.

This tutorial assumes you’ve successfully setup icecast2 for this.
This tutorial also assumes you’ve got audio files to use to stream to icecast2.
You will also need a method seperate from your source computer to tune-in to the
stream – another computer or a friend with a PC you can be in communication with.

We will be using several programs to achieve this. These are:
VB-Cable from Pagesperso-orange.fr
edcast reborn from code.google.com
LAME MP3 from rarewares.org
VLC from videolan.org

First, you will need to download and install several pieces of software.
We will do this before continuing to configuration. Please follow the directions
as given as not doing so may cause errors in setup or configuration which cannot
easily be traced with issue diagnosing.

Go to:
http://vb-audio.pagesperso-orange.fr/Cable/index.htm
download CB-Cable Driver (center coloumn)
unzip to a fodler on your desktop and open the folder
right click on VBCable_setup and choose “Run as Administrator”
**Note: If using Windows 64bit, instead use VBCable_Setup_x64**
Click install on the screen that opens (if nothing, use other setup file)
allow the software to be trusted (check the box) and install
Verify this was installed by:
open Sound control panel
verify “CABLE Input” exists on “Playback” tab
verify “CABLE Output” exists on “Recording” tab
close Sound control panel

Go to:
http://code.google.com/p/edcast-reborn/downloads/
download edcast_standalone_3.37~~
Open Edcast Standalone Setup
click “Next>”
click “I Agree” (after reading and understanding the liscensing and terms)
click “Next>”
click “Install” (yes, use the default path)
Verify edcast is installed:
open the icon on the desktop for EdcastStandalone
Verify edcast opens, providing a window with several controls
close edcast

Go to:
http://www.rarewares.org/mp3-lame-bundle.php
Download LAME 3.99.5 with a size of 636kB (top download)
(DO NOT download the 64bit version)
open your edcast installation directory (C:\Program Files (x64)\edcast)
open the lame3.99.5.zip archive
copy lame_enc.dll from the zip to ~\edcast (it will be in with ogg.dll, vorbis.dll)
close the zip archive
close the edcast install directory
Verify LAME is installed:
open edcast (shortcut on desktop)
click “Add Encoder” button
See that a new entry was added under “Encoder Settings” and it is the only one
right click the new Encoder Setting selection, choose “Configure”
click the “Encoder Type” drop down, choose “MP3 Lame”
(it will not allow you to select it if it’s not instaleld properly)
click “OK” button
close edcast

Go to:
http://www.videolan.org
download VLC (big blue “Download VLC” button)
open VLC install
follow instructions on screen to install
use “Recommended” install type (just press next on “Choose Components” screen)
Verify VLC is installed:
open VLC (shortcut on desktop)
play any media file with audio to make sure VLC is working
close VLC

Now, go get some coffee, mt dew, take a bathroom break or just stretch.
You now have all the base software installed on your computer.
When you get back, it will be time to put all these bits together and stream!

OK Good! You’re back. At this point it would be ideal to have either another
computer, or a friend you can communicate with to help with testing. Their part
will be minimal, they just have to connect to your icecast server and listen.

Now, it’s time to configure VLC and edcast to work in tandem via VB-Cable.
VB-Cable shouldn’t need to be configured, but we will touch it’s options.

Open VLC (shortcut on the desktop)
open VLC’s Preferences (ctrl-p)
under “Show settings” click “All”
Go to Audio > Output modules
for “Audio output module” select “DirectX audio output”
go to Audio > Output modules > DirectX (You will have to expand the list to see it)
for “Output device” select “CABLE Input (VB-Audio Virtual Cable)
uncheck “Use float32 output”
for “Speaker configuration” select “stereo”
click “Save” button
Close VLC
re-open VLC (This is required to set the audio output properly)

set VLC aside for a bit, but leave it open.

Open edcast (desktop shortcut)
under “Live Recording” select “CABLE Output…”
right click on the MP3: selection under Encoder Settings, choose “configure”
Basic Settings tab:
change “Server IP” to the *IP* address of your server
change “Server Port” if you chose something other than 8000 in icecast2 setup
change “Encoder Password” to the password you used when setting up icecast2
YP Settings tab:
uncheck “Public Server” (This disables your server from being in icecast directories)
change “Stream Name” to your website/domain/station name
change “Stream Description”
change “Stream URL” to your website or icecast2 url
Advanced Settings tab:
(nothing to change, but look anyways for familiarity)
click “OK” button
click “Edit” to the right of “Metadata”
put your station name and your dj handle in the “Metadata” field
click “OK” button

Now it’s time to get your client computer or friend to tune into the stream
Be advised the audio may be very loud, so the volume on the client should be down

go to VLC
load up the playlist with files, enough for 20 minutes, or hit repeat
press play, ensure you cannot hear audio from it from your speakers
turn the volume all the way up to ensure audio quality to edcast and beyond

go to edcast
click the large black bar towards the top, it should start showing two
green and yellow bars bouncing left and right
press “Connect” button and let your friend know to tune in

You should now have a live stream going from VLC to edcast to icecast2 to your friend.

There are additonal features of edcast that can be set or configured. Such as the
Metadata being able to pull the song title from VLC’s window (this did not work for me)
Take note of what you change in case it breaks something and you need to revert it.

Play with the settings so you know what everything does, and remember it’s better to
have the audio player’s volume very high and use edcast to limit it so as to keep the
audio quality higher.

This document is liscensed under the Creative Commons Attribution with ShareAlike BY-SA

Spreadsheets, Minecraft and OCD organization…

Let me start out with HOLY CRAP TWO POSTS IN ONE DAY!? AFTER 9 MONTHS OF NO POSTS!? WOAH!! Am I crazy? Probably! Maybe not enough though…

So I found that I really enjoy using Google Docs spreadsheets. Well, I’d say use, but I think “abuse” is more the correct adjective here. Did you know that you can get 188000 rows, if you have only 13 columns? Well, it’s an odd limitation, but I found it! A workbook on Googlde Docs Spreadsheets can have only 5 million cells. That’s all sheets in a spreadsheet, not per-spreadsheet. It makes sense, memory resource limitations and all.

I’ve taken to using a spreadsheet for organizing all of the permissions for a small Minecraft network. When I say small, I mean 9 servers, 26 worlds, 10 “tracks” (groups of permission groups), 75 positions (permission groups), with an unknown amount of permission nodes for 98 plugins. The way I have my spreadsheet set up, is to use a row as section headers for the next set of columns. (If that don’t sound foncusing, let me explain)

The first row is, of course, my sheet header with each column labeled – because “A” “B” etc are not good names for data organization. I have this row frozen, so it’s always at the top. I also have the first and second columns frozen, so they will always be shown on the left side of the screen. These columns are Track and Group. I then have Columns “C”, “D” and “E” grouped under Group. These columns are “Prefix” “Username” and “Suffix” This was important so I can hide these columns now that I’ve completed that part of my job, without starting a new sheet, or removing them. Duration and Titles, “G” and “H” are grouped under Info, column “F”. Again, so the Duration and Titles columns can be hidden under Info. Columns “I” and “J” are “Server context” and “World context”, with World being grouped under Server, again to hide it. The next three columns, “K”, “L” and “M” are Plugin, Permissions and Negated Permissions. Yes, “L” and “M” are grouped under “K”. When I say grouped, this is a function in Spreadsheets which allows the grouped rows or columns to be folded or collapsed into the parent row/column. So with everything collapsed, I see columns “A”, “B”, “F”, “I” and “K” – and I can expand the section I need to focus on.

I’ve done this with rows as well. The first data row is the name of my first track, and as such A2 is filled in with that name, “Admin” (A1 being the label for the column in my header row, “Track”) For organizational purposes, I’ve left B2 empty, and went to B3 for my first “Group” entry. This allows me to collpase B3 under A2, without showing the first group, as it would be if I were to have used B2. This also allows me to free-up the rest of the row for track-specific data, such as Suffix, info, etc. I’ve done the same for the rows which contain an entry in the Group column, again so I can have group-specific data stored in that row. Moving to Column “I” or “Server context” I have again stepped the first entry in this column to the next row down. So, I4 is my first entry for Server contexts. And “J5” is my first entry for World contexts, as a “world” is a subset of a “server” I’ve continued this mostly-empty row organization with columns “K”, with each row having a plugin name. My first plugin is in cell K6. The next two columns will contain all of the permissions for that plugin in the same row however, L6 (first plugin’s permissions) and M6 (first plugin’s negated permissions) Row 7 will have my second plugin, permissions and negations, so on and so forth until I run out of plugins.

I have a nice nested effect going on with my rows, with the column to the left being the “header” for the cells to down and to the right. And when I collapse all of my rows, I see a nice list of all of my tracks. Then I can expand which track I want, and see the Groups within it. And expand the Group for which I want to modify or retrieve data from. At this point, I’m working towards well over 120000 rows, with 12 columns (The username column is only a placeholder, and is going to be removed) And so I’ll be looking at 1.4 million cells, with the vast majority of them empty, and not even visible at any given time.

But why so many rows, columns and thus cells? So, each plugin has it’s own permissions – some plugins give inherent permissions for all players, and some give inherent permissions only for those in the game servers’ “Op” file. Minecraft uses it’s own very primitive permission system for built-in commands. It’s archaic, non-granular, has 4 levels and various permissions within each level, with each higher level inheriting the permissions from the lower. But here’s the kicker, and why it’s archaic – Say I want someone to be able to kick a player, but not to build at spawn – well, with Minecraft’s Op system, that’s not possible, because building in spawn protected areas is a base level permission – kicking is the next level up. So, enter, and back to, Minecraft Permission Management Systems. I’m transitioning from PermissionsEx to LuckPerms. Various reasons, mostly due to LuckPerms having an active development team, and some functional technical reasons as well. I’m also taking the opportunity to build out readable documentation that my staff can access to assist with entering all of the permissions into LuckPerms, and for future reference for myself.

I seemed to have digressed a bit with that, so back to the question of why so many. First off, I have an unknown number of permissions. But let’s say the average plugin has 15 permissions (so have none, and some have much much more, so 15 is pulled out of thin air). Now, I have about 100 plugins. That alone means there’s 1500 permissions. Now, one plugin in specific has roughly 1500 permissions by itself. So, let’s say we have a total of 3000 permissions. Now, you may ask “OK, but that’s only 100 rows, as permissions for each plugin are grouped into the same row?” It’s not that simple. There is the potential for each world context (a world context is the number of worlds + the global server context, so n+1) having at least one entry for each plugin. There are a total of 26 world contexts, and several servers are only using a single context (global), so there’s the potential for even more. So we’re at 2600 unique potential permission rows. World context * plugin count. (I’m at 96 confirmed plugins, but may be adding a few more, so we’ll round off to 100 for this exercise) Now here’s the kicker: That’s per position. I have 75 permission groups (positions) So, 2600*75 is 195000 potential permission rows. Now, not all plugins will be installed on all servers, not all plugin permissions will be applied to every position (given or negated), not all plugins even have permissions, and there are some tricks to compounding permissions using * and built-in super-permissions (a permission which gives all the same functions as multiple other permissions) So it’s a LOT of permissions, data and work.

As someone who is very visually organizationally oriented, this helps to fully detail out the entire scope of the permissions on the network of servers. For me, at least. Ideally, this will also give my staff the ability to read the permissions per world, per server, per group and thus be able to enter the permissions into the new system for me. AND We’ll have a system-agnostic documentation that can be referred to and altered as needed in the future. It sounds extrememly convoluted and anything from easy. And it has been an absolute pain in the sphincter to set up. However, it’s use should be pretty simple, provided those who use it can understand multi-dimensional data storage. (spreadsheets with collapsable rows and columns) At it’s visually smallest, there will be only 11 rows and 5 columns. 55 cells, with 44 of them being empty. This is how each person should initially view this document. Each row and column can then be exapanded and collapsed as needed to navigate to the particular section and sub-section to modify or read.

In some respects, this is still easier than Windows Server 2003’s Active Directory. In others, I’ve completely rebuilt the entire framework of a Permissions Management System in a spreadsheet. For years, I’ve hoped someone would create an AD or OpenLDAP Minecraft plugin, but I feel the time for such an adventurous project has come and gone. Microsoft may be doing wonderful things with Minecraft still, but if we’re not already in it, Minecraft’s sunset period will be upon us within a few years. With the release of the right game, it could be even sooner. But what the developers behind LuckPerms has done is absolutely amazing and I hope they have written it in a way that LuckPerms can become game-agnostic and useful for other ventures in the future. It is already available for Minecraft Java Edition (Bukkit, Spigot and Paper); Minecraft Bedrock (for consoles/Win10) through NukkitX, a Bedrock server written in Java; Minecraft Forge servers (Also for Minecraft Java Edition, but different API) and I think another Minecraft server or two as well. But these things have two things very much in common: the base Minecraft game & Java.

At the top of this post, there’s a screenshot of the framework, with some sections collapsed, and some visible. For reference to this article only.

Linux, Java, Git and Maven…

Here, I will explain how to *simply* get a Java project with Maven compile instructions (pom.xml) on Github to your system, and compile it using Maven. This requires a few things. We’ll use Potato. You can fork this project with your own Github account, and then you can say that you’ve “Forked a Potato” (Seriously, it’s just a fun project with limited to no practicle use) We’ll be using Potato as our reference example project. It is Java, with Maven, on Github and will compile under Linux. https://github.com/AeSix/Potato

First, let me state that I use Ubuntu GNU/Linux distros. Life is too short to worry about getting everything installed “the hard way” – Ubuntu’s apt-get is, in my humble opinion, the simplest way to do routine software installs. I’ve built Slackware linux, ran through Fedora Core, messed with Gentoo and Suse, and various other distros, including Debian (Ubuntu’s papa distro) For everything I’ve ever needed, Ubuntu has provided much simpler than other distros. That may not be the case for everyone, however. So with that all said, I’ll be talking about “Linux” pertaining to Ubuntu GNU/Linux specifically. These instructions may be translatable to other Linus distros, to UNIX distros (FreeBSD, MacOS, etc) or even for Windows with varrying degrees of success. I won’t discuss these here though.

The first step, of course, is to procure suitable environment and install your OS. We’ll assume this is done. If it’s not, you’ll want to do that, after reading the rest of this. You’ll find specific instructions for your environment online, and so I won’t waste time here detailing that.

Next, you’ll need to install Java. This is a considerably more difficult process on any Linux distro, if you’re wanting to use Oracle Java (as opposed to OpenJDK), that’s as simple as
> apt-get install open-jdk
I prefer to use Oracle JDK, however that’s a personal preference. You can find installation instructions if you were to search for “Oracle Java Ubuntu webupd8” – there’s plenty of info on that and does not need to be duplicated here.

Once you have Java installed, you’ll want to get a Git client and Maven. Again, there are installation instructions online for each of these. I suggest Gitlab’s instructions, but DigitalOcean has some nice write-ups as well.

At this point, we’ll assume you can do these things:
login to your Linux user account, and perform commands with sudo. I highly suggest NOT using root user!
– Test your network connection:
> ping google.com
– Test your Java installation:
> java -version
– Test git client:
> git –version
– Test Maven installation:
> mvn –version

Assuming this all went to plan, you should now create your work environment. I suggest making a ‘dev’ directory under your /home/username, with a git directory under that. OCD organization!
> cd ~ && mkdir dev && cd dev && mkdir git && cd git && pwd
Provided this worked, you should see something akin to, with “yourusername” being replaced:
/home/yourusername/dev/git

Now all the setup is done, let’s clone us some code!
> git clone https://github.com/AeSix/Potato
> cd Potato && ls
The first command here will reach out to Github and fetch a copy of Potato from github.com/AeSix/ and create a new directory under git/ called “Potato” The git client will always create a new directory in your cwd with the project name as the new directory name. The second command simply puts us into that directory and lists it’s contents. Verify that the contents on your system match that of the repository you cloned from. If it does match, Congrats! You’ve cloned a Java Maven Git project!

Let’s build this project. This is what I *LOVE* about Maven, how simple it is! You’ll be addicted and wanting to compile github projects every day! (Ok, maybe I alone got a bit overly enthusiastic about Maven when I first got it working!)
> mvn clean install
That’s it! That’s all you needed to do! Of course, you *have* to be in the directory with the project’s files for this to work, and the project *has* to have a ‘pom.xml’ file. Of course, the project also has to be fully written, not broken, and compatible with your version of Java and potentially your OS (Very old OSes may not have some functions that newer Java projects require, but then your Java version would be subject to these and you’d never get a new enough Java installed to even build with much less run the project with)

Oh! You actually want to run the project? I guess I can tell you where the compiled jar is.
You should still be in /home/yourusername/dev/git/Potato – so do
> pwd
and confirm you are. If you’re not, then something went awefully awry and you should figure that out. Let’s assume there’s no problems though. Now do
> ls
You should now see a “target” directory. Again, assuming all things went well, do
> cd target && ls
And you’ll see “classes” and “Potato.jar” So let’s run Potato!
> java -jar Potato.jar
You should be greeted with a friendly, if passive-aggressive, yet humerous message from your new Potato.

If *anything* went wrong, I suggest starting from the top of the first checklist, pinging Google. If you still can’t get it going, you may need to do some more research.

Here’s the TL;DR for those who just need a reminding of how easy (so easy, it’s forgettable) Java/Maven/Git is:

Get project url:
example: https://github.com/AeSix/Potato
Enter your working environment:
> cd ~/dev/git
Clone project to local system:
> git clone https://github.com/AeSix/Potato
Build with Maven:
> mvn clean install
Test the built jar:
> java -jar Potato/target/Potato.jar
Rejoice at the deliciously prepared Potato!

To update the local project files:
> cd ~/dev/git/Potato
> git pull
The git pull command has to be done from within the project’s local directory, otherwise it wouldn’t know which project to update.

Yesterday…

I’ve been officially married in the eyes of God, the law, friends and family for five days now. Nothing much has changed. But that’s to be expected – because we have been married to each other for over two years in our own eyes. We made that commitment then, to each other and have lived by it since.

It’s amusing how much has not changed. And how much actually has. The things I would have bet good money on changing after our ceremony are absolutely 100% the same. I’m still a perfectionist, and she is still the perfect person for me.

We’ve spent many units of space time together, traveling through this life with each other in the last 2+ years. We’re each other’s companion, staying side by side through all that life throws at us. She is by far much more my strength than I hers. We have grown together, she has taught me patience that no one else ever has, and has taught me to be calm. Her opinion is the first to matter to me in a long time. Maybe that’s what love is about?

She now refers to me as her husband, and I refer to her as my wife. These are not possessive terms as much as they are self-proclamations of attachment. I attach myself to her when I call her “my wife” – not the other way around. For so long, the left has been shouting wrongness and irrationality at my that I didn’t realize how much they were wrong, and how calling someone “my wife” would affect me positively.

I am not her property, and she is not my property, except that we give ourselves to each other and have bound our lives together, equally and have been acting as husband and wife for 2 years – only now we are legally and socially allowed to use the titles of endearment for which roles we play. Life is good, it is simple, and it is the most complex it has ever been, it is terrifying and exhilarating all at the same time. It’s a hell of a thing, and I’m so happy to be sharing this journey with the woman who calls me husband.

Tomorrow…

Tomorrow is a new day, the end of this week, and the beginning of a couple in the eyes of the government, our families and friends.

I would say in the eyes of God, but we have made our commitment to each other long ago, and that is when, in the eyes of God, we were united as one in what we call a couple. This is when my life truly changed for the better. This is when I told myself I need to step up and be a better man, a better person. It’s been a long journey, emotional battles with myself and various events. My wonderful wife has been there for me in ways I never knew a person could. She has helped me grow and has helped me learn. Meeting her was the best thing I’ve ever done – and it all started with a plugin for a mod of a game made in 2009 by a balding Swedish independent game dev.

So, Tomorrow brings with it legalities, family jests, and hazing from friends. It brings a family together who has been separated far too long, and brings myself into a new family who I’ve already grown to love as my own. It brings the beginning of an annual celebration of our love for each other. Tomorrow is just the first of many of these celebrations, the biggest and the one we wish to share with our friends and family.

The next 4 decades are going to be a hell of a ride, and these passengers are as great accompaniment as any I could ever ask for.

More than a couple, companions through this adventure we call life.

People and Corrupt Beings

When someone has lied to themselves and been lied to so often and so much, and has started to believe those lies as truth, those lies become their truth, which blurs reality, making distinction between two subtle, and sometimes not so subtle differences indistinguishable from the lie itself.
 
Guilt among those who scream that immigrants mustn’t be deported, even though no one other than the left and the media has said they would be deported, is a major cause of their blind ignorance, and a basis for the lies they’re being fed.
 
There are people on this planet who’s sole purpose is to be as disruptive and malicious to society as a whole, that if these people were to all be silenced at once, and prevented from causing the trouble they do not know they are causing, the sheer amount of peace and understanding in the world would be overwhelming. These people may not realize, know or understand they are being this way. In their world, the things they do which are totally destructive to society and those around them, is, in all essential aspects of their life, mind and soul is what they are supposed to do to be a good person. They are “wired” wrong. They are corrupted to a point where there is no hope they can ever be responsible, productive members of any society. No matter what they do, make, or otherwise create – it will have at it’s core the destruction of the thing they are, on the surface, appearing to help, befriend, or otherwise do good for.
 
George Soros is one of these people. One of the most corrupt and evil men on this planet – and yet, if you were to take a shot-glass peek at the things he’s done for this planet, one would believe he is a selfless custodian of this planet. But he’s not. Every ounce of energy he exerts is, regardless of surface appearances, intended to corrupt, dilute, and destroy this planet. He is nothing more than a merchant of chaos and being incapable of truly helping anyone or anything.
 
The world is full of these people. They are incapable of anything but hatred, lies, and dealing with things that destroy rather than create. These people have as their fundamental goal of existence to do as much harm as they possibly can. The truly sad part is that they honestly believe they are doing good. They honestly believe their cause is the best thing for their group, their civilization and society, their country. And they’re just plain wrong.
 
They will take any input given to them, and twist it around, corrupt it, fill it with lies and deceit, and spew it back as if it were verbatim to what others have said. They will accuse any person who argues this, or attempts to point out the faults or attempts to correct them as any negative entity which they feel applies.
 
In this case, these suppresive people, these merchants of chaos, these corrupt souls, they will accuse the rest of the world of being racist, xenophobic, religion-phobic, race-supremacist, etc, without any factual proof or evidence to support their claims, regardless of the proof or evidence which is contrary to their libel and slander. These people are worse than any religious zealot, any radical or extremest. Why? Because they honestly do not know what they are doing is wrong, and have no guidance where as zealots, extremists and radicals are doing what they do because of their beliefs which they knowingly understand and accept.
 
Yes, I’m saying that an Islamic terrorist is a better being than these people. They come in all shapes, sizes, colors, nationalities, and political affiliations. And who knows, maybe I’ve got it all wrong and those people who have diametrically opinions and views to me are right and are doing the best for the planet and I’m the one whom is described above. I highly doubt that though.
 
So yeah, when You tell someone “Illegal Alien” and they reply “immigrant” – You can be assure you’re either talking to a dumb-ass, or someone as I described above. Either way, I hope life is just that much better for you!

What is BluntAboutIt?

This is BluntAboutIt.com, and I am it’s owner, operator, opinionist.  I am Jeremy Denslinger, and BluntAboutIt.com is my venue of variable verse on vetting vomitous vexations.

BluntAboutIt.com is a website conceived of way back in 2003.  Originally the idea was to focus on IT – Information Technology, with minor focuses of hardware, security, network and communications, gaming, food and geek/IT-Admin culture and social aspects.  In the 13 years it has taken me to realize this idea, I have learned many things and have expanded my interests to be globally general.  So, with that said, BluntAboutIt will re-define the “IT” to “it” – that is from “Information Technology” to the pronoun referencing an unspecified subject which will be at hand.  I have broken this blog up into 10 categories, where each post made for BluntAboutIt.com will fit.  The scope of BluntAboutIt.com has widened from a niche, though large area of technology, to encapsulating every subject. However subjects and issues on BluntAboutIt.com will be presented in Honest, sincere, thoughtful and deliberate posts.  This is not a satire, joke, mocking, fictitious or otherwise malicious site.  There will be only opinion, truth and the occasional speculation here, and will either be labeled as such or made obvious to the reader.  BluntAboutIt.com does not endorse or sponsor the selling of chaos, lies, misconception, slander, libel, or fictitious “news” to our readers.  However, with this said, opinions, statements, ramblings, commentary and articles may not be agreeable and in-line with everyone’s views.  Likewise, stories of fiction may be posted on BluntAboutIt.com, however will be labeled as such.  My goal here is not to entertain, but to provide a symposia of topics in a factual bearing with a minimum of inanity and irrelevancy.

To discuss, in a civil and possibly heated environment, any topic, and specifically current affairs of any kind.