Discover the Future of AI: Chat GPT Taking the World by Storm!

In this blog post, we will be exploring the exciting world of AI technology and its many applications. One such technology that has caught our attention is Chat GPT, or chat-based Generative Pre-training Transformer. This deep learning technique uses transformers to generate human-like text in real-time conversations, making it an ideal choice for use in chatbots and virtual assistants.

But Chat GPT isn’t just useful for businesses looking to improve customer experiences – it can also be used to generate creative prompts and ideas. In fact, we used Chat GPT to generate the prompt for the featured image of this blog post it came up with the following: “Generate an image of a lush green forest with a path leading through it. The forest should be dense and filled with tall trees and verdant foliage, creating a sense of serenity and peacefulness. The path should be winding and inviting, leading the viewer’s eye through the forest and inviting them to explore. The image should have a natural and peaceful atmosphere, with soft lighting and muted colors. The image should be suitable for use as a backdrop or wallpaper, and could potentially include a quote or message about the beauty and tranquility of nature.”

As a software developer, I am always on the lookout for new and innovative technologies that can improve the user experience and make my job easier. Chat GPT is certainly one such technology, and its ability to generate highly coherent and fluent text that is difficult to distinguish from that written by a human is truly impressive.

However, it is important to keep in mind the need to carefully curate and pre-process the data used to train the model, as well as the need to continuously monitor and fine-tune the model to ensure that it is generating accurate and appropriate responses.

Overall, Chat GPT is a powerful tool that has the potential to revolutionize the way we interact with chatbots and virtual assistants, and its possibilities are truly endless. Stay tuned for more updates on this exciting technology!

Inspiration and where to find it…

So working the grind of deadline after deadline after deadline does not help your inspiration, that is one thing i’ve learned over the last few years. Which makes me wonder does working without a deadline even exist?

I’ve heard it so many times we work in an agile way, yet when it comes down to it the office still needs a timeframe and an estimation. Even when an estimation is given, it is mostly too much time and needs to be done quicker and whoever shouts the loudest gets the benefit of the doubt.

And I think this also is part of the reason deadlines keep shifting along, the initial estimation isn’t accepted, the desired deadline is missed, some manager flips a bit, and shifts the deadline along.. only to ask for another estimation because it still needs finishing. Thus the grind begins again…

Agile does have deadlines of course only they are much shorter ones and way more in communication with the customer, less waterfall-ish but at the same time it requires the customer to be accustomed to the agile method, this isn’t always the case. The customer just wants the finished product most of the time.

man near carton boxes with many different words about stress

You can imagine that all inspiration flies off at the sight of pressure and talk about money. Sometimes the challenge under pressure can bring inspiration to get it done.

But when the pressure cooker is set too high for too long something has to give.. and cracks begin to appear and team members suffer.

Inspiration comes and goes, but I believe a team that is inspired and challenged in a healthy way is a team that performs better, at the same time the team needs to be heard and listened to. The estimation will always be an estimation, we cant see into the future (leave a comment if you’ve some how found a way).

I’ve noticed the more I take a step back from a project and look around at whats actually going on in the market the more inspired I get to look into new technologies that aren’t project related, and inspire me to want to explore. So making time for this next to a project is a golden apple. This is something I want to make sure is reincorporated into the team.

I hope any managers reading this will think to offer their team time off the large mega project to explore and come up with new ideas. These new ideas may help the project in the long term, I’ve never met a developer that doesn’t want things to go faster/better/easier in their work.

I’m also curious to know how other dev teams get past the grind and stay inspired, leave a comment and join the conversation?

Back in business…

Now it’s 2021 and we’re in totally different social norm environment.. stay away, keep your distance, don’t touch me, where’s your face mask? type stuff.. All the more reason to spend some time on fixing this site 🙂

So finally the site is back up and running, too long have i fooled around with site updates and legacy code. Wonders have occurred in the website development world since 2014-2016. Time to reap the benefits 🙂 All it took was a little docker love and some visual studio code magic and here we are again.

“More blog posts.”

iKriz, 2015….

As per usual i’ll probably promise you some more frequent updates but we all know how that works out.. so i’ll save you the trouble. If i have something worth posting i’ll post it. Hopefully it’s something worth searching for in the unity realm.

Debugging DLL’s in Unity

Just recently I’ve been attempting to debug custom DLL’s in Unity with Visual Studio.

After a bit of fooling around with pdb2mdb.exe as it is mentioned in the Unity documentation I came across a little gem in the Visual Studio Tools for Unity (VSTU) documentation, there it mentions that VSTU automatically generates an MDB from the PDB file, so i figured now that VSTU is integrated in Unity it should happen automatically.

And indeed Unity can automatically convert the PDB file to an MDB file on import. Just copy the PDB file along with the DLL and unity will generate an MDB file automatically. Saves having to call pdb2mdb.exe yourself.

There you go another complexity saving tip from yours truly.

If anyone knows if this works on OSX aswell let me know.

Unity GameObjects only in Editor please

Say you have a project with objects you don’t want in your final build. With unity you can go about this is a whole bunch of different ways.
You can add a script that can do a bunch of things like destroy the objects if it’s not running in the editor, or you could just simply disable the object.
Or if you want an unsafe and impractical method you could delete the gameobjects build the player and then undo.

Why go to all that trouble when you can just add the EditorOnly tag this causes Unity to not include these tagged gameobjects in the built player.
Without requiring even a single line of code. Ok, it’s possible you’ve already added a specific tag to your special gameobjects, then you just create an empty gameobject and give it the EditorOnly tag and hang your objects as child objects under it.

EditorOnly

2015… YAY!

Yes folk… Yet Another Year has come to our door and by gosh aren’t we all looking forward to it. So it’s that time again where I post a yearly happy new year post and tell you all to enjoy it as much as you can, whether you do or not is entirely in your hands. Some of you may have the best of intentions for the new year others may not, either way I’m going to spill a few of my intentions for this year.

#1) More blog posts. Eventually this is for me, myself and I, we’d all like to have a blog with more than just happy new year posts.

#2) Will continue posting unity tips & tricks

#3) will probably have some parenting related posts in the future

#4) Did I say more blog posts?

If I have any more great idea’s I’ll be sure to write a post about it, although I’m not going to commit to a “I’ll post once a week” but there is a goal in there somewhere.
I’m gonna leave it a that for now Happy New Year and hopefully I’ll get back here with something useful to say.

Creating an H.264 stream from Unity Content

Argus Simulator


Currently I’m working on a project at work that requires the information (lets call it unity content) displayed on twelve screens in another room/building (a long way away from the computer generating it), it’s a little bit of an unrealistic-solution/challenge to connect a dvi/hdmi/<or you name it> cable through buildings… as quality degrades the longer the cable gets… and not to mention all other obstacles along the way.

Enter streaming over ip… now this is not the easiest thing to do there are many ways to go about it.

The first option that came to mind was lets get a hardware adapter that can convert the DVI output to an H.264 IP stream.. that is a pretty expensive solution if you have twelve outputs that need to go to twelve screens, average cost of a decent hardware encoder runs somewhere around and above 4000 euros that times 12 and you have yourself an expensive streaming setup..

So Ideally thinking about costs the best solution would be do it in software, the solution first thought of was to do screen capture and encoding on the fly, all possible with vlc and many other software screen capture programs. After a few small tests this proved to be really CPU hungry and not really the best solution, because we need as much CPU & GPU time as possible for generating the Unity Content.

So now almost at the end of all options a colleague of mine mentioned AMD’s Radeon Sky Series which is basically cloud gaming tech not yet available for the masses. This got me thinking and looking more closer at cloud gaming which is basically a server on the web streaming games to specialized clients. Looking further into this I found Nvidia and the new range of GPU’s with Kepler Architecture *hallelujah* each Kepler based card is fitted with a beautiful h.264 encoding chip. Which turns out to do encoding without even touching the GPU or CPU time, and mighty fast too… 76 frames at 600ms which boils down to about 8ms per frame  which is what i’m looking for. with Low Latency settings I even got a 1.08ms encoding time… *jaw drop*

So I dove head first into the reasonably clear Nvidia API and expanded on my previous experience in creating a decent C++ native Unity Plugin. After bumping into alot of “unresolved external symbol” errors (which by the way usually mean your missing a lib file) and a few unicode/ascii hurdles (Yes i didn’t think this would be an issue, but it turns out C++ is picky about string encoding) I eventually got some output from the chip even though it was just a green screen.. it was still output and the encoder had been initialized to create it. Which meant progress!

Realizing that the green screen wasn’t my actual unity content I figured I’d better dig a little deeper and found that the green screen was actually blank YUV pixels, eventually I managed to change that to red using different YUV values and filling the texture with them. Still not so useful because Unity doesn’t output YUV pixels now does it. This led me to search the internet for a way to convert RGB to YUV (actually BGRA to YUV444) pixel for pixel conversion was an option with readily available formulas online.. only not the fastest way.
Browsing through the built-in shaders I found a reference to a YUV conversion, using that as a reference I created a new shader for myself to do the YUV conversion with some modifications to values and the order they are stored in.

Now a little under half a year later i’m using my plugin to encode 12 H.264 streams to send to VLC which passes it on to a VMS.
Video Will soon follow 😉

Unity Media WordPress Plugin

Sadly this plugin uses the old webplayer implementation and is no longer supported

For all of those people out there with a wordpress site and a will to show some unity content. Here’s your chance to shine…
You can use the plugin below to do exactly that, glad to be of assistance.

Unity Media Plugin

Unity Media Plugin allows you to upload various Unity Engine related files to your WordPress site. It also allows you to add a Unity Webplayer to your post.

Major features in Unity Media 1.0 are:

  • Uploading of FBX files, .unitypackages and .unity3d files
  • Inserting multiple webplayers into your posts

Download:

You can download my plugin here: u3dmedia.zip (2413 downloads)

Quickstart:

1. Upload plugin zip to site
2. Activate plugin
3. You can now upload a .unity3d file
4. And place the following tag in a post to add a unity webplayer to it:

[UnityMedia src="<url of unity3d file>" width=550 height=344]

Let me know if you like this plugin or if you think it’s missing some important feature, your welcome to comment or donate so I can update it.

Arduino: kWh Monitoring

Inspired by a fellow ne2000-event goer http://juerd.nl/site.plp/kwh (dutch site) who made a kwh-meter-meter. I decided to also do something similar with my Arduino as it was just sitting idle in a box waiting for greatness…

To do such a project requires a light amount of electronics experience, although you can probably do it without. If you know how to solder and you can tell the difference between positive and negative connections then bob’s your uncle.

Before I could get started on this project I needed a few more electrical components like resistors, more flashy leds and what not. I ended up searching the web for a decent place to order the components (which turned out to be Reichelt.de) and ordered the IR Sensor for the project from a local electronics shop in Utrecht because reichelt.de didn’t have it. Three days after ordering all the bits and pieces a package arrived and I could start.

I soldered the TCRT5000 sensor to a piece of soldering board because I didn’t want to break any of its terminals fiddling with cables and such, plus it made for a better connection. Added the resistors and two leads for power to that piece of soldering board and then connected it up to the arduino read out the value and.. awesome it worked straight away.

After some tweaking of values I got a sensible reading from the Arduino for each cycle on my kWh meter. That was step one actually getting an event outside of the kwh-meter. Now the question was what to do with that.

In the example project that inspired me (juerd’s project) juerd had an OpenWRT router capturing values and storing them into an rrd file. As I dont have any OpenWRT or linux server I thought why not use Munin to monitor my Arduino output.

To accomplish this I used my Ethernet shield as a webserver to serve values to a custom made munin plugin (which was easy to make). That saved me a problem because I already had munin running on a server of mine.

In using munin I have a polling time of 5 minutes which is more than enough to see the amount of power going out, but it would mean that if something used an excessive amount of power in a time period of less than 5 minutes then I could potentially miss it. To fix this I added a variable that gets reset after each web request and holds the highest value: maxwatt. That allows me to see when short bursts occur in my power usage. But overall the 5min poll time is just fine.

Yes it’s fairly low-tech at the moment but hey come on.. it’s an arduino project. Project code can be found here

A Quick update that this project is still working..
It needed a slight adjustment because my provider hands out dynamic IP addresses, and the arduino lost track of its self after a while.
So I had to change the order of execution in the loop and also added some dyndns updating..
Here’s the latest day graph: