Tuesday, November 29, 2005
Monday, November 28, 2005
I have been banking with Bank of America (BofA) for a few years and have generally been very satisfied with their services. However, one area of their banking practices drives me nuts: International (SWIFT) Money Transfers. Not only is the paperwork a hassle (should transferring money really require a 30-45 minute visit to the bank these days?), but unless you're careful, they'll screw you on the fees. Today's visit to the bank spurred this rant sent to the anonymous "Contact Us" elves:
I am appalled at BofA's blatant attempts at swindling your own customers when it comes to oversees money transfers. I just completed a SWIFT transaction to Norway, and had I not been mindful of your outrageously poor currency exchange rates, I would have lost another 4.5% of my transaction to your scheme.
BofA's system "recommends" that money transfers to Norway be done in Norwegian currency, i.e. that BofA handles the currency exchange. BofA's rate today for purchasing NOK was ~0.156. When transferring USD 850 this would have resulted in a net transfer of ~ NOK 5450.
Knowing that the current USDNOK rate was actually more in the neighborhood of 0.149, I insisted that the transfer be made in USD, but only through the help of a third BofA employee was my request fulfilled.
The receiving bank in Norway operates with a buy-sell spread of 0.1491-0.1486. By insisting that the Norwegian bank handle the currency exchange, I saved nearly $40 on the transaction – my net transfer will be ~ NOK 5700.
Is it not enough that BofA charges over $40 per SWIFT transaction? Must you screw your customers as well?
Scott Adams taught me a new word today: The Dilbert Blog: Peeping in My Window:
Offensive to accepted standards of decency: barnyard, bawdy, broad, coarse, dirty, Fescennine, filthy, foul, gross, lewd, nasty, obscene, profane, ribald, scatologic, scurrilous, smutty, vulgar. Slang raunchy. See decent/indecent.
Tuesday, November 22, 2005
I've been using EMS SQL Manager for SQL Server (v 2.1 Lite) with varying success for a few weeks now. It's a great tool for an unbeatable price, but my conclusion so far is that EMS doesn't quite get it. Or maybe I just don't get EMS:
For instance - there are (at least) 3 types of editors. Why 3? They're all slightly different:
The Script Editor:
- it comes with a handy left-side Script Explorer, allowing quick access to code within a large script file,
- it'll show output from stuff like PRINT 'foo' in a separate result pannel,
- but it doesn't give you a result set for, say , SELECT * FROM Foo - it just tells you in a message box that the query executed (unless you check the box that says "Don't show this message", in which case the message is displayed only in the status bar).
- It has no editing toolbar/navbar.
- it allows you to execute statements like SELECT * FROM Foo or INSERT INTO FOO SELECT * FROM Bar,
- but does NOT support statements like PRINT 'foo' - it simply ignores them.
- Unlike the other editors, the SQL Editor allows "sub-tabs"; additional queries within the same editor.
- It has an Editing toolbar/navbar, listing Find, Load, Save and Save All. A Replace feature IS available in the editor, but only from the context menu.
- This allows you to edit stored procs and UDFs
- It has a tab each for the Procedure/Function, Parameters, Dependencies, Description and DDL.
- As far as I can tell the only difference between the Procedure/Function and the DDL tabs is that the DDL tab is read-only.
- There is no edit toolbar/navbar
- There is an Object selector, which acts like a navigation tool to open a different stored proc/view. If you have made changes in the procedure and then select another, you're first asked "xxx has been changed. Do you wish to save it right now?" with the options Yes, No and Cancel. If you select No, you're asked again Discard changes? with a Yes and No option. -Superfluously superfluous.
- No central Edit menu. Yes, an Editor without an Edit menu. The user is left to discover on his/her own features like:
- Ctrl+Shift+I (indent (but only if the text is selected),
- Ctrl+Shift+U (unindent),
- Ctrl+Shift+L ("line-select" mode)
- Ctrl+Shift+C ("column-select" mode)
- Ctrl+Shift+N ("normal select" mode)
- Ctrl+F (find - arguably this IS listed in the context menu, and there's a tool menu item in the SQL editor)
- Ctrl+R (find/replace - this too is listed in the context menu, but nowhere else)
- and a whole slew of other common Edit functions that I have yet to stumble across
- There's a separate Config screen for the Editor Options (different from the Editor Options within the Environment Options config)
- There's no intellisense for parameters (@foo).
- There is no public disclosure of requests, feedback, or bugs, a la that of JetBrains. This means that every user operates in a vacuum between EMS and the user, with no ability to learn more about the product from other users. I can only imagine that this means the support personnel at EMS therefore has to field the same complaints/questions over and over.
- There seems to have been a lack of testing before shipping - I keep encountering bugs that shouldn't be that hard to reproduce (like actually using the Save Settings feature).
So why do I use the tool, if it sucks this bad? Well, it doesn't really.
I have 5 reasons, primarily, for why I use EMS SQL Manager Lite:
- Intellisense. Why MS doesn't have intellisense in their SQL tools is beyond me. EMS' intellisense feature works well (with the exception of the parameters).
- Keyboard templates. These work similar to Live Templates in ReSharper. Essentially they're SQL snippets that you can insert by typing a specific text.
- Database object hyperlinks. Within a stored procedure it is easy (Ctrl+Click) to navigate to the definition of any object used in the code.
- It's free! You get a lot for nothing, which makes it that much easier to make it the standard tool for SQL editing throughout your organization.
- Save Settings. Saving your settings and sharing the resulting registry files with other developers on your project can make it simpler to reuse and standardize code.
There are other reasons as well (tabs in DB Explorer, automatic updates, choice of MDI or windows, etc, etc), but this is getting too long already...
Monday, November 21, 2005
Fred Wilson really doesn't care much for Google Base, and gives some of his reasons in A VC: Living On The Edge (the rise of the edge feeders). I really think the first commenter, Al, has some better points.
Google Base is not a data base containing data as much as it is (or has the potential to be) an index pointing to the real data, just like Google itself isn't the internet, it just indexes the internet. With Base, Google has just taken the step of allowing people to make their data available in a properly formatted manner.
Friday, November 18, 2005
- 'Context Actions' introduced - similar to Quickfixes but not related to errors or warnings, available in specific places of code:
- 'Use string.Format()' - works on concatentation of 2 or more strings (where at least one is literal)
- 'Split into 2 if's' - works on '&&' in compound if-operator condition
- 'Merge 2 if's' - currently works on condition of a nested if-operator
- Type Hierarchy. Use View | Type Hierarchy (Ctrl+Alt+H) on a type to view it
- Refactorings: Option to not open all affected files (no undo in this case!)
- Parameter info: option to switch between signatures with arrow keys (as in VisualStudio native's intellisense)
- 'Reformat Code' without the dialog shown: Shift+Ctrl+Alt+F
- Option to switch of Ctrl-Click navigation
- Option to switch off identifiers coloring in editor
- Live Templates: macros to invoke code completion
Thursday, November 17, 2005
Wednesday, November 16, 2005
Thursday, November 10, 2005
Roy Osherove descibes the need for Creating a better BackgroundWorker: CancelImmediately and other goodies, and answers some of my questions as well.
I submitted an update to my DAL-method-generating CodeSmith template to the CodeSmith Peer Support Forum: UPDATED! DAL.cst - a Stored Procedure(s) wrapper method generator for use with MS DAAB
It's still for old .NET 1.1, and the DAAB 2.0. One of these days I'll update it for .NET 2.0 and the Enterprise Library's DAAB
Wednesday, November 09, 2005
Tuesday, November 08, 2005
I wonder how much can be done with the Visual Studio 2005 Express Editions, SQL Server 2005 Express and DotNetNuke...
Friday, November 04, 2005
So, Robert just reminded me about Flock, so I thought I'd download and have a look. The integration with blogger, del.icio.us and flickr are compelling features (I need a blog-editor other than the BlogThis dialog), but the first time I tried the blog-editor, the whole thing crashed, so it's not exactly stable yet...
2nd try works well so far - I also like the ability to add tags in the editor
Wednesday, November 02, 2005
1) Startup costs. Linux is free. Ruby on Rails is free. MySQL is free.
2) Performance per dollar. They perceive that a Linux server running Apache has more performance than IIS running .NET.
3) Finding tech staff is easier. There are a whole new raft of young, highly skilled people willing to work long hours at startups who can build sites using Ruby on Rails.
4) Perception of scalability. The geeks who run these new businesses perceive that they can scale up their data centers with Linux and not with Windows (the old “Google runs on Linux” argument).
5) That Microsoft doesn’t care about small businesses. After all, Microsoft is an evil borg, but Ruby on Rails comes from a single guy: David Heinemeier Hansson. He has a blog and answers questions fast.
6) That open source makes it easier to fix problems and/or build custom solutions. A variant of the old “Google or Amazon couldn’t be built on Windows” argument.
7) On clients, they want to choose the highest-reach platforms. That doesn’t mean a Windows app. Or even an app that runs only in IE. It must run on every variant of Linux and Macintosh too.
8) They don’t want to take shit from their friends (or, even, their Venture Capitalist). Most of this is just pure cost-control. I can hear the conversation now: “OK, you wanna go with Windows as your platform, but is the extra feature worth the licensing fees for Windows?”
9) No lockin. These new businesses don’t want to be locked into a specific vendor’s problems, er products. Why? Because that way they can’t shop for the best price among tools (or move to something else if the architecture changes).
10) More security. The new businesses perceive Linux, Apache, Firefox, and other open source stuff to have higher security than stuff built on Windows.
11) More agility. I’ve had entrepreneurs tell me they need to be able to buy a server and have it totally up and running in less than 30 minutes and that they say that Linux is better at that.
12) The working set is smaller. Because Linux can be stripped down, the entrepreneurs are telling me that they can make their server-side stuff run faster and with less memory usage.