Saturday, September 28, 2019

Mountains out of mole hills

Make A Mountain Out of A Molehill

 "What are you doing?" This question was asked innocently enough while I was showcasing a personal project for a coworker. We are both attempting to learn Python and though we are both beginners with the language I would argue that he has more knowledge of Python in a practical sense while I'm primarily focused on what to do once I have enough Python knowledge to be dangerous. Despite considering myself a beginner in Python a quick glance at the screen, then back at his confused face, then back at the screen put his question into perspective.

At the beginning of the year I set out in earnest to learn Python. Python 3.7.4 was chosen by default. Warnings regarding Python 2 reaching its end of life at the start of the following year kept flooding the console every time that I attempted to use it or associated tools so it seemed like the right move at the time. A simple Python web application demo quickly came together. I settled on Flask as a front end because I wanted to do this whole learning Python thing right. With "Hello, World!" displayed in a browser window I gave myself a pat on the back and immediately went looking for a database.

Any senior level developer can already see where this is going. What began innocently enough quickly grew legs and with it more problems. I stalled out over the next few weeks attempting to understand how to run Redis locally? Why Redis? Well, it's Python, isn't it? Eventually I determined that it would make sense to run a local kubernetes (k8s) instance. After all, why not do this database deployment thing the professional way. Months went by and "Hello, World!" faded from memory. Between work and this personal project time was scarce. What once seemed like a fun project started looking like a day job.

Months went by and now it was time to add Bootstrap 4. What could possibly go wrong? Have I mentioned that I am not a designer in any respect? Days, weeks, months. It all became a blur as I learned more than I ever wanted to about the difference between Sass vs Less, how to fix the position of a copyright, the more interesting points of flexbox. The project had consumed me at this point. I locked myself in a conference room between meetings at work and searched for answers. What image pull policy should I be using for my local docker registry? Why is my exposed deployment not providing an external-ip so that I can access it outside of the cluster? Did updating kubernetes really just break helm and tiller after all of that time that I spent figuring it out the first time!?

I looked back at my coworker after being lost in thought for what I am positive was several seconds. The shift in my demeanor must have been apparent. I had no idea what else to say so I simply uttered "don't worry about it for now". We covered the finer points of "Hello, World!" and he taught me some things about Python.

Long story short, it's easy to lose sight of why you started any project. Often times a developer's greatest asset is an ability to narrow down scope to something tangible. In this sense I went overboard intentionally to thrust myself into learning Python. It's been educational to say the least. If I had it all to do over again would I do things the same way? Probably.

What are you working on and have you got a roadmap?

Monday, October 15, 2018

Who Wrote This?

Today I want to talk to you about accountability. Yes, you.

A funny incident occurred the other day in the office. An impromptu meeting was formed. Huddled around the workstation of the team's product manager a group of 4 or 5 coworkers and I divvied out tasks from the backlog. Many of the tasks were poorly written lacking even the most basic information such as a description of the work to be done. Some were effectively orphaned for months or years. Others yet sounded less like work and more like a checklist of things that had already been done.

 At any rate, the whole while we jokingly mocked the sad state of the issue backlog pointing out the obvious errors and having a good laugh at each others' expense. After a grueling 6 or so months we finally had the time and budget to pay down some technical debt and the mood was light. Suddenly, a poorly worded ticket popped up. It looked imbecilic. The sort of thing which would receive an F- if the work was graded. I couldn't resist. "Who wrote this?" I asked with a shred of disgust. It was audible enough that a few heads turned. I squinted at the "reporter" of the ticket. The crowd of men in there late teens, 20s, 30s, and even 40s seemed to hold their breath in anticipation. Finally I shrank back into my office chair, visibly sunken and a bit humiliated. The room erupted into laughter. My name was next to reporter, and it was my ticket (and subsequently my shame). We all had a good laugh and carried on. One coworker who had since moved to a new team but still shared the same workspace couldn't help but joke and laugh along with us.

These sorts of incidents happen all of the time. In the sense of professional work, this sort of behavior is not standard, BUT IT NEEDS TO BE. We all get tired at some point and when we are tired we make stupid mistakes. Sometimes they are costly, and sometimes they're trivial. In my 10 years of experience I have been thrown under the bus for the mistakes of others. I've seen entire teams, entire offices, even entire companies close over mismanagement, finger-pointing, and most importantly, a lack of accountability. The word commands a particular degree of respect. It isn't easy or natural to raise your hand look around and say "I messed up" in a room full of well respected peers. Such an exercise is usually thought of as a sign of weakness or at the very least incompetence. That's why it is important to foster a strong sense of accountability and even more important to give people room to learn from their mistakes and grow.

To sum it all up, if you aren't being challenged and making mistakes at work, if you don't receive a fair shake when it comes to problems, and if you don't feel safe to make your self vulnerable in a professional sense now and again it might be time to consider how might you become more accountable. Sometimes it's a matter of personal development. Other times you might need external help and encouragement. Often you just need to take some time off and get some rest.

Monday, October 1, 2018

10 years? Already?

Miss me? I suppose that I have some explaining to do. It all started back in 2011 when life took an unexpected turn and I became a family man. Making good on my previous promise I promptly quit the game industry and got a Real Job™! Well, that isn't entirely true... I did some more game work while making a painful transition into web development and then mobile development and, well, the details just aren't all that interesting. So I guess if anyone is still following (hello, Russia! You've been awfully busy lurking these past few years!) you can expect me to drop in from time to time and wax philosophical about development, parenting, and generally carrying on. Oh, and in case there is any doubt, I still have no idea what I am doing. I just get paid more to figure it out now, and that's all that I could ever ask for [;¬.¬] Till next time!

Saturday, April 2, 2011

WebGL fun!!!

Quick note regarding WebGL stuff:

In converting a fragment shader included inline with the HTML source of a page I kept hitting obscure compiler errors. Turns out that it was a missing semi-colon issue... FFFFFFFUUUUUUUUUUUU

Original source:
<script id="fragment" type="x-shader/x-fragment">
#ifdef GL_ES
precision highp float;
#endif
varying vec2 vTextureCoord;
uniform sampler2D uSampler;
void main(void) {
gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));
}
</script>

first attempt:
#ifdef GL_ES\nprecision highp float\n#endif\n varying (... fails)

works!!!
#ifdef GL_ES\nprecision highp float\n#endif\n; varying (SUCCESS!)

Tuesday, March 29, 2011

Blender, JSON, and WebGL

I'm finally ready to accept it. I've had a love affair with Blender. It's not the most popular 3D tool and it certainly isn't the most widely used, but it's always held a special place in my heart. Oh, and I'm not an artist by any means, so I'm sure that has a bit to do with it.

Anyway, got into some JSON today in the pursuit of web related technologies compatible with WebGL. There are a whole lot of excellent utilities out there but I'm evaluating this one at the moment:


The fact that it plugs in to Blender sold me as I'm some what familiar with how Blender works. Nothing to report yet, but if there are better tools, utilities, or even model formats, I'm always willing to hear it :)

Tuesday, February 22, 2011

javascript... help?

object=(function(){})() <-self-calling/singleton
object=(function(){}) <-must be instantiated

Why?
What is this?
How did I accidentally stumble upon this and why is it so useful?

I know that there's something better, but for the time being I'm just hacking away at javascript with my ax o plenty to get a feel for debugging, or at least that's what I tell myself.

Insight welcome.

Wednesday, February 9, 2011

1st Amendment


erk: C0 CE FE 84 C2 27 F7 5B D0 7A 7E B8 46 50 9F 93 B2 38 E7 70 DA CB 9F F4 A3 88 F8 12 48 2B E2 1B
riv: 47 EE 74 54 E4 77 4C C9 B8 96 0C 7B 59 F4 C1 4D
pub: C2 D4 AA F3 19 35 50 19 AF 99 D4 4E 2B 58 CA 29 25 2C 89 12 3D 11 D6 21 8F 40 B1 38 CA B2 9B 71 01 F3 AE B7 2A 97 50 19
R: 80 6E 07 8F A1 52 97 90 CE 1A AE 02 BA DD 6F AA A6 AF 74 17
n: E1 3A 7E BC 3A CC EB 1C B5 6C C8 60 FC AB DB 6A 04 8C 55 E1
K: BA 90 55 91 68 61 B9 77 ED CB ED 92 00 50 92 F6 6C 7A 3D 8D
Da: C5 B2 BF A1 A4 13 DD 16 F2 6D 31 C0 F2 ED 47 20 DC FB 06 70

~geohot

props to fail0verflow for the asymmetric half
no donate link, just use this info wisely
i do not condone piracy

if you want your next console to be secure, get in touch with me. any of you 3.
it'd be fun to be on the other side.

Wednesday, January 19, 2011

Long time no see...

WebGL is amazing. End of story.
I read on this guy's blog that you can place canvas elements inside of Blogger posts.
Unfortunately my current projects are too big for that T_T

Sunday, August 22, 2010

The words that killed my love of video games

[This list may grow over time]

Firmware update (If you have a PS3 then you know exactly what I mean)
Timed exclusive
Downloadable content (DLC)
Fanboy (We all need something to love. Get over yourselves)
Waggle.
Rage quit
"Dual Wield" (Contrary to popular belief, Halo was not the first game to let you use two of the same weapon at the same time)
Subscription
"Triple A!" (In the sense of a "Triple A!" game/title1)
Expansion Pack
Pre-order
Midnight release (Honestly, it sounds like the sort of thing that a young man going through puberty is apt to be privy to which is oddly fitting considering the audience now that I think about it.)

That's all for now. I'm going to quit the game industry this week at least for a little while so that I can regroup. Frankly I'm not impressed by what I've seen in the past couple of years working with console developers. HTML5 gives promise in WebGL but I'm not yet ready to tackle that task. Wish me luck wherever I end up. I'm trying to choose between metal working and backpacking the world.

Sunday, September 13, 2009

Monday, August 17, 2009

Great success

Finally finished that .NET OpenGL project/proof of concept. Sure it's been done to death but I wanted to reinvent the wheel. Sue me.

Next step, go back to the drawing board for design and setup for a 2D editor. Possibly play around some more with the prototype.

Work is going ok. I need more initiative. Definitely not loafing around (intentionally) though. I'm just now getting out of my rut after nearly a year. A great deal of time has been wasted so I've got to get caught back up.

Friday, August 7, 2009

Long time no blog...

Still employed. Still loving it. Still rediscovering why I'm here.

Finally got around to repairing the main partition on my laptop. Note to all of you who might be dealing with "an error occurred during directory enumeration":

Booting into the Recovery Console

You'll need your Windows XP installation CD or have access to it through your boot menu. In this instance, we'll use an installation CD. Follow these steps to boot into the Recovery Console from a Windows XP Installation CD.

1)
Place your Windows XP in the first bootable CD-ROM drive
2) Restart your computer and make sure your BIOS is set to boot from CD
3) When you see the following command press the space bar.

"press any key to boot from cd..."

4) Wait until you see the "Welcome to Setup" screen, and press R to start the Recovery Console
5) Choose which Windows installation you wish to load (this is usually #1 unless you have a multi-boot system)
6) Type the administrator password and Press Enter
7) You should now be at the C:\Windows> prompt

If you are experiencing this particular problem, typing DIR and pressing Enter on your keyboard will give you the dreaded message "an error occurred during directory enumeration".

At the command prompt type the following command and press Enter

chkdsk /p /r

Allow chkdsk to run until complete, this may take a few minutes, but it may also take a few hours. Don't interrupt the process, just walk away and let the program check the disk and fix the problems it finds. Amazingly enough, doing just this step can fix many boot issues with Windows XP

Once the chkdsk program completes, type Exit to reboot Windows. In many instances, this simple procedure will allow Windows to boot correctly again.

If Windows does indeed boot correctly, don't tempt fate again...backup any important data now as a precaution.

http://www.pchell.com/support/directoryenumeration.shtml

All credit goes to whoever wrote that piece at PCHell. Thanks for saving my hard drive :0


Gonna get started on a new 2D character editor this weekend since I've got a working development platform again but tonight I've got a date ;D

More to follow.

Saturday, March 28, 2009

Android, Cell, Walkies



I'm starting over with Android development and this time I'm doing all the things that I should have done. Step one is reading the documentation from top to bottom. I was eager to get something working to show off to potential employers last time around and that resulted in a poor working knoledge of the sexy OS that is Android. Now that I'm reviewing the SDK docs I'm learning quite a bit about what Android has to offer and it's very pleasing. Ideally I'll have another OpenGL app up and running before the end of April.

Things are going well at work. I'm getting over being the noob and SN Systems software isn't so bad once you discover their handy training videos (anybody whos used SN System Software should know what I'm talking about ;])

Weather here in Austin is always so gorgeous. Yesterday I just had to leave work and go for a walk. I think I might make it a habit on good weather days.

Friday, March 13, 2009

Pay dayz!

Work definitely pays the bills, and not a moment too soon. Dodging creditors post enrollment is not easy or fun. I prefer to be legitimate and pay in full and on time but that would be difficult without income :D

So I'm sick of being a stupid noob. I've found myself spending too much time mulling over simple problems at work and I've decided to do something to change that. Tonight I mulled over how to create a precompiled header (I'd never used a custom one because I've never needed to). Baby steps. I'm working on building my OpenGL skills and I'd like to do some multithreading stuff. Eventually I hope to become that indispensable PS3 guy since nobody else seems too interested in the platform. It's a bit tricky to work on (to say the least) but that's all the better for the new guy ^_^

WIsh me luck. I'll need it.

BlazBlue coming to PS3 and 360 summer 2009! You excited?! I'm excited!

Saturday, February 21, 2009

Street Fighter IV is a terrible game

Street Fighter IV sucks.
Street Fighter IV is garbage.
Street Fighter IV is terrible.
Street Fighter IV is awful.
Street Fighter IV is junk.
Street Fighter IV is broken.
Street Fighter IV is popular.

Like the trashy cheerleader who knows every player on the highschool football team inside and out, Street Fighter IV has stolen the hearts of the media and robotic consumers alike.

I have played every Street Fighter that was important but only cared for Street Fighter III: Third Strike (because it was the best of the series) and I can honestly say that Street Fighter IV would have been better left in the concept stage right before the good folks of Capcom came to their senses and went on to make a REAL successor to Third Strike.

Where do I begin?

It's Street Fighter II in 3D. No really. It's the same fucking game. Are reviewers blinded by their nostalgia to the point that they haven't caught on to this fact? Oh and they added the "focus system" whatever that's worth. A gameplay mechanic that want's to be a parry but just can't seem to cut it. Sure it looks pretty but at the end of the day the focus attack and defense just doesn't cut it against standard character's attacks (Ken's fierce shoryuken will always not you out of focus attacks).

Another important note is that Capcom is already selling you the rest of the game that you just paid 60 bucks for. This is a practice that needs to stop. They practically dusted off an old game engine, tweaked a few things here and there and shit it into a box to be distributed. How can they possibly add insult to that?

It certainly is a new breed of people out there who play games. "If it's shiny and flashy it must be good! What? Gameplay mechanics? No those are too hard. I want the game to be easy so that I can enjoy playing it." The whole point of the difficult of any game system is the inevitable ecstasy that one experiences when they've reached the upper echelon of said game. Guilty Gear and now BlazBlue are excellent examples as the game is gorgeous and accessible to new comers yet in the hands of someone who has devoted a measurable amount of time into learning the game it's downright sexy. But you'll likely never hear of BlazBlue in the news for its original character designs and aesthetics. You definitely won't hear about its outstanding and unique player experience. All you'll hear about is Ryu and his new hat.

For shame video game developers. How could you let this happen. When did a bunch of schmucks with a few dollars to play with become more important than people who would go without meals for a month just to by a new system at launch become more important to you? :(

On another note work is lovely. I'm stressed to the point of drinking myself to sleep but at the very least I'm in a challenging and well paying place of employment that will remain unnamed and I'm loving every minute of it.

Thursday, January 8, 2009

Hello again!

Yes we're long overdue for an update ^_^

So I've been hanging out with family preparing for the move to Austin soon. In the mean while I've invested some time into building a 2D animation editor. Almost a year to date I actually started another 2D editor but I've seen changed my mind about a number of functional and design decisions (read it just wasn't pretty after all those months). The new editor is basic but it does everything that I need for the time being. I'll circulate it for testing and take feed back before revising it. Next up: Unit Editor!

I'd like to have a very basic 2D game engine up and running before the end of February but I admit that I'm lacking direction right now. I've been playing Monster Hunter Freedom 2 trying to knock out those HR6 guild hall quests alone but it's a bit difficult (h8chu dual plesioth) and not exactly rewarding for the time I'm putting into it.

Happy New Year!

Friday, November 7, 2008

Up up and away!

Interesting week so far. Mobile app development is going very well. UV issues have been sorted out and I've been able to move on to camera behaviors. I'm currently looking into onscreen sprite text for debug output but I'll definitely write something up for bitmap fonts while I'm at it. I've also had luck in finding a few people who are also interested in mobile development here locally. I look forward to exchanging information with all two of the in the future ^_^;

The project is officially over next week and the end couldn't possibly come any sooner. I'm not too terribly excited for the end result, understandably. The game (if you can call it that at this point) suffers from a number of issues. Some of them could have been avoided early on and others are just the result of lack of experience. Looking forward to moving on!

So agenda for the next week:
Improve upon mobile app
Final presentation
Interview with that company
Try to stay out of group arguments

Doing really well on that last one so far ;)

Thursday, October 30, 2008

Camera and perspective

Great success! I finally figured out perspective in Android. Anybody needing help with camera setup in Android should consider using the static function gluPerspective in android.opengl.GLU rather than the GL10.glFrustum member function.

Today I'm working on setting up a camera class for android so that hopefully I can set up touchscreen and accelerometer based camera movement~! ^.^

Tuesday, October 28, 2008

Android Apps! Woo~!

So I haven't even had this G1 a week and I've written a matrix and vector math library and gotten input working in a simple app ^_^ OpenGL ES has its quirks but I plan to exploit the device's strengths rather than focusing on any inherent weaknesses. Before the end of the week I'm hoping to have texturing, touch screen, and threads down so that I can start working on a proof of concept for a game idea that I've got.

The final project has not changed significantly. Beta was last week and I'm officially over the final project experience. Rather than focusing on the train wreck that is quickly becoming my groups game I've decided to dedicate all of my leisure time to learning new things that could potentially be applied to Android or Java programming. It's no longer worth my time or sanity to contribute to a group that lacks leadership and direction. Hopefully the other guys aren't too proud of their small accomplishments because I'm certain that any potential employers won't be :\

I've got an interview lined up for next month and I'm eager to move on to a project in a true professional environment. It's been rea but it's time to take off the training wheels.

Friday, October 17, 2008

Beta monday

Getting ready for beta turn-in on Monday is slow going. I'm still not too happy with the group situation. Communication is still poor. Things have changed considerably since alpha turn in only a couple of weeks ago. The game is definitely more fun than previous and slowly but surely it's turning into an actual game and not so much a tech-demo. I'm not relaxing quite yet as the real work begins next week with gold right around the corner.

On a side note news of Sony's recent actions regarding LittleBigPlanet as well as future online services has successfully pushed me over the edge. I now officially dislike all of the three major console manufacturers. I never was a big fan of Microsoft. Nintendo fell from my good graces after I took a course on GBA development while simultaneously being disappointed with the poor quality of Wii titles. Now Sony, after cockblocking homebrew programmers left and right and adding "premium" themes to the mix, has managed to get into a political conundrum regarding the Qur'an. I'm not having it any longer. Effective immediately following graduation I plan to focus entirely on mobile device development, abandoning any idea of ever dealing with development on any home console platforms.

I used to find it dificult to imagine a world without console games. I see that day approaching faster now than ever. The demise of the video game industry as we know it brought about not by poor game titles or lack of consumer confidence, but by the fact that the makers of the systems consistently find ways to drive their loyal user base away.

Links:
http://www.gamesindustry.biz/articles/littlebigplanet-release-delayed-in-europe
http://ps3.qj.net/New-PSN-terms-of-use-Sony-can-sell-user-content-without-payment-to-user/pg/49/aid/125039