/* TODO: Learn How to Create Multiplayer Online Games with Phaser, Node, Express, & Socket.IO */

This blog post is brought to you by the developer of BitBudget. BitBudget is an automated budgeting app for Android and iOS which syncs with your bank account and helps you avoid overspending. If you’d like to quit living paycheck-to-paycheck and get a better handle on your finances, download it today! https://bitbudget.io

This Saturday at work I happen to be taking on a new student at the school where I teach. He’s really advanced so I wasn’t sure exactly what to plan ahead of time for our lesson. But now I think I have a good idea. This Saturday we’re going to learn how to create online multiplayer games:

UPDATE (8/17/2019): A few notes on Unet Deprecation. My new student has told me a little bit about Unet in the past, but it looks like it’s being completely overhauled, so maybe it’s okay if we play around with some other options for the day.

UPDATE (8/17/2019): And a few more notes on the client-server model from the Unreal Engine documentation.

UPDATE (8/17/2019): // TODO NEXT WEEK:

  1. How To Install Express, a Node.js Framework, and Set Up Socket.io on a VPS
  2. DEVELOPER’S GUIDE TO UNITY3D MMO WITH NODE.JS USING SOCKET.IO

UPDATE (8/23/2019): Do not attempt to complete the above tutorials using repl.it. While repl.it does have a pretty nice Express/Node.js setup, I have had trouble trying to install socket.io using the package.json file. For tomorrow’s lesson, make sure to use a real server where we will be able to easily install socket.io using npm on the command line.

UNFORTUNATE DEVELOPMENT (8/23/2019): It looks like setting up an ExpressJS app to run on a live production server is painful. Most of the time I usually just roll with PHP which is extremely easy to get up and running in a production environment as the infrastructure-as-a-service providers such as DigitalOcean have pre-configured server images that you can use. But with other languages and web frameworks I’ve noticed you usually have to set everything up yourself. So my game plan for tomorrow’s lesson is going to be simply following along with the standard ExpressJS tutorials to get a development server setup on a local machine, in our case, a Mac Mini. Then we can use something like NGROK to expose our development server to the rest of the world wide web. However, I’m going to want to make sure I let my student know that we can get a live production server setup as well, but that it is going to take a bit more time as getting NGINX and all that stuff setup correctly will probably take a bit more research on my part.

 

Make Bold Claims

Stumbled upon this really great promoted Tweet today that I liked enough to click on (and bookmark), and wanted to make sure I wrote a little blurb about here on the blog for future reference:

The thing that stood out to me the most about this tweet was the claim of being “the world’s largest icon libary.” At first I think I sort of just took the author of the tweet’s word for it, but being a “promoted” tweet I then sort of realized that the advertiser was likely just making this claim up regardless of how accurate it may or may not be. However, Vincent appears to operate a fine icon library, which I may go ahead and use in my app here in the near future. But most importantly, I’m definitely going to steal Vince’s marketing strategy of making bold unverified claims about my product. Thanks for the hot tip Vinny!

 

Search Everywhere

A while back I created my own “search engine” called BuckBuckMoose. It was a one night project that simply redirects search queries to both Google and DuckDuckGo so that users can “search DuckDuckGo without fear of missing out on Google.” I built this tool to scratch my own itch. As an IndieHacker I like to support the little guy, DuckDuckGo, but I’ve found that I don’t search as often as I’d like because of my “fear of missing out on Google.”

The tool worked really great for awhile, but it’s pretty janky as the search results are launched in two new browser windows which I’ve come to find quite annoying. I programmed the tool at the time to work this way because well… it was the only way I could get it to work. However, I think I’ve found a better way: Googlespider

Tonight I’ve been playing around with scraping Google using Python and BeautifulSoup along with a couple of other libraries. However, Luke Maxwell at Hyperion Gray has released a neat Python library called Googlespider which apparently makes all of this a lot easier, so I think I want to give it a try.

A really good friend of mine once checked out BuckBuckMoose and thought it was pretty cool if I remember correctly. She exclaimed something along the lines of, “search everywhere!” So I think that’s what I’m going to call this thing going forward, SearchEverywhere.

 

Hi my name is Topher…

and I’m addicted to registering domain names on GoDaddy.

 

fatcamp.app

And one more domain while I’m at it: fatcamp.app

At the moment I’m focusing almost all of my creative energy on my personal finance tracking app, MoneyPhone, but I do want to play around a little bit with some other side projects that I can start using in personal life in a much less polished form. The idea for FatCamp is a weight and calorie tracker app to help me lose weight. And I want to use ReallySimpleTV and Castflix for consuming media.

Anyway, the domain name buying spree is over. I know, I have a problem 😉

 

castflix.tv

The domain name buying spree continues: castflix.tv

Was thinking this could be a sister site to reallysimple.tv, but for streaming on demand content instead of live. Will try to justify this purchase as a “birthday present for Dad.”

 

reallysimple.tv

Just registered a pretty sweet new domain: reallysimple.tv

Think I’m going to use it as a sort of birthday present for my father Captain Dave. He has a few live streams that he likes to watch, and I think he could definitely use a little RSS Powered Television on his Amazon Fire Stick.

ReallySimpleTV— RSS Powered Television [Coming Soon]

 

How to Prevent a Button from Changing its Border Color and Background Color When Clicked in CSS

This code snippet is brought to you by the developer of MoneyPhone, a personal expenses tracking app for Android and iOS. Quit living paycheck to paycheck and get your personal finances under control when you start monitoring your spending with MoneyPhone!

Okay, so you want your HTML <button> tag to stop displaying a solid border and changing its background color when clicked (using CSS). Here’s the quick fix for iOS & Android =>

<!DOCTYPE html>
<html>
<head>
<style>
.noFlash {
/* Remove onclick Background Color Change */
/* REFERENCE: https://bit.ly/2Yc95wR */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: transparent;
}
.noFlash:focus {
/* Remove onclick Border Color Change */
/* REFERENCE: https://bit.ly/2KFgNG7 */
outline: none;
background-color: white!important;
}
</style>
</head>
<body>
<button class="noFlash">CLICK ME</button>
</body>
</html>
 

Marketing Like Dr. Squatch

This really great ad from a soap company called Dr. Squatch keeps popping up in my YouTube feed, and I just wanted to bookmark it here on the blog for reference. Here in a couple of weeks I plan on “re-launching” my personal finance app, MoneyPhone, and I’d like to shoot a similar style ad for MoneyPhone:

And no, I didn’t purchase a bar because it’s kind of expensive. But I still love the ad. #CopyWhatYouLike => http://paulgraham.com/copy.html

 

A Mix of Entertainment & Education

This blog post is brought to you by the developer of BitBudget. BitBudget is an automated budgeting app for Android and iOS which syncs with your bank account and helps you avoid overspending. If you’d like to quit living paycheck-to-paycheck and get a better handle on your finances, download it today! https://bitbudget.io

Almost everything I do I try to have a mix of entertainment and education. There’s a sweet spot between those… If it’s too entertaining you don’t learn anything, and if it’s too educational nobody listens.

Russ Roberts