- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
First? Really? Oh, happy day!
Admin
UGLY!!! :(
Admin
I'll do it to spare everyone else the trouble: The real WTF is the syntax of that language!
Admin
Now, I've seen lots of ugly languages (and code) but this has transcended fugly into demanding new, hithereto unknown realms of invectives to describe it.
Admin
I dunno, looks like a bad language to me. That @If operator alone should inspire a mob and a bonfire. It almost looks like the language was designed to inspire overdesigned, complex and usually wrong solutions.
In fact, it reminds me of my lotus 123 scripting days, and that WAS a bad language. What are the odds that lotus would produce 2 totally awful script languages?
Admin
It's not so bad..........................it's more tingly than hot.
Admin
Normally the tingling means it's working. In this case...not so much.
Admin
He must make a ton!!!! Lots of lines means lots of money $$$$
Admin
Our company uses Lotus Notes, and eveyone hates it. I always wonder if it's pile-o-poop out of the box, or we have some crazy inhouse Notes programmers. After seeing this code and the language syntax, I think I have my answer...
Admin
WTF is up with that language. Seriously, WTF. How does someone that is so retarded actualy write code in that lanugage? And WTF WTF WTF. WTF. WTF WTF WTF. W, TF. WTF!
Admin
All those '@' symbols in front of everything are like Excel, as well. I guess they got the ideas from Lotus 1-2-3. I didn't do much advanced work in 1-2-3, but I do know that in Excel you have expressions like:
@IF(condition, do if true, do if false)
Unlike Lotus Notes, Excel (and OpenOffice.org) do not allow arbitrary nesting at one level. To get multiple levels, you have to nest them:
@IF(condition1, do if true, @IF(condition 2, do if true, do if false))
I remember having to create horrendous looking expressions to produce letter grades (A/B/C/D/NC) from numeric averages.
Admin
A while ago (Lotus Notes 3 maybe?) a co-worker of mine tried doing a simple script to forward incoming emails to another person in conjunction with the out of office agent. He ended up creating the Lotus version of the Melissa virus. Just the thought of scripting anything for a Lotus product makes me queasy. +o(
Admin
Wow. You couldn't pay me enough money to use Lotus Notes. I thought Visual Basic was ugly, but Lotus Notes...wow. I am so horrified that I cannot think of the words to describe how ugly that is. I would rather code in binary.
01001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001
Admin
The forum software strikes again!
Admin
@Lotus
:@Sucks
Did I get the concatenation right?
Admin
Solid.
Sadly, the old User Interface Hall of Shame, which had an entire anti-usability section reserved for Lotus Notes, seems to be missing in action. Pity. That site made great reading.
Admin
sinistral: In most cases a nested IF() in a spreadsheet mean you're thinking about the problem in the wrong way. You usually are logically looking something up out of table, for which VLOOKUP does the job handily. It's an old idea, I first used it in Lotus 1-2-3 for DOS and have found it in every serious spreadsheet I've used since. The best part is that it's easy to change or expand the lookup table.
Admin
Nobody likes Notes, except grizzled old Notes programmers, and its function is replaced MUCH better (and MUCH cheaper) by Microsoft Exchange/Outlook and Access. (And I know, Access sucks, but compared to Notes it's heaven-sent.)
My theory is that IBM sells Notes via hypnosis.
Admin
Let's here it for people who make content available when it no longer exists at the original site:
http://homepage.mac.com/bradster/iarchitect/lotus.htm
and, here is a page of people who have other issues with it:
http://www.computergripes.com/LotusNotes.html
Admin
I hate here/hear their/there it's/its errors in other's writing, and now I go and make one myself. Grumble.
Admin
hehehehehe....
01001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001010011000110111101110100011101010111001100100000010011100110111101110100011001010111001100100000001011010010000001010111010010000100000101010100001000000101010001001000010001010010000001000110010101010100001101001011001111110010000100111111001000010100110001101111011101000111010101110011001000000100111001101111011101000110010101110011001000000010110100100000010101110100100001000001010101000010000001010100010010000100010100100000010001100101010101000011010010110011111100100001001111110010000101001100011011110111010001110101011100110010000001001110011011110111010001100101011100110010000000101101001000000101011101001000010000010101010000100000010101000100100001000101001000000100011001010101010000110100101100111111001000010011111100100001
Admin
Anyone here had to program monk? That is a pretty nasty language as well.
myfunction()(
)
Admin
I can tell that you get truck loads of Redmond Kool-aid sent you in convenient IV drip bags. Only someone who lives and breathes the Northwest air and has never actually looked under the hood of a large Notes deployment would make a comment as ridiculous as you just did. The day you can build ANY REAL application in Exchange and acccess it via Outlook will be the day that Ray Ozzie is
working atrunning MS. And considering they are both built on the ancient Jet engine technology says enough about their ability to scale to the enterprise.Anyways, for those of you who look at the code above and go "You call that a programming language?", think of the @Formula language in Notes the same way you think of the macro language Excel. It was built to let power users do some advanced things without having to call the IT department. Unfortunately, it also allowed some non-geeks to write some truly horrid functions. But at least it gives some of us a laugh or tw now and then. I can't imagine the time it took to write this function when it could be replaced by just the name of a field.
My theory is the MS sells Exchange by simply bribing the IT upper management. Who needs hypnosis when you can just buy them off.
Admin
So I take it your consultant added a 21st item, and billed for three hours, with the option of another item for an hour extra each? ;)
Admin
I think you misspelled "3".
I was modifying a combination item worksheet and invoice in Lotus Symphony, and in order to copy relevant item lines to the print area of the spreadsheet, I had to code double indirection.
Sincerely,
Gene Wirchenko
Admin
As the guy who wrote the current Notes formula language engine, let me say all these formula hating comments make me weepy.
So so so sad :(
Admin
Exchange is based primarily off of SQL Server (2000, not the godforsaken Sybase versions). Um, if Exchange was based on Jet, I very much doubt anyone would be able to run it on 200 meg stores, let alone the 2 TB stores I've seen. And it is a good email system, not great, but just a very mediocre content management system for its price.
Outlook is just overblown, who needs an application platform without any applications. Like Eclipse, where the IDE is the only part anyone uses. Notes is the only widespread app platform with many useful apps, and maybe Mozilla. (Unless you count office.)
Admin
Hrm. I just read the following at that link: "Why the designers chose to use an arrow pointing to the right to indicate downward movement is one of the many mysteries of this program."
It's called a disclosure triangle. They're used all over the place.
(not that the interface isn't otherwise bad, but that's the wrong thing to pick on.)
Admin
As you can see by this article, not only is the current Exchange 2003 based on the JET engine, but the upcoming Exchange 12 will be based on it too. Exchange 2003 Standard Edition has a limit of 16GB for a mailbox store and Enterprise Edition 2003 SP2 ups the limit to 75GB.
Admin
That's bizarre, I had it on good authority that it was a custom-modified SQL Server database. I stand corrected, I guess I'll have to check my sources better.
Admin
That would explain a lot...
At my old job, the reason for using exchange was "We're a microsoft shop". EVERYTHING had to be microsoft. What fun.
Admin
Admin
I can tell that you get truck loads of Redmond Kool-aid sent you in convenient IV drip bags.
Nope. I'm just fed up supporting that piece of crap email client that sucks ass.
Yes, I know you can use it to write applications, and we even have one that's not terrible. But 90% of businesses use it for email, and it sucks ass for email. It's slow. It uses a brain-dead folder scheme that practically guarantees you'll accidentally delete messages. It won't let you sort by subject. The mousewheel doesn't work in every view. The address book looks, and works, like it hasn't been modified since 1985. In some views, it sorts users by first name... in some views it sorts users by last name... and there's never column headers to change sort order for users. The address book has two pointless default entries that do nothing, but you can't get rid of them. The "Edit Attachment" function is perfect for encouraging my users to delete their data without warning them. (And there's no way to disable it with the admin utility.) It adds the IM toolbar even after I specifically tell it I don't have an IM server. (Yes, it's minor, but it's still stupid as hell.) It often, like daily, brings up error dialogs that read, "this class does not contain that object" without telling you which class has the error or which object it lacks, making it impossible to debug anything. It's bloated, it's slow. When you hit the close box, Windows usually thinks it's not responding because it takes more than 15 seconds to close. When it crashes, it won't run again until you run Windows again. It wasn't multi-user aware until version 6 (even though version 4 ran on multi-user NT.)
Try this. Open Notes 6.5 and go to your In Box. (The default template In Box that comes with Notes.) Hit F6, and press right and left arrow... watch as the little pane reading "for James Schend" moves left and right for no apparent reason. What the hell?
Does Exchange suck? Yes, it sucks. Groupwise sucks, also. In fact, all the groupware software out there sucks. But Outlook is 100 times more pleasant to use than Notes, and my users all agree.
BTW, you can be a "IBM shop" also... trust me, coping with OS/400, Infoprinters, Lotus Notes and "consultants" is much worse than anything Microsoft can throw at you.
Admin
It think what you are acctually trying to say here is "WTF".
Admin
I've seen worse ...
Try to code some PSP scripting ... (Corel Paint Shop Pro).
That's more weird... the { }, begin // ends, are based on indentation !
If you "don't see" a TAB.. imagine what happens...
Admin
Hypnosis? I thought it was hookers and liquor.
Admin
All good programmers indent their code anyway.
Python just saves you having to both indent and type braces.
Admin
As I recall. . . the rule at M$ was that "DOS isn't done until Lotus won't run. . .
Admin
Hey, that's what they say where I work... You from Norway, by any chance?
*sigh*...
Admin
The author is definitely wearing the juice (I think we need to get this comment started).
Admin
You should n't worry, remember they are WTF programmers.
Admin
Notes formula language. One of at least five ways to get a programming interface to Notes:
Formula, IIRC kind of inherited from 1-2-3, next Lotusscript language with VB-like syntax but a special Notes object model which takes several months to really understand, java classes which access the same object model, nearly same thing in the form of C++-Classes, and finally the magic C-API which allows to access nearly all of Notes´ deepest internals - mighty, but you really have to understand the way Notes works before using it. Nevertheless one of the best documented and working programming interfaces to commercial, non-open-source-software I´ve ever seen.
All of those have special restrictions, strengths and weaknesses, but the sad thing with this wtf is, that formula language (if understood) is quite good in handling lists (as long as you don´t try to sort them in Notes < 6. No sort operator. An implementation of a sorting algorithm in Notes formula is among the weirdest things I´ve ever seen). The lack of an iteration construct (I think they have introduced one now) simply demands thinking in functional ways about dealing with lists, and it's fast as hell.
Unfortunately the barrier to enter Notes programming is held quite low, while the barrier to program Notes in a reasonable way is quite high, so I´ve seen a lot of so-called programmers trying to do things in Notes and fail spectaculary. Most of this is attributed to Notes itself, some of it justifiably so, some not.
Admin
I've got the bonfire burning ...
Let's get'em !!!
By the way, I would love to know if there is a @Switch operator with the ingenious syntax of @If ... now that would be amazing ( to further obfuscate code )
__
Rui
Admin
Wow! This looks like a Boost header file.
Admin
A language where formatting is significant is an unnecessarily restrictive language. Whitespace should never impact program logic. It's dumb.
We do email newsletters, and some of those end up in Notes clients. We've had three different clients give us a shot of how a letter looked in their Notes, and what we got back ranged from the almost-correct to the displaying of a single line of text seemingly unrelated to the letter at all.
Admin
Yeah. Instead, python gives you endless hours of fun when your indention settings doesn't matches the settings of the guy who originally wrote the script that you're modifying.
It also gets hard to read very quickly because the blocks aren't visible quite as easily without braces.
Also, a simple indention error change the behavior of the code.
This was a very bad idea in a language that is otherwise ok.
Admin
before version 6 there was no looping so you had to do this sort of shit if you wanted to use formula language (all that @if crap). Anyone with a bit of cop on would have done this with lotusScript however
Admin
It always does, if you count linefeed as whitespace.
Admin
R U kidding right? no loop??!?!?!?!?!? at least there must be a GOTO function, recursion?
No Loop => No Programming Languaje!
Admin
there must be a way to make a loop
The simples languaje I remember has only these instructions:
V<- X0
V<-V+1
IF V=0 GOTO L
where L is a label and X0 is the first input