Last night, my daughter decided to lay down and watch a movie early, which meant I could get some extra time in to try to push my mage to 60. Just as I sit down, my wife calls from the other room, “Honey, I think someone is scamming me.”
We have had kind of a rough week. First off, someone exploited a hole in our outdated version of Zen-Cart, and sent a Paypal spoof e-mail to every single customer in the store. That tore up a good part of my weekend, trying to upgrade the store, and make sure everything was secure. Then, my mother in law went into the hospital. (She is out of surgery, and expected to come home today!)
So, my wife decided that with all the downtime in the store, and all that had been going on, that she would put a $5 coupon code for her store. $5 off your order, no matter how small. Of course the coupon is only usable once by each customer, but unlimited times otherwise. It turns out, someone decided to create 16 bogus accounts just to rip us off.
My wife had started to notice that she was getting some e-mail bounces, people creating accounts with bogus e-mail addresses. Then they started happening rapidly…. So, naturally, I look at the IP for one of the orders and then search for all orders from that IP. Hmm, 19 of them. But wait, the first 3 are starting in January, and all with the same account. Oddly, her first e-mail hadn’t bounced, so long ago.
It turns out she gave us her real name, e-mail address, physical address, etc. on her first couple of orders. The first thing I did was edit the PHP to block her IP and give her a “Go scam someone else” message. Then, I e-mailed her and told her she wasn’t welcome in our store until she was willing to pay for all of the things she had taken. Furthermore, I told her that I would be reporting to her ISP what happened (not that it will probably do any good). Here is her response.
I have no idea what you are talking about. I have paid for the kits from your shop.
Sure, except that you just e-mailed me from the exact same IP that you have been scamming us from, and now I have the last bit that I need to prove it. Sure enough, in the message headers, her IP proclaims her guilt.
As it turns out, you’re not anonymous, and I am still not level 60.
So, I have a couple of virtual servers at GoDaddy (this site is hosted on one of them), and my wife was complaining about how much spam she was getting. So, being the big spender that I am, I decided to add the Plesk Pack Deluxe, because it includes SpamAssassin (though an ancient version of it, like everything else on their servers). I could only manage to setup SpamAssassin globally, for the server, though you were supposed to be able to configure things for each user, so they could mark their mail as spam/not spam, and it would learn how to detect spam better using bayesian filtering. Without it, SpamAssassin is considerably less accurate.
Here is how the conversation went (I didn’t record it, or write it down word for word, so some parts are missing, but everything that is in here was said. ):
Basic Support: Hi, can I have your customer number, even though you just
punched it into the phone because we told you it would expedite your call?Me: ****** (come on, you didnt think I was going to tell you my customer
number did you)….(we will skip the rest of the verification process)
Basic Support: OK, how can we help you.
Me: I just added your Plesk Deluxe Package, and I am trying to get
SpamAssassin to be available at the user level. I have checked the boxes as
the server level that should allow it, but it is still disabled, so I can’t
turn it on.Basic Support: hmm. Let me check on that.
Basic Support: hmm, I am going to have to ask someone in advanced support
<hold>
Basic Support: OK, apparently you cant configure spamassassin at the user
level, but configuring it at the domain level should be fine.Me: No, you CAN configure it at the user level, there is an option in Plesk
to do it, its just disabled.Basic Support: OK, let me call Advanced Support back
<hold>
Basic Support: OK, I have talked to a couple of guys back there, and
apparently Plesk doesnt allow that. The icon is there, but you cant use it
because of our configuration.Me: It is basically useless to configure it only at the server level,
because Plesk forces you to train it at the user level, and they have to be
able to choose whether to delete their mail or tag it. Without being able
to train it, its going to be next to useless. Also, on the demo on the Plesk
website, it works just fine at the user level there, so its not a Plesk
issue.Basic Support: Well, hmm. Im trying to think…. hmm…. Let me walk over
and talk to them.
<hold>
Basic Support: Yeah, I guess its just because we have it on a virtual server
or something. They say its just not possible.Me: When you look at the information about the Plesk pack, it says “Your
Plesk control panel provides a configuration interface for spam rules,
server-wide or on a per-mailbox basis.” Look, they are feeding you full of
crap. They are just trying to get you off their back.Basic Support: Yeah, they are talking to me like I know all of the things
they do. This is just basic support.Me: Yeah, I can talk to them if you want, I probably DO know as much as they
do.Basic Support: Yeah, you should probably talk to them directly, let me see
if I can get someone on the line
<hold>Advanced Support: This is <some idiot>, how can I help you.
Me: Yeah, I am trying to get SpamAssassin to be enabled at the user level in
plesk.Advanced Support: Yeah, thats not really possible.
Me: Look, on the plesk demo site you can configure it at the user level, and
it works fine. Also, it says you can in your documentation, it just doesnt
say how. So, either you are lieing there, or lieing to me now.Advanced Support: Yeah, its not really possible due to our configuration.
Me: It is basically useless to configure it only at the server level,
because Plesk forces you to train it at the user level, and they have to be
able to choose whether to delete their mail or tag it. Without being able
to train it, its going to be next to useless.Advanced Support:<silence>
Me: OK, so even beyond that, its not even working at the server level.
Advanced Support: How do you know its not working?
Me: Well, SpamAssassin adds some header information to the e-mails it scans,
and there is nothing in the messages coming through the server.Advanced Support: (Skeptical Tone)Let me run a test.
<hold>
Advanced Support: I ran my test, and it looks like it wasnt running because
you have to turn on Spam filtering for each user.Me: I CANT! That is why I called in the first place! You told me its not possible.
Advanced Support: <walks me through how to turn it on for the user, which is
in a different place than every single other user level option>Me: <walks the support guy through configuring and training SpamAssassin for
each user>
Me: So, it appears that you CAN configure SpamAssassin for each user.Advanced Support: I apologise for not knowing about that particular feature
Me: I have to say, I am less than impressed by the support I’ve received.
Advanced Support: Well, I apologise about that, its not something that
usually comes up.<end support call>
In the end, I have to say, GoDaddy has some of the best server pricing in the market, but if I needed support on an even semi-regular basis, they just wouldnt cut it.
Anyone who happens to have a load of cash, and wants to buy me something for Christmas, take a look at the Skycar.
I was browsing through the blogs I track with SharpReader, and I came across this on Chris’ Blog.
I don’t have to deal with this as much as some I’m sure, but its a fun little guide on how to deal with your PM.
Well, I can’t say I feel too sorry for the guy. I spend a good bit of my time trying to keep my server spam free (or at least I used to, now i just forward mail for all of my accounts to gmail, and let them figure it out). So, maybe you will be getting a little bit less spam now.
I doubt it.
To wrap up the day, the 5 “presenters” sat at the front of the room and allowed us to ask some questions (both stupid and not as stupid) to which they would have to try to provide answers to without looking stupid.
Rory graced us with his presence, and then proceeded to interrupt the introductions with his question. Once his question was answered, he promptly packed his bags and walked out. All the pressure of being famous I guess.
Most of the questions seemed to revolve around how to make money from game development, and most of the answers seemed to be “good luck, loser”. The panel did a good job of explaining that the game-dev market is very hard to break in to, and its quite difficult to publish your own games these days without a substantial chunk of cash. It was mentioned that the shareware model is still quite viable though, and can bring in a little bit of cash now and then.
The best thing is that there is one other person that seems to play Guild Wars. I think he may in fact be the only person that I have met face to face that plays this game. What a shame.
This session was a fun way to end the day.
Andy is a very interesting individual. He recently quit his job at Microsoft, and has decided to live on savings for a year while he tries to break into the gaming industry. Furthermore, if this doesn’t work out, he seems fairly confident that he can get re-hired by Microsoft. He must be good.
I was late to the after-lunch session yet again, due to the a bit of slow restaurant service. When I walked in Andy was knee deep in some stuff that was clearly over my head, and I was barely grasping at some of the concepts. I was relieved only by the fact that when he asked questions, everyone else was silent too.
Most of the presentation was getting down and dirty with HLSL. It was indeed impressive how little HLSL code could be written to insert lights, textures, etc into shader that could then be used to affect a scene. Andy stepped through re-creating the fixed function pipeline functionality of the graphics card (at least I think so, he kept saying things and then appending “…of course” onto the statement, making me feel a bit ignorant). In the end, he made it look rather simple, though I don’t think I could go and do it again on my own.
While the subject was a bit over my head, the presentation was excellent and enjoyable. Off to the Game Dev Panel.
This talk was one I was really looking forward to, as I find AI in games really fascinating. Chris certainly did not disappoint in another concept-based talk.
Much of the presentation focused on the different components of AI (Fear, Hunger, Morale, Loyalty, Greed, etc) and how they are created in reaction to stimuli around the creature. He explained how many more components may be thrown into AI to make it more interesting, such as contention between races, and how to calculate certain reactions based on different AI characteristics.
Chris has authored his own ASCII based RPG, Heroic Adventure using VB.NET. After some bad luck with his intended demo (which he warned us was not working as intended before unleashing it on us), he demonstrated some AI that was worked into his own game (after dying several times without leaving the first room).
This talk led to lunch and made for a very informative and fun morning.
I arrived promptly at 8:55 for this first Sunday session. There were now 3 of us in the room, and one of us was the presenter. Well, that’s what you get for being the first speaker after the “Nerd Crawl” that surely kept people out way later than the “I want to be up for Jason’s talk at 9:00 tomorrow” time. By the time we started the talk 5 minutes late, there were probably half a dozen people in the room. Lucky for me, I was one of the 2 that didn’t have David Weller’s book “Beginning .NET game programming in VB.NET”, so I received one of the 2 copies that were to be given away for that session.
This was probably my favorite talk. Jason has taken a unique approach to keeping separate components of his game informed of what other components are doing by using a central message processor. It was revealed that he hates using .NET events, and prefers his self-rolled message processing approach.
This approach allows each component to send messages to the message processor, which will in turn send them to all components that have subscribed to that particular type of message. By using this de-coupled architecture, it would be very easy to add additional components into the game, and allow them to hear the messages of the other components, without touching a single line of code in any of the other components. None of the components need to know what other components may be listening to its messages.
Jason concluded by showing us his own creation, tanks 0.0.3 very beta. He also talked briefly about hooking into a 3rd party physics engine to provide the physics for his project, and about using baretail for logging.
I think this was my favorite talk due to my general noobishness with DirectX, and the focus on concepts rather than specific examples. A great way to start the morning.
I of course didn’t know what to expect in this talk, since there was absolutely no description given for the session, but I knew there would always be good times when Rory is presenting.
Inform is a tool that was made to do one thing, and one thing only. It’s a language to make text adventure games. If you have ever played one of these games, then you know how ridiculous they can sound at times, and that is when the developer is trying to be serious. We, of course, weren’t.
We created a simple text adventure game that consisted of having to retrieve a golden fish without being attacked by the “magical living golden lute monster”. We needed this fish, of course, to give to Rory gave out his “swag” in the form of autographed Tazo Tea Kits which he hurled across the room as a reward for asking good questions.
Well. Hmm…
It appears to be very easy to script actions in tribes.
Yep. This is one of those “If you don’t have anything nice to say…” times…
Maybe you can ask George…
We were a few minutes late coming back from lunch, so I missed the first few minutes of this talk. Naturally I didn’t know what to expect here. As we ate lunch, there was quite a lot of speculation as to what type of talk this may be, and in fact what color the balls may be.
Jason’s talk mostly focused on physics and collision detection. His application consisted of a surface with some pool/striped balls that would drop from the sky at the whim of the user, and as they collided, cause a chain reaction which would send balls in all directions. Jason pointed out some of the roadblocks he had run into when trying to do collision detection in 3 dimensions, and how using a single axis partitioning scheme would reduce the collision detection load exponentially.
At one point, Jason started playing with the window with his mouse (as probably most geeks do…. we must have some sort of interaction with the computer at all times.) , and they noticed that the balls seems to react to window movements. Very, very cool. Well, it turns out this is a bug. the longer you hold down the mouse, the more the balls gain downward force (due to gravity) and the more they “bounce” upward when you let go. I blame Windows, for not processing messages while dragging a window.
All in all this was a very cool talk. The demo was very flashy, and demonstrated the point well.
So, a bit bewildered from the first session, I make my way back to the lecture hall for Chris’s talk. I’m not really sure what to expect here, 2D gaming is pretty broad.
He starts out showing a demo of exactly what he has done, which is the main focus of his talk. Chris, it turns out, has written a program called Warplanner that allows multiple people to play this game with each other over the net.
Chris had a demo of some basic 2D DirectX work using DirectDraw. As Jason pointed out, this is a deprecated namespace, but the demo was still worthwhile. The next item on his agenda was how his network play worked. He made the mistake of asking Jason about some terminology for a “lounge” in DirectPlay to which he got a “I don’t know, I don’t use deprecated namespaces” answer. Ouch, heckled again.
Throughout the presentation Chris showed a really slick replay feature that would allow you to go back to any point in the game, and replay some or all of the moves. I have to say watching it was pretty impressive.
All in all this was a good talk, and made even better by Chris’ enthusiasm for his project.
OK, so here we are in our first session of code camp. Fresh from *not* winning the X-Box (if they could have told me I wouldn’t win before I got there, I could have slept another few minutes…), I knew we were surely not going to hear a standard Microsoft marketing presentation, because they told us specifically in the “Welcome to Code Camp” that we would not be hearing any of this at this Non-Microsoft-sponsored-but-payed-for-by-Microsoft-non-Microsoft-code-camp event.
Hmm, it seems that our friend David here missed that part. A good part of his talk was very marketingy (if that’s not a word, then it should be, because there is not a good word to describe “something that is marketing like”). One of the “students” had to call him on it, and get him rolling through his slides.
The major gem in this talk was his demo of PIX. If you don’t know what it is, use Google. I’m too lazy to do the search for you and provide a link to some useful material. I will, however, explain it in my own words. PIX is kind of like a DirectX debugger. You can record all of the DirectX information about an entire length of a scene, a single frame, etc. The really cool part is what you can do with that information. For each frame, you can step through each of the DirectX API calls, and see what is happening on the screen. You can watch as it draws the background, textures it, and then proceeds to draw each layer on top of it. Essentially you get to step through the minute steps of rendering a single frame and see whats going on in the guts of DirectX. Man, it’s like PIX just oozes geekiness…
The next best thing about this talk was that he told us that he wrote a book……45 times….
It seems like every time I turn around Google has come out with some new cool feature. Tonight my wife was going to a friend’s house (George, one of the other 4 guys) and got lost. Not a big surprise. Anyhow, I whip out the google maps to figure out where she is, and notice a “hybrid” button in addition to the original “Map” and “Satellite” buttons. This has to be one of the coolest things i have ever seen….
This is a hybrid map of the vague area in which George lives. I picked this location because thats where I happened to stop before I got her to the right place….. Sorry George, hope noone starts stalking you…..
You may want to toggle between the Satellite and Hybrid buttons to see the coolness…

I really don’t think there’s much more I can say…
A Japanese robot that can not only walk, but struts…
More info and links to other videos…
Link via The Raw Feed
[powered by WordPress.]
18 queries. 0.244 seconds