• sreagsgio (unregistered) in reply to Guru
    Guru:
    Soviut:
    If you need to store structured data in a database, why not just use a document database like MongoDB or CouchDB?

    They really named their products that, or you just mocking up names from your head?

    I guess they don't have Google at your workplace?

  • Yim Faraday (unregistered) in reply to Severity One
    Severity One:
    slippyr4:
    Severity One:
    "At least it's not XML stored in SQL Server," Floyd added, "although we have a lot of that as well."
    Um... that's exactly what we're doing at work. If you want a generic auditing mechanism for web services, it's the easiest way to store it. Then, with Oracle's XML functions, you can create a view that looks like a proper little table.
    You're storing XML in (Microsoft) SQL Server, and then using Oracle's XML functions to create a view? That sounds like one hell of a 'WTF to me. Please submit it.
    1 2 3 4 5 6 7 8 9 10

    1 2 3 4 5 6 7 8 9 10

    1 2 3 4 5 6 7 8 9 10

    No, we're using something similar but on a different database engine. Do I have to explain everything?

    I wonder what exactly means?

  • Ralph (unregistered) in reply to Guru
    Guru:
    Soviut:
    If you need to store structured data in a database, why not just use a document database like MongoDB or CouchDB?
    They really named their products that, or you just mocking up names from your head?
    That's nothing! There was once this company that named their flagship product after the most fragile object most people encounter in their entire lives.

    Then again, given how often it broke, maybe Windows was an appropriate name.

  • Dirk (unregistered) in reply to Logger Failure
    Logger Failure:
    True story: I got a service call ... snip ... because it crashes just a second or two later!"
    The never ending storrrr-or-eeeeeeeeeeeee ah ah ahhh ah ah ahhhh ah ah ah.
  • Bill (unregistered) in reply to sreagsgio

    Storing the XML in the file system doesn't really 'beat' the storing it in a database, it's just different trade-offs.

    It's a design design, not a WTF.

    sreagsgio:
    What's wrong with that? Beats storing it in a database. If you're on a *nix esp., there's a bajillion file state systems that you can pick up that really eases this sort of thing.
  • wydok (unregistered) in reply to GUI Expert
    GUI Expert:
    TRWTF is visual basic

    Maybe I'm too new that I don't know all the inside jokes yet, but that was C#.

  • sreagsgio (unregistered) in reply to Bill
    Bill:
    Storing the XML in the file system doesn't really 'beat' the storing it in a database, it's just different trade-offs.

    It's a design design, not a WTF.

    sreagsgio:
    What's wrong with that? Beats storing it in a database. If you're on a *nix esp., there's a bajillion file state systems that you can pick up that really eases this sort of thing.
    It's just a serialized object. It's 2011. Doesn't matter if XML's used to serialize versus binary these days.
  • LOL (unregistered) in reply to Ralph
    Ralph:
    That's nothing! There was once this company that named their flagship product after the most fragile object most people encounter in their entire lives.

    Then again, given how often it broke, maybe Windows was an appropriate name.

    I'm sorry for your experience. In my world, windows are sturdy. Glass is fragile.

    Penguins, on the other side...

  • (cs) in reply to Yim Faraday
    Yim Faraday:
    Severity One:
    No, we're using something similar but on a different database engine. Do I have to explain everything?
    I wonder what exactly means?
    Depends a bit on how pedantic you are.
  • (cs) in reply to rpr
    rpr:
    rpr:
    Sounds like you work for the big red telecom giant in Canada...
    That was directed at SeverityOne, btw...
    No, I work at the big red telecom giant from... well, all over the place, really, though mostly Europe, and not Canada.
  • (cs) in reply to SCSimmons
    SCSimmons:
    Jack:
    bjolling:
    The application we are about to launch needs to be able to store its state between runs. What we are currently doing is just serialize the entire state to XML and store it as a string in the database along with some meta-data to correctly identify which state to reload, de-serialize and re-inject. If you know of a better way to store a complex state in a much simpler way, please let me know so I can rectify it tomorrow. Thanks
    Write the XML to a flat file with a datestamp in the filename. That way you can do individual backups and restores, diff vs. any historical version, distribute a favored state to a thousand clones worldwide, and a million other lovely things.
    Yet another example of my least-favorite kind of TDWTF comment: the one where I can't tell if the poster is an idiot or is just trying to pull our legs.
    I'm inclined to believe it's the former. Or somebody who just doesn't like databases, or the ability to easily drill down to the approximate time frame that your customer complained about without having to this on a file system.

    I'm sure we could use an object-oriented database and create new types on the fly as they get passed by a new web service. The solution would be so much more elegant and maintainable than storing evil XML in a database.

    I wonder, would he buy indulgences as well?

  • iMalc (unregistered)

    This comment is for future use

  • Sol (unregistered) in reply to iMalc
    iMalc:
    This comment is for future use
    Good thinking...

    Is delightful being able to use this comment only to reply it.

    Keep your eyes on the future man!! BTW, can you leave your credit cards info here "for future use" as well?

    Thanks in advance

  • (cs) in reply to Guru

    Well any "real" programmer would know they existed already. Wouldn't they?

    From the very first line of the MongoDB website:

    MongoDB (from "humongous") is a scalable, high-performance, open source, document-oriented database.

    And couchDB's slogan is "relax", so the names have an explanation if you took 2 minutes to look them up.

  • Reality King (unregistered) in reply to Soviut
    Soviut:
    From the very first line of the MongoDB website:
    MongoDB (from "humongous") is a scalable, high-performance, open source, document-oriented database.

    LOL what? You have created website for your little prank joke?

  • London Contractor (unregistered)

    Logger: Main screen turn on.

    UBERLOG: ALL YOUR LOG ARE BELONG TO US!!!

  • (cs) in reply to Soviut
    Soviut:
    Well any "real" programmer would know they existed already. Wouldn't they?

    From the very first line of the MongoDB website:

    MongoDB (from "humongous") is a scalable, high-performance, open source, document-oriented database.

    And couchDB's slogan is "relax", so the names have an explanation if you took 2 minutes to look them up.

    I confess that I had never heard of them, but, as you suggest, the length of time it took googling for it was less than it would have been to write an intellectually-challenged message asking plaintively what they are. I have learned something today, TDWTF. Good work.

  • (cs) in reply to Expert
    Expert:
    This is called "backward-compatibility" - and nobody loves to rewrite old software which suddenly stopped working when someone changed file format.
    No, this is called "future-proofing". Badly.

    Future-proofing is what you do in the present to hopefully forestall having to deal with backward compatibility issues later. It rarely works out that way.

  • Reality King (unregistered) in reply to QJo
    QJo:
    I confess that I *had* never heard of them, but, as you suggest, the length of time it took googling for it was less than it would have been to write an intellectually-challenged message asking plaintively what they are. I have learned something today, TDWTF. Good work.

    Those can go right into your résumé then.

  • geoffrey (unregistered) in reply to GUI Expert
    GUI Expert:
    TRWTF is visual basic

    VB's rapid development paradigm has probably provided more value in the business world than all other platforms combined.

  • (cs) in reply to Guru
    Guru:
    Smitt-Tay:
    Why is anyone using anything other than the system logger ?

    Every modern OS out there comes with built-in, high performance logging facilities. Just use them !

    Are they secure enough? How do you know they didn't send sensitive data directly to Steve

    They don't send it directly to Steve... not without a sceance these days anyways...

  • airdrik (unregistered) in reply to geoffrey
    geoffrey:
    GUI Expert:
    TRWTF is visual basic

    VB's rapid development paradigm has probably provided more WTFs in the business world than all other platforms combined.

    FTFY (we all knew someone had to do it)

  • TWTF (unregistered) in reply to sreagsgio
    sreagsgio:
    Guru:
    They really named their products that, or you just mocking up names from your head?
    I guess they don't have Google at your workplace?

    You must be from those guys, who surf internet for every new word encountered, instead of working.

  • (cs) in reply to TWTF
    TWTF:
    sreagsgio:
    Guru:
    They really named their products that, or you just mocking up names from your head?
    I guess they don't have Google at your workplace?

    You must be from those guys, who surf internet for every new word encountered, instead of working.

    "Oh a new word, I wonder what that means. Let me see what google has to say on the matter. I will learn something new by myself, and then I will be able to respond to the forum posts that I am wasting time at work to post on." Time wasted ~ 15-30 seconds depending on internet speed + forum commenting time + 3 tries on the captcha.

    OR

    "Oh a new word, I wonder what that means. Let me write a long post in reply to the forum where I learned the new word and question the individual's intellegence, wasting extra time so that he can look it up on google for me and then insult me for not doing the same." Time waisted ~ 3 minutes + forum commenting time + 3 tries on the captcha.

    If it consumes too much of your time to learn something as simple as the definition or meaning of a word, perhaps you should skip your smoke break to make up for the extra time. Or show up to work a few minutes early. Or stay all the way until 5.

  • Luiz Felipe (unregistered) in reply to Ralph
    Ralph:
    Guru:
    Soviut:
    If you need to store structured data in a database, why not just use a document database like MongoDB or CouchDB?
    They really named their products that, or you just mocking up names from your head?
    That's nothing! There was once this company that named their flagship product after the most fragile object most people encounter in their entire lives.

    Then again, given how often it broke, maybe Windows was an appropriate name.

    But with your Windows you can concentrate on your paisage (you real actual work), instead of messinge with the furniture.

  • TWTF (unregistered) in reply to PiisAWheeL
    PiisAWheeL:
    "Oh a new word, I wonder what that means. Let me see what google has to say on the matter. I will learn something new by myself, and then I will be able to respond to the forum posts that I am wasting time at work to post on." Time wasted ~ 15-30 seconds depending on internet speed + forum commenting time + 3 tries on the captcha.

    OR

    "Oh a new word, I wonder what that means. Let me write a long post in reply to the forum where I learned the new word and question the individual's intellegence, wasting extra time so that he can look it up on google for me and then insult me for not doing the same." Time waisted ~ 3 minutes + forum commenting time + 3 tries on the captcha.

    That's your problem.

    You wasted time in both cases...

  • (cs) in reply to TWTF
    TWTF:
    PiisAWheeL:
    "Oh a new word, I wonder what that means. Let me see what google has to say on the matter. I will learn something new by myself, and then I will be able to respond to the forum posts that I am wasting time at work to post on." Time wasted ~ 15-30 seconds depending on internet speed + forum commenting time + 3 tries on the captcha.

    OR

    "Oh a new word, I wonder what that means. Let me write a long post in reply to the forum where I learned the new word and question the individual's intellegence, wasting extra time so that he can look it up on google for me and then insult me for not doing the same." Time waisted ~ 3 minutes + forum commenting time + 3 tries on the captcha.

    That's your problem.

    You wasted time in both cases...

    Yes, and if you paid attention, I also told you how you can get that wasted time back.

  • Geoff (unregistered) in reply to SCSimmons

    Sounds great! So when the file system runs out of nodes, best case you stop getting logs, most likely case it proves catastrophic in some way for the platform and the application goes down! I like it!

    I will agree the most of the time XML in a relation database is suboptimal or even bad, but one file per XML blob for your logging is going to be a disaster unless we are talking about something where scalability is not much of a concern like a single user desktop app.

  • TWTF (unregistered) in reply to PiisAWheeL
    PiisAWheeL:
    Yes, and if you paid attention, I also told you how you can get that wasted time back.

    I took better approach - I just didn't spend ANY time on this yet another nerd-produced databases with funky names (I also didn't remember these names, saving my memory too - was it Congo-Bongo?)

  • (cs) in reply to Logger Failure
    Logger Failure:
    "Oh, yes," he said proudly "I activated the safety! The system crashes almost every afternoon, and I've developed the ability to tell when it is about to happen. Usually when everyone is logged in and starts compiling their programs, the disk drive will begin shaking violently like an unbalanced washing machine on spin. When I does, I drop whatever I'm doing, run to the computer, and press the button to protect the files from corruption. Usually I barely get there in time, because it crashes just a second or two later!"

    Clearly, cause and effect was beyond his little brain.

  • (cs) in reply to Ralph
    Ralph:
    1. Since viruses can no longer walk right through one of the ten new "remote admin" bugs patched every month to install themselves on the immutable drive, you can put a stop to the endless patch whirlwind. Yeah, your OS still has bugs. Got pwned? Reboot. Solved. Kinda reduces the payoff for hackerz.

    Nah. The payoff is even more fun:

    do forever
       wait(5)
       if systemup(target) & \system_pwned(target)) then do
           execute_permanent_exploit(target)
       end
    end
    

    Isn't an automated hack a bitch?

    Ralph:
    2. Twice a year when you feel like installing the latest service pack or whatever, download it, disconnect from the net, press the write enable button (physical button, untouchable by software) and apply the bundle. Power off, write protect, boot. A piece of cake for anyone competent, scary as hell for the beloved know-nothings we must worship with every gigabyte of bloated code.

    ...and, given the above, you will be doing this more than twice a year.

  • Meep (unregistered) in reply to Yim Faraday

    It means "literally."

  • (cs)

    This is a really good one. Application logging itself is The Real WTF, though. I think something like 99% of logging is B.S. anyway. I often ask about 'logging errors' when I'm interviewing for a new minion, and if I get an overly enthusiastic response, I don't hire that candidate.

    An error just happened. Let me see... should I try to do I/O? Oh, and let me make sure I use Java or C# to do it, and use a bunch of fancy types in the process.

    WRRRRRRRRONG!

  • Support Engineer (unregistered) in reply to bridget99
    bridget99:
    This is a really good one. Application logging itself is The Real WTF, though. I think something like 99% of logging is B.S. anyway. I often ask about 'logging errors' when I'm interviewing for a new minion, and if I get an overly enthusiastic response, I don't hire that candidate.

    An error just happened. Let me see... should I try to do I/O? Oh, and let me make sure I use Java or C# to do it, and use a bunch of fancy types in the process.

    WRRRRRRRRONG!

    Care to explain what you do when a customer calls saying "Your application crashed while I was writing something".

    With no continuous or post-mortem log/minidump how do you intend to go about finding out what went wrong so you can fix the issue?

    That's why logging of some kind is necessary for any important application - because without it you won't get any idea as to why it died unless it's running attached to a debugger when it dies.

    Even if you're happy to take the performance hit of doing that, your users are not going to be installing debugging tools!

    I've seen a lot of issues solved by inspecting the logs.

    I've also seen issues caused by daft logging, and issues that are impossible to log because the system has failed hard and can't write anything anymore.

    • The last is easier to fix if you log continually rather than on failure, though obviously that has a cost and it doesn't always work anyway.

    Just because it's possible (nay, easy!) to get it horribly, horribly wrong, doesn't mean the fundamental idea is wrong.

  • Poutang (unregistered) in reply to bridget99
    bridget99:
    This is a really good one. Application logging itself is The Real WTF, though. I think something like 99% of logging is B.S. anyway. I often ask about 'logging errors' when I'm interviewing for a new minion, and if I get an overly enthusiastic response, I don't hire that candidate.

    An error just happened. Let me see... should I try to do I/O? Oh, and let me make sure I use Java or C# to do it, and use a bunch of fancy types in the process.

    WRRRRRRRRONG!

    Thers's a bunch of words there, but they don't quite make logical sense together.

  • TWTF (unregistered) in reply to Poutang
    Poutang:
    bridget99:
    This is a really good one. Application logging itself is The Real WTF, though. I think something like 99% of logging is B.S. anyway. I often ask about 'logging errors' when I'm interviewing for a new minion, and if I get an overly enthusiastic response, I don't hire that candidate.

    An error just happened. Let me see... should I try to do I/O? Oh, and let me make sure I use Java or C# to do it, and use a bunch of fancy types in the process.

    WRRRRRRRRONG!

    Thers's a bunch of words there, but they don't quite make logical sense together.

    Wording is not clear, true, but sense is there.

    tl;dr - system runs out of resources, trying to log system failure, using complicated libraries, requiring some extra resources for loading

  • (cs) in reply to bridget99
    bridget99:
    This is a really good one. Application logging itself is The Real WTF, though. I think something like 99% of logging is B.S. anyway. I often ask about 'logging errors' when I'm interviewing for a new minion, and if I get an overly enthusiastic response, I don't hire that candidate.

    An error just happened. Let me see... should I try to do I/O? Oh, and let me make sure I use Java or C# to do it, and use a bunch of fancy types in the process.

    WRRRRRRRRONG!

    Oh yes, I recognise you. You're the person who wrote that open letter to David Korn complaining about the fact that you don't enjoy your job because it's not exciting, and somehow you believe it's his fault. I think perhaps the fact that your job is not exciting is more to do with the fact that you don't have the personal qualities necessary to perform an exciting task. This posting would seem to confirm it.

  • (cs) in reply to bridget99
    bridget99:
    This is a really good one. Application logging itself is The Real WTF, though. I think something like 99% of logging is B.S. anyway. I often ask about 'logging errors' when I'm interviewing for a new minion, and if I get an overly enthusiastic response, I don't hire that candidate.

    An error just happened. Let me see... should I try to do I/O? Oh, and let me make sure I use Java or C# to do it, and use a bunch of fancy types in the process.

    WRRRRRRRRONG!

    Um... that's what you use a logging framework for, such as log4j. It takes care of all these scenarios.

    If I forego error logging in my applications, my boss will unhire me.

  • (cs) in reply to QJo
    bridget99:
    This is a really good one. Application logging itself is The Real WTF, though.

    I agree. Log files, trace dumps, core dumps and all that are signs of bad programming. "Well, we don't know what we just wrote, we don't know how it will behave, it just might work, but if it doesn't, at least we have a log file, and a strack trace, and, and, and."

  • (cs) in reply to Ralph
    Ralph:
    Guru:
    Soviut:
    If you need to store structured data in a database, why not just use a document database like MongoDB or CouchDB?
    They really named their products that, or you just mocking up names from your head?
    That's nothing! There was once this company that named their flagship product after the most fragile object most people encounter in their entire lives.

    Then again, given how often it broke, maybe Windows was an appropriate name.

    I don't know of a flagship product called Eggshell

  • (cs) in reply to QJo
    QJo:
    Soviut:
    Well any "real" programmer would know they existed already. Wouldn't they?

    From the very first line of the MongoDB website:

    MongoDB (from "humongous") is a scalable, high-performance, open source, document-oriented database.

    And couchDB's slogan is "relax", so the names have an explanation if you took 2 minutes to look them up.

    I confess that I had never heard of them, but, as you suggest, the length of time it took googling for it was less than it would have been to write an intellectually-challenged message asking plaintively what they are. I have learned something today, TDWTF. Good work.

    MongoDB's actually a fairly well-known DB. It can seriously boost heavy-traffic sites' performance -- if their usecase allows a string-based (instead of a tables-based) DB. That very concept makes it useless for 90% of the usecases. The other 10% benefit HIGHLY from it. Then again, even if your case fits those 10%, you'll still have to get your sysadmins to accept and install it.

  • (cs) in reply to bridget99
    bridget99:
    This is a really good one. Application logging itself is The Real WTF, though. I think something like 99% of logging is B.S. anyway. I often ask about 'logging errors' when I'm interviewing for a new minion, and if I get an overly enthusiastic response, I don't hire that candidate.

    An error just happened. Let me see... should I try to do I/O? Oh, and let me make sure I use Java or C# to do it, and use a bunch of fancy types in the process.

    WRRRRRRRRONG!

    Damn right! If you don't plan to crash your car, you don't need airbags. If your house has proper electrical wiring, you don't need fuses. If your system is written and implemented correctly, you don't need logging.

  • (cs)

    You, dear sirs, have been trolled.

    Must be a troll.... I hope.

  • (cs) in reply to TheSHEEEP
    TheSHEEEP:
    You, dear sirs, have been trolled.

    Must be a troll.... I hope.

    An obvious one, at that. Still, can be fun sometimes, no?

  • nag_geoff (unregistered) in reply to The poop of DOOM
    The poop of DOOM:
    bridget99:
    This is a really good one. Application logging itself is The Real WTF, though. I think something like 99% of logging is B.S. anyway. I often ask about 'logging errors' when I'm interviewing for a new minion, and if I get an overly enthusiastic response, I don't hire that candidate.

    An error just happened. Let me see... should I try to do I/O? Oh, and let me make sure I use Java or C# to do it, and use a bunch of fancy types in the process.

    WRRRRRRRRONG!

    Damn right! If you don't plan to crash your car, you don't need airbags. If your house has proper electrical wiring, you don't need fuses. If your system is written and implemented correctly, you don't need logging.

    This kind of thinking is dangerous for the progress of civilization. You Sir, have been warned.

  • (cs)

    This scarily reminds me of something we use at work. The idea from on high (i.e. from the executives) was to be able to log anything and everything, depending on the page. Something like log4net wouldn't work because (and I could be wrong here) it's just a system log, for errors or informational things like "User X logged in at 3:00 PM", while what we needed was to log actions the user performs.

    I'm guessing this "Uber-Logger" does something like that, the generic fields are so different things can be tracked on different pages - so generic String #1 might be "updated customer" on one page or "submitted ticket" on another.

  • Simply Zunesis (unregistered) in reply to Vexorg
    Vexorg:
    (Insert appropriate "LOG ALL THE THINGS!" meme here)
    I'll log anything that moves!
  • Lick My Love Log (unregistered) in reply to bridget99
    bridget99:
    This is a really good one. Application logging itself is The Real WTF, though. I think something like 99% of logging is B.S. anyway. I often ask about 'logging errors' when I'm interviewing for a new minion, and if I get an overly enthusiastic response, I don't hire that candidate.

    An error just happened. Let me see... should I try to do I/O? Oh, and let me make sure I use Java or C# to do it, and use a bunch of fancy types in the process.

    WRRRRRRRRONG!

    Hmmm... Troll or retard? It's so hard to tell sometimes.

  • Peter (unregistered) in reply to Steve
    Steve:
    Time to ask a stupid question - Why would anyone create these "place holders"? I mean, why can't you just add new variables as you need them?
    This code looks like something a "friend" writes, and if so, then the business logic layer (notice the BLL at the beginning, BLL = "business logic layer") object will explode from uninitialized variables when the line
    bool retVal = logEntry.InsertLogEntry();
    gets hit on.

    It took a couple years to get this guy to use Microsoft's Enterprise Library, and to make a dictionary to pass to the logger, so that each page can have any arbitrary number of things logged. Some of his code is quite worthy of this site, and I've made more than enough to buy a nice car from companies who hire me to fix his messes.

  • (cs)

    As matter of fact, you should have logging feature turn off. This make sure that application move at lightspeed. Also turn off peski firewall and anti-virus.

    Speed is important and any rode blocks must be demolished.

Leave a comment on “The Über Logger”

Log In or post as a guest

Replying to comment #:

« Return to Article