Captain's Log

"Or, if you're slightly more daring, 'Oh captain, my captain.'" I've always wanted to say "captain's log ..." on a daily basis. Now I can.

Be prepared for a bunch of raw personal notes, ranting, and technical jargon. I do not simplify stuff like the rest of the site where I try to keep everything understandable to a 9-year-old who could read Harry Potter. I write mostly for myself, parents, older members, former members, and other educators.

This is a true blog, not a collection of articles masquerading as one. I call it a log because its available without the web in Markdown as well.

All class notes are also maintained publicly at https://gitlab.com/skilstak/class for those who wish to review most all activity here.

down arrows

9:59:39 AM, Tuesday, February 19, 2019

Clicked Update this morning. Turns out Manjaro has a full new version. Now staring at a black screen. I can just say I am really happy I did this on a random student desktop and not my primary machine. Nice reminder of what Linux really is (and will always be): a wild ride.

To be fair, upgrade my Mac made my system randomly crash hard for move than six months until they came out with a new release. Difference is, there was nothing I could do about it. At least with Linux you have more control.

4:38:08 PM, Sunday, February 17, 2019

After watching some TED talks today while building Manjaro Linux laptops (that I will be loaning for $5/month to some beginners) I have come to realize that giving a TED talk does not mean your opinion matters more, in fact, in many ways it means you should be considered with much more healthy skepticism--especially if you push your book at the end (my god).

The most significant influencers in my life have been those that were either the hardest or must surprising to discover. So often their authentic priorities are so solidly on lifting their they stand, on making immediate, lasting local change, that their accomplishments are not as easily discovered with a Google search.

Makes me wonder how different the world would be if more journaled their discoveries and thought processes openly for others to discover on their own (sort of like this here log). I did notice GitLab and its founders and team members practice this in an open-core transparent form. Sid Sijbrandij is sometimes ridiculed in social media circles for doing what I find so valuable, brain dumping constantly.

3:42:20 PM, Sunday, February 17, 2019

My search for Amazon alternatives sent me down a wonderful research rabbit hole reading about holacracy and how Zappos (and Medium have fared in the experiments with it.)

I can say that the last five years of my work at IBM demonstrated just how completely and totally bad traditional management environments are. I am glad to hear they are dying the death they deserve.

Even though I had vice president's asking for my personal involvement in ground-breaking virtual worlds projects my immediately manager regularly shutdown my official work for them because "I was too important to his team." (So, I did it anyway on my own time because I believed in it so much).

What a completely horrible manager he was, definitely the worst I ever had. I think he measured his success by how much extra money he was able to get us based on reclassifying us as "software engineers" instead of "system administrators."

Think about how completely stupid that whole concept is for a minute.

I used to tell myself for fun how much I would be worth if I were actually paid for every skill I possess instead of the one I am immediately suppose to perform on:

  • fluent French
  • fluent Russian
  • certified yoga instructor
  • river rafting and paddle-board guide
  • senior systems architect
  • senior developer (in pretty much anything)
  • senior devops engineer
  • cybersecurity engineer
  • junior guitar player and musical
  • sound engineering
  • instructor
  • speaker
  • blah, blah, blah

Holacracy has a badges concept that would have paid me more for keeping several of those skills up and I could have actually used them by contributing to different circles that might be radically unrelated.

It is at least interesting enough to follow.

With this crappy manager at IBM we even had to pay for our own tickets to attend a team building meeting that I had to beg him to allow so we could overcome the team politics that were destroying our productivity because we had never met in person in three years.

Compare that to my former manager who flew us all into Boulder to have an architectural brainstorming meeting that resulted in one of the most successful initiatives ever within IBM Global Services (Virtual Server Administrator).

Or to perhaps the best manager I ever had, also IBM, who created the "doughnut meeting" where we essentially practiced holacracy without having a name for it.

"Anyone have any experience with sendmail?"

Me raises hand sheepishly while still chewing.

"Well, I run my own mail server at home for fun. Does that count?"

Before I knew it I was managing 25,000 emails a day on the client's corporate mail server and fighting to get us off black lists for VP's sending porn and worse to forums. ugh I hated it and loved it at the same time, like most great occupations.

The point is, I was able to do something I wasn't directly being paid for because this manager had the intelligence and wisdom to seek out our interests and aptitudes unrelated to our job title. That's what holacracy is founded on.

1:47:44 PM, Sunday, February 17, 2019

Found a great list of alternatives to Amazon.com, the last big dependency I have on a soul-less company:

  • eBay.com
  • overstock.com
  • aliexpress.com
  • newegg.com
  • etsy.com
  • jet.com
  • rakuten.com
  • target.com
  • bestbuy.com
  • zappos.com (even though Amazon owns)

Best Buy recently saved me $600 on a purchase that was both on sale and an open box. All online alternatives would have been much more. Just never buy the smaller items there (which is where they do their markup).

As far as I know, these companies have not crossed over into evil (at this point). eBay has had its own struggles, but has always had more soul than Amazon which openly seeks proprietary lock-in on all fronts.

Hell, Bezos openly admits to wanting to literally buy up the American roadways. He has long proclaimed his success as being to seek control of the core things that people will always need. At the rate AWS is going, he will end up controlling most of the Internet. Even the American government hosts their NSA servers on AWS. That should scare the shit out of every single American.

I have heard from a very reliable source that Amazon engineers regularly violate their own ethics policies to go looking through hosted applications on their AWS infrastructure. When I heard that I lost every ounce of respect I had built up for them.

Combine this with the quiet reality of the biggest hack in history and how the government forced Apple to lie about having been completely owned by China to avoid a national economic panic.

The theme seems to be, don't actually look at what is happening right before our eyes unless you really want to know the truth, because the truth is almost as bad as being a copper-top.

12:28:53 PM, Sunday, February 17, 2019

All the reasons you should install the NoScript extension:

Yeah, stalker alert.

All this JS-JS-JS conversation has not even included the most important topic, the loss of privacy and security by making every web browser (particularly the one owned and run by Google) into an unchecked executable running on your computer.

At least we can see most of Chromium and know what is in it, but not all. Operating systems from Apple and Microsoft are dark pits of whatever-the-hell-they-want.

That is exactly what happens when you have a bunch of tunnel-vision web developers running forward with blinders and no contextual experience. Static content is not only faster than JavaScript and easier to be indexed by search engines, it is safer for everyone. But most web developers really could care less about that.

That said, there is nothing wrong with authorizing a trusted web app to work in your web browser. It is far more secure and free than only allowing things from the Apple and Google stores. When combined with an extension like NoScript you can individually authorize every single script and keep them honest. It seems like a tech-savvy thing but is actually rather simple for everyone to install and use.

1:46:29 PM, Saturday, February 16, 2019

Very good session with a senior student who started out annoyed by the idea of increased privacy and password protection--until I showed him https://haveibeenpwned.com/, (which is not most definitely mandatory learning here). After he saw both his email and passwords were pwned and where he suddenly started to care. I think seeing that the password that he uses has been pwned more than 2300 times really gave him pause. There is something visceral and seeing this stuff that makes it instantly real and personal.

He is advanced and therefore wanted to know about KeyPassXC immediately and how to use it to create a ProtonMail.

Reading through the docs on VIM encryption and noted that many of the problems with blowfish were addressed in blowfish2 in 7.4-ish and above. Good to know.

Noted a passphrase more than six characters should definitely be used and that only medium (person) data be protected with it. This is great to keep prying eyes away and make storing hand-written data in YAML and such to be reasonably protected even if made available publicly. A perfect use for this is student personal data that is stored in private repos already.

And yes, I am moving everything off of Google that I am not comfortable making available to the entire public Internet.

10:15:07 AM, Saturday, February 16, 2019

Just realized vim has had medium-grade encryption (Blowfish) with the :X command for years. It is so convenient to use that I have to wonder why I have not been using it all along. I will start using that for things like student information that includes personal identifying stuff like home addresses (instead of a Google Sheets spreadsheet, which still fulfills privacy requirements legally, but not really morally).

9:44:45 AM, Saturday, February 16, 2019
Not found: <<<<

Google has lost its soul. Not even the 90s Gates/Balmer Microsoft had Amnesty International come out against it and hundreds of employees leave in protest.

Google has lost its soul. Not even the 90s Gate/Balmer Microsoft had Amnesty International come out against it and hundreds of employees leave in protest.

b62b9c81a45482489bce635009c05918dc514a12

I will not support Google any longer. I can't. I know too much. Google is indirectly contributing to the capture and torture of Chinese citizens and "dissidents." That seriously crosses the line no matter how much other good they may be doing. They already collaborated with the US government to sell out all of our privacy (according to the Snowden leak). My convenience is not worth the lives and freedom of billions. Google has lost all trust, and yet it controls most digital communications (search, gmail, youtube).

8:36:06 AM, Saturday, February 16, 2019

On our walk last night with the dog my wife and I worked out a future the could involve a personal/private AI. An organization would simply have to model itself around something like the ProtonMail model where the company did not keep any of the encryption keys on sight. Rather than a bunch of encrypted email each person would be given an encrypted container or virtual machine that only their local keys could unlock. Access to the container, and the AI within, would be completely protected and as private as the user requires.

I really need to write this up in a short book or paper that includes a reference to how we have always portrayed our interactions with AI through science fiction. Rarely do we consider the privacy implications of AI knowing a lot about each of us in order to better help us.

The dilemma remains, however, that in order to achieve AI humanity will have to give up a lot of its personal data to sufficiently training a near human level of intelligence, but public data may be enough to suffice for that.

10:23:53 PM, Friday, February 15, 2019

I have to create a module (and potentially a small booklet) on how to use KeyPassXC after making all the discoveries I have. Just add all my SSH keys to it and activated the SSH Agent component. This means that SSH keys never have to be kept in flat files on disk any longer. Anyone who has done any work in system administration, security, or devops knows just how huge that is. All keys can also be given very long passphrases seamlessly making advanced SSH security a very real thing. All you do is add your keys as attachments to KeyPassXC and while it is open it will serve as a SSH agent provider so you can automatically login to systems without even having to type a single thing. This should be mandatory learning for anyone working in the operations and security sector.

Now that I have TOTP also working from KeyPassXC there is nothing else to worry about. All my security and privacy needs are met in one ultra-secure database. The convenience and security of this option cannot be overstated.

7:41:08 PM, Friday, February 15, 2019

I am really struggling with the dilemma of having a smarter Internet based on all the machine learning taking place and the trade off of having to give up so much of our personal data to make it happen.

In fact, it has turned me off so much, learning about the massive abuses of late, that it has soured me on the entire machine-learning discipline. Everyone is scrambling to learn it to get the jobs for large corporations deploying it to massively invade--and learn from--our personal lives and information. We are actually excited about helping 1984 actually happen.

I suppose I can find some solace in the incredible progress of decentralized encryption technologies that are keeping up pace with machine learning.

Why do I care?

Because it directly shapes what I learn and help others learn.

I ruled decentralized crypto technologies when I realized that the computing power of the entire world would evaporate based on that anticipated future. That we would undergo massive energy droughts not being able to keep up withe power required.

Now I am having the same concerns about the conversational web and the personal-data-hungry AI it requires.

Can a conversational web exist without adding wiretaps to our homes and phones that are constantly listening?

Who is even watch-dogging the industry on this?

While I really enjoyed the convenience of being able to tell my phone to wake me up or ask it questions hearing my voice recordings for the last year in my Google privacy logs really freaked me out. The level of voice recognition and synthesis could not have happened without all the data Google has used to train its assistant, but at what point do we say enough, I want a local solution that will work even when I am completely offline.

The original Conversational Assistant, Virtual Agent model I wrote down last Summer as we did Discord chat camps could still work, in fact, it is less centralized because everyone has their own assistant and agent that only know about each other and you. They have no mother ship to report to nor do they have dependencies on anything but an open Internet.

Unfortunately this model is not something that Google (or any large corporation) is really looking at. It doesn't make money. It also wouldn't catch the interest of the ProtonMail community-types because it has a centralized server to keep track of you and ultimately really learn about your needs and wants.

Imagining a world where everyone has a virtual agent AI and a conversational assistant AI would imply that if people wanted to get information about the owners of each they would have to get it out of them.

Now I'm imagining my virtual agent being tortured, robot-style, to get information on me by some authorities.

It is a fun science-fiction scenario, but it also illustrates where this is going related to privacy. Right now Google is setup to become the all-powerful, master-control-program (Tron ref). It would know and control everything else. In fact, currently we cannot talk to anything else. Google likes to sell us on the idea that we all have individual assistants, but there is really only one, monster intelligence behind it all, and Google is holding the leash, for now. That alone should be enough to give us all pause.

Another possible future is where the evolving AI's are actually privately associated with each of us and the organizations we create. In the best possible scenario these AI's evolve independently and are as varied as the people associated with them. They are treated democratically but with different rules. The are encrypted and tied to us individually through strong encryption and physical authentication. That is the future I want to see.

Unfortunately this is a very unlikely future.

Why?

Because money.

It takes a lot of money and data to even get to the point where we have an AI that is reasonably intelligent and the way that AI gets intelligent is buy studying the thoughts, writing, photos, videos, and behavior of billions of humans. It's the only way.

So we have to give up some level of privacy collectively if we are ever going to achieve natural intelligence.

Ugh.

Do you see the problem, the dilemma?

If we lived in a world where people did not abuse both the amount of private data we give Google, and the potential AI that will result then maybe I would be ok with it.

Instead, we live in a world where people are hunted and killed innocently for disagreeing with those in power who have access to such things. This is why Google has people leaving in protest over Dragonfly, the collaboration with Google and China to add extensive search censorship (and probably a lot of surveillance we don't even know about, you know, like Snowden proved America is doing unconstitutionally to all of us without even a slight regret).

So I guess my conclusion is that privacy trumps everything else.

Google is that super creepy app that somehow tricked us all into thinking a free email and some storage was worth giving it all of our personal data to do whatever it wants with and make billions of dollars in the process.

7:06:54 PM, Friday, February 15, 2019

🎗add exhaustive regular word indexing of all SOIL content
🎗create bash completion for edit has that uses index to complete based on index search rank

Updated the linux page to represent our move to recommending Manjaro as the standard desktop and Ubuntu the standard server distro.

5:05:12 PM, Friday, February 15, 2019

Updated the schedule with Summer information. Very pleased with how it is working out to be able to allow more to attend at a reduced rate (as low as $200) as well as flexible for those registering again. Really looking forward to it now that our space is so well organized--particularly the whole everyone-gets-a-Minecraft-server thing.

4:56:32 PM, Thursday, February 14, 2019

Working on a student's Alienware to restore some software on it that we use. Earlier today worked with another two students at a school who had them. I just can't stop thinking what incredibly stupid computers they are. They make no sense whatsoever:

  • weigh 10 lbs.,
  • have very limited battery life,
  • have to be plugged in to play any 3D game,
  • easily breakable streams,
  • so huge they take more than a desktop,
  • burn your lap if you use it there,
  • require a mouse for most things.

Compared to the 2-n-1 Dell XPS (which costs $1300 after sale and open box, which is easy to find), the Alienware line is an objectively stupid decision. I'm not saying the people buying them are stupid, just uninformed. The computer itself is ridiculously stupid.

It was also an opportunity to use Windows a bit after having been Windows free for a week. It was absolutely painful. Git-SCM is at best a horrible kludge for a fundamentally horrible operating system. I had hoped Microsoft would pull it together, but Manjaro Linux is so completely ahead that Microsoft would simply have to adopt a Linux distro at this point to keep up.

Perhaps the main thing about Linux is that it makes using a computer actually fun. The only thing Windows is good at is playing games or running 3D-dependent software such as Solidworks. People who choose to only create software only for Windows are just completely and utterly uninformed. Thankfully most will eventually go bankrupt based on the current trajectory of software.

The world is waking up to the privacy concerns of the last two decades and seeing Linux and ProtonMail and alternatives like them as very attractive--especially the young, untainted generations.

3:21:48 PM, Thursday, February, 14 2019

Discovered that Apple Thunderbolt monitors actually work with Thunderbolt ports on the Dell XPS line! That is huge and means I don't have to essentially throw away our $1000 monitors--especially since so many advance SkilStak members are moving from Mac to XPS 15" 2-n-1s, (which blow the Mac Pro away). I am writing up a complete Manjaro Linux on XPS 9570 guide that will be publishing broader a little later. Dell really nailed a hanging business need that Apple essentially abandoned. Students are reporting that the lame Macbook Pros are actually sucking down battery just for the completely stupid touch bar, probably the dumbest Apple decision since the Newton.

Starting to think of privacy in terms of four common categories that everyone can understand:

  1. PUB - public
  2. PRS - personal
  3. PRV - private
  4. SEC - secret

For those who really get into it you could even classify each one.

5:07:20 PM, Wednesday, February, 13, 2019
11:19:03 AM, Wednesday, February 20, 2019

Mixed feelings. Manjaro Linux has rejuvenated my enthusiasm for pretty much everything. It is so fun to code and create and make with Linux. Much more fun than any computer game ever created, and so much more useful. Helping others realize this while still enjoying the fun of learning to code for the web using Phaser3 2D game development has been the perfect combination.

For example, people really respond to learning Bash shell programming. Bash blows away Python for so many things. Educators quickly go with Python because it is so easy to install on a Windows or Mac machine. This popularity is understandable given the complexity of setting up a bloated Java development environment (as AP CS requires).

However, when you start with Linux as your base, which has many other advantages including 99.9% immunity from viruses, then you have a lot more options for teaching computer science and coding.

Perhaps this is why England made Linux a core part of their base curriculum. (EU is so ridiculously ahead of America on the entire education front.) It took two educators at Oxford to create the Raspberry Pi to address the lack of "tinkerers" entering into their CS courses.

If you start with Linux, Bash is the easiest bang for your buck immediately to get kids coding. There is nothing like making stuff happen immediately from the command line--especially if you Solarize it up a bit to be more fun to look at.

Had a student create an amazing Bash function for generating rgb text colors. So simple, yet to effective and wicked fast. There is nothing faster than a Bash function loaded into your running shell from .bashrc. Not even a compiled executable is as fast.

Reminded that teaching programming and tech skills is more about empowerment and allowing the individual to control and build whatever they wish. All of the following are important but secondary:

  • getting into a great school (which is often a misinformed decision),
  • getting a job (which is important, but secondary),
  • getting a good grade in your current school,
  • getting rich.

That last one is particularly important. There is no better story to illustrate that point than Aaron Schwartz tragic life. As one person put it, he "climbed the mountain of silicon valley shit to pluck the rose, and then he climbed back down." We are talking about a guy who co-authored the Creative Commons license and policies at 15 and invented Wikipedia at 12 several years before the actual Wikipedia was created. What our government did to him and those he loved is forever inexcusable and wrong. We must never forget. We must never forgive. Governments and intelligence agencies that crucify innocent, active geniuses like him are unforgivable.

The more I read, the more I learn, the more I realize just asleep so many of us all are.

For example, when I tell people Amnesty International has openly called out Google for human rights abuses they look at me with surprise, incredulity, and suspicion. Better they understand who I really am before deciding to talk to me. They might call me liberal for it. Fine. If agreeing with Amnesty International makes me a "liberal" than so be it. The world is in this mess because so many people are asleep and just too busy to care.

Someone has too.

I choose to care.

My mission is to get as many other people to care as possible. If that troubles some, so be it.

5:07:20 PM, Wednesday, February, 13, 2019
6:35:50 PM, Monday, February, 11, 2019

The discoveries are just pouring in this week.

Renting a 100% safe Manjaro Linux laptop preconfigured with ProtonMail, Minecraft, Spigot Minecraft server, Krita, Inkscape, OSS Code, and more that is literally virus proof is the smartest thing I could ever offer a parent. It started just as a way to make use of old laptops and has grown into a standard offering. It just makes their lives so much easier. Kids get full admin on the machine so they can tinker and experiment without fear of breaking mom and dads computer.

6:27:50 PM, Monday, February, 11, 2019

Discovering how totally broken VuePress is for any significant site. SkilStak.io is breaking and not loading CSS for some. Need to put more priority on the port to my home grown SSG using shell and pandoc.

First beginning student really loved ProtonMail. It is clearly a hit for reasons I had not anticipated. First, it is different and therefore cooler (pm.me). Second, parents love it because it isn't as creepy as Google spy/stalker mail. Third, you can customize the look and feel any way you want by providing your own CSS templates. That last reason alone is worth it for anyone learning. All of a sudden kids care about CSS, like a lot.

Trying to decide what the title for my long blog about getting off of Google will be. Right now looks like, Lose Google SpyMail: How to Deny the Biggest, Creepiest Stalker in the World. The time has come to deny the creepy corporate stalkers their cheap thrills (and make the world a better place in the process). Might even put it into a small book form.

2:42:09 PM, Monday, February, 11, 2019

Finding myself using vi a lot more than VSCode these days. I stand by my VSCode recommendation for education and use as a first editor experience, but I have rediscovered a few big advantages of vim over VSCode:

  1. VI supports replacing lines with the output of a command (time stamps, loops, etc.)
  2. Extending vi functionality boils down to writing shell functions and go utility commands, less proprietary.
  3. VI is so much faster. Pulling up a terminal and editing a file is 100x faster than opening the very bloated vscode. Nothing kills productivity like waiting around for VScode to fire up (or load a window) for every code edit.
  4. Laptop development is naturally not mouse / touch friendly negating cut/paste speed improvements from having a mouse.
  5. The dependency on Sync Settings (and therefore on GitHub) to create consistent work environments is problematic (dotfiles just easier).
  6. Auto-building, make, watch, for loops all better in a tmux window.
  7. Creating a save some message bash function for VSCode equiv of committing and pushing is not only faster, but more intuitive and verbose so you catch any problems much faster than being forced to look them up in the terminal.
  8. Multiple cursors are ok, but not nearly as fast as equivalent operations in vi.
  9. Find and replace is wicked fast, supports full, intuitive regx without mouse clicking.

I can hear my own students saying, "sseee, we told you so." 😉 Truth is, I am always open to potential improvements and really giving them a test up front. Even more, I value freedom and choice and allowing the same for others.

Speaking of choice, I've decided not to require ProtonMail, but to instead allow it as an option and encourage it. The issue is more about the right to privacy and the freedom to make ones own decisions about it. Mandating ProtonMail seems counter to this idea. I can however, strongly encourage it and even set it up myself for beginners who are young enough to not really be aware of the issues (or care).

10:00:36 PM, Sunday, February, 10, 2019

https://www.pixilart.com/ looks like it wins over https://piskelapp.com because it has more features (including text) and allows logins with just email not dependent on any other service.

I'm all but certain I will be having everyone move to protonemail this week and get off of Gmail. If they want to keep their Gmail that will be their business, but I will require they move for any communications with me and for using any apps while here in the classroom. I don't think that is overreaching given the objective to create healthy privacy habits for them. All schools have their own email systems for their students, the only difference will be that here they have a much better email that they can keep with them when they leave.

10:27:14 PM, Sunday, February, 10, 2019

Just read this in this account of a journalist who blocked the big five as an experiment:

An Ivy League professor tells me he regularly employs a Google blocker. “I had to disable it when I paid my taxes because they have Google Analytics on the IRS website,” he says. “It was kind of horrifying.”

The fact that Google has access to any tax submission (no matter what they might claim to the contrary) is simply astounding.

9:17:18 PM, Sunday, February, 10, 2019

Got a great opportunity to meet a potential parent today from the IT world. I have to laugh at how excited I can get just to talk to other adults who still work there. I love teaching and mentoring and would not easily change careers at this point, but there is always a certain siren's call to go back to big IT projects and applications. There is just something about working with terrabytes of data and thousands of servers that have to be coordinated that can only be found in really big IT shops. The best I can do is build our own IT cloud here and enjoy the scaled down process. So far that has given a taste of how fun that can be to my more advanced members here.

Lab / classroom is still a mess while I put together the other workstations. ugh (I find myself taking a recent Google review calling me "unorganized" to heart. I will say that I am very organized on the things that matter and that people do learn. But keeping up with tech innovations and brilliant students is like a perpetually, 60hrs/week jungling act, one that I absolutely love.)

After a solid week on Manjaro the decision to go full Linux seems to be well accepted by all but one or two. Some have already attempted to do their own installs at home. This is one of the joys of Linux, that feeling of owning your own operating system, of having full control, and all the endless possibilities that holds. It is good to see this rekindle the fire in some who remember doing nothing but Linux when I started all those years ago.

12:23:21 PM, Sunday, February, 10, 2019

Every wonder if the reason data science is exploding onto the tech scene is because there is so much of our data to analyze? That we have given so much of our everyday lives over to unregulated mega-corporations and governments that the highest paying emerging jobs are to make sense of it all and learn ways to use it and to monetize it?

Do you think for a second the government would ever bring Google before a senate hearing like it did Facebook given how dependent the US Government intelligence agencies are on Google itself?

Do you think anyone has a prayer of ever bringing a lawsuit against Google given the in-bed relationship it has with every government on the planet?

This is downright 1984 we are talking about, but not some fictional or tinfoil-hat worrying. This is our factual, daily reality.

After sleeping on it, watching the Snowden documentary, and realizing that every single thing I have said to my phone has been recorded and is stored at Google I have decided to eliminate all Google tracking and data stealing from my life and the lives of those over whom I have influence.

Some of my students (current and former) will chuckle a little at how long it took me to come to this realization, but it is an inevitable conclusion. It is amazing how much even me, this Linux loving, Russian major has been hesitant to face this horrible reality and the monumental inconvenience it entails.

Scary Google voice history.

These are just some of voice recordings that I can show. Some of them where from Google just randomly thinking it needed to record what I was saying. Others are times I was too lazy to simply type in my text message. The entire text is there for them to read and listen to, or play back to anyone with access to Google's database, which we now know includes the government who has a special application Google helped them build to make it easier to eavesdrop just by clicking "I have a warrant" without any oversight whatsoever. (By the way, that is exceptionally illegal in Switerzland. Anyone being surveilled by law has the right to defend themselves before the survaillance is even allowed to activate.) People say this is needed to do spycraft on legitimate terrorists. I'm no expert, but that sounds lazy to me. It is just too easy to be abused and has been repeatedly.

I realize writing these things for all to search out will likely put me on a list just for thinking them outloud and asking the question, but people need to know this is happening and make informed decisions. I honestly do not care how unpopular that makes me with anyone. Nor do I care about those who will critism and groan for having to get off of gmail and use protonmail instead if they want to use SkilStak infrastructure. Our democracy has already been eroded enough. I certainly do not want to erode it further.

Just the fact that Google is training itself in recognizing my voice anywhere it hears it to better respond to my needs is frankly terrifying to someone who has read a lot of Solzhenitsyn.

It is not so much that things are bad now as much as how completly bad they could be if this much power were being misused.

It is already. Facebook proved that. Snowden proved that. In the imagined best interests of our government it is completely and totally ok to violate several constitutional rights protected under law for the cause of anti-terrorism. The government indirectly killed Aaron Schwartz just for using and sharing legal information in ways that were in no way wrong.

What does that mean for me and SkilStak?

It means no more Google, period! Effective immediately I am no longer recommending in any way that new students (or existing students) use any "free" cloud service including Google. I will instead be helping them setup ProtonMail accounts, which are actually in the better interests of especially younger users and should further assuage concerns parents have about their children going online for the first time.

It will mean finding ways around using Google to sign into everything.

This is the polar opposite of what I have encouraged up to this point, which was to use Google sign in for everything to help students not have to remember the passwords. But perhaps the single greatest tech skill I can help them learn is to create a password management strategy in their life that works and does not depend on a single sign in. The convenience is never worth the cost to all of our civil liberties -- especially when fully supported, easy to use options like KeyPassXC exist.

No, I will teach my students young and old to value their privacy and that of those they love, not from some nefarious reason, but because all humans have a basic right to privacy and respecting that keeps our social structure in tact and out of the hands of mega corporations and governments that we can honestly never be 100% sure will remain benign and working for our benefit. (Just watch the Roger Stone documentary and Farenheight 11/9 to realize just how bad things really are in America. They are not exaggerations.)

12:48:39 AM, Sunday, February, 10, 2019

Lost all my Settings Sync VSCode extension stuff. The gist model is rather fragile. Considering creating a cronjob instead that copies local.

Had a great meetup with our uber-geeks talking about our k8s cluster we are building and converting our lives off of Google for anything significant. Good adhoc discussion about the issue surrounding privacy and the over-centralization of technology we are experiencing today that is directly affecting our civil liberties. I am putting together a comprehensive guide for those who want to get off of their dependency on the big five for everything in their personal and professional lives.

2:08:23 PM, Saturday, February, 9, 2019

The younger generation doesn't even know what privacy is. I am feeling a strong responsibility to help them understand that they actually have a choice, that they can use protonmail instead of Gmail just fine, that single sign-in is actually a bad thing despite its convenience (at least for anything that really matters).

Andy Yen describes it best.

It is almost eery how many people associate a basic desire to not want your data owned by Google or Facebook with some hidden nefarious motivation. The irony is that the good people have the most reason to be aware of privacy because bad people won't hesitate to take advantage of them if they do not protect themselves using basic privacy measures, like the guy who owned an entire neighborhood by listening to all the wireless phone calls before there was wireless phone encryption (not mobile phones). The bad guys (at least the non-stupid ones) take measures to protect their privacy. To use a popular consertative argument, if only the bad guys have guys what happens?

There are really multiples levels of privacy and Internet usage:

  1. completely public and minable
  2. personal, safe from mining and surveillance but shared with friends
  3. private, intimate secrets no common person or corporation should be able to discover
  4. secret, no hint of identity or discovery even by the NSA's latest enigma

A lot of the conversation about privacy and users being commoditized is about level 2 of this scale. This is because Facebook and Google and others are promising (or implying) level 3 privacy but in fact are treating your data at a 1.5 level and even selling it to other companies. This disconnect has destroyed trust in a massive way for any such corporation leading to the current privacy resurgence. No one is talking about hacking or even whistle-blowing (like Snowden). They simply want reasonable assurance their personal data isn't exploited and that they themselves are safe from those who would hack even their secret data if they could.

At least the conversation is happening.

6:40:27 PM, Tuesday, February 5, 2019

Here's the major commands involved in migrating from windows to manjaro:

  • mkdir repos - make a repos directory
  • cd repos - change into directory repos
  • ls - list to see it is empty
  • ssh-keygen - create a new key pair (hit enter for all defaults)
  • pwd - show where you are
  • cat ~/.ssh/id_rsa.pub - display (cat) your public ssh key
  • (control-c to quit when you get stuck)
  • ssh git@gitlab.com - test the gitlab connection (yes to accept)
  • git config --global user.name YOURUSER - set your @username for gitlab
  • git config --global user.email YOUREMAIL - set your email for gitlab
  • git clone git@gitlab.com:YOURUSER/codebook - clone your codebook
  • cd codebook - change into codebook directory
  • ls - see what is in it
  • cd platformer - change into platformer game
  • code . - start up vscode right here

⚠️ Change the saving of Sync Settings token to the README.md file in each student's private GitLab repo (rather than Google Docs). The process then becomes 1) install vscode 2) clone the codebook repo 3) install sync settings with token from README.md 4) validate all settings and extensions synchronized

5:17:01 PM, Tuesday, February 5, 2019

Turns out turning off suspend in Manjaro Gnome Linux does not turn off suspend in Gnome Desktop Manager (GDM) so that has to be done separately. My first quirk that has to be hacked to fix, feels like home again.

🎗 setup NTP time on all new workstations

2:52:23 PM, Tuesday, February 5, 2019

👍 AUR has to be activated on Manjaro Gnome (if you need it, but you don't for VSCode if you make sure to update all your packages first.) In other words, just update all your packages and OSS - code will be available.

9:11:29 AM, Tuesday, February 5, 2019

Discovered mDNS (Bonjour on a Mac) today. It does auto discovery of DNS names on a local area network but has to be installed on every host who is participating. I have always been content to simply add /etc/hosts entries, but that never accounts for new DHCP arrivals such as visitors or students with their own laptops.

Turns our the avahi-daemon service is disabled by default. Need to reactivate it in systemd:

sudo systemctl start avahi-daemon
sudo systemctl enable avahi-daemon
1
2

I can see why it would be off by default, but that was a bit annoying to track down.

Also there is no nslookup nor dig nor host in Arch Linux. They have been replaced mostly with drill. Awww Linux. I've missed you. *Only the cool kids use * drill. (I remember when they said that for dig.) 😁

Probably the most annoying omission is ifconfig, which has been fully replaced with ip. In fact, looks like ifconfig has been deprecated across the board. That one really caught me off guard—especially since I have had an ip alias set for a decade.

12:01:20 AM, Tuesday, February 5, 2019

Watching clips about Aaron again and realizing how similar his childhood was to so many of the others here. His story is both an absolute tragedy and triumph. To think they did what they did to him and didn't prosecute a single person responsible for the biggest financial fraud in American history.

The humans that did this to Aaron are absolute evil to the core. So many put priorities above humanity that are driven by fear, hate, and ultimately suffering. Aaron became their poster boy, but not for what they wanted. Soon after his death another 14-year-old credited inspiration from Aaron and submitted an idea for pancreatic cancer that he was able to discover because of Aaron. All from looking at exactly the same documents he collected.

🎗 I need to really research Lawrence Lessig, who created Creative Commons and has chimed in on a number of other things over the years. Such a remarkable human being.

10:54:12 PM, Monday, February 4, 2019

Caught up on pre-registrations and such and realize I have an obligation to those waiting to make sure I hold those who take this learning opportunity for granted. Every once in a while I will catch the feeling that someone looks on me like so many Americans look at our honorable, self-sacrificing teachers. As if for some reason we lowly educators do not matter as much as them, that their schedule doesn't matter as much, that we can be forgotten and dealt with later.

The wonderful thing about being in business for myself as an educator is that I do not need to go on strike. All I have to do is put my foot down, deny access, or expel if I absolutely have to. I have only had to do it very rarely, but every time I followed through I am so glad I did, for my sake, and the sake of every other member.

All this happened ironically in the same few weeks that two different well-known, rather large companies had their executive recruiter, COO, and—in one case the CEO—contact me directly trying to get me to join their team for what would probably be triple what I make now in order to be there for these hungry, motivated learners.

I know that what I am doing is valuable and it isn't arrogance that drives my desire to hold people accountable, on the contrary, it is out of some easily misunderstood desire for them to all learn what is just good and right in the world. The good news is I think I am getting better at communicating this sort of thing without projecting anger or getting personal. (I have failed on that point before.)

It's just never ok to 5-point turn on someone's soaked front lawn.

It is never ok to drop your child off for lessons 40 minutes early because you "have to be at a football game" or you were "out of town and the nanny didn't understand."

It is never ok to drive 14 miles away to "meet someone" and be 30 minutes late getting back to a pick up after a 60 minute lesson.

It is never ok to just not bother telling me (or anyone) you just are not going to show up, at all.

It is never ok to say you "need" to pay in two payments (when no one else is doing so) and then "forget" to pay for three weeks past the reminder to do what you said you would. Would you try that sort of thing even with the teller at a bank or the check-out person in a grocery store? You don't get to haggle just because you are dealing directly with the person you are paying to teach your child.

How would your employer hold you accountable for that behavior on the job? How is dealing with the person in charge of your child's education any different? Isn't it more valuable?

It is hard to convey that I am not angry when writing these words. It is frustration. Not with a single person, not with a single school or community or even country, it is the overwhelming misplace priorities humanity seems to have bought into that are manifest in the most subtle and consistent of ways. For some reason we are more willing to play by the rules when dealing with in-human corporations and transactional systems. When dealing with another human directly we someone justify an entirely different set of rules and values.

10:22:44 PM, Monday, February 4, 2019

Once again I am reminded that human beings always abuse those are not strict with them and demand respect. After giving in for one parent and allowing payment in "mid Jan" and having sent a reminder on that day it is now February and the payment has not been received. It is not my job to remind people to pay. This is totally unacceptable—especially now that there are three people on the waiting list and this person has a very prime-time spot.

No more.

I sent notification of forfeiting that spot at 5pm this coming Wednesday and have three people anxious to take it. For the sake of this great kid I hope his parents come through for him. But I will not relent on this disrespectful behavior, I don't care who the parent is or how important or busy they think they are, or even how understandable forgetting is. I'm not being toxic, I'm being real.

As of today I am instituting a -200 VIP penalty for anyone who misses a payment deadline for any reason—absolutely no exceptions. This will "bankrupt" most beginners of VIP points making the decision to drop them easier to determine, clearly documented, and more than justified.

I realize it may seem harsh to penalize the student personally for what is often an error on the part of the parent, but the consequence is the same for me. I'm sorry. I did not make these rules. They are reality. It may seem wrong to leave this penalty on the student/member's record forever, but it is the only way to ensure abuses like this don't continue. History (and my experience) has shown those who abuse this are almost always repeat offenders that will continue to do so. Consequences are the only thing they understand. It has nothing to do with my liking or how much I value their learning and input.

8:26:31 PM, Monday, February 4, 2019

Decided the easiest starting home project is definitely just getting them to play around with code on REPL.it provided while they are here (in class) they use MS VSCode. Better for them to be playing around with stuff rather than doing nothing but codecombat and nitrotype.

Students reporting preference for Manjaro (Gnome) over Windows overwhelmingly. Windows was so broken. It would open multiple windows with clicks and delay. It was so totally sluggish to respond. Linux is so incredibly snappy and allows me to automate updates and deployments to every computer in the room.

8:15:17 PM, Monday, February 4, 2019

Noticed how much I love Lost, Nothing More to Contribute on the lofi channel. Can't forget it.

12:10:32 PM, Monday, February 4, 2019

It sure feels like the Spring cleaning bug has hit me early. Building this k8s cluster with the left over hardware is the single best idea of this year. It has allowed me to essentially build a super computer out of the 15 Mac Minis and 4 Tridents that would otherwise go unused and sit (because I could never recuperate the lost cost of buying them).

This in term has fired up everyone here to help build it and learn Linux all over again.

All of my original Acer laptops still work just fine and since they are literally worth nothing I am putting Manjaro on them and renting them to kids for $5/month who need a computer to use and cannot yet afford one or in situations where the parents are a little shy about committing to getting them a full computer. The money is just a token so they at least remember to take care of them as much as they can.

8:25:56 PM, Sunday, February 3, 2019

So yeah, Gnome still wins and here's why.

And RancherOS leaves out the hint to use scp to copy over the cloud-config.yml file. Here's a description.

Great k8s on bare metal blog.

5:36:36 PM, Sunday, February 3, 2019

After a morning of research (combined with that over the last weeks) have decided to build our DevOps k8s cluster and nodes with Rancher and RancherOS. CoreOS with RedHat seems to get a lot of enterprise attention, but RancherOS is light-years ahead in its approach. By the time most SkilStak members are doing this in the wild I imagine Rancher will have dominated the market.

Why is Rancher better? One word: open. All the CoreOS crap is being bundles with RHEL and all the other expensive closed-source, proprietary offerings that Red F*ing Hat has become so well known for. Red Hat went from being an amazing open source product in 1999, to flipping off OSS with "Fedora", to being literally in bed and owned by IBM now. If that doesn't define "corporate sell out" I don't know what does. Rancher is (currently) free from all of that and is being (rightfully) rewarded by the community.

What about CoreOS? It's a tiny afterthought now that RedHat has consumed it and IBM along with it. Don't believe any of the spin on their page about "maintaining support for Container OS". I've been around long enough to recognize bullshit like this peddled by those whose actions are directly against what they claim.

11:50:49 AM, Sunday, February 3, 2019

Got a lot of DM's in Discord about the Minecraft restoration to SkilStak. People are really excited. I noticed many more were actually playing Minecraft in the Playing... section. It feels rather nostalgic bringing it back (along with Linux). All my most successful students started out with Minecraft and became really amazing system administrators. Now they are doing DevOps at 16.

Moving (back) to Linux will also enable a lot of automation with Python Fabric and SSH like before. Because it runs with so little CPU drain I can make all the desktop systems also into very powerful servers that can be accessed remotely. This means students will be able to remotely ssh into their very desktop systems, which reminds me I need to setup double NAT.

6:18:05 PM, Saturday, February 2, 2019

Looks like Manjaro wins over Xubuntu just for the rolling releases and better font rendering and a solid KDE compositor driven interface that takes advantage of the GPU in these MSI Tridents. The only slight annoyance so far was getting Chrome installed and that wasn't too bad.

Of random interest: Overwatch installed in about 20 minutes and plays flawlessly.

In fact, as I sit back and think of all the things you can do now with Linux there is only one thing that I know for sure you cannot do: Roblox. They decided to purposefully prevent it from running on Linux at all. That is the dumbest decision they could have made. I refuse to support of even talk about it any longer. Even Microsoft's ongoing support of Minecraft Java Edition is more open than that. I'm inclined to go on a ranging rampage against Roblox after learning that.

3:29:28 PM, Saturday, February 2, 2019

🎗 find a safe youtube -> mp3 converter that can be recommended

2:18:19 PM, Saturday, February 2, 2019

Discovered group.refresh() in Phaser3 instead of individual refreshBody() calls on each in a staticGroup().

Looks like sprite.body.touching.none is the check to make sure all collisions have ended. This is required to get the bump sound to work (otherwise it plays infinitely). The key example of this in the lab was this one.

1:26:46 PM, Saturday, February 2, 2019

Woah. I was illustrating the difference in performance between sourced shell functions, compiled machine code (Go, Rust, C) and interpreted Python scripts. The results blew me away. I knew the first two were way more efficient (enough to make using Python or Perl for anything you don't have to a serious waste) but I was not expecting this.

From hello.sh:

hello () {
  echo hello world
}
1
2
3

From hello.go:

package main

import "fmt"

func main() {
  fmt.Println("hello world")
}
1
2
3
4
5
6
7

From hello.py:

#!/usr/bin/env python3
print('hello world')
1
2

I could have recovered some in Python with #/usr/bin/python3 instead, but really, just wow.

12:18:17 PM, Saturday, February 2, 2019

Definitely coming down with the flu or a cold. Seems to be going around. Many at Woodlawn out sick. Several coming to SkilStak have had a sniffle (nothing to stay home over).

11:47:51 AM, Saturday, February 2, 2019

I've decided there is enough ancient JavaScript in the world to require students learn the very old and broken JavaScript that is taught at codecombat.com and is in most books and tutorials. I will make sure to teach the right and modern way immediately after that.

This keeps coming up. The requirement to teach old, broken, and unnecessary material. For example, few will ever create their own linked list in the wild, but it is a frequent question in the very broken coding interview process. I can't just say, "well don't apply for those companies" as much as I would like. Amazon, Google and others require them.

🎗 research and document the interview and hiring process for several great companies

11:33:01 AM, Saturday, February 2, 2019

Reminded how horrible REPL.it is for young developers who would otherwise learn to download VSCode and install it.

The only reason I even mention it to them is because so many of them have literally nothing else when they are in school.

Now that GitLab has a fully function WebIDE there is really no reason to use REPL.it for beginners, at least not here where I insist they learn HTML, CSS and JavaScript first so they don't become Python bigots later unwilling to code in anything that does not look like Python.

Besides, it is just a matter of time before Microsoft creates a cloud version of VSCode. The piped container REPL model is not particularly original or hard to implement. Several languages (Go, Rust, JavaScript) already have "playgrounds" that do this that are superior for those languages.

I think the thing that irks me the most about the whole thing is that the fundamental premise of REPL.it is that coders should not have to worry about setting up their own development environments. This promotes a level of laziness that lasts with them and makes anyone teaching them real tools and processes look like the bad guy. Of course beginners are going to like it.

That is not unlike feeding a kid sugary cereal supposed fortified with vitamins and then one day telling them to eat actual food. Of course they will gripe and complain. One of my sisters would literally not eat anything but PBJ for almost 3 years (and the result is as you would image).

Removing young learners from the reality of what they are learning is not the right approach. Simplifying does not need to mean replacing. It means slowing down and finding other ways to get the started. Like perhaps setting the environment up for them until they age into being able to setup their own. That way they learn the right tool instead of feel like it is being forced on them later, like poorly prepared vegetables.

10:15:11 AM, Saturday, February 2, 2019

🤔 Realizing the value of prototyping business processes and applications before jumping in on a full-blown app. Basically that means doing everything in Bash shell scripting and Google Sheets with formulas and scripts. Once I have used stuff for more than a few months I have a better handle on exactly what needs to be built.

🎗 add a blurb to some page talking about minimal rate for me to come out and setup a professional workstation at a member's home when needed so the parents don't have to go through the hassle
🎗 make a video about setting up a professional workstation

8:54:36 AM, Saturday, February 2, 2019

If this were 2002 I would say it is ironic that Microsoft Visual Studio Code runs better and cleaner on Xubuntu than it does on Windows. These days there are people working at Microsoft who have never even used Windows. They use Linux instead.

🎗 send new student all of the following info
🎗 add terms from https://gitlab.com/skilstak/class/2b1cac lesson
🎗 add prettier assets for standard platformer

Now that I have a lot of kids younger than 12 here returning to the old ways has really been essential:

  • everyone gets a Minecraft (spigot) server
  • for homework we do codecombat.com
  • typing practice on nitrotype.com
  • pixelart with piskelapp.com
  • repl.it for simple web development
  • story flow charts with draw.io
  • html5 game development with phaser3

I just have to say it again, Xubuntu is far easier for beginning programmers and computer users to understand—by a very long ways.

🤔 Haven't done CodeCombat in a while. I pulled up their "really cool tech stack" and had to stop from laughing (even if they can't hear). It is literally every bad architectural choice you could make, but hey, they did it and it works, right? 😜 (at least that is what everyone says).

Problem is now (as I just read) people are leaving because they are not doing modern JavaScript and have no way to extend or add new languages.

That entire thing should have been wrapped in an api so that any language would be plugged in at any time. You could even allow teacher's to configure what they want to allow much like Babel. None of that is possible with the current version.

But...it is 100% open source, which means I could make an entire clone based on Phaser3 and VueJS and even keep it Electron compatible for stand-alone versions.

I could add in the concept videos that they are missing that Code.org has that keep kids learning instead of just repeating back the syntax they see in the examples.

God I wish I had time for all of that.

I suppose I could start small with just a basic Phaser3 game that has an editor built in. The ACE editor makes so many things possible now.

I have no desire to do any beginning language besides JavaScript ES6 and because all browsers support it now, well, that's a no brainer.

In fact, the way to do it would be to simply allow any JavaScript that the browser directly understands and trap any errors cleanly. That way no transpiling is required and the game automatically keeps up with whatever the current browser supports.

My God, it must be created.

8:48:13 PM, Friday, February 1, 2019

Cannot express enough how much more efficient setting VIM mode for VSCode plus multiple cursors as well as drag and drop block repositioning. It is the holy grail of editing efficiency.

5:54:07 PM, Friday, February 1, 2019

Xubuntu is installing and I can't help getting that excited feeling all over again with Linux. It is such an amazingly fun operating system. As I was going through the very simple menu driven Xfce manager I realized this is actually simpler than both Mac and Windows and better for particularly young kids. I wouldn't have imagined myself ever saying that about a Linux desktop distro before.

3:38:03 PM, Friday, February 1, 2019

Just read a tweet from some HaloPlayerBlah saying "The older generation sure seems like it was really bored" referring to the reason we chose to have children. Someone please remind me the rising generation is not that complete, utterly moronic and disrespectful. Sure we screwed things up, but to suggest we were "bored" (likely because we didn't have Halo, according to this guy) just confirms we are truly heading for an Idiocracy.

1:59:27 PM, Friday, February 1, 2019

Having a blast planning our architecture migration to 100% Linux (like we had for 3 of the last 6 years). I switched to mainstream OSes to facilitate coding from home for everyone but VSCode has unified that experience across the board so developing on Linux, Mac or Windows feels the exact same anywhere. This frees me to return to my preferred all Linux setup.

This means full automation and remote access as well as a server for every member again on which they can run whatever they want (protected in a k8s container).

👍 I am SO happy to be going back. Bubye Apple and Microsoft!

This also means we can build a proof-of-concept crypt-mining rig to help others who might want to get into it.

🎗 setup a team for the linux migration, pick a date, send invites

12:21:35 PM, Friday, February 1, 2019

Been adding more pages all morning but only wanted to update the workstation page. I keep running into terms and concepts and people that I have to document for that page to make sense, which just dove-tails into a ton of writing.

I will say that using the information node approach and hyperlinking between them was absolutely, positively the right decision. It makes the editing process so much easier and allows the inclusion (or omission) of information that can simply be linked. This was the entire purpose of the original Web.

💢 Been having a really hard time with the current JS-JS-JS v.s. HTML-CSS-JS battle for the future of the Web happening right now. Developers are seriously thinking that the web should be made into a for developers only "platform" against every intention of the Web's creators and inspirers going. HTML was itself too technical. I wish that Engelbart had more of a say than Tim Berners Lee.

8:44:58 AM, Friday, February 1, 2019

Just now finding out about the experimental "spoiler" markdown add in. You use two bars around ||something||. There is no consistency. Another does it by adding an ! after a blockquote.

! This is something.

Because spoilers are an edge case and never of primary importance to the content I group them under secondary content along with Vue components and such and am totally ok keeping them as simple HTML instead. That way when learning content is rendered to PDF or for print this cute little addition doesn't cause the whole thing to fail.

8:13:05 PM, Thursday, January 31, 2019

Zachtronics is—by far—the coolest game company in the world.

🎗 add {1..10} to glob page

5:47:08 PM, Thursday, January 31, 2019

Really enjoying how this GemSpirits™ (their name) game is shaping up. Nice foray into homemade tile-mapped worlds.

✅ create a Discord Projects category
✅ create a #gemspirits channel

One ongoing dilemma is how much game art to let them do. Frequently it is the creative element that makes coding really enjoyable, that hooks coders because they see their creations coming to life. But obviously there has to be a lot coding as well. Balancing the two is definitely an act of educational skill that I'm constantly working to improve.

5:33:12 PM, Thursday, January 31, 2019

Typical Job Posting

Sometimes a job posting is so good at illustrating how phenomenally clueless most organizations are. I'm not being mean, just real. I think my favorite part of this posting was that it is "part time", which is code for "one hour shy of a 40 hour full-time job so we don't have to pay you any benefits even though we clearly have described 60 hours a week of work."

It's kinda cute that they still use mySQL and bootstrap, but their dependency on PHP and Java is just, um, nauseating. It's like they are trying to repel modern developers and educators. I would bet real money they have no clue what FaunaDB even is.

5:20:32 PM, Thursday, January 31, 2019

Found the Windows 10 Emoji picker. Just Windows Key + . or ;. The equivalent on Mac is control + command + space.

🎗 need to add Emoji Picker page

https://www.howtogeek.com/351344/how-to-use-windows-10’s-new-emoji-picker-in-any-app/

4:25:00 PM, Thursday, January 31, 2019

🎗 add sh, clear, ls, cd, rm, rmdir, mv commands
🎗 add a soil function to add links to subdirectory in the current directory

Found https://www.shellscript.sh/ and looks like a good raw source for shell scripting learning.

By the way, true blogging is so much faster than tweeting all of this. Honestly, it makes me question the whole premise of Twitter because you can't really accomplish anything in the space provided. I would much rather be able to follow a few key individuals on Twitter for a log such as this one instead. That whole RSS thing really killed it, unfortunately.

4:00:49 PM, Thursday, January 31, 2019

Such a great time shooting the breeze with the parent of a new potential member.

1:51:56 PM, Thursday, January 31, 2019

Sitemaps are a thing, a thing that VuePress completely ignores. I keep running into very real reasons not to use VuePress for pretty much anything, or any other excuse for a "static site generator" that "renders" your site by crawling every route with a JavaScript web crawler every time you build it.

🎗 add a lesson for generating a sitemap.xml file for your site automatically.
🎗 add sitemap.xml generation to soil automatically.
🎗 seriously need to fix the broken links to avoid SEO downgrade (even if the content is pending).

1:30:49 PM, Thursday, January 31, 2019

Driving home from Woodlawn today I could not help thinking back to previous students I had, some of whom where my first, who could never leave GameMaker studio and learn proper web development and other coding. It's not like they couldn't they just wouldn't.

I can't help associating that with the very real experiences I have had with other students never learning another language besides Python after having been taught it.

There is something very real about a person's first coding and creating experience. It creates a strong cognitive bias that seems to direct their choices and future. I would love to see the research on that.

The best I can conclude is be very difficult what you teach first to young, impressionable coders!

Based on this GameMaker was the worst decision I made. I felt learning to code gradually would lead them to be able to code other real things later. It at least equally dissuaded them from learning anything else.

"Why? This works."

That's what you will hear. The interest you gained by doing something related to what they love (games in this case) is overcome by their loss of interest in anything else later.

💡 Moral of the story: teach web tech first, then shell (bash), then Go, then C, then whatever language matches their long term goals. Python really does not matter unless you are looking at scientific computing and even that is radically changing. I've never been more convinced by everything I'm observing and have observed over the last six years here and even longer before.

11:25:13 AM, Thursday, January 31, 2019

🎗 finish up the details of Prepare for Learning

Moved everything under /blog/ to their own articles and replaced it with a definition of the term and link to What Happened to Blogging?

Changed Blog to Log from the main page with now links to this messy but real blog. 😁

11:06:52 AM, Thursday, January 31, 2019

Wrote What Happened to Blogging and combined the articles I had under the Blog title into this.

9:25:35 PM, Wednesday, January 30, 2019

So happy to get another girl coder to join us, and from a returning family who was with us from near the start. Once again, another Roblox fan. Roblox is so great to learn to code, much better than Minecraft. Minecraft is good for learning system administration from running your own Linux server and, of course, command blocks create JSON masters.

7:38:27 PM, Wednesday, January 30, 2019

Revised the workstation recommendation.

🎗 find a solid mac-like, low-profile keyboard recommendation to go with the rest

6:52:18 PM, Wednesday, January 30, 2019

Looked at FuanaDB again. Looks so promising. Came from some guys at Twitter who were not getting what they needed from the existing options.

Realized with one student that GitLab does not need to have a project created before creating a repo from the command line. Sid (CEO of GitLab) picked it up and retweeted. Always a great object lesson when a student gets recognized for their own research by the industry itself.

Read up on GitLab a little more (members asking me what companies to consider). GitLab is huge on work from home. No wonder the predominant Silicon Valley culture is so opposed to it. It feels like GitLab is the uncool kid on the block that is smarter than all of them so everyone beats him up. So far GitLab tech is objectively better than GitHub on more than 35 points that I am documenting—particularly for the enterprise. Point #1: no executives accused repeatedly of sexual harassment.

12:50:40 PM, Wednesday, January 30, 2019

Listening to Chillhop station with the video of a cracking fire on an empty beach at sunset reminds me how much of an outdoors guy I have always been. All this tech is ultimately just to enable me to recover more of my time so I can get outside again!

11:54:49 AM, Wednesday, January 30, 2019

Now that universal Bash command line terminals are available to everyone via VSCode and Git-SCM I am inspired to add more command line interface stuff back by way of skilstak.sh (which is where I used to host all our member and did all of our coding).

Services available via curl like https://wttr.in that is available both from the command line and as a web site really inspire me. I have the skilbot framework complete and dormant and this could breath new life into it. By using the curl interface (or hiding it behind an sk executable written in Go that they can download easily) and teaching it early I can create routes that match learning content and actions under skilstak.sh that could cache and invoke a bot on a given topic.

I could even allow the sk command to detect its environment and intelligently help the user through configuration of their workstation, perhaps even do several of the steps for them through automation.

Eventually I could add a conversational interface to sk making it a personal learning assistant.

Now that Go supports plugins functionality could be incrementally added and updated, universally. However, I think I will make command/actions into separate, runnable commands so that additions could be made in any compiled manner. Then I just need an internal standard for communicating between the runnable commands. This is something I did for components in the architecture while at IBM as well. This prevents lock-in to any particular language (allowing Rust to live with Go and C and C++ and Julia and Crystal). The executables would have a hard requirement to never be dependent on any runtime whatsoever, however.)

There would be a safety consideration to address because anyone using the sk system is authorizing me (or any sk executable author) to run anything on their system. Users are ok giving up such trust (and regularly do so) but every sk module would have to be 100% open for review. The sk executable itself would also require open source and therefore could never be monetized in the traditional way, but who cares. Safety is more important. An open approach allows a potential registry (or discovery convention in git repos) so that an unlimited number of contributors could create sk bot functions.

I would need to make sure sk could both be executed as a single action or command as well as a REPL that maintains an open connection to skilstak.sh allowing for real-time interactions.

Then, it is a simple matter to create an sk interface from Discord or Slack as well.

Or, I could keep skilstak.sh just for pulling the raw markdown content from skilstak.io and using it from the shell like man for looking things up. OMG, I have to do that!

The funny thing is that with everything being in markdown already I can easily render it as colorized terminal text. In fact, all I have to really do is provide some syntax highlighting. This really tilts the BaseML/EzMark scale toward having pretty raw, readable text rather than text that is simply fast to write. This is more along the lines of Essential Web markdown before and directly in line with Gruber's original intent that Markdown be as easy to read in source form as in raw. Hummm, because of this things like tables and mermaid become much more important. My thought about just using an image to convey the content of a table still holds because I have always said images, sound, and interactivity should always be secondary to the core content. But by allowing GitHub Flavored Markdown tables you have a visual way to represent that content that would be possible through something like the skilstak.sh searching and display that I'm talking about.

I am really glad I have been holding off on codifying BaseML/EzMark. While I still feel strongly most writers should hold themselves to it so that their content can be cut and paste into Medium and stuff. The math rendering in Pandoc is really important. The dilemma I have is how much to stay compatible with blogging platforms versus allowing the richness of other publishing mediums (pun intended). Academia has clearly lined up behind pandoc and novelists behind MultiMarkdown because they serve their domains. More informal writers and less academic educators, however, do not need all that complexity and frankly won't use it if they are exposed to it.

Ugh.

11:39:31 AM, Wednesday, January 30, 2019

Sometimes it is the smallest things that bring so much joy, like a stupid simple alias that makes my life just a little bit easier and more fun.

alias reminders='egrep "^🎗" $SOILHOME/log/README.md'
1

Example of reminders alias

Even though I have been using it for more than 20 years, I'm still blown away by the power of the shell. When combined with VSCode for word processing and code editing there are no limits to productivity enhancements that sometimes take seconds. No need to find the proper service or web site or app to do the same thing. You think it, code it, and boom it's there.

Unicode (emoji) support across the board has really made this sort of stuff more fun and aesthetically pleasing. ✨

11:30:27 AM, Wednesday, January 30, 2019

Whew! So much work just to get a keyboard common image layout so I can indicate specifically on the image where the key is. So worth it though. Also, I'm thinking I might have to get these new dark keyboards for the students here since I only need a few of them and these other keyboards are finally giving out.

Made sure to put a big fat warning about getting a gaming keyboard for coding because most are international and have the enter and \ keys in the wrong places.

Surprised to discover that Apple made the esc and function and arrow keys all full size now. They say because of "gamers" but developers will love that as well. Nothing beats a full-size chicklet keyboard for development, period.

9:34:16 AM, Wednesday, January 30, 2019

Remember when you were a kid and woke up full of energy and excitement about what you were going to do or build that day? That's me every day since I started SkilStak. The best part about learning to code is the amount of creativity it allows. You understand you can literally build anything given enough time.

But first, I have some terms to quickly define. I've decided to use the colorful 🎗 as a reminder and ✅ when complete instead of the GitHub Flavored Markdown - [ ] and - [x] only because I can scan them out in the document easier.

11:31:40 PM, Tuesday, January 29, 2019

The All-Powerful Front-End Developer should be mandatory viewing for every single web developer in whatever organization or role they might be in. With a very friendly approach Chris Coyier explains why servers are completely optional these days and #serverless and JAMstack are such things.

6:42:51 PM, Tuesday, January 29, 2019

Discovered websocketd that turns any program that has a stdin and stdout into a websocket API.

4:52:49 PM, Tuesday, January 29, 2019

✅ add terms: terminal, glob, splat, backtick, tilde

4:28:41 PM, Tuesday, January 29, 2019

Research of Arduino (Elegoo) language confirms it is C and supported from VSCode instead of needing to use the vendor-specific cloud editor.

3:42:11 PM, Tuesday, January 29, 2019

Looks like I'm an official contributor to the Deno project now.

Deno Contribution

It was nice interacting with Ryan. He's such a good guy. Makes me want to make lots of other (more significant) contributions to the project. First I have to port all my libraries to Deno and get SkilStak.io off of VuePress. Then we'll see.

11:31:35 AM, Tuesday, January 29, 2019

I love open source. Ryan Dahl himself responded to the ticket I wrote within about 10 minutes of writing it. This quirky, amazing developer personifies so much that I value and just confirmed it further. Something as simple as that makes me want to be a better developer, contributor, and human being.

11:02:29 AM, Tuesday, January 29, 2019

I did it. I threw myself upon the mercy of the Deno gods. I can't help myself. It is just too good of an idea not to help grow and take over the very broken Node framework.

4:44:10 PM, Monday, January 28, 2019

🎗 add terms: Internet Protocol (IP), protocol, route, router, packet, routing, domain name, Secure Shell (SSH), shell, terminal, string, putty
🎗 Add the video with girl pranking her dad with ssh

1:27:25 PM, Monday, January 28, 2019

🎗 I need to remember to port all my Medium blogs to skilstak.io.

Turns out there is already a Deno test module started. Ugh. Wish I had seen that 48 hours ago.

💢 Why is it all the tech from Facebook starts out sounding so great and ends up being absolute crap?

  • React
  • Babel
  • GraphQL
  • Flow
  • Jest

For being one of the biggest tech employers in the world, Facebook is really bad at tech. Remember their mobile fail?

At the end of the day all of these are horrible and people are waking up to that fact slowly but surely. Over the last week there has been a strong back-lash against JS-JS-JS web over HTML-CSS-JS as has been used from the beginning. The core technology behind the JS-JS-JS crap is React—and specifically the bastard migration of plain web documents into JS rendered versions in Gatsby and VuePress, and for what, so it is just a little bit snappier? Hell no! This is bad for the web. It has become glaringly obvious that the well-meaning Gatsby (and any other JS-JS-JS) technology is broken at the core, it's premise flawed, it foundation on sand.

Why so messed up? Domain confusion. The Web is used for vastly different things. Each domain needs to be approached independently and addressed as such. The JS people thing everything should be an app, even simple documentation. I wrote about this some time ago when trying to decide how to teach web technology. There are actually four Web domains:

  1. The Document Web
  2. The Application Web
  3. The Streaming (Broadcast) Web
  4. The Voice Web

You can then layer accessibility versions on each to compound the confusion.

Gatsyby and VuePress are bad because the together #1 and #2 and do so very poorly. Each has redundant copies of all the content. A version that is crawled to provide SEO hacks to keep Google happy, and a version of the page entirely rendered in JavaScript. Why didn't anyone call out this insanity earier?

12:49:41 PM, Monday, January 28, 2019

Really annoyed that Jest testing framework does not support raw ES6 modules (as Deno does). Tweeted how much I would really like to see a built-in test framework in Deno like Go has. Takes all the work out of thinking about and setting up testing. Got several instant retweets. Problem is that Deno is written entirely in Rust now so any such framework would need to be written in that. Because Deno isn't into heavy tooling at all there really is nothing to hook a testing framework into. Unless...

What if someone wrote a testing framework in Deno that is entirely contained in a single Deno URL? That way a test script would simply need to import it and it would naturally be cached. This would be amazing because testing would just be a matter of adding the test scripts and perhaps a configuration file. Jest could probably even be ported to be 100% independent from babel and the other tooling (by manually tree shaking) so that the existing tests and configurations would work.

No, that won't work because the most broken thing about Jest is that it is not ES6 friendly. Instead, creating a new Deno module, with another name, and creating migration code that detects Jest setups would be preferred. Yes. But what to call it.

10:29:56 AM, Monday, January 28, 2019

Added blurb about Rust being paired with C++ in what is becoming an increasingly popular The 7 Languages You Need post on Medium. After revisiting them I still think they are the best, that you can literally make anything if you know them.

🎗 Scheduled a meeting with new student to pair with friend who is currently attending for Thu 2pm.

10:17:46 AM, Monday, January 28, 2019

Read great Medium article about Geoengineering in 2069 and am reminded how critically important technology will be to literally save the world in the coming decade, so long at it is informed with other research and dialog.

9:42:16 AM, Monday, January 28, 2019

Updated the location information to make it easier to find and added more explicit payment information, specifically no payment plans. Makes me chuckle a bit when people ask about them. What am I, Mastercard?

9:22:40 AM, Monday, January 28, 2019

One of the best things about coding in Go is the lack of decisions you have to make about what to use, how to test and such. Sure there are sometimes two or three good packages out there to pick from, but usually there is one solid one everyone uses.

This is not true for JavaScript where you have to make decisions about everything, which server-side runtime, which test framework, whether or not to use let or var, whether to transpile or not.

After everyone writes about how great jest test framework from Facebook is I struggled with it for more than two hours just to get it to use ES6 imports. The answer seems to be "just use Babel or Webpack" but the whole point of having a command line version is that I did not want to build a dependency on that bloated tool set.

7:02:46 PM, Sunday, January 27, 2019

Only now just discovered Mermaid diagrams which is very timely since I was preparing to create progress charts for work toward title requirements. Now I can generate text and have the diagrams created simply by adding them to markdown documents that support it, such as GitLab Flavored Markdown. (GitHub does not support them. Pandoc does.)

Also finished up some pretty useful tab completion for my edit and draft commands to quickly pull up documents to edit or new ones and initialize VSCode work work with them. Stuff is in the soil code repo for now (which needs to get ported to GitLab still).

Decided to stick with quick and dirty shell scripting to capture the soil use cases and then eventually port those into a single soil executable.

10:57:11 AM, Sunday, January 27, 2019

Sipping coffee like I do every Sunday morning going over administrative stuff I wonder what a log such as this would have read like had I started it from my first days in May of 2013. Can't believe it is coming up on six years.

I do a lot of pondering and pontificating on Sundays. It has become a refreshing habit. Self reflection is a good habit I picked up from being a Mormon all those years.

Perhaps the biggest lesson I have learned in all of that time is that small is better, as in, one or two students maximum. Not only does this increase the pace of learning by a factor of five (it feels like, need to measure that), but it makes teaching really fun again.

I don't have a single student about whom I have doubts or griefs. That is an absolute luxury to any educator.

While I don't cherry-pick my students (I have three who are autistic) I do make sure—as much as possible—that we have compatible personalities and can work well together—especially the parents.

Parents have been the worst thing about this whole endeavor. My worst memories always involve a parent.

Speaking of memories ...

Child affected by fighting parents.

The single worst incident with a parent was watching a downright evil man spitting at his ex-wife as he shouted at her through the window during the pickup custody exchange of their son. These kids, like some others, bring their suitcases with them to class. It reminds me of the brief time I did that with mine and how damaging that constant instability must be on them.

This guy personified the opposite of just about everything I value.

My first clue should have been him spouting his child's resume of activities and accolades (none of which ended up mattering to me at all).

My second clue should have been him bad-mouthing me and my program on our third week in the lounge I had prepared for parents to one of our best family friends, a mother of another student who became a TA and went from failing math to the honor role (a story I love to tell because it happened accidentally when I said, "pay attention in math class because you need it to program games").

"Isn't there anything else?" he asked her with a wink-wink.

"Nope," she responded, "and you should really be glad you found this place."

My wife and I laughed out loud hearing that story.

It blows me away that some parents can be so completely and totally disconnected from their children even though they are with them all the time. Even more so, that they can be so completely disrespectful to a guy who took early retirement and a 50% pay cut to teach their children. I have run into way too many of these people.

Am I the perfect teacher? Hell no! I make mistakes and experience frustration—even get angry—like everyone else, but the level of utter cluelessness and lack of empathy exhibited by some of these parents completely confounds me.

One explanation is that somehow, it seems, Americans are trained to look down on educators. Perhaps because some are so completely bad. Finland (according to documentaries on the topic) does not have this problem. Teachers are revered and respected.

Perhaps it is because everyone knows teachers make less money than most. We live in a time where more people are revealing that they actually value money above all. When making more money as a Java developer somehow makes Java the best programming language.

Perhaps it is because they feel quietly insecure around those whom they consider much smarter than them, subconsciously. Americans are particularly afraid of intelligence. They belittle it, devalue it, mock it, and beat it up. That's 'merica for ya.

Back to the story ...

I tried as hard as I could with this young, intelligent, troubled boy. He had to live with this situation. I sincerely wanted him to have some light his life despite is flighty lack of interest, random swear words, and incredible emotional instability. It was tragic. He was a very disturbed. I confess now I was trying to save him, which I have since learned never works.

After two years (I think) I finally just could not do it any longer. It was a real dilemma because this father had invested a lot financially into his son. I had also invested a lot of time.

But I began to seriously dread having to interact with this parent. I would even have nightmares about it. It overpowered my desire to help this boy. I also felt like he was no longer learning, he was just too distracted. I felt despite the financial investment up to that point that if I did not let him go it would just get worse.

When his father came to pick him up I said, "This will be Joe's last day." (name changed)

There was silence.

I choose to not say anything further, which is unusual for me.

While I was still shaking from the emotional stress of the situation I refunded the remaining $200 or so (which is against my own policy).

Then I unloaded, as I always do, on my very understanding wife. Without here I would never have made it through many of these trials.

I still had to teach some 50 students that day. I owed it to them to be on top of my game. This is ultimately why I let anyone go.

I felt I had failed this boy, but the seething evil of this man was not something I ever wanted to be around again and the boy clearly was learning at a pace much slower than the rest, mostly because of his distraction and despite his raw intellectual acumen.

I can still see that boys face. He loved coming. I can't bear to imagine the heartbreak on his face when his dad had to tell him he would not be returning. It still haunts me.

By the way, his mother once asked if we could be sure not to let him play Minecraft because, and I literally quote, "I've heard Minecraft is rather violent." Having seen what she had to live with, I imagine she is hyper-concerned about her son being exposed to violence.

This boy's biggest challenge was that he could not fail without completely and totally losing it. I witnessed what it means to never have learned that failure is a learning process, that it is a good thing. He had never learned this important lesson.

Then the story gets interesting.

A very negative—downright slanderous—Yelp review came from the boss of the man (who somehow thought we would not figure it out).

The review stated that I "locked children up in my basement." and "didn't do anything you can't do at home." I laugh a little now it was so bad.

Of course, Yelp took it down immediately.

There was some truth to the review.

Technically our classroom was the bottom floor of a downtown Cornelius town home, which might qualify as a basement.

And yes, I did lock them in, for their protection.

In fact, it was because of this troubled, distracted 10 year old that I added unreachable bolt locks and bells to the doors. He was the first (and only) child to randomly run out of the building and wander the sidewalks during the minute I was checking on other students.

Because of that incident I also hired a TA to cover the other students so I could give this one student all of my attention (even though there were lots of other students and a TA there).

No good deed goes unpunished.

*Sigh.* Catharsis. Without it most educators would completely collapse.

Every one of these incidents has caused me to relish the luxury of accepting the most compatible students and their families.

I have not given up on helping those stuck in horrible parental situations, only realized I can't save them all, and often when I try to my ability to help others is compromised.

I'm therefore ethically compelled to only accept the most compatible families for the sake of all who are already here. One bad experience (that could have easily be avoided) could take down the whole thing.

Imagine if every teacher was able to interview and accept his or her students. Obviously that isn't very realistic, just a curious thought. It always reminds me that humans have been learning using the master/apprentice, guru/follower model since humans first started learning. It is the most natural.

How is it that humanity moved away from this?

10:31:48 AM, Sunday, January 27, 2019

Received registration email for returning student, handled setting him up, takes about 30 minutes on average even with automation. This is why I have considered charging a registration fee in the past. Now that I am really picky about who I accept, however, I am more inclined to meet for free with candidates and their parents and really be sure it is a good fit. A good fit means the hour-long consultation and 30 minute setup is easily recovered by them becoming a strong repeat sign up. This is also why I value returning students more than new ones. In most cases I alread know what I'm dealing with.

I realized it might be faster to prepare a form letter for new registrations. Here is something to start from:

Ok, here's the invoice:

https://www.paypal.com/invoice/p/NUMBER

This has him starting this coming Monday. Let me know if you would prefer to push it out another week.

And here is his classroom notes link containing his member ID. I suggest bookmarking it in your web browser:

https://gitlab.com/skilstak/class/SSID

Give this to anyone you would like to follow exactly what we are doing in every lesson including any "at home" work we have discussed in any lesson. Also look over https://skilstak.io and particularly the https://skilstak.io/schedule and https://skilstak/policy pages. You may drop Andrew off no more than five minutes before class and he must depart no more than five minutes after the hour. We have a library in which they can wait so as to not disturb the other student(s).

He won't need to bring anything with him, provided he still has access to the Gmail account he used before. I will need the following information for my records:

Birthday Gmail Account School Hours Available for Work from Home per Week Estimated Departure (usually graduation) Date Phone (if he has one) Home Address (safety and planning) Contact Name (I assume you) Contact Email (billing and newsletters) Contact Phone

Thanks. I look forward to getting started with him and showing him all the new stuff we have been working on.

2:05:43 PM, Saturday, January 26, 2019

Without any coaxing from me, students continue to complain about how boring and irrelevant Codecademy.com is. One diligent student did the Learn JavaScript only to realize it went into https://caniuse.com and downloading Node and CommonJS modules and more. This is overreaching since it has nothing to do with raw JavaScript programming—especially now that ES6 modules are supported in every major web browser.

This student said he could not get through the homework (losing valuable time) because it was so completely boring. He practically begged me to make a better one.

💢 I really don't like having to create my own version of stuff but the stuff that is out there continues to be really bad, despite the great efforts of those involved.

🎗 Make a video going over how to bookmark SkilStak class notes on GitLab for easy lookup for parents and students.

💡 lowercase, no space, alphanum (memorable naming advice)

Reason for no sound playing extension in VSCode: "no access to DOM directly".

Decided to use phaser.min.js instead of phaser.js in lessons.

👍 Using GitLab projects and markdown for class notes has been a major win over Google Docs since it is versioned, easy to read, drop-dead easy to write, and a completely portable format so no worries about something better coming along.

💢 It appears EPIC has removed all the beginner tutorial videos from their academy, grrr. I am so glad we are moving away from 3D game development and focusing on 2D Phaser3, web applications, and systems engineering. Even when we were doing the Unreal Engine development the version of the engine changed like 3 times during the year, once in the middle of a Summer Camp. Unreal Engine is still way better than Unity as a company and engine, however.

😲 Learning programming with 3D game development is rather unsustainable for most educational organizations because of the prohibitive cost of obtaining and maintaining machines powerful enough to do it (even though we have it). It's better to focus on entertaining programming challenges that focus on the concepts—including 2D games.

💵 Forking over $500 for NitroType gold memberships for everyone hit the budget pretty hard but has been worth every dime. Everyone is posting significant typing speed gains.

💡 Put all the notes into a single README.md in each member's class notes project. Just way easier to find for everyone. (Had been putting separate ones in the assets directory, for example.)

👍 Discovered emojis in my logs to help scan them quickly later, obviously.

1:05:29 PM, Saturday, January 26, 2019

Reminded of an article I read a while ago about the biggest attack in history from China by injecting a chip onto video cards before they shipped infecting entire supply chains.

11:27:01 AM, Saturday, January 26, 2019

Decided not to have all students use the skilstak-SSID project approach but only those advanced enough to understand GitLab projects and subprojects.

🎗️ Add today's lesson terms to skilstak.io.
🎗️ Figure better standard way to start sounds after "user gesture".

Having all students bookmark their codebook projects on GitLab in Chrome and rename the bookmark to their student/member ID so it is always visible when using Chrome. This will hopefully make it really easy to pull up the notes and homework assignments.

Debating with myself about spamming the membership group with update about this log. It is already public so I suppose that is fine.

Having great success using Sam (our dog) to illustrate class-based object-oriented programming compared to Jenga Fett for prototypical OOP. Fun having Sam speak() and walk() and sit() to illustrate that although we are all mammals we have different methods of doing the same thing (operations or actions).

8:23:15 AM, Saturday, January 26, 2019

Started The Problem with GatsbyJS and VuePress based on how broken the architectural approach of mixing traditional static sites (usually documentation stuff) with SPA—especially now that very advance progressive web apps are supported.

💢 Who the hell thought it was a good idea to crawl all the routes of an SPA with a JavaScript web crawler?!

This is in the opposite direction of modern static site generation advances. It takes VuePress 10 minutes to "compile" my skilstak.io site with more than 500 routes. It will only get worse. In other words, the entire approach is broken at its foundation.

This one will need a very pretty, well thought out blog post later after I have all the solid evidence demonstrating how completely moronic this approach is.

That said, data-driven SSGs are a nice thing (that I started with Hugonot and FADB about three years ago). GatsbyJS was the first modern SSG to even attempt this.

9:34:07 PM, Friday, January 25, 2019

Today I met with a returning student about scheduling in the morning. Before the end of the day I would receive two more email queries from potential new students. I wonder if it has something to do with this month. While I don't have the stats available that I do now, I remember the same being true in the past.

All the 4pm and later time slots are now filled as is the entire day Saturday.

One is anticipating coming during the day, a high school student attending community college as well.

Another is an adult looking to upskill as others have and who is having questionable results from a national bootcamp that did not know what Go or Linux was. This organization is teaching Java Android development. It is more than troubling how out of touch the organization actually is. My wife said, "he should sue them" when I described my conclusions having researched the organization.

Another is a friend of a recent student sign up who heard about us through him. It is a constant reminder that the absolute best advertising costs nothing, it comes from having an authentic, quality program that people are happy with and will talk to their friends about, and they do.

Yet another new person just emailed asking to schedule an interview in preparation for potentially filling an empty slot as one comes available.

Perhaps the most troubling event this week was having to say no to one of my favorite past students. It would have already been a challenge because he is attending college and wanted to do a remote weekly meeting, but not particularly a lesson.

Given the number of others applying I was already in a difficult position.

I like to give priority to returning students, but remote ones? those who don't really want a lesson but more just discussing things?

This particular student has a history of not doing what is asked and always feeling things are slowing him down. He wants to do "the advanced stuff" before the basics.

Part of his approaching me is realizing this now that he is in college and they are asking him to use Linux, vim, tmux and such, all of which were taught to most of my students in the first or second year and which I asked him to do but he never really did.

Then I asked him to do something very simple that I ask of all my current students, do a few races on NitroType and get me his average words per minute.

He said, "I type 70 words a minute."

I said, "Great! So do a few races and let me know so I can check."

Then he burst out into, "What does doing a typing test have to do with you teaching me to code?"

Normally that kind of question would get a more patient response from me, but I knew this student well and had watched him challenge my asking him to do simple—but critical—things all along.

I said, "I'm sorry but I cannot accept you as a student at this time. Nothing personal, I just feel this is not going to be productive for both of us given our personalities."

Then I rather directly said something that is true but painful to hear, "Asking all my students to do that simple thing is actually a test of teachability. You failed."

This was harsh, but I have adults far older than him willing to do what I asked for my records, having discovered a serious deficiency in typing speed among them all. His impatience and attitude would likely have erupted into a departure later that could have been far worse (as I have experience far too many times).

I was very calm and went on to express my position. He chose not to respond, at all.

This is a person very used to getting whatever they want. I do sincerely wish him the best but it would have been dishonest of me to have given him that position here while others would have been kept away because of it.

By the way, if you cannot type 60 words per minute you have no business being hired in any technical capacity, period. You don't have a prayer of passing any remote coding interview to say the very least.

6:18:24 PM, Friday, January 25, 2019

I'm reminded that the crab rave video is top of the kid-pop-culture list, case anyone cares. Seems like a candidate for a coded-meme project.

5:11:51 PM, Friday, January 25, 2019

I have discovered that GitLab projects are extremely useful when using GitLab as a tool for education. Each student creates a private group with the student ID as the name for example skilstak-dc7f6f. Then they all create (or migrate) their codebook repo into a project of the same name. Advanced students can be given coding challenges that must be in projects with a specific name and add me as a Reporter (a level of access GitHub does not have) so that I can download and correct the challenge. This entire process can be automated while introducing everyone to continuous integration and testing. This was all possible on GitHub but required using GitHub education. The process is entirely independent and itself educational on GitLab.

This means that good 'old SkilBots are back. I can add intelligence to the bots to do this checkout and examination on their own. All the analysis and checking are already built into the skilbot framework. This means skilbot can be used to check real-time challenges as well as "offline" assignments that are being committed to GitLab. With the proper hook any commit can trigger the bot to do the checking and report to the student however, email, Discord, issue on the project, etc. Needless to say, I'm very excited about these possibilities.

I think we should rename skilbot to skeeziks.