This is mostly a placeholder post at the moment while I figure out how I want to introduce this epigram. Take heed adventurers, the world is full of treasure. It is everywhere; overflowing. Encroaching on our very lives. Take up arms and fight this treasure. Push it back to the end edge. And take the monsters home as pets. Because reasons!
Galina Busigin, I met her a long time ago playing a fun, addicting multiplayer game called Subspace (later renamed Continuum), though most of us tended to call it SS for short. I want to say it was around 2002. The time frame is hard to judge. Even back then, in a game where we blow each other up, sometimes coordinated, she was outgoing and friendly. I cannot recall the exact reason we hit it off as friends, but we did, and exchanged handles for what would be our most common form of saying hi, AIM.
Here is where I get all tangenty. You’ll have to bear with me. I don’t really have an order here, just a stream of consciousness. Typos and all.
We had a long lapse of communication. I cannot remember the exact time frame, but I was shocked to see that familiar name pop up on aim. I always tried to leave aim up and running, just to try and catch people I have not seen in awhile. It was a happy surprise to find her again. She was coming back home after being gone for awhile. For the longest time, I had thought of her as Lina Lina. For forever, as far as I can remember. It does not get unstuck.
(7:58:19 PM): rarr!
(7:58:30 PM): roar
(7:58:44 PM): =)
(7:58:49 PM): how’s lina lina?
(7:58:56 PM): I don’t know why i do that
(7:59:04 PM): But I always think of your name that way!
(7:59:42 PM): hehe, I like it
You may remember my adventure of building a new pc. I had never put together the entire pc completely solo (I shot first), so it was quite the adventure. Awhile ago (actually quite awhile ago now, I am terrible at writing promptly) I started to have random problems, that took a lot of time to investigate, so I write this hoping to shed some light to others.
What I experienced, I believe, started as a few hard crashes. These did not appear to be blue screens. Or if they were, I did not see any sign of them as such. It was a quick hard break of all operations. The screen did not just freeze, but pixels cascaded from rainbow to black. Sound went all dial-up modem dial tone, briefly. It did not persist from what I remember (I am not positive on this detail, I may have had to shut the computer off myself).
This only happened a couple times, so I did not think much of it. But suddenly, shit got real. Programs would randomly crash. Browser tabs would uh oh and break. I started seeing blue screen after blue screen. At first, it seemed like I needed to be doing something (playing a game, watching videos), and then it just got more and more random. No discernible pattern. This time I could see that they were there, but usually not long enough to actually see the details. The PC would immediately restart. Windows like to place these bluescreens in minidump files. As of Windows 7, afaict, it does not come with a native tool to view these. So I used a program called BlueScreenViewer to take a peek. It looks to be lightweight and portable, and gives as much info as it can (whether or not that information is understandable or useful is another thing).
As you can see, the important thing from here is what the actual error message was, and what the filename that appears ti cause it. Interestingly enough, I am ran the program to grab a screen from a different PC, and this PC shows the filename for every file in the stack, where the affected PC only showed the ones in red that were allegedly the file that had the error. The errors I was receiving were:
And largely caused by ntoskrnl.exe, but sometimes some other system processes. This had all the symptoms of omgwtfbbq. From my research, these errors can be caused by any number of things (in no particular order):
- Specific drivers could be corrupt
- Memory could be going bad
- Something could be overheating (CPU, GPU, etc)
- Hard drive could be going bad and not reading correctly
- Power supply not providing consistent power
- Other hardware failure (CPU, GPU)
So, in other words, pretty much everything that could possibly be a problem, could possibly be a problem. Terrific.
I would first like to point out that there will be MASSIVE SPOILERS in what comes to follow. I will be detailing my thoughts and experience with this series. I want to feel out what made this game so good, to help explain why the ending fails so horribly for me.
For me, Bioware created this amazing, compelling, detailed, and expansive universe in Mass Effect. One that, in my opinion, rivals any created to date. The attention to detail was frankly stunning. Even planet had its nuances described in its lore, if you so chose to read them. While I did not read them all, I appreciate the time and care that must have took. They put care into making subtle references to decisions you made in the previous games, and sometimes not so subtle references. While never perfect, it blended well and really immersed me into the universe.
The games themselves challenged you to make decisions. You could certainly ignore them, arbitrarily chose them, or carefully pick them and experiences the consequences great and small. There were times you had to chose the life or death fate of a squad mate and deal with the remorse. There were times when you had to fight morally and ethically about the future and direction of an entire race. You had to wrestle with centuries old conflicts and help work out a resolution, good or bad, or rather paragon or renegade. Through it all, though, my Shepard was stalwart and uncompromising. She (femshep for the win) was a legend, not because she chose to be, but because that was what was needed. She fought knowing it needed to be done, that she could not give up, not just for the sake of herself, but for the sake of everyone. She would hold the line.
And then we get to the ending of Mass Effect 3. I do not even know where to start. Throughout the game, it had been building to this final moment. The moment to stop the Reapers from destroying all space faring life in the galaxy, centering, for the moment, on Earth. Shepard had gathered all the races in the galaxy together for this one push to retake Earth, and reach the Citadel to complete this final weapon. The galaxy is on the line. Everyone knows this. Everyone is prepared for the worst. Shepard’s core team has been with her through thick and thin. And in those final moments, the most uncharacteristic (for this series) things happen.
I am always on the lookout, not necessarily the search, for good food that I can find time to make. Even though I do not feel like I am super busy, time just seems to evaporate most days. During one adventure to the grocery store, I was inspired to buy some chicken breasts. I’m not sure why exactly. I usually walk right by that aisle as I prepare for what is sure to be a battle at the deli section (there are so many choices, strategy must be employed). Anyway, I picked them up, and stuck them in the freezer for X days (X was long enough that I forgot what X is, besides a number of course).
Eventually I determined I had waited until fullness and it was time to cook something tasty. I came across an extremely simple recipe for grilled chicken. There are only two ingredients: chicken breasts and italian dressing. I thought, surely this is something I can do. All you have to do is:
Rinse chicken and place in ziploc bag. Cover with Italian dressing and marinate in the refrigerator for at least 4 hours or overnight. Preheat grill for high heat. Lightly oil the grate, then grill for 6-8 mins per side.
It says to use high heat, but I found that I was actually just searing them and then creating a ton of smoke (if only I had glowies it would have been fun), so I used medium heat instead and it worked waaaaaaaay better. I like to cut the chicken breasts up into strips before marinating so they can soak up a little more. I’ve tried both regular italian dressing, and zesty, and both are good. The flavor is not very strong, but keeps them nice and moist.
Now, I just couldn’t leave it with only having chicken. That is not much of a meal. I had, by chance, also picked up a very tiny rice cooker. It cooks about 1-1.5 cups of rice into 2-3 cups of rice. Really perfect for a small meal. Has a keep it warm setting when done so it makes it really easy so I do not have to worry about, omgomgomg don’t burn the rice, etc. So I was on the hunt for another recipe for some simple rice I can make. I found this really simple lemon rice recipe.
1 cup water
1 cup chicken broth
2 tablespoons lemon juice , freshly squeezed
2 teaspoons butter or 2 teaspoons margarine
1 cup uncooked rice , long grain
1/4 teaspoon dried basil
1/8-1/4 teaspoon grated lemon, zest of
1 1/4 teaspoons lemon pepper seasoning
I tend the fudge the numbers a bit when I actually make it (I’m pretty sure this is genetic). I do not think I use as much butter. I use about 1/2 tablespoon less lemon juice. And I through in a lot more herbs than just basil. I like to put int some oregano, rosemary, dill weed, and sage. Does it make a difference? Iuno, but it seems fun. I like the chicken broth for water, at least, I am assuming I use chicken broth in place of water? I mean, it matches up to what the rice cooker needs for a water level, so it is not like I add extra water. This is why I have a cooker, I’d be way confused otherwise. Way.
Combine all ingredients EXCEPT lemonpepper in saucepan.
Bring to a boil, then reduce heat.
Cover pot and allow to simmer slowly for 20 minutes, or until liquid is absorbed.
Sprinkle with lemonpepper before serving.
I have a little bit less steps, since I let the rice cooker do the work, but it is essentially the same. After that, I followed a bit of advice from a cool person I know. Ackley is on this raw foods diet. It seems to have done wonders for her, with lots of pictures to prove it. It is basically an attempt to eat less, cooked and processed food. So I decided to go with some fresh-ish carrots and broccoli with some ranch dip (I need dip for those, for cereals). Threw in half an apple, mostly because I only had one and wanted an apple for the next day as well so I compromised. Worked out well since this ended up being a lot of food.
The image is only half the rice and grilled chicken that I prepared. It seemed like enough for me. So this may very well work out was as a recipe for two. I don’t have two, so I will have to settle for two days of meals. I got to test out my bento box I got awhile ago. It mostly fit all snuggly inside. I had to leave the apple out, but worked like a charm at work. Now I have something tasty and unique to take to lunch. Hurray!
It ’twas a dark and stormy night. I had just made the journey home from work when I noticed something out of place near my front door. There were footprints. Lots of footprints. I carefully opened my door and peered inside. Lo and behold, there was a surpise waiting for me; a mountain of boxes!
That shape shifted into a tower of boxes!
This looks like a job for scarf and goggles!
I’ve been duped. It’s a trap!
It’s morphin’ time.
You might be wondering what the hell you just saw. Well, that sil(ly) collage of trickery is only to prepare you for the event to come. I needed to carefully and cautiously consider the task at hand. I needed to be warey of black-magic-shape-shiftery. I needed to heroically provide order and justice! I needed to kick butt against nefarious ne’er do wells (as you may see later). What you saw is the beginning of a new computer adventure. This is the first computer I have built in a very long time. It is actually the first one I have placed every part and screwed every, uh, screw. And it showed. Building a computer may be a lot like grownup legos, but you will want to be relatively informed about what you plug in, where, when, and how. Welcome to my adventure.
During my early levels of computer scienceyness, I happened upon a quest that lead me to take AP Computer Science from Biga. Biga is unconventional. Your grade was a cloud, until you got the answers right, or were properly able to convey your understanding. Yes, you could actually present the wrong answer to the question at hand but demonstrate your understanding of the material and be fine. It was fun. Naturally, some parents were not pleased with this methodology of teaching. Somehow they came to the conclusion that the lack of a grade somehow meant the XP was poor. Little did they know.
I had eighth hour APCS with five other friends. It was a small group, which meant it was very focused. I remember hand waving on the whiteboard every sort using a dozen or so magnets with numbers on them, and creating a sweet Roman numeral fractional calculator. It was my introduction to C++ as a language, which, to date is still my favorite language to program in. I got the opportunity to come back and talk to a class about my experiences as a CS major. It just so happened that Biga was getting rid of the text book I had learned from as they were moving to Java *shakes fist*, so I totally picked that up!1.
I am often reminded, at work, of one of the
more memorable sections, okay, the only section of the book I remember. It had a number of programming rules. One is particular has stuck with me to this day, though I often forget which number it is. Lucky for me I have this book to tell me things. Book, tell me what the fifth rule of programming is. Book? Damnit book.
Never be afraid to chuck it all and start over, especially at the design stage. If your organization is a mess, patching it generally will produce a patched-up mess, at best.
Rule number five is a concept that people have a hard time following through with. After all, once you have done all that work, you can’t just really scrap it all, can you? It’s, well, your precious. And you don’t want to just go chuck it into lava. If Minecraft has taught us anything, it’s there’s no coming back from lava. But sadly, the precious is created from evil, and <bleep!?> gotta go. There becomes a point where you are dealing with such a poorly designed program flow, that trying to maintain, improve, or even use it is such a time sink that you are literally throwing time away, into lava. Twice.
Let me tell you about a friend of mine. Her name was Elise, which happens to be a long standing favorite name of mine, but I knew her as Jayyde. She had an endearing personality. Her laugh was infectious. It was honest and earnest. You couldn’t help but feel welcome and return the laughter. I may have trouble remembering its sound, but never how warm it felt to hear it.
I’ll never forget the first time I got to hear her voice. I had returned to dabble in one of my favorite games, City of Heroes. I had been welcomed with open arms back to my old SG. They have always been very accepting over the years of my off and on returns. They had come to start using vent to more easily talk about what was going on and to just have fun. We were doing a respec trial for hero side and were fighting Sky Raiders I believe. They had convinced me for the first time to go on vent and it was a riot. It was like a family of friends, full of laughter. I couldn’t imagine a more welcoming experience. It was really the first moment that my friends of Adversity really became a family.
She was an amazing gamer. An addicted collector of badges and shiny things. She’d never hesitate to help you out in game. Oh sure, you could pull her arm by tempting her with shiny badges. But you knew she’d help you if she could. The badges just made it more fun. You’d be hard pressed to find another who could pick up a class as well as her. She could tank, blast, defend, scrap, control, and perhaps best of all, order robots to blast us to bits like a legend. There really was not a class she could not play to its fullest.
I remember when she would recant the latest episodes of Avatar the Last Airbender on vent. She held it in such high regard that I eventually had no choice but to check it out. It became out of my favorite shows to date. The humor and characters fit her personality so well. It will always remind me of her.
She was a selfless hero. Was not afraid to tell you when you were being stupid, but would never belittle you for it. She was witty and intelligent. It made her sense of humor so quick and sharp. She’d pick up and roll with my silly humor and would welcome it and make it her own.
Elise Rene Vallade, born Born October 27, 1979, suddenly, of natural causes passed away on September 27, 2011. It was the same day as my birthday. I’ll never forget her for as long as I live. I’ll always regret that I missed the opportunities to meet her in person at the chances I had. But I will always cherish the good times we had. Bananarama to you Jayyde. Rest in peace. It won’t be the same without you, but we know you are up there making sure to clear out the baddies for us and finding all the glowies until we reach your level. We all love and miss you.
Introductions Are In Order
Sometimes at work I have the need to get distracted. You can only work on the some programs so much before you just want to tear it to little bits and start it over from scratch (programming rule #4). So in order to combat this impulse I find little side programs I can create that I can somewhat realistically say is work related. That’s my story and I’m sticking to it! This one involves an experiment in the wonderful language of Python. It’s a fun language, in my opinion. Very powerful and flexible. It takes a little bit of getting used to, but it’s my scripting language of choice. But watch out, it’s pooooiisssoonnous.
We were using Apache Solr on a project (which I lurve) but had some constraints adjusting the log level. We’d typically see a gig or so a day of log traffic that we really didn’t need. Solr uses SLF4J logging. It’s a handy packing that abstracts the logging calls, and you instead provide another library that has the actual implementation. AFAIK there is only JDK and Log4j implementations, but I haven’t really looked. By default, the logging library provided is JDK which is all well and good. JDK logging relies on the container to control what is being logged and where. The problem was, we use Weblogic Not that I have a whole lot against Weblogic, but in order to hook into its logging mechanism, the implementation needs to extend the commons logging API that Weblogic provides. We could have gone Log4j, but didn’t really have the bandwidth to spare. Or more acurately, since the project was being transitioned off, we didn’t have the ability to make code changes.
Enter the python (it’s like a baby dragon or something). Solr comes with a very nice logging console where, at runtime, you can tweak log levels. It only affects JDK logging (conveniently) and gets reset with a server bounce (which happens regularly). So I came up with the program concept to use a script set these levels somehow. I took a look at the server, and lo and behold (for fun go look up the definition of lo) there was a python staring right at me. So I told my co-workers to move slowly, they’re not poisonous, but can constrict you to death with powerful squeezes. After a few turns, and a lucky critical, we took care of the python. I returned to my search and found that the server had python installed and available for use. I had my language of choice and started looking at what I could do. The result? A pretty nifty command line utility that can submit a Web form with parameters of your own design. It’s so good, it has almost completely overflowed the good and rolled over to evil. Luckily we use unsigned values here. Take that evil!
A long time ago, in a galaxy far far away … the datasources were under attack by the visitors across the 8th dimension. Thanks to our plucky hero, Buckaroo Banzai, we were able to advert total disaster at the hands of Zinglon and his endless level of Beer … I mean what?
In reference to my earlier blog about Weblogic datasources (check it out, it is made of win) I have a short blurb that Weblogic’s implementation seems incomplete. Well, it still is (it still does not appear to correctly identify the the deployed application nor module in that one error message), but as of 10.3.2 there is a database flag that quite succinctly solves the problem.
I can’t quite find the documentation at the moment. I imagine it is on Metalink. My system admin found this handy startup flag. Add the argument to the server start arguments for each managed server (adding it to just one seemed to work okay; I didn’t really try to break it but I soooo should).
That’s all there is to it. Attempting to access the datasource returns a nice error message stating remote access is disabled. Seems easy. Almost too easy. So easy that they should make it a freaking setting on the datasource or managed server. But I’m not bitter.
Future topic along these lines, locking down the JNDI tree in general (cause it needs it, unless you like someone binding a few thousand values to your tree). By the way, if you can guess all the references in paragraph one, you get a cookie. No foolin’.