Content that doesn’t quite fit into any other category on the website at this point in time.
If you're like me, trying to create user interfaces in general is a challenge. So when it comes to working in tools that you're less familiar with, that challenge basically grows to a level where it's a roadblock. For me, trying to create user interfaces in Unity3D is basically the perfect example of hitting this roadblock! That's not to say the UI tools that are available in Unity3D are bad, but my skill level is essentially reset to zero when working with these tools. Fortunately I came across this little gem called Noesis GUI that enables WPF inside of Unity3D! I plan to do a few updates on this either via YouTube or short blog posts, but NoesisGUI has essentially unlocked my ability to create user interfaces inside of Unity3D. You can find my intro video here, or watch it…
Progress Pulse - Entry 2 Things have been pretty busy in real life the past couple of weeks, so I haven't had too much time for working on this. However, for this entry in the progress pulse series I'll talk about some of the challenges I had while looking at making a generic data (de)serialization API + implementation, and why I chose to make some of the decisions I did! Which Tech To Pick? I've felt burned in the past by trying to do data serialization for my game framework because it's always created a barrier for refactoring once it's in place (i.e. i change some data i need and now i have to re-make or migrate allllll my SQL data). So I was thinking about how I plan to store game state, which I have written about, and then…
Graphs and Trees to Start I was chatting with my colleague about generating maps for a 2D role playing game the other day after getting super excited explaining picking ProjectXyz back up and looking into Unity3D more. He was expressing interest in algorithms for procedural generation and storing data in trees or graphs as an optimal data structure for the scenario we were going over. It stuck with me though. I've been putting a lot of thought into game state management and wanting to address it by using a generic layering/stacking approach. By that, I mean that I want to find a way to take base game state, allow mods or plugins to overlay their state, allow game patches to overlay their state, and then save game data to be overlaid on top of all of that. Conceptually, I believe…
Continuous Improvement - Baby Steps! Our development team at Magnet Forensics focuses a lot on continuous improvement. It's one of the things baked into a retrospective often performed in agile software shops. It's all about acknowledging that no system or process is going to be perfect and that as your landscape changes, a lot of other things will too. The concept of continuous improvement isn't limited to just the software we make or the processes we put in place for doing so. You can apply it to anything that's repeated over time where you can measure positive and negative changes. I figured it was time to apply it to my leadership practices. The One on One I lead a team of software developers at Magnet, but I'm not the boss of any of them. They're all equally my peers and…
Background At Magnet Forensics, I lead an awesome team of people with the mission of creating forensics software to help investigators around the world solve crimes. We're stacked with incredible people--and not only on the team I'm on, but company-wide. We do a great job of recognizing our achievements as an organization and as a team, but also on an individual level. If someone has gone above and beyond, we don't keep that a secret. I've been trying to make more of a conscious effort to recognize the people I work with, especially in ways that are unique to my own style. I think recognizing people in person is important, but you also need to consider your setting. Sometimes recognition in a public forum isn't actually appreciated or isn't nearly as effective as appreciating in a one-on-one setting. I find…
Charity Water We have a lot of pretty awesome people at Magnet Forensics, and every day I'm reminded just how awesome. A colleague of mine, Danielle Braun, had what I thought was an incredible idea for her birthday. For Danielle's birthday, she's not asking for more new clothes, for her parents to get her a car, for help with paying off tuition, or for some new fancy tech gadgets. But she's not asking for nothing. Danielle is asking for your support with Charity: Water this year. Charity: Water is a non-profit organization with the goal of bringing clean water to people in developing nations that don't have access to it. Reading their mission page probably opens your eyes a fair bit about the lack of access to drinking water in other countries. They're not about some complex and elaborate plan…
Code Smells Welcome to the third edition of Code Smells! Periodically I’ll be posting about how to detect code smells and what they mean in terms of the big picture of your code. The previous installment can be found right here. What’s a code smell? Wikipedia says it perfectly: In computer programming, code smell is any symptom in the source code of a program that possibly indicates a deeper problem. Code smells are usually not bugs—they are not technically incorrect and don’t currently prevent the program from functioning. Instead, they indicate weaknesses in design that may be slowing down development or increasing the risk of bugs or failures in the future. These code smells are often based on my own opinion and experience with programming. If you disagree with what I'm saying in my post, please don't hesitate to post a comment. I'd love to clarify anything I may have worded poorly and discuss…
Performance Reviews It's almost the end of the year, and performance reviews for many companies are just around the corner. This will be the first time for me sitting on the other side of a performance review. I'm excited, and to be honest, a little nervous about how it will all play out. I know our HR manager has done an excellent job putting together our initial take on performance reviews, but it's still going to be up to me to ensure that all aspects of a performance review are communicated properly to my team. It's definitely going to be an interesting time of year! I've started doing a little bit of reading on performance reviews. From what I can tell, the general consensus is that most performance review systems are flawed and nobody knows the perfect way to do…
Background Leadership has become a big focus for me as I start to grow more into my role at Magnet Forensics. As a developer, I feel like it's easy to gain basic knowledge and experience with unfamiliar programming territory just by surfing The Internet. With leadership, that's certainly not the case for me. What's my most recent realization? Lead by example if you expect anyone to take you seriously. As a young leader (and with little professional experience in a leadership role), I think this becomes especially important. When you lead by example, you're showing others that you're really behind what you're preaching. Lead by Example: A Simple How-to Maybe it's obvious, but I really don't think I'm over simplifying my message when I say it. To lead by example, you just do what you expect other people to do.…
Well this is super embarrassing... But I had to do an emergency host migration from my Raspberry Pi to a more reliable service. It appears as though my Raspberry Pi is no longer with us. Quite a shame. Anyway, my apologies for the downtime. Hang in there! EDIT: Getting closer... I think all the posts are back up... New theme... I'm busy re-configuring plugins and then I have to go try and update all the missing graphics. Ugh. On the bright side, the site should be about 5x faster. EDIT2: Just fixed up a handful of pictures. Not totally jazzed to go through them all right now, but I at least updated my popular articles. It's definitely been a treat getting back up and running.