Today, August 6th, 2021, marks the 30th anniversary of when Sir Tim Berners-Lee launched the first web page on the World Wide Web.  I love reading about the early internet mostly as I remember some of it and kind of have a sort of nostalgic place in my heart for early websites and web design.

As of writing this, I’m a few months shy of 29 years old, making the internet just barely older than I am, a fact I would have to remind my students in Japan when I taught them computer science. This stuff is new and moving rapidly. Every year the internet changes and evolves, new trends take off, which is why I find it so exciting.

I’ve built my career on the web, as a Front-End Developer, I get to help grow it and add to it, hopefully in a positive and beautiful way. My father and brother both also owe their careers to the web and it was a driving force for my family’s settlement in DFW. My father, fresh out of seminary and needing a job, had experience working online and using Bulletin Boards as well as tinkering with computers since his childhood. At the time, 1994-1995, many companies in Dallas were hiring anyone with a pulse that knew about computers to come on as tech support for the Windows 95 rollout. Thus, my father started a career in tech which continues until this day.

I was fortunate to grow up with multiple computers in the home and my elementary school was given grants early on for great computer labs. So post-college, with the ink still wet on my film diploma, I got a job in marketing, helping to support developers at an agency in Dallas.

I’ve gone on to teach computer science, and grow my marketing/development career, all thanks to the world wide web. I’m young, the web is young, and just as I feel hopeful, with my thirties approaching, that it will be the best decade yet, and I hope likewise the web will find similar growth in its thirties alongside me.

So happy birthday WWW, and thank you Sir Tim Berners-Lee.

P.S. at the end of each of my quarterly tests while teaching computer science in Japan, I asked the same question: Who invented the World Wide Web?

 

As sappy as the title sounds, I am in love with Tailwind CSS. If you’re not familiar, it is a utility-first CSS framework designed to be as unopinionated as possible. This means you slap some utility classes onto your element and it is styled without writing a single line of CSS.

I was introduced to it through a friend whose agency,  BeGreat, has started using Tailwind extensively in their builds. I’m a WordPress-focused developer and so are they and we’ve figured out a mostly painless way to work with Tailwind in developing fast WordPress themes fairly quickly.

The biggest issue with Tailwind, a blessing and a curse as it saves space, is that Tailwind is meant to be used with PurgeCSS, which scans your files and purges any unused classes. Obviously, with dynamic content in WordPress, there’s not really a way to know what kind of classes the end-user may need when writing.

I would imagine for more news or blog style projects, Tailwind may not be a perfect choice, but I recently finished a site for a beauty and skincare brand, Kuza Products, where, with the power of ACF, I was able to limit the client’s input to mostly pre-defined ACF fields, giving me in the PHP files control of what classes were assigned to various elements. With this approach, some careful planning, and ACF, you’re able to focus and limit the dynamic content to live purely within components you’ve defined in your PHP theme files.

There were some extra steps, I found a list of common WordPress classes and was able to whitelist them from being purged, but my main concern was the speed of development on this project. I had a very limited timeframe to craft this site, only two weeks, and so I had to come up with a fast solution.

I love browser-sync and with a little setup, was able to get it working with WordPress and rapidly create templates without having to tab between a stylesheet and the theme’s PHP files. This let me essentially have this process:

The result was a well built site for a national brand, high google page speed scores, and a happy client. My next projects will also almost certainly use tailwind and I’m excited to evolve my workflow with it. Recently Tailwind added a JIT compiler and I’m already looking forward to trying to use that in my next build.

As of now, if you’d like to try my setup, I have switched to using Laravel Mix to watch my files and build the tailwind script and I have a starter WordPress template on my GitHub which can be found here.

Thanks for bearing with my cheesy love-letter to Tailwind. I promise I have no affiliation with Tailwind, but I really do just love using it.

As I’m trying to get back on my feet in Texas I’ve recently wanted to learn illustrator. I’ve used the Adobe sweet for six years now, and I lived in Photoshop, After Effects, and Premier at my last job in Dallas. However, I never learned how to properly utilize Illustrator. So my hope during the Covid downtime is to learn how to vectorize and draw in Illustrator.

Here’s my first attempt.

We’re back in Texas. It is with sad hearts that we moved back to Texas as we’ve called Tokyo our home for three years now. In early April my work made it clear I would not be a part of their long term plans. Although I had a job for the next two years I read the tea leaves and decided it was time. The covid-19 pandemic played a part in the decision as well too. Japan’s government suspiciously downplayed and seemed to under report case numbers until the Olympics were called off. I no longer felt comfortable in our situation and decided it was better to weather the storm closer to a support network back in Dallas. I will always cherish my time in Tokyo and the people and friends I met there. It was an unforgettable time. However all good things must come to an end.

We are looking forward to the next exciting chapter in our lives.

Having lived in Japan for two years now, it is about time I took learning Japanese seriously. I have taken a few small community classes, practiced with my co-workers, and purchased several textbooks and JLPT prep books.

I’m a visual learning and prefer to learn how to read over speaking (however this is a shortcoming for sure). I have mostly been studying Japanese grammar and vocabulary, and while this has led to me improving my written Japanese skills considerably, I am still in need of practice when speaking.

However, I decided to post a few resources I have been using to learn Japanese while I live here.

 

Video Resources

 

Book Resources (Amazon links but I don’t receive any compensation from this)

 

These are just recommendations. I will update this post with any new material I get in the future. Good luck with your own studies.

In December of 2018 I made the bold move (for me anyway) to enter in a game jam. This game jam to be precise. The 2-Buttons Jam 2018.

I’ve been a user of Unity since 2010 and made my first unity “game” by remixing the old island demo project into a crude fps with robots and a gun that shot red spheres. I thought I was pretty cool.

Since then I’ve made countless small demos and projects for my own enjoyment but have never released something playable to the public. Since then, despite my dream of making games someday for a living, my biggest failure and personal weakness has been my creative hesitancy. The fear of putting something out and having people not like it.

But something about the end of the year made me want to submit something for the first time. I’ve been closely following the game jam scene hosted on Itch.io and have patiently watched many great jams come and go telling myself I will join one of them someday. Two things about the the 2-Button jam made me intrigued enough to join finally. The premise of using only 2 buttons for gameplay, and embracing accessibility as a core feature of my games.

The 2 Button Dilemma

Use 2, and only 2 buttons, for everything about the game. That’s the challenge. From the menus to the actual gameplay. I love this restriction. I also wanted to challenge myself by creating a fiarly complex game and constantly asking myself, does this need it’s own feature? What decisions can I take away from the player that won’t affect their freedom of choice and keep things fun?

For me, this meant trying to make a game in a genre I absolutely love, top down space shooters, all while keeping true to the challenge of a two button game. Thus Rogue Void was born.

I love top down space shooters. In particular, Sinistar, Armada for the Dreamcast, and AirMech Arena more recently.  These are fun, open spaces, that blend bullet hell gameplay with some fun physics.

I decided to remove a big element of these games from the player control. The ability to control when the player fires their weapon.

For me, if there were enough enemies on screen, the player would never want to stop shooting. Bonus, if you make the shooting satisfying and fun, they would be looking to shoot more (cue hints from 2016 Doom). So I made the player constantly shoot while in the “Void” or my version of the kind of battlefield where the player would fight. In the hub world, there was no reason to shoot, so in the hub areas the player would simply fly around without firing a single shot.

Accessibility First

My second reason for attempting a two button challenge is that I generally believe in attempting to improve accessibility in gaming. I know games are hard to make and they are hard to make well, but I also understand the frustration of not being able to play a game.

As a kid of seeing a game out that I didn’t have the money to buy was awful. That yearning to get my hands on the latest game was agonizing at times. I cannot imagine how terrible it must feel to have both the money and time to play a great game, but be denied due to accessibility issues.

I’m always excited to hear about games including more accessibility features. Unity makes it fairly easy to remap input. Using only 2 buttons makes this process even easier. especially for mobile. Left side and right side. That’s it.

The Game

Rogue Void Screenshot 2

Rogue Void is the first step, more like a proof of concept, for a larger game I hope to make in the future. I love the idea of procedural worlds and “runs” being fashioned for players to delve into. Combining the fun of a fast-paced bullet hell with rogue-like forays into new and hostile environments.

It was a blast to spend 4 days making the game. I put altogether probably 30+ hours into the project and am pleased with the result. Of course, there are many things I hope to include someday. But getting it out of the door was a major step both as a hopeful game developer and from an emotional standpoint.

If you want to play the game, you can check it out here on my page. Rogue Void

Rogue Void Screenshot 2

I’ve been having a blast lately learning Rust, a really cool systems programming language that has the backing of Mozilla. Although I have some experience in C++ and C# due to game development in Unity and Unreal, I’ve never been super comfortable moving outside of that context to learn how to do low-level programming.

I focused on music and art in college and am a bit late to the game when it comes to programming, but I’ve found the rust book is an incredibly well-written and informative introduction.

I plan to continue to post updates as I progress, but for now, my goal is to work through this list of programming projects in rust to better understand basic programming tasks. I want to shore-up my foundation before I continue to dive into various applications like web and game programming.

Keep learning. 🙂

 

While learning WordPress theme development, one of my biggest frustrations was setting up development environments to test different features or begin a new project.

Often times, I simply wanted to fiddle around with various features or test a layout, but setting up a local environment was tricky at the beginning. I wasn’t hip yet to virtual environments such as Vagrant and to speak honestly, I’m still not. It’s on my to-do list.

One of the great things about OSX is that it ships with PHP out of the box making spinning up a PHP server a breeze. However, getting a database server up and running was a challenge in the beginning while I was simply trying to get the basics of web development down.

After learning about the portability of SQLite, I searched for a simple solution to set it as the default database in WordPress.  And, to my rescue, there was already a plug-in enabling this exact thing already floating out there.

Here is the SQLite Integration by Kojima Toshiyasu.

Although the plug-in has not been updated for some time, I’ve encountered no problems with it so far, though that does not guarantee it will remain bug-free.

I went ahead and did the work of downloading and integrating the plugin into a base install of WordPress. The instructions are not difficult if you’d like to do it yourself. I simply followed this guide here.

But to make things simple you are free to clone my repo here and get started quickly and easily in a matter of seconds.

 

Clone the repository:

git clone http://github.com/joemalott/sqlitepress your-project-name

Then simply move into your project directory

cd your-project-name

Then fire up PHP server. On OSX this is

php -S localhost:8000

Open a browser at http://localhost:8000 and after inputting admin credentials you are immediately in a new instance of WordPress. With the power of SQLite you now have a highly portable instance to begin tinkering with.

Please do not use this in large-scale production environments. Even small-scale projects may encounter unforeseen errors due to the use of SQLite.

This is mainly a great tool to quickly begin theme development. Coupled with the fantastic FakerPress plugin to generate some fake data, you can pretty much have a blank canvas ready to begin theming within 5 minutes.

Happy Theming. 🙂