Some problems you just can't search on. Here are some I wish were more searchable and this blog is my attempt to make that happen.
Tuesday, July 01, 2014
Why do I have to wait for my computer to turn on? Can't it figure out when I need to use it?
We also have a lot of old computers. Sometimes they take longer than we want to start up. I love how fast Windows 8.1 handles things, but we don't have that installed everywhere. I know a lot of our users will turn the computer on first thing in the morning and go do other things while it starts. In some areas, the first person in starts everyone else's computer. Other people just never turn them off.
What if our computers knew that you started to use your computer at 8:00 every day. Why can't it just turn on at 7:45? Why can't we figure this out for every computer and just take care of it for our users? We can and here is how I did it.
I parse 6-8 weeks worth of logs that record every time someone gets logged on. I have user, computer, and time. For this, I don't care who the user is. I parse the log to figure out what the users computer usage pattern is. I assume a weekly cycle and that makes my results more accurate.
Then I have a script that runs all the time to check that list and wake up computers that will be used in the next 15 minutes. All of our computers are already configured for wake on Lan so that is how we start those computers.
I don't know if you have worked with Wake on Lan before, but it has it's own nuances that I will save for another post.
Monday, May 19, 2014
Why Powershell Desired State Configuration?
Our largest dental clinic has 50 chars in it. Each cubicle has dividers between them, 2 people could stand up in opposite corners of this large room and they could see each other. There is a central control station that faculty use where I love to issue remote commands. When I send something like Wake On Lan to all the clinics, I can hear every machine in there click on at almost the same time. I can hear the fans spin up and I can see the monitor glow cast a blue shine across the room. There is nothing like seeing your code interact with the real world like that.Sunday, October 28, 2012
My time is way over budget
In order to analyze my time, I need to start tracking it. I read about several ways to do it and I settled on something fairly simple. I opened up Excel and made a table with these headings. Day, Time, Minutes, Description, and Category. Every time I change tasks, I write down the time and a short 2-3 word description. I try to write down the number of minutes I spent at the same time, but I don't care if I miss a few. It is easy enough to calculate after the fact.
I am using very broad categories. I want a high level view of where my time is spent. I think I have about 7-9 things that I am tracking but they roll up into 3 large buckets. Support, Other, and My Projects. At the end of the day, I will make sure to date all the entries to assist in later analysis.
The whole point of me collecting this data is to analyse it. The results have been interesting so far. A strong third of my day is end user support. This is a measure of overflow from the help desk. Ideally we have enough support staff to handle support issues. The next third of my day is meetings, reviewing items with the rest of the team, and email. The last third of my day is me working on my projects.
These results are interesting because I am not getting as much work done as I thought I was. I am busy all the time, but not enough of that it going toward my projects. I initially estimated my project list at 56 weeks. With these new metrics, its more like 3 years worth of stuff.
I am going to keep tracking my time to see if I am able to improve these numbers.
Saturday, October 13, 2012
100 projects and counting
Friday, April 03, 2009
Creating the Bad Anatomy raffle for Warcraft
An idea I had worked on in the past was to create a lottery for players in wow. We had a lot of it planned but ended not doing because the rules were unclear if it was allowed or not. Now that the rules have changed and we are ready to start it up. So I present to you Bad Anatomy's Cho'gall weekly raffle.
Our initial idea was for a lottery where people could pick numbers and we use real world event to pick the numbers (like the multi-state lottery numbers). But our biggest issue with that is it could take a long time for a winner. In the end we decided on a raffle.
For every 10G someone donates, we will give them one raffle ticket. The ticket is given just so the purchaser knows what his numbers are and adds to the realism of it. A character was created just to handle the raffle. So every message in and out from him is kept separate from all our other mail.
There are 2 parts that make this work. First is the in-game mod I had to develop to receive gold, issue tickets and track tickets, and to pick the winner. It initially started out easier then I thought it should be and ended slightly more challenging then I thought it would be. I may go into those details in a later post. I can run my character up to the mail box and issue a command that will allow him to open every message, collect the gold, calculate how many tickets someone gets, and then send each of them a message with their numbers.
The second part is the supporting website Bad Anatomy's Cho'gall weekly raffle . This is the feature that makes it real. People can check the site to see when the next raffle starts or ends, see the winners, and all the rules to the game. We took a domain name we already had (Bad Anatomy) and re purposed it for the raffle. I tried to give it a simple and clean look. I tried to look at lottery sites for examples and they all felt overwhelming with all the stuff they tried to pack onto one page. In the end, I created the look I wanted.
This experiment is just getting started so I cannot tell you how well people are liking it or even how long I will run it. Head over to Bad Anatomy's Cho'gall weekly raffle to see how its going.
Monday, March 16, 2009
W32.Downadup.C is in the wild. It looks like Conflicker is starting to evolve.
This cat and mouse game is about to get interesting. We have yet to see a payload from this virus. There is no question that the attack has changed at this point. Without using any new attack to build a larger infection base, it has to hold what it has already. You don’t fight that hard to keep a system infected unless you have a plan for it later.
https://forums2.symantec.com/t5/Malicious-Code/W32-Downadup-C-Digs-in-Deeper/ba-p/393245%3bjsessionid=1A353B585C96A581ECB9D3536C31ADCB
Tuesday, December 02, 2008
KTT: Damage Meter AoC Combat Log Processing
My core features were stable on my last release and I have watched it from a distance as people continue to download it. I can't it does not have bugs and many of my newer features are more proof of concept that show what can be done.
How did I gather dps stats?
The first big roadblock was the fact that Age of Conan did not have true mod support. It did however have a feature I could use to my advantage. AoC would generate a plain text file in realtime that contained the combat log. Every attack, heal, buff, debuff, and xp gain was recorded in that file. That one feature gave me a world of options and features that could be implemented.
Getting the correct file:
The log file was located in a sub folder within the AoC directory. During install, a registry key is set to the install path of AoC. The logs were named in such a way that an alpha sort would get me to the correct ime. On first scan of the directory, I grab the logical file and set a marker to the end of it. I start at the end of the file to exclude old stats. I assume that starting KTT is when stat collection should start.
I also add a watch on the folder for new files getting created. There are times when KTT will be running already before the logfile gets created. If I did not watch for new files it would be stuck on the old one and never collect any stats.
Processing the log:
Twice a second I reopen that file. From the marker to the end of the file, I add every plain text line into a queue. The marker is updated with the end of file and the file is closed. I had to open the file in a read only non locking stream so it did not cause issues with AoC writing to that same file. I used the queue so I could collect the data as fast as possible and get that file closed as fast as possible.
I would then work that queue with regular expression to pull out the various values and actions. I ended up with a fairly complicated regex query that did most of the work for me. I found 4 distinct sentence structures that indicate source, target, action, and a value. AoC made the combat log in sentences that were proper English that even reflected 2nd person when needed. While it sounds nice when read out loud, it creates a lot more work when writing a parser. So the regex ended up to be 4 page widths long but I didn't have to post process any of the values.
Once each line was processed into an action object, it was then placed on another queue. I used a queue her so I could multi thread the log reading/parsing away from the rest of the application. As I work this queue I would pass the object off to the plugin framework. The damage meter plugin would flatten that stats as it received them. When calculating total damage, I just add the damage on the fly so the reporting side can just report the precalculated total. (vs summing the damage every time I want to report it). I did this for any stat that I could think of.
Because I compressed the stats like this, I could keep the queue clear of actions. The point of this is my memory usage is only as wide as the number of stats I'm recording and not as large as the log file. During a large raid, the log file can grow to very large sizes very quickly. While KTT will jump in size very quickly as it sees a stat for the first time, as that stat is repeated over and over many times in the log, it will not take much additional memory.
In closing:
I may do little write ups on other features of my mod (or its potential) later. I wrote this for other mod writers. To show them that with very simple things and ideas you can do some very cool things. While I may not have described the best way to do something, it still worked very well for me. The mod is listed as KTT Damage Meter, KoS, Timers, & Sounds over at curse.com.
Sunday, January 13, 2008
MySims load times are killing me
I recently got a Wii and now have MySims. I kind of like how I can use the blueprints and just crank out things, but have the option of freedom.
I like being able to make some very creative items.
At the same time, the amount of time spent loading everything is killing the game for me. I can understand some loading. Every time I enter a building or leave a building it has to load something. I expect that loading.
The place where it gets under my skin is the loading in the menu screens. Every time you check your back pack, or tasks, or friends, or blue prints it has to load them. These are simple heads up display items that you would expect to be very responsive.
Not only does everything have to load every time the display changes, extra steps are added that cause more loading time.
Here is an example. If I want to build something, I have to go to my shop. Before the shop loads, I am asked what I want to work on. I make a choice and then have to wait for my shop to load. Lets say I am done with that item and want to work on a second. I have to leave the shop, wait for the world to load, enter the same shop I was just in, make my choice, and wait for the shop to load again.
Several of the menu items force you back to the main menu requiring you to load the submenu again if you want to look at a different option.
This is a good game. But when I am working fast, I spend 1/3 of my game time looking at the loading screen. I wish that was an exaggeration.
I get the feeling the framework is too bloated and overused. It sounds like other recent Sims games suffer in the same way. I would hope they clean up there code base before reusing it in another project.
Friday, January 04, 2008
Why does windows live take so long to install?
I saw Microsoft released a blog writing tool as a windows live app. I decided to try it at work and at home. The installer has one step where it checks for existing windows live apps. It bothers me that Microsoft has a dozen or so apps, yet it spends a lot of time looking for them.
It takes longer for the installer to look for those 12 apps than to do the rest of the install.
I can only guess what they are looking for, but I suspect that step is just mislabeled. Sometimes its the small details that give you uneasy feelings.
