Why you should be nice to everyone…

You can never know who is truly behind an online handle or who is at your meetings.

Sometimes people are fools but it is important to reserve judgement. On a message board over 13 years ago this interesting exchange happened between two webmasters. One would go on to be in a partnership with others that would form some of the largest brands in adult entertainment.

Notice the handle name: Brazzer. Sound familar?

Screen Shot 2016-09-11 at 6.05.22 PM.png

Screen Shot 2016-09-11 at 5.48.24 PM.png

Screen Shot 2016-09-11 at 5.48.32 PM.png

on archive.org you can find at the bottom of the page referencing boneprone and GFY. Interesting to read what the owner Brazzer read at that time.

Screen Shot 2016-09-11 at 5.49.02 PM.png

Screen Shot 2016-09-11 at 5.49.55 PM.png

Screen Shot 2016-09-11 at 5.50.44 PM.png

Screen Shot 2016-09-11 at 5.50.56 PM.png

Screen Shot 2016-09-11 at 5.51.34 PM.png

For better context you can read the full thread here: GFY Thread (WARNING some adult content).

While referencing an adult webmaster forum may seem a little off, the lesson here is how much boneprone missed out on by being a bit of a trollish asshat. Thing is boneprone’s antics would later get him in legal trouble. Still, boneprone had massive success but he really shot himself in this instance. He would troll Brazzer in other threads as well.

As MaDalton said, “and that, kids, is why you should be always nice to other people…”

This is how I know I am a person with humility.

I drive a Scooter, Honda Metropolitan to be exact.

Look what I drive around, most of the time anyway, this includes during winter though less frequently.

honda_metropolitan_scooter_des_moines_iowa.png

People like to smile at me when they see this. I’m not huge, 6’2″, but that’s tall enough where I almost look like I belong in a circus on this.

There’s that joke about big girls and scooters: “fun to ride but you don’t want your friends seeing you ride one.” I wonder if this means I have no shame? Of course not. I’ve actually driven around a couple places so certain people didn’t see me. Most of the time that’s not the case.

I use this mostly for going to the gym and around town errands. Occasionally I’ll take it from Ames to Downtown Des Moines.

 

Besides any humilation factor, there are certain things that come along with riding one of these:

-Motorcyclists don’t give the low hanging wave

-Trouble doing over 35

-Tires wear out after 5-6k miles, small circumference.

Here are benefits of using a Honda Metropolitan, or just about any Scooter:

-Cops almost never pull you over, nearly impossible to get a speeding ticket, more likely a traffic violation.

-Full coverage insurance is just $75 for 12 full months (I mention 12 because some plans are only 6 months) with progressive.

-Over 100 miles to the gallon, even with me weighing over 200 pounds. People who are in the mid 100’s lbs or less could probably get 10-20 mpg more.

-Cheap and reliable, I have over 13,000 miles on this and have only changed oil and the tires. Scooters are around $2000 brand new and I suspect that this will do over 30,000 miles.

Not bad, if you can stomach your pride and are willing to be laughed at, these are ideal. Kids will still think you are cool (:

POV_honda_metropolitan_Des_Moines.png

Night-time-des-moines-honda-scooter.png

The Eye Doctor says I have 20/400 vision.

Only when I read up close or do anything within 12 inches of my face do I not need vision correction.

My vision is right around 20/400, or thereabouts, is what the eye doctor told me, pretty bad. Still, the wonders of modern medicine, with glasses or contacts I can see 20/20 essentially.

20-400_vision as an example.jpg

My only concern is how I will do 15-20 years from now. My eyes are one of the most important parts of me and I can’t afford to have anything happen to them.

Without the aid of correction I do feel like I’m essentially blind.

Material science has come away in a lot of fields and the fortunate thing about this is with the refraction index of the glass that lenses are made of. Why do I mention this? It prevents you from having lensese that are extremly thick, hence the cock bottle glasses term. I may be an adult but I can still have my feelings hurt.

coke-bottle-glasses.jpg

Glasses are essential, once or twice a year I get an eye infection or irritation and they are necessary for healing.

Check this off, not too much can be done about your vision other than taking good care of yourself. Hopefully I die before I reach a level of vision that is incorrectable. (:

Adding a 3rd or more display with an external graphics adapter

I have a 2010 iMac and there is nothing to complain about with it. I did however have another 24″ display laying around that I wanted to use.

above my Windows machine there was a large 43″ TV I never used that would be perfect for an additonal workspace. I spend most of my waking and working hours in this computer den, why not make the most of it.

This is where the Coredy MDA1920 enters. The USB 2.0 to VGA DVI HDMI Video Graphics Adapter. It works on both Mac and PC. 2 orders later and $72 I had 3 displays on both my Mac and PC.

Screen Shot 2016-09-07 at 12.11.27 AM.png

My Mac is my main development environment and the PC is what I use for my tutoring services and making videos for my math channel.

https://www.youtube.com/user/mathematicssolved/about

The box contains a micro cd, I suggest going to their website where you can get drivers for either the Mac or PC. I had no problems and once the drivers were installed it was as simple as navigating and setting up another external monitor like you normally would.

The only drawback is this is usb 2.0, don’t expect to watch movies or games on the display being powered by this adapter beyond 20-ish frames. The screen will halt and freeze otherwise. For normal productivity work this is ideal. Hope this post is of use to you.

Here are pictures of the setup

2016-09-07 00.10.24.jpg

2016-09-07 00.10.44.jpg2016-09-07 00.04.02.jpg2016-09-07 00.22.09.jpg

Dev partitions with vagrant.

Partitioning a developer environment from the standard operating system makes things a lot cleaner when developing anything. Enter Vagrant. Vagrant is not stand alone, it works in tandem with Virtual Box to create environments for application/web development.

I discovered Vagrant during my Udacity coursework, they use it in the coursework because it makes the need for a specific operating system irrelevant. Vagrant is a program that works in tandem with Virtual box and sets up a headless (no graphical interface) environment. You can SSH into this environment which is separate and doesn’t affect anything directly in your own environment.

Why would I even use something like this? It allows you to configure an operating system without any fear of wrecking the configurations on your own host operating system.

Where Vagrant is really useful is for development on a Windows machine. Lots of people develop on Macs now and macs of any kind are relatively expensive. Usually on a given PC you can get the equivalent specs for 50% or even less in a standard machine with Windows loaded. What this allows is for you to create an environment with a standard bash shell that you can work in tandem with an IDE from JetBrains, anyone of their IDES. Unfortunately a text editor might not work so well.

VirtualBox_Logo.png

You are not limited to anyone environment, try out several. Below I have a list of all of my dev boxes:

vagrant_boxes.PNG

A vagrant box will act like any standard linux distro you use, the added bonus is the ability to get preconfigured boxes.

Vagrant_boxes_.PNG

With Virtual Box and Vagrant installed, installing a box in a given directory is as simple as something like “vagrant init ubuntu/trusty64” followed by “vagrant up.” You can then SSH into your machine.

ssh_vagrant_example.PNG

I’ve gone this far with you, let’s go a little further. You want to do a little web development.

I’m going to switch over to a Vagrant box made by scotch.io, Scotch box.

I’ll do exactly what I did previously in the last example. Scotch is preconfigured to view at “192.168.33.10” in your browser. You can look at the Vagrantfile to see for yourself.

scotchbox_logo.PNG

The folder the Vagrantfile is in is the synced folder between the guest and host machine. You can do dev on here but typically the web directory will be at /var/www/html/.

The nice thing about scotchbox is they make the web directory labeled “public” synced in the box folder.

making_html_file_scotch_box.PNG

success_html.PNG

In summary using Vagrant is a way to set up several different kinds of development environments without the worry of using WAMP or MAMP anymore. Mamp doesn’t really allow for mulitple instances to be installed, with Vagrant you can do that. Granted it is a little more technical and one needs to usually work with files through connecting into the machine, but it’s worth it. Take a little time to learn it and it’ll outweigh all the advantages of standard LAMP development of an Apple machine.

There are alternatives to using Vagrant. You can setup a remote environment with a service like digital ocean, a raspberry pi (though if anything goes haywire you’ll have to reinstall the OS on the SD card), and Docker (something I don’t have much experience with currently).

P.S. I own several Apple products: iPhone, iPad, iMac, and Air; I’m just justifying a valid point in the article when I state standard development practices are even on any machine using Vagrant. (:

 

 

Be careful what you post on craigslist

…Or the cops can show up to your house.

This happened to me over a year ago, it is still funny to discuss and bring up, however. Hopefully this lesson is learned beyond just me.

I had a 2 year stint where I fixed smartphones and many of my customers are University students. The University has Wifi everywhere, I know as I was a student, they however didn’t have a good guest policy. The guest policy was along the lines of lines of sign up for 7 days and you would have to wait a month or so before you could log back on with the device you had.
My data plan is limited and occasionally I did like to study around campus as I could drive all over with my scooter, park, and pick an open classroom and just hang out and study whatever it was I felt like with fast University access.

Initially I made a on Craigslist asking a University student an exchange for their internet account I would give them money. While that does sound bad initially, I had no malicious intent.

A few weeks later I did a phone repair for a girl, it was the 2nd time I had fixed her phone and she now knew me, I asked her at the end of the repair that I would discount $15 if she gave me her Wifi access, she happily complied. Over the course of the next few weeks I used her the credentials but only sparingly and like I had promised her, only for studying.

2 months go by…

I got a knock at the door at 8am, this was expected as I had someone I chose to meet with to fix their phone. About 15 minutes into the repair I got another knock at the door, this time it was the police. A police detective and a sheriff asked me some questions (I don’t really remember), I didn’t have my guard up because I had no idea what I could have done to get them to show up. After some questions I asked them straight up “Why are you here?”

Turns out someone had hacked some Iowa State University servers and stole some credentials, even social security numbers, of employees that worked there. What triggered the investigation were some fraudulent tax returns that had been filed giving them reason to investigate, that investigation resulted in generating me as a lead.
I’m not well aware of the ins and outs of a detective, they had fully investigated many aspects of me before showing up and this clued them on how it possibly could have been me. It was all triggered by that Craigslist post, that is what caused it. Then the fact that they looked over all of my information and saw that I might be someone more likely to file a fraudulent tax return (from financial reasons and I’m speculating) they further investigated.

I could have not said anything, while I’ll agree that you should keep quiet to not incriminate yourself, I generally think that most cops are not out for blood. When I opened the door they saw I was dealing with a customer firsthand and that I legitimately fixed phones. The cop realized after talking to me for a few minutes that this was a bad lead. I fully cooperated and told him I’d give him information on the girl that gave me her access ID.

Most of the people that experience problems with police generally deserve it, act politely and dress nice and you should get good treatment. I’ve had cops get high on power around me but if you remain calm with anyone in a situation, they quickly quiet down, try it sometime (: The angrier someone gets, calm down more and more and that person will feel very awkward if they remain acting the way they do, or just look like a fool to everyone around them.

The overall lesson, several, but most importantly think first before posting anything to Craigslist.

Building a business off a large platform.

Youtube is a popular platform to test without high overhead for any kind of hosting. It is something I would recommend for anyone with an idea to test it out on first on a platform with a large audience. If the idea you have has any merit and you have talent for it, you’ll gain at least some traction.
Just like blog posts on any platform (much like I’m doing here on this self-hosted platform for srchub), YouTube is a good place to build credibility, that’s what I did when building a tutoring business which involved screen sharing sessions over Skype and even doing the clients homework (which become over 50% of the revenue). My goal was to create hundreds of youtube videos and use this as a credibility builder with all those that approached me.

Around the beginning of 2013 I begin to work as a freelance tutor, I initially had some trouble developing leads, even though I posted all over the country on Craigslist. While some traction was gained it was evident I had to do something to differentiate myself.

Enter YouTube.

I already had textbooks, some with all the solutions worked out. I elected to go through and do most of the problems included in the book I had. I elected to do Trigonometry, as that is what I had tutored extensively while I was in college. In the process of tutoring it simply became easier and easier and thus trig was the easiest choice to make videos on that most people seemed to have the most trouble with. Of course there are higher math levels where help is still needed, beyond calculus things can get difficult and the people that contact me tend to throw their hardest problems my way.

Over the course of my making of YouTube videos I started to get a fair amount of viewership, a few thousand views a day. I created a domain and watermarked my videos for msolved.com. When you get traction you can actually make a little money off of the videos you have. Over time and using bulk editing, I made over 1000 videos.
In addition to monetization I used pop ups in the video for people to contact me if they had any tutoring requests. It got good enough I didn’t have to use Craigslist like I was previously to find leads.

Generating leads has a cumulative effect and over time I built up over several clients and people hung on to me; from trig or simpler algebra classes I took people through calculus and on to other classes. What ended up being my bread and butter were writing papers, as of this writing I’ve can impose over 200 compositions. Funny, much more than I was told I would write in my academic career by others.

A tutoring service is it’s own reward and over time I made friends with several of the people I worked with, a few have been with me from the beginning, going on over 3 years now (beginning of 2013 and mid 2016). I ghosted a undergraduate business degree and am in the midst of a MBA.

In the process of building my credibility and reinforcing and mastering what I had learned, I earned a little money, enough to partially pay for my internet service anyway.

Take the YouTube plunge, it’s not gratifying but is a good way to start rather than host your own videos immediately. YouTube will provide a way for you to learn keyword researching on a smaller scale for whatever it is you are trying to do.
So give it a shot, video is a great medium to convey what you have to say and in my case allowed me to prove myself to my clients before I met them.

YouTube Stats

Virtualization Dev Environments

One thing that often comes up (for me) is a software development environment the is separated from the machine you are working on. Why would you want to have an isolated environment in the first place? Main reason is if anything catastrophic happens, you can just scrap the environment.
It also allows the opportunity for people that have complaints about the OS they work on (Windows, maybe) to get a different environment to work on that machine. With few exceptions, there is no reason to buy a mac unless you plan to do any exclusive programming for iOS devices.

In this instance when I think of a virtual environment I think of a headless workspace (on without a graphic user interface) and then do all the programming to interact with this environment. With modern IDEs like JetBrains PHP Storm, PyCharm, or several others, one can work in tandem with the remote development environment. One can even use the remote dev environment’s programming interpreters as well as command line.

Let’s discuss some of the virtual environments out there.

Parallels and VmWare.
Both of these are proprietary platforms and Parallels only works on Macintosh devices. That said they allow full utilization of an operating system like Linux or Windows. This can be used to create a completely new operating system environment to work in.

Raspberry Pi
The computer the size of a credit card, the 3rd generation, is powerful enough to be used as a regular computer for most tasks. It can be considered a local/remote environment. What do I mean? The Raspberry Pi can be hooked into the back of your router and you can get a 192.168.1.* IP address to ssh into. This will allow several different kinds of possibilities to work with on the Pi. Generally it can be considered a standard linux environment.

Digital Ocean (and similar services)
Hosting has changed significantly over the last few years, digital ocean and other hosting platforms have been the culprit of this. Digital Ocean allows anyone to start and instance of several flavors of Linux or BSD. These programs can then be configured to install specified software packages through their source.list files.
If anything goes wrong people can delete the dev environment instance or simply install from a backup or do whatever works well for them.

Virtual Box with Vagrant.
Virtual Box is a free program that allows you to install other operating systems. Vagrant used with Virtual Box allows one to run headless dev environments, one’s that can be used to run given code and built to a specific environment type. All kinds of dev environments have been made, from PHP frameworks to Python frameworks and everything else.

Docker, while I’ll shamefully admit at this time it is something I haven’t personally invested time into, it is the rage and one of the most talked about technologies in 2016.
The main advantage is that it allows isolated environments that aren’t as resource heavy as regular virtual machines, by a wide margin, it uses existing system resources and hence better performance.

There’s little excuse for anyone out there programming if they have issues with their machines, simply create a new virtualized environment. Coding on Windows should be fine as you can just run a virtual environment and be done with it. For all the zealots and purists out there, the closing of technologies like virtualization makes their argument all the more moot.

Sololearn Certificates, learning when you have a spare minute or two.

I like sampling all kinds of e-learning courses out there. I have made mention of the fact that I graduated from Udacity with 2 Nano Degrees, Front-end and Full-stack developer. Even after learning the basics I still find it fun to try different styles of learning through different mediums.

I bought a Samsung Galaxy S5 from a guy in a bar for $50, the IMEI is blacklisted (which means it can’t get carrier service all with thus be stuck on Android 5.0 forever because it needs to connect to Verizon in order to do so) but everything else works.
Android has a lot of learning apps, particularly programming learning apps, I took interest. One company created apps that are really good and have several types of languages; Solo Learn.

Early in 2016 I had several days where I would just hang out in coffee shops and do Sololearn courses. Each course would take you through the fundamentals of a programming language. Over the course of a couple months I went on to complete HTML, CSS, SQL, Java, Python, PHP, C++, and JavaScript; no particular order (you can look at the completion date on the certificates below). Some of the courses do take longer than others, some just a couple of hours and a few as many as 8 or 10 hours (that’s even with some experience).

After completing these I received certificates, which I am proud of and you can see below.

There are so many coding schools being launched all the time, it’s hard to decide what to go with; advice, just pick one. Codecademy, Treehouse, Udacity, Pluralsight, Udemy, Skillshare, Lynda, Tuts+, Laracasts, on and on it never ends.
Simply start and get beat up a little, that’s what I did.

Anyway, while I don’t think you’ll learn much outright with apps like sololearn, they are a great tool to use in order to familiarize yourself with specific concepts of languages and to reinforce concepts you may have learned. This can all be done within the time it takes to switch to the app. Sololearn is available on Android and iOS. When you are waiting for someone or something on a bench, pull out your phone and learn solo.

Don’t expect to get any kind of job with this, I would recommend it though.

Give it a shot: http://sololearn.com

Certificate_1

Certificate_2

Certificate_3

Certificate_4

Certificate_5

Certificate_6

Certificate_7

Certificate

Building a chan archiver

Starting off a new ambitious project, in this case a chan scraper and archiver, requires a lot of thought. The first chan scraper I made was a simple script that would scrape 4chan’s /b/ but it blindly downloaded just the large images of every thread it saw and overwrite the previous files without considering whether or not it had downloaded them before.
I actually wanted to create a setup that would ultimately allow the indexing of all chan boards that I wanted. Though I had all of this planned out it would ultimately take a lot of changes in how the program interacted and executed with itself. This project would ultimately grow into thousands of lines of code.

The most important part of the process is building the actual scraping and gathering of the media and text on the chan. The difficult thing about 4chan (in this case) is they made it so the site is javascript that is then rendered into the html, which made it a bit hard to scrape. I had to use a headless browser instance, in this case http://phantomjs.org/ to render the javascript and then parse with Python’s beautiful soup library https://www.crummy.com/software/BeautifulSoup/.

The different boards on 4chan are posted to, updated, at different rates. One can of course blindly scrape 4chan but I designed a bot that would scan the catalog and determine whether or not the thread existed and if it existed I would check to see if the rank of the thread had increased. If the rank of the thread had increased the bot would then revisit the thread, or if it was a new thread of course visit the new thread.
/b/ moves the fastest of course. At this time I haven’t gone through to determine which of the boards moves the fastest.

After what is determined what needs scraping the bot goes to designated threads, the threads are then put into a database called {board name}_mod (/b/ would be b_mod) where mod is short for moderation. Depending on the board the content may need to be looked over to be considered safe to index.
The database stores the text and where the image location is stored locally. If everything is approved with the images and posts then a separate script uploads the local file to imgur. During the imgur upload process the url is stored in the database.

After all scripts have been run the {board name}_mod database takes all rows and moves them to a {board name}_archive. After time has passed scripts render the rows of the {board name}_archive into html and index files which are then rsync to a hosting server with nginx.

That’s the new chan archiver in a nutshell. It can be found here: https://github.com/andrewsyc/chanarchiver