Mar 022021
 

My goal is to make a switch from being a developer to being a 3D artist. I’m not exactly sure what my specialization will be, if any, but for the purpose of being an artist, it makes much more sense to be an independent contractor. If you have been following my blog for a long time, you might remember I had my own company (RaRe IT Services). Since I took on a regular job at some time, I liquidated the company, because it meant a lot of extra paperwork for the tax authorities. Things have changed a lot since then. The registration has become a one-time fee. When you are below a certain revenue per year, you don’t have to struggle with taxes, there is no mandatory external bookkeeper, etc. Basically, owning a company (if you would like to call it that) became a lot easier. So I’m contemplating the registration. I would mean I could use my company name, and hopefully get some traction already. Of course I will keep you updated.

What are your thoughts on this? Let me know in the comments.

Feb 232021
 

For the Unity tutorial I am following (to create a simple networked FPS game), I created a very low-poly character, rigged and animated it. So in Unity I have an idle animation when I’m not moving, and a running animation when I am. The model was very simple, so I wanted to practice rigging and animating a bit more. Grant Abbitt has a nice tutorial in which he creates a character by just using some cubes and some icospheres and just slightly modifies them. The result is still very much human like, but there are no features or details.

I started with the head and gave it a little bit of shape. Like Grant did. Next the neck. A cylinder. Done. The body. Oh well, that’s when things went south. Or not, depends on your point of view. I didn’t stick to the slightly modified primitive shapes but began modeling a proper body. This is the final result. Not simple, and not very simple to rig (had a lot of trouble getting the pigtails to work), but I love the result. Have a look yourself!

Feb 172021
 

So, I started looking into Unity development. Thereby combining my development skills (which I have plenty, in total 30+ years of experience) and creating graphics.

I created a simplified (understatement) version of Angry Birds by following this tutorial. As an extra, I created a simple start screen. See me playing the game and actually sucking at it. But hey, I didn’t do any level optimization yet, so it is not as easy as it seems.

The monsters only die (for now) when I hit them, or when a crate falls straight on top of them, or at a maximum angle of 45 degrees.

The game was created in a couple of hours. Almost everything is new, except of course the C# language.

Feb 162021
 

Did a little maintenance on the blog, some updates, some broken links updated. Still not in 100% condition, but who is, right?

Going to try to keep up this blog more often, it’s been here so long, it would be a shame to let it rot.

May 082020
 

In these “Stay at home” times (you are staying at home, right?) your old dog SwitchBL8 is trying to learn new tricks. Unreal Engine 4.25 and inevitably Blender 2.82 tricks, that is. There’s a ton of free learning material for these free tools (that’s two occurrences of the word free in one sentence!), but I would like to emphasize the two Youtube channels I’m using the most.

For Unreal Engine I’m currently following the excellent tutorials made by Virtus Learning, voiced by the friendly Luke.

For Blender I’m liking the tutorials from Blender Guru a lot. Andrew, a guy with a great smile, and excellent Blender knowledge, creating tutorial videos that are easy to follow.

Like I did, subscribe to both if you’re new to the tools and need tutorials that are free, good and easy to follow.

Now let’s grab a donut and some coffee, while I set this monkey on fire!

Suzanne on fire
Poor Suzanne!

May 182017
 

Recently my employer gave me a brand new MacBook. Never had one, but so far I’m impressed and I like it a lot. One thing to know is that MacBooks or MacOS in particular, are not supported by my employer. You can get one, but basically you’re on your own if something breaks (software, hardware is covered).

The first day of using the machine, I noticed a recurring popup, asking me to participate in my employers Device Enrollment Program. Which is weird. The device enrollment program enables organisations to remotely manage the device, so deployment of new software for example is made possible that way. But….MacOS is not supported by my employer, so why the popup?

After some inquiries I learned that I could “safely ignore the popup”. Right. Everytime an annoying popup, distracting me from what I am doing at that moment, cancelling it by clicking on it. And repeat that every ten minutes or so. Not the answer I was hoping for.

There is a way to disable the popup. You need administrator rights and it involves a couple of reboots, but after that, it’s gone. Here’s how.

– Reboot the machine in recovery mode. This can be done by pressing and holding COMMAND + R when the machine reboots
– In recovery mode choose Terminal from the Utilities menu
– In the terminal window, run the command “csrutil disable” and reboot the machine when asked
– After logging in, open a terminal window and give the following commands:
-> sudo mkdir /Library/LaunchAgentsDisabled
-> sudo mkdir /Library/LaunchDaemonsDisabled
-> sudo mv /System/Library/LaunchAgents/com.apple.ManagedClientAgent.enrollagent.plist /Library/LaunchAgentsDisabled/
-> sudo mv /System/Library/LaunchDaemons/com.apple.ManagedClient.enroll.plist /Library/LaunchDaemonsDisabled/
– Now reboot the machine, again in Recovery mode by pressing and holding COMMAND + R while restarting
– From the Utilities menu start a Terminal again, and run the command “csrutil enable”. Reboot the machine when asked

This should do it. You can check if the popup is gone by issuing the following command in a Terminal window:

-> launchctl list | grep enroll

This should come up with no (empty) results.

The “csrutil” tool is to disable or enable the System Integrity Protection. You should re-enable it (so don’t skip the last step), because it gives your system an extra layer of protection.

Feb 142017
 

Today I had my second and last day of an Angular2 training. Originally a 3-day training cramped into 2 long days. And it was worth it. The course was aimed at “no Angular2 knowledge” but most of us already sniffed it, tried it, used it, so the pace was high. At the end of today, we had a very competitive quiz via Kahoot, which adds a lot of fun to testing your knowledge. Thanks Peter Kassenaar for a top-notch training.

Oct 192016
 

I’m using node.js on Windows. Not ideal, I know. Installing node modules globally means something else than you might expect. Globally means “not in the project folder”. It does not mean “for all users on this computer”, like you’re used to when installing applications.

Node itself is installed in the “Program Files” folder by default. To enable a Windows-like “global” install, try using:

npm config set prefix "%ProgramFiles%\nodejs"

That way the “–global” directive will install the module in the node folder itself, making it available globally in the node way of thinking and in the Windows way of thinking.

Of course, if you didn’t install node.js in the default folder, just replace the “%ProgramFiles%\nodejs” with yours.

If for some reason you want things back to what it was, remove the prefix by issuing the following command:

npm config rm prefix

Oct 102016
 

My colleague needed to use a function in the database in a query, but found that the function was not defined/reachable in his schema. So the solution is to ask for the function to be granted to you, or to create the function in your schema, or…

…use the new WITH enhancement available from Oracle 12c.

Here is a very simple example, that squares a number and returns it. The function is used in the query. How nice :-p

with
  function s(x in integer) return integer is
  begin
    return x*x;
  end;
  
  q as (select 1 n from dual union all select 2 from dual)
  
  select q.n,s(q.n) from q
/
Aug 202016
 

Gaming is a way to relief stress and not think about daily life. Lately, even gaming can’t keep me interested. But my mind is busy all day long with all kinds of stuff, so yesterday I gave mindmapping a try. A mindmap for what is needed to create a gameserver. A server that keeps track of the users, their progress, serves the game itself to the clients, etc. One thing a gameserver needs is a way to store all that data, so a proper database is needed. So I looked at several candidates and in the process I came across Redis. Maybe not the easiest backend database when you need graphing for social features, but absolutely the perfect toy to keep my mind occupied for some time.
Redis has enough client APIs, like most databases. Let’s see if we can use the C#/.Net API from within Unity. Touch/collect this item and increase a value in the Redis database: the XP of the user playing the game.

I will probably create nothing for real, but it’s nice to be not bored for some time.