| 1001010.com |
one zero zero one zero one zero dot com |
/*itoa((int)'J',szBuffer,2);*/
If you have a manager class, and it has multiple worker threads - do your self a favor and ask someone to taser you before adding any additional critical sections beyond the first critical section.
I have seen the 23rd circle of hell, and it is a deadlock
most of the time it is easy to avoid, but then you get cocky & make mistakes.
Oh, this CS will protect this resource, and that CS will protect that resource. But then the thinkable happens
1 Someone else maintains the code and switches the use of the CS in one place
2 more and more code needs access to both resources simultaneously and you get an overlap effect - where you need something only a little.
In function A
Lock1
Do1
Lock2
Do2
Unlock2
Unlock1
In function B
Lock2
Do2
Lock1
Do1
Unlock1
Unlock2
well - this doesn't work. People forget, mix up the order and suddenly there is a chink in the armor of thread safety.
So next time ask your self: taser in the groin or multiple Critical Sections?
Yes, Taser please. The groin won't hurt as much.
I just started
http://mysql-code.com/wp/ as my own version of http://ora-code.com
Why? well simply, when my server apps send off oracle error emails to the IT guys, I automatically format it with a link to ora-code.com so that they can get some info about the error code. Politics aside, it helped the junior DBAs and IT guys to better understand the problem and fix the errors faster.
Instead of hours, it took moments because they could just click on a link and it told them everything they needed to know about the problem.
Now I have a site for my MySQL server project. Now I can send them auto-formated error emails with links to that site - and if I don't have a page set up - I'll add it.
It should be educational for me.
Do you see this?
https://shop.mysql.com/enterprise/?rz=s2
To me, in the high availability and high demand environment that I work in, that single server license costs $5k
That's for ONE server. Sure it's not the wonky per-cpu model of Oracle, but it's still a cost. I'll probably need several on the project I'm working on so it's not just a one time fee - it's yearly. Combine that with the new hardware costs and the hiring of new DBA staff with MySQL experience to shadow our Oracle DBAs (or retraining) - MySQL is not fracking free! It's downright expensive.
I am soooo tired of people telling me that MySQL is cheaper than Oracle. Just because there's a free version for everyone to play with, that doesn't mean that your going to run the free version in a production environment.
I can already hear the whining "But you don't have to pay for it, it's open source man - it's like free love and stuff"
PUT DOWN THE WEED AND LISTEN. YES I FRACKING DO HAVE TO PAY FOR IT YOU FRACKING HIPPIE!
The free version doesn't come with support. You get what you pay for. We live and work in a capitalist marketplace where if you like something, you buy it to encourage the production of similar products. It's sometimes called voting with your wallet.
If the fecal matter hits the spinning blades of doom - I want someone on the phone ASAP. I've got somewhere over 1k employees using my software to provide support to some 9 million customers. Downtime is NOT an option. There is no way in hell I'm going to tell them - "Ooops, sorry, my bad - I got the free version and even if I buy it now, it will take a few buisness days before support starts."
Yea, that's a big I don't think so. I'd like to avoid being skinned alive if I can help it.
I just needed to vent.
For the record, I consider the Oracle tnsnames.ora to be just a file so I feel nothing for it per se. It's just a DNS file for mapping Oracle Server names to IP addresses.
However, mentioning it invokes images of suffering and woe.
With all the Oracle servers my company runs, it's constantly out of date. To make things more exciting, the DBAs don't like the names that we (in development) give the DBs so they insist on giving it there own names. And then for added excitment we have separate DBs running in different countries - each with their own config.
So whenever I have an issue with connecting to a certain DB, I ask the DBAs for the latest settings. And as usual, I get several new conflicting tnsnames.ora entries from the DBAs and/or IT people. The only thing you can guarantee is that most of them won't work. The joy of peer based personal sneaker-net backups.
This problem is easily solvable with some simple source control.
But that will require large quantities of feces hitting a giant spinning blade of doom before that ever happens.
Thus my woe. I'm not a big enough pile of shit to effect change ;-)
I now have an extra 4 gigs free after removing my spam trap wiki!
I feel so much cleaner ;-)
Besides all the pr0n links, the interesting part was the groups of links that were hidden in 1px wide DIV tags. These entries never showed up when looking at the page. It was as if those responsible for adding the entries were trying to up their Google search result ratings by having more sites "link to" their site.... even if those sites never display them.
Here's how it works..
Today I went to my Dreamhost control panel & it showed that I was using 1% of my 461.8GB of disk space. 1%? I've never noticed it that high before. On closer inspection that's 4.9 gig!? The last time I checked it was less than 1/2 gig.
Digging around shows that the DB used for my wiki was taking 4 GB.
My Wiki? I have a wiki?
Ohh, now I remember.
Over a year (or two?) ago I installed a wiki on this site because - well, it was easy enough to. Dreamhost has a bunch of one-click installs & all I had to do was click a button. I played around with the wiki and figured out how things worked - and then ignored it.
While I was busy with our new baby Seamus and work, automated spam bots filled my little test wiki with 4 gigs of junk!
I'm now going to go lock the wiki and find out what exactly is in there. I'll be impressed if it's all text. That's a lot of spam bot activity!
UPDATE
All Main Pages on the wiki
It's an odd assortment to say the least
Last week wasn't fun, my producer was out on an extended vacation durring the 4th of July holliday. Everything was fine at first - but I was quickly reminded how much meta filtering he does for me.
A coworker raised an excelent question: "Why not take your vacation when HE takes his vacation?". Unfortunatly my producer used up most of is vacation so he won't be leaving anytime soon.
Bummer.
But what if I take a virtual vacation? (we all know by now that virtual==fake, right?)
I'll still come in to the office and work - but I'll set my IM to "Appear offline" and set up my mail client to send an out-of-office email to every one!
I'll get a vacation from the distractions! Sweet!
This morning I was waiting around the house for the delivery guy (9am - 11am window) and I figgured I would update my resume. No - I'm not looking for a job, but I'm still getting calls from recruters and their junk in my inbox - which needs to stop. Well that and it was bugging me to think that I still has Nexa as a "current" position when I have moved on to a more appropriate position.
If you look at my resume page, you'll see bold letters at the top that read "I'm off the market"
If you look at the word doc, I changed the listed email to my gmail account and added the BOLD TEXT WITH THE BRIGHT YELLOW BACKGROUND
"Availability OFF THE MARKET AND UNAVAILABLE AT THIS TIME this resume is here for historical purposes"
And then TWO (2) hours later, I get this jem of humor in my gmail inbox ;-)
Jason,
I assume you are currently happy at employer x as your online resume indicates I won't be a pest. I am working on an assignment in the LA area for a senior online games coder for a great developer working on an original next gen title.
If your situation changes for any reason and you want to know your options please consider dropping me a line :)
Xxxx Xxxxxxx
Vice President/Executive Recruiter
TSC Management Services Group, Inc.
NNN.NNN.NNNN ext. NN, XXXXX@XXXXXXXXX.XXX
THAT WAS TWO HOURS LATER?! WTF.
I'm honored that my skills are apparently so valuable - but let me be clear: Unless you can offer me 200K/yr to sit around an pick my nose - with a 500K restriction free signing bonus - I AM NOT INTERESTED.
I just want to know: How the frack did this guy find my resume that quickly? Is Google that powerfull or do they have other tools?
And no - I do not want to work on those types of applications at this time. ;-)
It's been like 3 years since I got my P4 3.06Ghz and I'm a little confused.
I thought that there would be 6Ghz CPUs out on the market by now.
What was that thing about speeds allegedly doubling every 2 years?
The fastest thing I can get from dell these days is a P4 3.8Ghz ?
Did I miss a memo? Since when is a 25% increase a "doubling"?
Could AMD's PR rating/propaganda be right? Maybe it's not about the the Hertz? I'm so confused.
::sigh::
The real problem is that after years of buying a new twice as fast PC every few years, I've been conditioned to want a new (twice as fast) PC every few years.
Right now it's just not worth it. My 3.06Ghz is just fine. And I think that weirds me out more than anything else.
But that wont stop me from looking for a faster video card ;-)
How many times have you heard that "you must initialize static class members in the .cpp file"?
When my team leader (Ray) saw my previous post he immediately said, "well we have put the initialization in the .cpp file".
I smirked.
That near pavlovian response is somehow ingrained in the c++ programmer's collective subconscious. I can see how, most of us were taught that the class and function definitions go into the .h file while the implementation goes in the .cpp file. And the initializing of static member would definitely fall into the category of initialization.
Have you ever even tried to do it in the .h?
Never? really? that doesn't surprise me. But did you know that it's done all over the place in the ATL?
Think about it - the ATL resides almost entirely in .h files. The exception being WinMain/DllMain exports and some calloc/realloc/free wrappers.
And there are static class members in there ...
They're initialized in the .h file ...
And they compile ...
[insert spooky Halloween music here]
Note to self: the format of static template class member is
template<class T> int Test<T>::s_counter = 0;
And don't I forget it!
(what I originally forgot was the <T> - D'oH!)
// testtemplate.cpp : Defines the entry point for the console application.
#include "stdafx.h"
template <class T>
class Test
{
public:
static int s_counter;
Test()
{
s_counter++;
}
~Test()
{
s_counter--;
}
static int getInstanceCount()
{
return s_counter;
}
};
template<class T> int Test<T>::s_counter = 0;
int main(int argc, char* argv[])
{
Test<long> a,b,c,d,e,f,g[3];
printf("InstanceCount: %d\n", Test<long>::getInstanceCount());
return 0;
}
I need to find a good book on dev studio scripting.
Maybe I haven't thought this all through yet, but what I think I want is something that will automatically set my "away" status text in messenger based upon events in DevStudio.
But why would you need that?
Well, just as when your status is "away" when the screen saver starts - it would nice to do the same when a break point hits or set it to "busy" when your typing in the editor.
In my scenario as soon as a break point was hit - the status would change to "Can't talk now - I'm in the debugger baby!!"
I know that nearly everything is scripted in DevStudio, there's got to be a way to monitor user / debugger events. I would hate to hack together some solution where I monitor the child processes of MSDEV.EXE and install a DirectInput global keyboard hook - and match up keyboard input to the active window.
It took me a while - I got lost again.
{mockingly shakes fist} Damn you UC regents for moving streets around so that my car's GPS gets overly confused!
I was allowed in after being buzzed in through two separate doors. Since I signed an NDA & don't want to do another full cavity search I can't and don't really want to say anything. But I could possibly describe the office as what would happen if all the stuff from every trade show Blizzard ever went to, around the world, exploded in the old GameSpy Irvine office.
I seem to remember an incident or two where various game developers set the address of their master server to a specific IP address, rather than a DNS name.
Can you guess what happened to those games when that server was moved to a different IP?
DING DING DING DING DING DING! That's right - it all broke. Vana - tell our lucky player what s/he's won!
Well, if you're lucky (there are more than 100 servers, the game company is still in business, there is at least one person still working activly on the codebase, and management is willing to QA, support and publish it) they might release a patch. But only if you're lucky ;-)
But if you're unlucky - well... say hello to a new friend - the ulcer.
OK, I get it - you copied a function that did 75% of what you want to accomplish and updated it to do your evil bidding.
But why then did you keep the original function comment???
it would be as if you had the code....
// Sometimes we need have someone else multiply radius by two
bool getDiameterFromRadius(float radius, double & rDiameter) { ... }
And somebody copied the function to do something else....
// Sometimes we need have someone else multiply radius by two
bool getCircumferenceFromRadius(float radius, double & rCircumference) { ... }
AND LEFT THE SAME COMMENT IN PLACE.
.ugh.