There are days when I reeeeeeally like dealing with Microsoft. Today is one of those days. Under the terms of my BizSpark license, I can legally install Microsoft Dynamics GP. It’s a huge accounting package if you didn’t know. The point is that we can use a fully featured accounting package for $0 instead of having to deal with the small business offerings from PeachTree or Intuit.
We are currently using Quick Book Business something 2009 blah, blah, blah… I loath Intuit and their pricing policies.
“Why does Quick Books 2009 complain every time I fire it up?”
“The 2009 version doesn’t support Win7. You’ll have to buy the upgrade.”
“What’s the deal with this rounding error? There are posts all over your support site about a bug adding a penny to transactions”
“We have a fix for that but you’re not paying for support so we can’t help you.”
“So you have a known defect in your product. You have a patch for the defect and you will not release it without a $80 annual fee.”
“That’s correct sir. There are two other ways to resolve the problem. Re-enter all of your transactions, by hand or purchase the latest version of our product. Sorry”.
No thanks. I’ll find something else. Maybe something from Microsoft.
I’ll be the first to admit no application is perfect. I am sure there are weaknesses in GP, but service packs are FREE from Microsoft. And if you do think there is a bug, they have a process to report it and get it fixed for all users. If I request support and the issue is found to be a defect, I pay nothing for the support ticket. If I screwed something up, then I pay the fee to get help getting it fixed. This seems a lot more up front and honest than what Intuit is doing.
I have several clickonce deployments. And it gets old having to manually increament my version numbers in the AssemblyInfo file especially when my deployment method does that on it’s own.
So… Here’s my solution. Read more…
You have a list of “something” and you want to remove items from the list. I can think of a couple ways to do this.
Remove Items V1:
List myList = new List() { “one”, “two”, “three” };
// print out the original list
foreach (string item in myList)
Console.WriteLine(item); // one two three
myList.Remove(”two”);
// print out the new list
foreach (string item in myList)
Console.WriteLine(item); // one three
Remove Items V2:
List myList = new List() { “one”, “two”, “three” };
// print out the original list
foreach (string item in myList)
Console.WriteLine(item); // one two three
myList = myList.Expect(i => i == “two”);
// print out the new list
foreach (string item in myList)
Console.WriteLine(item); // one three
Notes:
The rules for a foreach loop don’t allow you to delete or nullify an object in the collection during the looping, so you need to remove items more directly. For complete objects, this can be a bit harder. Leveraging LINQ can make the task much easier. With the second example, you could use any property/method within the complex object for your comparison. E.G.: IsDirty or ItemFlaggedForDelete().
Ever tried to debug a loop inside a listObject.Range? Use get_Address(). It makes the process a lot easier.
Code: Read more…
Description:
Set a cell’s solid background color using a single user-defined color.
Code: Read more…
Description:
Set a cell’s background color to a vertical gradient using two user-defined colors.
Code: Read more…
Description:
I need to link an list of (string) items into a sentence at runtime. Here’s a short and simple method to handle the commas and ampersand.
Code: Read more…
Description:
WinForm controls placed in a worksheet while it is not at 100% will be positioned incorrectly. Here’s a simple workaround to change the zoom to 100% then revert to the previous setting.
Code: Read more…
Below is code loading and examining an assembly.
Problem:
You want to open an assembly to see what’s inside with as little effort as possible.
Solution:
I’m sure there are easier ways but this works…
Code: Read more…
With Visual Studio Team System, the LocalTestRun.testrunconfig file controls execution parameters for running tests. The default timeout on individual tests is 30 minutes. Ouch!
Solution:
- Double click on the ‘Solution Items\LocalTestRun.testrunconfig’ file.
- Select ‘Test Timeouts’
- Set the individual test time to your preference or set a total time abort if you prefer.
There are days when I really wonder about people and their thought process. OK. I wonder every day, but that’s a different issue.
Please read: http://www.wired.com/geekdad/2009/12/swat-team-takes-down-man-armed-with-lego-gun/
First thought: I gotta get one of those!
Second thought: Why do people freak out so badly when there isn’t a problem yet act like total sheep when there really IS a problem? His own office mates didn’t think anything of it. They already know about his LEGO obsession. Yet some nosey woman spots his from outside the building and makes the mad dash to call 911. SWAT comes blazing in. It’s amazing to me that no one was shot. <sigh>
We can’t be bothered to take care of our children or create an open society where disagreements are allowed and even encouraged. Yet, we can narc on anyone without a single scrap of fact.
Wonderful.
Jumping to conclusions is the only sport we excel at. Maybe that guy with the LEGO gun needs to do a few laps for his shortsightedness. After all he was playing with a toy in his own office, with the door closed.
It is a crazy world.