Monday, April 30, 2012

Mithion's Beta Feedback for Guild Wars 2

First, let me start by saying that I am die hard Guild Wars fan. From those first moments of Charr attacking Ascalon to defeating Duncan the Black in Hard Mode. And countless battles against those darn Kurzicks. My expectations for Guild Wars 2 were set pretty high.

ArenaNet delivered.

+Download and Installation+

Likes: Was a quick download and pretty self explanatory.
Dislikes: Was unable to get game to download and install into a drive besides C: drive.

Suggestion: Allow the user to pick the installation path when installing.
Suggestion: The patcher screen sometimes forgets you opted to automatically play. Needs some attention so the option remembers for every log in.

+Logging In+

Likes: Love Jeremy Soule's music in combination with the artist's work showing through the GW2 logo.
Dislikes: None really.

Suggestion: Tabbing and clicking into the form boxes seemed sluggish / delayed. As if keystrokes and clicks were not registering on time. May need some polishing.
Suggestion: Maybe add a small news window above the log in box. Something showing sales in the gem store, upcoming events, etc.

+Character Select Screen+

Likes: I like the medals area which shows my progress in the game.
Dislikes: When you log out of the game it takes you to the log in screen, really wish it would log you to this screen instead. Or at least provide the option to log out to character select.

Suggestion: Allow players to buy additional character slots right here from the character select screen.
Suggestion: I don't remember the game doing this but, the background image for each race should show up different on the screen. If I select my charr character, switch to charr. You get the point. You could even switch the music when you click on the different character to add even more effect.

+Character Creation+

Likes: I enjoyed character creation more than any other feature / aspect of the game. You guys and gals really nailed this perfectly.
Dislikes: None.

Suggestion: Random X generator. Where X is character name, face, etc.

+Tutorial+

Likes: Loved how the tutorials really drop you right into the action. And the story / lore is presented to you so you know the "Why the hell am I here?" answer pretty quickly.
Dislikes: Game does not do a very good job explaining all aspects of the game and game mechanics to you. The pop-up tutorial windows are not very informative and could use a little polishing.

Suggestion: My suggestion here is really just to address the dislike I had. I would like to see the tutorial information detailed a little better. Even after you leave this early stage of the game.

+Hero Window+

Likes: I love the side bar on the left that turns this window into a side-tabbed "Everything You Ever Wanted to Know About John Doe" type of screen. Also almost all of the tool tips are explanatory and tell you exactly what is affecting your character.
Dislikes: I don't like how some items are grayed and don't let you preview the information within them. This really hinders players from planning how they would like to play their characters. Also, some stats are not explained very well. Such as the Honor area. What and how does this impact your character?

Suggestion: I would love to see a hearts / skill challenge / quest log in addition to your main story line information. Including incomplete quests / objectives. Mini suggestion here would be clicking on an incomplete would open map and move to the position for where the objective is.
Suggestion: The traits system is very hard to understand. What exactly is the benefit of unlocking Minor traits? Major traits? The game doesn't explain this to you when you are trying to define your character's path.

+Inventory+

Likes: The search bar and auto-sort is great!
Dislikes: I don't like how slim the window is. Is there way to make it wider and not so much of a endless scroll bar to the bottom?

Suggestion: I would add additional sorting options. Such as sort by rarity, sort by equipment (weapons and armor), sort by craft ables, etc. This would always place those items up at the top for easy access.
Suggestion: This may be me but, I was unable to split stacks. If this is not a feature, add it. If it is a feature, needs to be explained a little better.
Suggestion: Would love a bank tab that minimally let's me see what is in my bank. Not necessarily for access purposes but, so I can just see what I already have. Makes it easier to determine if I should sell or trade items. Or not.

+Friends List+

Likes: Adding a friend adds their entire account and it is account wide for all your own characters. I love this and a lot of companies mess this up. I don't want to add every toon my friend has. And I really don't want to do this for every character I have. I also love how ArenaNet implemented the Online, Away, Hidden, etc. statuses.
Dislikes: The user name followed by a "." and number is a bit confusing to actually show on screen. Smells of programmerishness. I also don't like that you can see someone is "Online" even if they are sitting on the character select screen. I sent many whispers that went no where because of that. If someone is on the character select you should have them auto flagged as invisible.

Suggestion: Would love to see a Role Playing status (purple?) that shows a person is RPing. This status might hide your race, class, and level from searches but shows that you are online.

+Mail+

Likes: I like that you are able to access this from anywhere. Also, I like that completing a heart / quest gives you a little more content by the giver contacting you via mail. Sometimes with a reward.
Dislikes: You can't mail your own characters. I wish you could. Also this feature seemed a bit flaky during the beta testing. Sometimes my mail wouldn't get received at all. Sometimes it would but no items attached. Stuff like that.

Suggestion: Auto-suggest recipients name based on names from your friend's list or from your own character names on your account.

+Gem Store+

Likes: I love how you can opt to either buy with real money or trade your hard earned gold for those gems. I also like the variety offered this early in the game development.
Dislikes: The text in the UI seems a bit blurry skewed at times. Even when everything looks fine in other text windows. Also, the checkout process for making real payment purchases is very rough. Needs to be cleaned up quite a bit.

Suggestion: Allow the ability to purchase more character slots (limit is maximum race / class combinations), purchase character "make overs" so you can change your look, etc. And provide incentives to buy from the store in the game. For example, if you added a barber shot that did freebies on hair styles. But the barber recommends further changes by buying in the store. Display sales on item X on the log in screen. Stuff like that.
Suggestion: I would re approach the UI all together.

+Options+

Likes: I was very happy with the number of options for customizing your graphics, audio, etc.
Dislikes: No option for target of my target that I could see. Also I didn't see an option for hiding head slot graphic.

Suggestion: Continue adding options to further facilitate players being able to modify their gaming experience.

+Report Bug+

Likes: I never like reporting a bug. But, I will say that I like the hierarchy structure built into the form options.
Dislikes: Should be able to report a player (inappropriate name, spamming, harassment, etc) and this wasn't apparent enough for me.

Suggestion: Add a FAQ into this window to filter questions versus actually game issues.
Suggestion: Ability to get into a queue to speak with a GM in case I have an issue like stuck in the world or what not.

+Chat Window+

Likes: Easy to use in general. And easy on the eyes.
Dislikes: Combat window is very programmerish with code numbers showing up. Lack of /emotes.

Suggestion: When you create a party you should auto-switch to the /party chat channel. Instead of having to type it out.

+Skill Bar+

Likes: Perfect, don't touch! :)
Dislikes: None, though I wish I had more stamina for dodging.

Suggestion: Maybe make negative conditions on your character little more apparent.

+Map+

Likes: I absolutely love the Google Earth type feel when zooming in and out. I have expect you to have a GPS implemented soon that tells me where to go.
Dislikes: Sometimes map points don't show up at all or show up when you haven't unveiled an area.

Suggestion: When talking to a "Scout" you should just unveil the area for the player. Makes sense because someone is explaining the area to you.
Suggestion: Hide map points unless (a) on a quest or (b) you already explored that area. Sometimes it appeared as if I already knew where a vendor was when I never once was near the vendor. See what I mean?
Suggestion: Add a in-game and out-of-game time clock to the mini map.

+Dungeons+

Didn't really get to test because of a number of factors...

...the dungeon told me I needed 5 fellow adventurers.
...the server overflow was preventing me from really getting into a true party with friends.

Suggestion: I know this is taboo in some circles but, a dungeon finder tool would be helpful. And no, shouting in local chat and putting up a LFG flag is not enough.
Suggestion: Ability to transfer to the overflow / server instance that the party leader is in.

+Guilds+

I joined one but, didn't quite understand how it worked. Tutorial would be great here.

Suggestion: Add a tutorial when you first join a guild.
Suggestion: Add a guild quick icon in top left like you do with the others, if not already.

+Conclusion+

Some follow up suggestions, if this doesn't already exist in the game:

Suggestion: Ability scroll far enough in to view world from a POV perspective. Not just over the shoulder.
Suggestion: Maybe a little better job scaling money. Seemed I was making same amount of coin at level 8 as I did at level 2. How am I supposed to afford a 2 gold piece book at that rate?
Suggestion: More adult-like / less anime character faces. The default baby face on character creation was little creepy at first. Just saying.
Suggestion: Tone down the NPC whispers. They are a little off in volume.
Suggestion: Scale your servers to address the lag and network latency. It was really bad but, I wrote it off as "This is why we are testing.". You can't know your limitations without reaching them, right?
Suggestion: Auto-loot needs to work. I don't want to hit the F key. Just auto loot for me please. It is hard to loot during a world event and all chaos is breaking loose.
Suggestion: More charm, dignity, and ferocity choices during dialog. I feel like that will further mold your character into something custom when it comes to questing.

My conclusion. I plan on throwing a lot of money your way in the future ArenaNet. You have ruined all other games for me. Please hit these follow up betas quickly so you can release soon!

Wednesday, January 11, 2012

Star Wars: The Old Republic - Performance and FPS Issues

This is a follow up to my previous blog at http://mallen22842.blogspot.com/2012/01/customer-service-and-star-wars-old.html.

Very recently BioWare's game director, James Ohlen, told Eurogamer that "most of our players aren't really having performance concerns".

Now, so far I have been very impressed with the game's class story lines (they are nothing short of awesome) and BioWare's attempt to stick to the lore of the Star Wars universe.  The game in general feels very much like a clone of World of Warcraft (talent trees, harvesting nodes for crafting materials, skill-click combat system, a horde [empire] and alliance [republic] faction system) with a few minuscule differences. This is not necessarily a bad thing because it is something the community is familiar with and... let's be honest, it works for MMOs.

But, something about the way BioWare has handled their customer service and the games overall performance has rubbed me the wrong way. To a point where I have lately been on the fence about  setting up a subscription and/or waiting for the dust to clear.

Mr. Ohlen claims that the players are not really having performance issues yet my own testing on both of my rigs, a "Horrid FPS" thread that seems endless, and the following images speak otherwise:




Those images alone contradict Mr. Ohlen's claims that there is an insignificant FPS and/or performance issue.  This easily ranks as the #1 community driven issue with the game at the moment. My assumption of this is simply by a visual inspection of the forum posts and reviews left on various websites marketing the product. This FPS and performance issue even appears to be superseding game crash issues.

This wasn't enough for me to base an opinion on though so I began researching the game a little further. What I found was interesting if not informative.

An article was written by HeroEngine on November 28th, 2011. This article detailed some very interesting facts about BioWare's initial contact with the game engine developers.



The key here is the statement "There are whole sections of code that is only roughed in and not optimized for performance or security.". That is right, not optimized for performance. Interesting... Now, BioWare claims that they had tons of engineers finish things up themselves. But did they actually hurdle the performance issues so clearly pointed out by the engine creator? Or, did they miss some fundamental piece of the equation?

The details given to the actual community leading up to the article at Eurogamer leave a contradictory taste in the community's mouth.  See some of the community messages sent out by BioWare below (which have been very obscure and have a canned feeling to them):






A couple of highlights to take note of. "The FPS issue is so varied, and any number of factors could affect it". But, you have already stated it is due to low-end computers and there really isn't a performance issue. And the answer relayed to me via Mr. Ohlen's public release is clear, upgrade your gaming rigs. It can't be a varied issue but, also not an issue.

And it should be noted that I believe the gaming community has a difference of opinion regarding what systems are low-end and not. BioWare should know better that if the computer meets your minimum and recommended specifications and still has an issue, that the problem is not necessarily the user's computer.

Another highlight. "I appreciate the frustration... I assure you it's being looked at." Again, it is very confusing as to what is being looked at if the implication is that the problem lies with the customer's computer. A contradictory statement.

Another highlight. "...based on the amount of forum posts and CS ticket volume in relation to the total player base population, most people aren't experiencing performance issues.". I implore you to review the masses of forum posts in the various screen shots above.

Mr. Ohlen implied that 5% of players are having this issue. Based on Baird Equity Research and an article posted by Massively by Joystiq on January 3rd, 2012 the game currently has roughly 350,000 concurrent users. 5% of 350,000 concurrent users is roughly 17,500.

Let's assume these users purchased the cheapest edition of the game (Standard Edition $59.99 US). We are looking at potentially around $1,050,000 US dollars in profit for a game that can't be played. Specifically what was expected of the product and what was received. And if those users cancelled their monthly subscription ($14.99 US), a loss of roughly $250,000 US dollars a month.

To me it is pretty amazing that this issue has been handled the way it has. I personally hope that BioWare gets the FPS optimized properly (see this article by HeroEngine about controlling FPS). And I hope that they can clean up their act when it comes to servicing their customers properly.

As always, this is simply my opinion and mileage may vary.

Monday, January 9, 2012

Customer Service and Star Wars: The Old Republic

This morning I wanted to share a Customer Service experience that I recently had with the game development company, BioWare. First a little background information, then the problem, and then I will finish by discussing my Customer Service experience.

I recently pre-ordered and purchased their new MMO (massive multi-player online) game called "Star Wars: The Old Republic". I currently have a subscription that is good until January 19th, 2012. At which point the expectation is to start paying for a monthly fee. I personally subscribed for the six month at a time block. Which is to say, I pay one time and am good for six months of play. As opposed to per month.

Getting back on track... The game released and wasn't exactly clear of software bugs. One, of a particular note, is known as the "Horrid FPS" bug. The games frame rate drops to dramatically low numbers but, only does this in particular areas of the game. Or, when there is a heavy presence of other characters nearby.

Some other people would have you believe that the issue is strictly on the user's computer. "You have a poor machine and it can't handle the game." they might say.  They would also be inclined to throw numbers at you and say "One million people are playing just fine, who cares about the five percent having this problem?".

First, in response to that I would have to say that the problem is not so easily explained away with a simple computer upgrade. Nor can these people give us reports on who has the problem and who does not. For they themselves do not work at BioWare nor have access to BioWare's reports.

I decided that the best course of action was to troubleshoot my own computers (a laptop and a desktop). Both are equally suited for playing the game. Easily surpassing the games relatively low minimum specifications.

Some steps I took are:

  1. Updated my drivers on both computers to the most current drivers available (this currently happens to be AMD Catalyst 12.1a Preview drivers).
  2. Ensured that the computers were up-to-date on all relative pieces of software (operating system, DirectX, etc).
  3. Tweaked the game's client configuration files. In an attempt to lower settings.
  4. Modified in-game settings up and down. Just to see if I could get FPS gain from the changes.
  5. Utilized the Catalyst software to force certain graphic settings (Anti-aliasing, etc). Again for FPS gain.
  6. Attempted to run the swtor.exe application using different compatibility settings. Such as running the game in Windows XP SP3 mode.
  7. Ensured game is set as being ran as an administrator.
  8. Using Windows services, practically turned down all other applications and settings. To maximize my machine's performance.
  9. Through hardware upgrades, increased my machine's RAM (planned on doing this anyway).
  10. Overclocked my video card on the desktop machine (do this at your own risk).
  11. Installed gaming boost software, such as Rivatuner.
  12. Ensured game was forced to run in 3D mode and never drop into 2D mode. To help prevent FPS stutter.
I am sure I am missing some steps I have taken but, needless to say I extensively applied my technical skills to fixing this frame rate issue. But, alas, I was unable to correct the low frame rates. Which was surprising when games such as Neverwinter Nights 2, Guild Wars, World of Warcraft, Call of Duty, etc could all be played with zero frame rate issues. On the highest graphical settings. The graphics in Star Wars: The Old Republic were less then exemplary in comparison to these others.

I then began to monitor my resource usage. And this is when I stumbled upon the problem at its core. I noticed that during frame rate highs (70-100 FPS) the game was utilizing about 75% of my processor, about 50-75% of my RAM, and about 80% of my video card's resources. But, when dropping to frame rate lows (0-5 FPS) the game stayed exactly the same with the exception of my video card resources. The game was only utilizing 20% of my video card.

So this immediately told me what I needed to know. BioWare was not communicating (via my drivers) the correct amount of resources in needed to load upon my video card. And I decided it was time to start looking into reaching out to BioWare's support team.

A spokesperson for BioWare stated the following on January 5th, 2012 at this thread.
Because this FPS issue is so varied, and any number of factors could affect it, it's taking a bit more time to investigate. At the moment, our developers are going over logs and are working on a more detailed blog post that we should be posting soon. Thanks again for your patience!
Which has yet to be blogged at the time of my writing this. I was able to jostle a BioWare spokesperson myself, with the following response on the forums (yes, I hijacked the thread a little bit):
FPS / framerate performance issues are also being looked at. Like the 'Ability Delay' issue, framerate issues are not something that can be solved in a quick and easy way with a single fix. Investigation into the various causes of framerate issues takes time, and solutions may not immediately work for all. Work continues to optimize and improve the game.
Which I immediately replied with:
Look at it from my perspective though. I truly want to subscribe to the 6 month subscription. Which I have (so far). But, if I am being told my FPS issue could take an extended amount of time research to address, why keep my subscription which takes affect January 19th, 2012?
And was told:
Feel free to share your dxdiag and machine specs in this thread - that's where we're collating feedback and having the development team actively monitor to help improve things for players. I assure you it's being looked at. 
My frustration was really high at this point. I did not want a stock / canned response. This took me to the next level. I needed to call someone. So I contacted BioWare on January 6th, 2012 at 1 (855) 467-9867. After navigating the various prompts I reached a person, relatively quickly, calling themselves Mel. This appeared to be an overseas (India?) call center based on the background noise and representatives accent.

Mel asked me for some basic account information before he began discussing my issues with me. He asked if my computer met the minimum game requirements (easily) and if I had tried adjusting the in-game settings (first thing I did). I then detailed other various troubleshooting I had performed on my own. And told him that I pinpointed the issue was the game engine communicating with my drivers.

Mel placed me on hold to go see if there was anything else he could walk me through over the phone. After about five minutes, he returned. Mel told me that he would have to have me email the details of the phone call to him (shouldn't you be writing this down in your call log Mel?) and that he would escalate to the next tier of their support team.

I informed Mel that I did not wish to send in an email and would prefer speaking with a member of this support team myself. I explained to him that I am a software engineer and could easily relate to them the details behind the problem. It was at this point he informed me that he could not transfer me because it was not allowed.

I said "Mel, I know very well that you or your supervisor can transfer my call to the other department. Please put your supervisor on the phone.". With which he told me "Well, let me see if I am allowed to transfer you." and placed me on hold yet again.

It was at this point that I was "allowed" to be transferred to the "Technical Support department". Which I can only guess what department it was that I was currently speaking too.  Now, buckle your seat belts because this is where things get interesting.
The mysterious representative: "Is there something I can help you with?"
Me: "Yes, I am sorry... I didn't catch your name."
The mysterious representative: "(mumble mumble) Can I help you?"
Me: "I'm sorry, I still didn't catch that. Can I have your name please?"
The mysterious representative: "Sir, we don't have names here. Is there something I can help you with."
Me: "Excuse me, you don't have names?"
The mysterious representative: "That's right."
Me: "Okay, I would like your operator number or to speak with your Supervisor please."
*click*
Wow is all I could say (actually I said some other choice phrases out loud). I immediately called back and this time got a Lawrence and what sounded like a completely different call center.

I relayed the entire story to him and he sounded genuinely astonished at the experience thus far. It was Lawrence who provided me with the details that "Yes, there is something incorrect on our side we are trying to address" and "We are having trouble pinpointing the exact problem so it is taking longer then we had hoped to correct".  Lawrence was very apologetic and I told him I would be more then happy to detail the problems via email. As long as he assured me it reached the development team. Lawrence assured me it would.

I then sent a very detailed email to their team via reply to a generated email to myself (thanks Lawrence).

And to this day, I have not heard back.

All in all, this is one of the rougher game start ups I have seen. And the Customer Service is a bit lacking, to say the least. My recommendation to anyone considering buying this game is to wait. And to read the game's forums (you can do this publicly) until some of the dust clears.

While an excellent game, some of these finer points are actually hurting the game. I will post a follow up when I have something to follow up with.

Tuesday, November 29, 2011

Making your Apache Web Server more secure

I just wanted to post a few tips that you can use on your Apache 2.2 web server to help make your server a little more secure.  This isn't a list of every security measure you can take but, just a few tips.

One of the first things you should do to secure your Apache installation is to configure Apache file permissions.  This will help mitigate access to primary systems if someone is able to hack into your server through Apache. You can do this by performing the following steps (there are a few, fair warning):
  1. After Apache Web server has been installed open the "Computer Management" console by doing the following:
    1. Click on "Start"
    2. Go to "Administrative Tools"
    3. Click on "Computer Management"
  2. In the "Computer Management" window, expand the "Local Users and Groups" section.  Click on "Users" to see a list of the current users for your system.
  3. Right-click on "Users" and select the "New User" option.
  4. Enter the following information for the new user:
    1. User name
      1. apacheservice
    2. Password
      1. adminpw123 <put something secure here>
    3. Confirm Password
      1. adminpw123 <reminder, change this to something secure>
    4. Clear the "User must change password" check box
    5. Select the "User cannot change password" check box
    6. Select the "Password never expires" check box
  5. Click the "Create" button and then click "Close" to close the "New User" dialog.
  6. Right-click the "apacheservice" user you just created and select "Properties". Click the "Member Of" tab.
  7. Make sure the "apacheservice" user is a "Member Of" the "Users" group.  Click "Cancel" to close the properties window.
  8. Exit out of the "Computer Management" console.
  9. Open the "Services" console by doing the following:
    1. Click on "Start"
    2. Go to "Administrative Tools"
    3. Click on "Services"
  10. Right-click the "Apache2" service and select "Stop".
  11. Open Windows Explorer (not Internet Explorer) and navigate to the following:
    1. C:\Program Files\Apache Software Foundation\Apache2.2
  12. Right-click the "Apache2.2" folder, select "Properties" and then select the "Security" tab.
  13. Make sure that only READ and EXECUTE permissions are granted to the Users group.
  14. No changes should be necessary so just click "Cancel".
  15. Using Windows Explorer, review the permissions for the following:
    1. C:\Program Files\Apache Software Foundation\Apache2.2\logs
  16. Now, we do want to change permissions on the "logs" directory.  To do that do the following:
    1. In the logs Properties dialog's Security tab, click the "Advanced" button.
    2. Clear the "Allow inheritable permissions from the parent" check box.
    3. Click "Remove" in the security window.
    4. Select the "Replace permissions on all child objects" check box and click the "Add" button.
    5. In the "Enter the object name to select" field, type the username "administrator" and click OK.
    6. Under "Allow", select the check box for "Full Control" and click OK.
    7. Click the "Add" button again and in the "Enter the object name to select" field, type the username "apacheservice" and click OK.
    8. Select the following check boxes under Allow:
      1. List Folder/Read Data
      2. Read Attributes
      3. Read Extended Attributes
      4. Create Files/Write Data
      5. Create Folder/Append Data
      6. Write Attributes
      7. Write Extended Attributes
      8. Read Permissions
    9. Click OK when done.
  17. Click OK to close the "Advanced Security Settings" window and again, click OK when asked to continue.
  18. If you check permissions for the "apacheservice" user in the logs Properties dialog's Security tab, you will find we should now have read / write access only.
  19. Click OK to exit out of the logs Properties window.
  20. Now view the security permissions of your web root.  By default, this is the "htdocs" folder found under your Apache2.2 installation.
  21. Click the "Advanced" button under the "Security" tab.
  22. In the "Advanced Security Settings" dialog, clear the "Allow inheritable permissions from the parent" check box.
  23. Click "Copy" in the security window.
  24. Click the OK button to dismiss the Advanced Security Settings.
  25. Select the "Users" group and click Remove.
  26. Select the "SYSTEM" group and click Remove.
  27. Click the Add button and in the "Enter the object name to select" field type the username "apacheservice" and click OK.
  28. In the "Permissions for apacheservice" section, change the permission to Allow Read and Deny Write. Clear any other check box that may be selected.
  29. Click OK to close "WebRootFolder Properties" and click Yes when asked to continue.
    1. Those last steps will ensure that the "apacheservice" user will only ever be able to read, never write, to the root Web document folder.
  30. Switch back to the Services console, or open it again by select Start -> Administrative Tools -> Services.
  31. Right-click the "Apache2" service and select "Properties".
  32. In the properties window, select the "Log On" tab and perform the following steps:
    1. Select the "This account" radio button and type the user name "apacheservice".
    2. Enter the password and confirm the password for the account.
    3. Click the "Apply" button.
      1. You should see a message indicating the account has been granted the "Log On As A Service" right.  This is fine, click OK to dismiss.
    4. Click OK to close the Apache2 properties window.
    5. Right-click the "Apache2" service in the Services console and select "Start".
      1. If you see an error when restarting Apache, then there is a problem with the permissions of the apacheservice user.  Verify your steps by checking permissions (see the instructions leading up to this step).
  33. The last step is simple... When the server comes back up just surf to the URL and ensure it is working.

Now, lets add a few tweaks to our server config file. In the "httpd.conf" file that is located in the "conf" directory of your server you can add the following:
#
# Controls who can get stuff from this server.
#
<Limit GET HEAD POST>
    order deny,allow
    allow from {%}
    deny from all
</Limit>
This configuration is added under your <Directory> for your document root. Replace the {%} token above with any IP address or IP block.  For example you can use the site County IP Blocks to generate a block of IP addresses only from a particular country (such as the USA).  Anyone coming from an IP address not in your block would be denied access.  Or you can do the following...
allow from 127.0.0.1
...to ensure only local access to the Web server.
#
# Limit to POST and GET commands only.
#
<LimitExcept POST GET>
    Require valid-user
</LimitExcept>
This should also be added under your <Directory> root. This configuration will prevent other un-secure commands from being accessed by a user.  POST and GET are really all you should be allowing on your Web server anyway.
#
# Hide server details from the HTTP response header
#
ServerSignature off
ServerTokens prod
This configuration (added at the end of your conf file) hides detailed server information from your HTTP response headers (such as Apache version) from potential attackers.  Attackers use information like that to coordinate attacks on your server.

And, of course you should always follow the security tips provided by Apache.  Those can be located here:

http://httpd.apache.org/docs/2.2/misc/security_tips.html

I hope some of these tips can help you to make sure your Web Server is more secure.  I will likely post more in the future and will also try to include application servers (Tomcat) and even IIS.

Tuesday, November 1, 2011

Dish Network Customer Service Complaint

I wanted to share this email which I have sent to the executivecustomerservice@DishNetwork.com.  It details a horrible customer service (if that is what you call it) experience my wife and I shared in our attempt to cancel service with Dish Network.  I am still waiting for a reply.

To whom it may concern -

My wife and I had a very distasteful experience with what is being called Customer Service at Dish Network.  This began when my wife contacted your Customer Service staff on Wednesday, October 19th, 2011 between 8:00am and 8:30am.  She was informed that our contract with you ended on December 4th, 2011 which was 45 days from the date she called.  The lady she spoke with informed her that it would be a $10.00 fee if we broke contract early between the time of the phone call and before December 5th.

We discussed it and made the decision to break contract early.  This was simply for economic reasons and we had actually intended on re-evaluating in 3 to 6 months.  If at that time we were capable, we planned on entertaining the idea of reconnecting with Dish since we had had nothing but good experiences with the company.

However, upon contacting Customer Service on Sunday, October 30th, 2011 we were told that the amount was actually $10.00 if within one month of cancellation.  If two months, it was actually $30.00.  And, conveniently enough your staff did not document in their call logs about our prior call in.  My wife asked to speak with a manager at this point, as the representative was not willing to deduct $20.00 from the cancellation fee.

This manager informed my wife that the pricing was actually $15.00 for one month and $30.00 for two.  So at this point, we had received our third set of amounts.  My wife again was told that the pricing couldn't be adjusted to honor the first amount we had been told.  At this point she again escalated to the next tier of support. Another manager.

This manager informed her that the amount is prorated $15 for each month of contract time you have left.  So again, $15.00 for the first month and $30 for the second.  At this point I got on the phone and expressed my disgust at how your company was handling our desire to cancel.  Even though we only had less than 4 days before we were inside the one month window (which your team didn't even suggest us wait for 4 days), your management and service staff was unwilling to budge on a mere $20.00 fee.

And to make matters worse, I was told that I would have to pay for shipping the equipment back.  And that this was an additional $15.00 fee if we use your label that is shipped with the return kit.  Again, it wasn't even suggested to us that maybe one of your Dish installers could swing by and just pick the equipment up should they be out in this area.  Or that I could drop the equipment off myself at one of your  locations.

So, you all seem to be perfectly content with throwing away 2 years of customer loyalty because of a grand total of $35 ($20 cancellation and $15 shipping).  I even warned the last manager I spoke with that if she did not help us I would never be willing to return to Dish.  If my wife and I decided to again go with a satellite or cable provider we will certainly not chose Dish Network.  I also warned her that I would warn anyone in the future not to trust your company.  Simply because of this incident.  To be honest, I am completely disgusted at how you all have treated not only myself and my wife.

If you want redeem yourselves, even in the littlest bit, I would highly recommend that you review this complaint and help to accommodate my wife and I.  Beyond that, I would expect that you inform your call centers and customer service staff that the philosophy of not honoring what you tell your customer is unacceptable.

Wednesday, October 26, 2011

Add custom controls to SharePoint Designer 2010

Haven't posted in a week or so.  So decided it was time to add something.  Lots of idea bouncing while I have been attending a training course on SharePoint Designer.

A question came up during class which was, "How do I add custom controls into SharePoint Designer that I can drag-and-drop like the controls already there?  For example, the ASP.NET controls.".

Here is the answer...

You will need to first copy your DLL and namespace to the SafeControls section of the 'web.config' file.  This will make your control available to SharePoint Designer.  However, an extra step is needed to make the control visible inside the GUI.

You will need to add an attribute to your class file.  Just above your class definition.  The attribute is:

[ToolboxData("<{0}:SomeNewControl runat=\"server\" />"), ToolboxItemFilter("Foo")]

Again, this goes above your class definition.  That is it.  You should now see your custom control inside SharePoint Designer under 'Server Controls'.  And it should work just like the others (drag-and-drop).

Tuesday, October 4, 2011

Migration to SharePoint 2010: Part 3 - Integrating the ASP.NET Web Service into a SharePoint page

In my final posting for this 3-part blog, I will detail the simple steps needed to integrate the ASP.NET Web Service we have worked on into your SharePoint site.

  1. Open Microsoft SharePoint Designer 2010.
  2. Click on Open Site.
  3. Under Site name enter the location to the SharePoint site you wish to connect too.  Click Open.
  4. Under the quick launch area (located to the left of the screen) expand the Site Objects tab.
  5. Click on Data Sources.  The summary area should now show you a list of data sources that are inside SharePoint.  Such as lists, document libraries, etc.
  6. Click on SOAP Service Connection in the ribbon, located at the top of the screen.  You will see the following:



  7. The Service description location is where you will want to put the path to your ASP.NET WSDL.  Should be something like https://localhost/ws-server/MyWebService.asmx?WSDL or whatever you setup.
  8. Click on Connect Now or Reconnect.  You should see your other fields light up.
The rest is pretty self-explanatory.  You can edit your parameters by clicking Modify at the bottom of the screen.  Or you can flag them to be set during runtime.  Under the General tab you can place a name and description to your SOAP service.  I didn't experiment with the Login tab, but it sounds simple enough.

To add this Web Service directly to a page in SharePoint do the following:
  1. Still remaining in SharePoint Designer, click on the Site Pages option under Site Objects.
  2. Add a new ASPX page.  You can add this page by:
    1. Click on the drop-down menu for Page from your ribbon at the top of the screen.
    2. Select ASPX and rename the file.
  3. Right-click on the newly created file from your summary screen.
  4. Select Edit File in Advanced Mode from the context menu.
  5. You will see some code but, what you are interested in is the code between the <form> tags.  Click and place your cursor between those tags.  Or whatever you have setup on the page to meet your needs.
  6. From your ribbon you will want to select the Insert tab.
  7. Under the Data Views & Forms category you will want to select Data View.  This will present you with a list of options.
  8. Scroll down until you find the SOAP service you created under Data Sources earlier.  If everything is successful, you should see a new DataFormWebPart that contains data fed back from the Web Service you just called.  If you get an error you may need to check your logs to determine why.
And that is it.  You have setup your ASP.NET Web Services server, created a Web Service on that server, added that Web Service to SharePoint, and inserted the Web Service directly into a page on the SharePoint site.