Double Line

  • QJo 2011-08-25 10:03
    FristOfManyCommentsOrItWillBeIfICanFinishWritingItBeforeSomeoneElseGetsThereBeforeMeAlthoughIKnowThisIsProbablyAFairlyForlornHope

    And Akismet thinks it's spam. What is he on?
  • Akismet 2011-08-25 10:17
    QJo:
    FristOfManyCommentsOrItWillBeIfICanFinishWritingItBeforeSomeoneElseGetsThereBeforeMeAlthoughIKnowThisIsProbablyAFairlyForlornHope

    And Akismet thinks it's spam. What is he on?


    Crack, mostly.
  • DonaldK 2011-08-25 10:18
    Double FRIST

    Or maybe not.
  • tehR 2011-08-25 10:18
    It's self-documenting code. D'uh.
  • Charleh 2011-08-25 10:18
    Wow, almost frist never seen so little comments on a WTF - must have clicked on at the instant it was posted.

    By the time I've finished writing this, I predict there will be at least 5 other comments...
  • ubersoldat 2011-08-25 10:21
    Ah! This reminds me of some code I found from some guy who really loved Grails dynamic finders, but this guy took the concept to another level:

    findAllByDateTimeReceivedBetweenAndAmountLeftJoinByIdsGroupByAmountBookUserTitle(java.sql.Date date)

    Not exactly the name of the method, but you get the idea.
  • QJo 2011-08-25 10:23
    I've thought of a way to improve it:

    public bool SSPCSPPAUPPAUPMTBDNMAPTHNDPA
    {
    get;
    set;
    }

    ... cut the name down to its initials. A dramatic improvement, though I say it myself.
  • Melnorme 2011-08-25 10:31
    int length = 3;

    Optimized.
  • BentFranklin 2011-08-25 10:37
    The first one seems to be a sarcastic response to something a PHB might have said.
  • Jerry 2011-08-25 10:38
    print $commentNumber%8?"TRWTF is VB":"Frist!"
  • Warren 2011-08-25 10:40
    Clay continues, "someone should write a plug-in that limits method names to a sane amount of characters."

    He submitted it using the Daily WTF add-in. That limits bad practice for most of us....
  • ThingGuy McGuyThing 2011-08-25 10:45
    I'm not sure how this is going to "corrupt data".

    int length = data.GetRange(0, 3).ToArray().Length;


    The summary (seems to) state that data will be a 3-character string. I thought maybe it was failing on 0/1/2-character strings, but GetRange would throw an exception, rather than "corrupting data".

    Either the summary is confusing, or I'm missing something fundamental. 50/50 odds, I'd say.

  • snoofle 2011-08-25 10:50
    Imagine the auto-complete fun if there were several similarly named functions:

    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready1
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready2
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready3
  • AP2 2011-08-25 10:51
    When Martin Fowler wrote "Code As Documention", I think that wasn't what he had in mind.
  • frits 2011-08-25 10:52
    I'm usually pro Camel/Pascal casing. However, this WTF shows readability does seem to break down with very long variable names. Maybe I'll join the underscore camp now.
    //See- so much better
    
    public bool Setting_Store_Price_Changes_Store_Product_Price_And_Updates_Product_Price_And_Updates_Product_Modified_Timestamp_But_Does_Not_Modify_A_Product_That_Has_Non_Default_Pricing_Already
    {
    set;
    get;
    }

  • GFK 2011-08-25 10:55
    int length = data.GetRange(0, 3).ToArray().Length;


    When you see stuff like that in one of those applications, you know somewhere up in the call stack there's something like

    try
    {
    // Use the data
    ...
    }
    catch(ArgumentException)
    {
    // OPTIMIZATION!!
    // To avoid testing if data.Length < 3, I'll just catch
    // the exception thrown here
    DoSomeVeryImportantStuffInCaseTheLengthOfDataIsInferiorToThreeBecauseExceptionsAreLikeReturnsAndCatchClausesIsWhereRealMenDoBusinessLogic();
    }


    that you will totally break if you correct the aforementioned line.
  • hfrmobile 2011-08-25 10:55
    For the first thing, StyleCop will give you a warning for such beautiful and descriptive names. StyleCop will also warn you if you forgot providing /// comments for public properties, methods, ...

    But such smart developers will disable that warnings ^^
  • Fjool 2011-08-25 10:56
    Having 'and' in a method/test name is a smell indicating the method is doing more than it should. In this case, however... :?

    captcha: consequat - the results of eating an overripe kumquat
  • Zylon 2011-08-25 11:02
    Fjool:
    Having 'and' in a method/test name is a smell indicating the method is doing more than it should. In this case, however... :?

    function crashAndBurn()
  • piskvorr 2011-08-25 11:03
    ...AndMakesYouCoffeeAndFixesTheKitchenSinkToo()

    and this and that and another thing, and it adds up to nothing in particular.
  • GFK 2011-08-25 11:06
    frits:
    I'm usually pro Camel/Pascal casing. However, this WTF shows readability does seem to break down with very long variable names. Maybe I'll join the underscore camp now.
    //See- so much better
    
    public bool Setting_Store_Price_Changes_Store_Product_Price_And_Updates_Product_Price_And_Updates_Product_Modified_Timestamp_But_Does_Not_Modify_A_Product_That_Has_Non_Default_Pricing_Already
    {
    set;
    get;
    }



    I prefer fluent stuff, because you can use returns! So much more readable like this:

    Setting(Store.Price
    .Changes(
    Store().Product.Price
    .And(
    Updates(
    Product.Price
    .And(Updates(Product.Modified(Timestamp()
    .But(Does
    .Not()
    .Modify(A.Product
    .That().Has(Non().Default.Pricing.Already()
    ))))))))));
  • anonymous 2011-08-25 11:06
    Charleh:
    Wow, almost frist never seen so little comments on a WTF - must have clicked on at the instant it was posted.

    By the time I've finished writing this, I predict there will be at least 5 other comments...

    !nostradamus
  • frits 2011-08-25 11:07
    The first one is actually from obfuscated code. The developer used a product called ItWorksBecauseItTurnsAllPropertyNamesIntoLongWindedNonsenseAndMostDevelopersHaveADHDAndWillLoseInterestFuscator.
  • OneMist8k 2011-08-25 11:19
    Apropos of the WTF on female programmers, I'm going to guess the gender of each programmer.

    The first one was written by a female who likes long members.

    The second was written by a male who thinks length doesn't matter.

  • boog 2011-08-25 11:21
    snoofle:
    Imagine the auto-complete fun if there were several similarly named functions:

    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready1
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready2
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready3
    Could this really be a case where it's better design (for maintenance' sake) to put a number at the end of the function? You could easily look at the end of the name to know what you're dealing with.

    Consider the alternative:

    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceButDoesNotUpdateProductModifiedTimestampOrModifyAProductThatHasNonDefaultPricingAlready
    SettingStorePriceChangesStoreProductPriceButDoesNotUpdateProductPriceOrUpdateProductModifiedTimestampOrModifyAProductThatHasNonDefaultPricingAlready
    SettingStorePriceChangesStoreProductPriceButDoesNotUpdateProductPriceButDoesUpdateProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndHolyShitsnacksIHopeNobodyHasToMaintainThisSinceItsHardToSeeDifferencesInTheseNamesWhenTheyreNotLinedUpAboveEachOther
  • Abso 2011-08-25 11:22
    frits:
    I'm usually pro Camel/Pascal casing. However, this WTF shows readability does seem to break down with very long variable names. Maybe I'll join the underscore camp now.


    I think it's improved even more if you don't mix the two systems. That is, do use underscores, but don't capitalize every word.

    Look at how nearly-readable this is!
    
    public bool Setting_store_price_changes_store_product_price_and_updates_product_price_and_updates_product_modified_timestamp_but_does_not_modify_a_product_that_has_non_default_pricing_already
    {
    set;
    get;
    }

  • Someone who can't be bothered to login from work 2011-08-25 11:34
    hfrmobile:
    For the first thing, StyleCop will give you a warning for such beautiful and descriptive names. StyleCop will also warn you if you forgot providing /// comments for public properties, methods, ...

    But such smart developers will disable that warnings ^^


    Only if they don't also use StyleCop, which will by default complain about exactly the same thing. In fact it will complain about them being missing on private ones too.

    Documenting things using the native documenting system is hardly a terrible idea. Especially given Visual Studio will show those comments if you hover over a reference.
  • thistooshallpass 2011-08-25 11:37
    QJo:
    I've thought of a way to improve it:

    public bool SSPCSPPAUPPAUPMTBDNMAPTHNDPA
    {
    get;
    set;
    }

    ... cut the name down to its initials. A dramatic improvement, though I say it myself.


    Send your resume to Peoplesoft, they hire people like you to design their data model.

    Why use a long name when "PSAESTEPMSGDEFN" will do the trick?
  • Rawr 2011-08-25 11:37
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool ChangingStorePriceModifiesProductInfo
    {
    set;
    get;
    }

  • virago 2011-08-25 11:40
    OneMist8k:
    Apropos of the WTF on female programmers, I'm going to guess the gender of each programmer.

    The first one was written by a female who likes long members.

    The second was written by a male who thinks length doesn't matter.



    That's so disgustingly sexist I'm going to reply angrily to every single post I see from now till the next WTF is posted. Come the revolution, every computer software engineer will be female and those nasty geeky nerdy boys will be banished to wherever those nasty asperger types belong.
  • QJo 2011-08-25 11:42
    boog:
    snoofle:
    Imagine the auto-complete fun if there were several similarly named functions:

    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready1
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready2
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready3
    Could this really be a case where it's better design (for maintenance' sake) to put a number at the end of the function? You could easily look at the end of the name to know what you're dealing with.

    Consider the alternative:

    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceButDoesNotUpdateProductModifiedTimestampOrModifyAProductThatHasNonDefaultPricingAlready
    SettingStorePriceChangesStoreProductPriceButDoesNotUpdateProductPriceOrUpdateProductModifiedTimestampOrModifyAProductThatHasNonDefaultPricingAlready
    SettingStorePriceChangesStoreProductPriceButDoesNotUpdateProductPriceButDoesUpdateProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndHolyShitsnacksIHopeNobodyHasToMaintainThisSinceItsHardToSeeDifferencesInTheseNamesWhenTheyreNotLinedUpAboveEachOther


    This post is the first one I've read on this site which actually makes me feel quite ill. Well done, that man.
  • ~~ 2011-08-25 12:05
    Variable name for all the ZX Spectrum users:
    "this name is so long that I shall never be able to type it out again without making a mistake"

    ;)
  • Uncle Al 2011-08-25 12:06
    Rawr:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool ChangingStorePriceModifiesProductInfo
    {
    set;
    get;
    }




    No, no, no. Clearly, the right approach is:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready
    {
    set;
    get;
    }





  • Abso 2011-08-25 12:09
    OneMist8k:
    Apropos of the WTF on female programmers, I'm going to guess the gender of each programmer.

    The first one was written by a male who likes to claim he has a long member.

    The second was written by a male who habitually lies about length.


    FTFY

    A female programmer would be more concerned with width.
  • boog 2011-08-25 12:24
    QJo:
    boog:
    snoofle:
    Imagine the auto-complete fun if there were several similarly named functions:

    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready1
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready2
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready3
    Could this really be a case where it's better design (for maintenance' sake) to put a number at the end of the function? You could easily look at the end of the name to know what you're dealing with.

    Consider the alternative:

    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceButDoesNotUpdateProductModifiedTimestampOrModifyAProductThatHasNonDefaultPricingAlready
    SettingStorePriceChangesStoreProductPriceButDoesNotUpdateProductPriceOrUpdateProductModifiedTimestampOrModifyAProductThatHasNonDefaultPricingAlready
    SettingStorePriceChangesStoreProductPriceButDoesNotUpdateProductPriceButDoesUpdateProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready
    SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndHolyShitsnacksIHopeNobodyHasToMaintainThisSinceItsHardToSeeDifferencesInTheseNamesWhenTheyreNotLinedUpAboveEachOther


    This post is the first one I've read on this site which actually makes me feel quite ill. Well done, that man.
    I aim to quease.
  • BentFranklin 2011-08-25 12:27
    Maybe IDEs should come with a tinyurl-like feature from now on.
  • Paul 2011-08-25 12:40
    I sentence the first offender to 1 year of coding with autocomplete disabled. *bangs gavel*
  • Huey Lewis 2011-08-25 12:41
    Testing? We don't need no stinking testing. The first rule is... if it compiles, move it to production.
  • airdrik 2011-08-25 12:56
    Uncle Al:
    Rawr:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool ChangingStorePriceModifiesProductInfo
    {
    set;
    get;
    }



    No, no, no. Clearly, the right approach is:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready
    {
    set;
    get;
    }




    No, no, no. Clearly you are moving in the wrong direction. We want small, concise variable names:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool Setting463
    {
    set;
    get;
    }

  • The Most Interesting Man in the World (Dos Equis Guy) 2011-08-25 13:00
    Huey Lewis:
    Testing? We don't need no stinking testing. The first rule is... if it compiles, move it to production.
    I don't always test my code, but when I do, I do it in production.
  • PedanticCurmudgeon 2011-08-25 13:11
    BentFranklin:
    The first one seems to be a sarcastic response to something a PHB might have said.
    Malicious compliance FTW!
  • caper 2011-08-25 13:30
    "Maybe I'll join the underscore camp now."

    Please do.
    camelCase is in my opinion useless for anything which is more than two small words stuck together.
  • NobodyCares 2011-08-25 13:33
    ThingGuy McGuyThing:
    I'm not sure how this is going to "corrupt data".

    int length = data.GetRange(0, 3).ToArray().Length;


    The summary (seems to) state that data will be a 3-character string. I thought maybe it was failing on 0/1/2-character strings, but GetRange would throw an exception, rather than "corrupting data".

    Either the summary is confusing, or I'm missing something fundamental. 50/50 odds, I'd say.



    Given the only GetRange I know of in .NET is this, then I'd tend to say we've been sadly mislead. Par for the course, I suppose.

    I suspect that "data" is a list of strings, and if there's more than 3 of them then some were being ignored, which lead to much amusement later on in the form of missing messages or whatnot.
  • Coyne 2011-08-25 13:36
    BentFranklin:
    The first one seems to be a sarcastic response to something a PHB might have said.


    ...or based on a PHB-mandated standard.
  • Hortical 2011-08-25 13:39
    Abso:
    OneMist8k:
    I'm going to guess the gender of each programmer.

    The first one was written by a male who likes to claim he has a long member.

    The second was written by a male who habitually lies about length.
    FTFY
    No ones pipes up to call that sexist.

    Abso:
    A female programmer would be more concerned with width.
    But that's blatant misogyny and chauvinism. How can you generalize about women like that?
  • frits 2011-08-25 13:40
    caper:
    "Maybe I'll join the underscore camp now."

    Please do.
    camelCase is in my opinion useless for anything which is more than two small words stuck together.


    98% of my variable and Type names are two words stuck together, so I think I'm good right here.
  • boog 2011-08-25 13:45
    caper:
    "Maybe I'll join the underscore camp now."

    Please do.
    camelCase is in my opinion useless for anything which is more than two small words stuck together.
    But to be fair, anything more than two small words stuck together is often in my opinion useless for naming variables.

    Then again, I'm in the "Who cares? Neither camelCase nor underscores makes code hard to maintain; code like today's examples do" camp. It's a pretty good camp. The food is so-so.
  • FuBar 2011-08-25 13:45
    frits:
    Setting_Store_Price_Changes_Store_Product_Price_And_Updates_Product_Price_And_Updates_Product_Modified_Timestamp_But_Does_Not_Modify_A_Product_That_Has_Non_Default_Pricing_Already
    I don't understand why we ever left COBOL. It just worked. For business programming, anyway.
  • corwin766 2011-08-25 13:52
    FuBar:
    frits:
    Setting_Store_Price_Changes_Store_Product_Price_And_Updates_Product_Price_And_Updates_Product_Modified_Timestamp_But_Does_Not_Modify_A_Product_That_Has_Non_Default_Pricing_Already
    I don't understand why we ever left COBOL. It just worked. For business programming, anyway.


    I left COBOL because it gave me repetitive stress injury. No other language has accomplished that.

    COBOL design motto:Why use 1 character when 10 will do?
  • dguthurts 2011-08-25 13:56
    OneMist8k:
    Apropos of the WTF on female programmers, I'm going to guess the gender of each programmer.

    The first one was written by a female who likes long members.

    The second was written by a male who thinks length doesn't matter.



    Best_Comment_Of_The_Day
  • Abso 2011-08-25 13:57
    [quote user="airdrik"][quote user="Uncle Al"][quote user="Rawr"]
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool ChangingStorePriceModifiesProductInfo
    {
    set;
    get;
    }

    [/quote]

    No, no, no. Clearly, the right approach is:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready
    {
    set;
    get;
    }



    [/quote]
    No, no, no. Clearly you are moving in the wrong direction. We want small, concise variable names:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool Setting463
    {
    set;
    get;
    }

    [/quote]

    If we're using concise variable names, surely we ought to pair them with verbose comments.

    /// <summary>
    
    /// If this is true, then setting "store price" changes store
    /// product price, updates product price, and updates product
    /// modified timestamp. It does not modify a product that has
    /// non-default pricing already.
    ///
    /// If this is false, then setting "store price" changes store
    /// product price only, causing the product to have a
    /// non-default price.
    ///
    /// To change both the store price and the product price on a
    /// product with non-default pricing, causing it to have
    /// default pricing again, just set this to true and
    /// Setting281 to false, set the product price to 0, then set
    /// the store price.
    /// </summary>

    public bool Setting463
    {
    set;
    get;
    }

    [/quote]

    (Comment extrapolated from original function name, mostly.)
  • Sectoid Dev 2011-08-25 14:08
    My COBOL final exam left me with 3 pencils worn down completely and a hand so cramped I couldn't beat off for a week.
  • Z00n3$!$ 2011-08-25 14:23
    Sectoid Dev:
    My COBOL final exam left me with 3 pencils worn down completely and a hand so cramped I couldn't beat off for a week.
    I once had a similar problem, except the cause and effect were reversed.
  • Peter 2011-08-25 14:25
    boog:
    QJo:
    boog:
    This post is the first one I've read on this site which actually makes me feel quite ill. Well done, that man.
    I aim to quease.
    Giggle. Thank you, that remark has made my day!
  • Ghost of Nagesh 2011-08-25 14:29
    corwin766:
    FuBar:
    frits:
    Setting_Store_Price_Changes_Store_Product_Price_And_Updates_Product_Price_And_Updates_Product_Modified_Timestamp_But_Does_Not_Modify_A_Product_That_Has_Non_Default_Pricing_Already
    I don't understand why we ever left COBOL. It just worked. For business programming, anyway.


    I left COBOL because it gave me repetitive stress injury. No other language has accomplished that.

    COBOL design motto:Why use 1 character when 10 will do?


    You never learned to "soft-type" :P
  • Matt Westwood 2011-08-25 14:38
    Ghost of Nagesh:
    corwin766:
    FuBar:
    frits:
    Setting_Store_Price_Changes_Store_Product_Price_And_Updates_Product_Price_And_Updates_Product_Modified_Timestamp_But_Does_Not_Modify_A_Product_That_Has_Non_Default_Pricing_Already
    I don't understand why we ever left COBOL. It just worked. For business programming, anyway.


    I left COBOL because it gave me repetitive stress injury. No other language has accomplished that.

    COBOL design motto:Why use 1 character when 10 will do?


    You never learned to "soft-type" :P


    COBOL's rubbish. Use FORTRAN instead. You know it makes sense.
  • FuBar 2011-08-25 14:44
    Matt Westwood:
    COBOL's rubbish. Use FORTRAN instead. You know it makes sense.
    FORTRAN = FORmula TRANslation, and Scientists are the ones who use formulas. But COBOL = COmmon Business-Oriented Language, i.e., is for business applications. QED. Besides, FORTRAN is only fun if you can use it on punch cards.

    Now, you kids need to get off not just my lawn, but my neighbour's lawn too.
  • Matt Westwood 2011-08-25 16:01
    FuBar:
    Matt Westwood:
    COBOL's rubbish. Use FORTRAN instead. You know it makes sense.
    FORTRAN = FORmula TRANslation, and Scientists are the ones who use formulas. But COBOL = COmmon Business-Oriented Language, i.e., is for business applications. QED. Besides, FORTRAN is only fun if you can use it on punch cards.

    Now, you kids need to get off not just my lawn, but my neighbour's lawn too.


    You can use FORTRAN for business applications, but it's not really feasible to use COBOL for scientific applications. I've said enough.
  • Martin D 2011-08-25 16:11
    If this isn't a featured comment I'm done with TDWTF.
  • airdrik 2011-08-25 16:22
    Abso:
    Rawr:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    ...


    If we're using concise variable names, surely we ought to pair them with verbose comments.

    /// <summary>
    
    /// If this is true, then setting "store price" changes store
    /// product price, updates product price, and updates product
    /// modified timestamp. It does not modify a product that has
    /// non-default pricing already.
    ///
    /// If this is false, then setting "store price" changes store
    /// product price only, causing the product to have a
    /// non-default price.
    ///
    /// To change both the store price and the product price on a
    /// product with non-default pricing, causing it to have
    /// default pricing again, just set this to true and
    /// Setting281 to false, set the product price to 0, then set
    /// the store price.
    /// </summary>

    ...

    (Comment extrapolated from original function name, mostly.)

    Except that the new comment is a step backwards in unreadability since it adds and clarifies several of the details, including a clear explanation of what a false setting means and a similarly clear explanation of how to get something to a default state.

    I do agree that we should pair concise variable names with verbose comments, but our improvements must ensure that the new version is no more readable/usable than the original. I also like the reference to the other obfuscated setting.

    [code]/// <summary>
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// If this is false then setting store price does not changes store product price and updates product price and updates product modified timestamp but does modify a product that has non default pricing already unless Setting281 is false which reverses them.
    /// </summary>
  • stinerman 2011-08-25 16:30
    Are you a LISP programmer by chance?
  • Matt Westwood 2011-08-25 16:33
    airdrik:

    [code]/// <summary>
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// If this is false then setting store price does not changes store product price and updates product price and updates product modified timestamp but does modify a product that has non default pricing already unless Setting281 is false which reverses them.
    /// </summary>


    Yep, that's perfect. Sod the unit tests, that's bound to compile - can you release it to production immediately, the customer's in the CEO's office waiting at a terminal.
  • Z00n3$!$ 2011-08-25 16:40
    Martin D:
    If this isn't a featured comment I'm done with TDWTF.
    TransexualDruggieWithTheFuckingness? What?

    Anyway, there's no chance of a comment with my name ever getting featured as Papadilililimous has a hard on for me for desecrating his comments page. I have a hard on for him too!


    I wonder if there's some kind of job that I can do to change his feelings about me. I'm not just about flapping my gums, I can get my hands dirty if necessary!

  • Cad Delworth 2011-08-25 17:01
    Warren:
    Clay continues, "someone should write a plug-in that limits method names to a sane amount of characters."


    No need: method names in VS are limited, to 250 Unicode characters.
  • Matt Westwood 2011-08-25 17:05
    Cad Delworth:
    Warren:
    Clay continues, "someone should write a plug-in that limits method names to a sane amount of characters."


    No need: method names in VS are limited, to 250 Unicode characters.


    I'm suddenly reminded about a WTF of a language - which one I can't remember just now - such that the compiler lets you define variables with as many characters as you like, but only *actually* takes any notice of the first 31.

    So if you define two variables with names 100-odd characters long, only the last 50 of those being different, the compiler will treat these as the same variable, and not tell you what it's doing.

    Although it may be kind and tell you that you've just tried to declare the same variable twice - I can't say.
  • Abso 2011-08-25 17:18
    Matt Westwood:
    Cad Delworth:
    Warren:
    Clay continues, "someone should write a plug-in that limits method names to a sane amount of characters."


    No need: method names in VS are limited, to 250 Unicode characters.


    I'm suddenly reminded about a WTF of a language - which one I can't remember just now - such that the compiler lets you define variables with as many characters as you like, but only *actually* takes any notice of the first 31.

    So if you define two variables with names 100-odd characters long, only the last 50 of those being different, the compiler will treat these as the same variable, and not tell you what it's doing.

    Although it may be kind and tell you that you've just tried to declare the same variable twice - I can't say.

    ANSI C?

    The reference I have here says that's the case, but only for identifiers that don't have external linkage. For identifiers with external linkage, apparently only the first six characters are significant, and they're case insensitive. Isn't backwards compatibility wonderful?

    Mind you, said reference also notes that "Most compilers and linkers are more generous than the standard". And it was published in 1996, so C99 might be better, I guess.
  • SR. HAKKRR 2011-08-25 17:18
    Matt Westwood:
    it's not really feasible to use COBOL for scientific applications.
    You. Are. No. Fun. At. All.
  • Kittens 2011-08-25 18:05
    QJo:
    I've thought of a way to improve it:

    public bool SSPCSPPAUPPAUPMTBDNMAPTHNDPA
    {
    get;
    set;
    }

    ... cut the name down to its initials. A dramatic improvement, though I say it myself.

    So long as it doesn't get mixed up with:
    public bool SUPERCALAFREGALISTICEXPIALADOCIOUS
    
    {
    get;
    set;
    }

    (perhaps that's why people talk about spoonfuls of Syntactic Sugar)
  • Jimbo 2011-08-25 18:11
    The Most Interesting Man in the World (Dos Equis Guy):
    Huey Lewis:
    Testing? We don't need no stinking testing. The first rule is... if it compiles, move it to production.
    I don't always test my code, but when I do, I do it in production.

    Tests are for Wusses!!

    We have plenty of undocumented features in our code, but at least it compiles!!
  • HaleRazor 2011-08-25 18:15
    I was thinking the same thing...Single Responsibility principle.
  • Sol the Sun God 2011-08-25 18:35
    Matt Westwood:
    Cad Delworth:
    Warren:
    Clay continues, "someone should write a plug-in that limits method names to a sane amount of characters."


    No need: method names in VS are limited, to 250 Unicode characters.


    I'm suddenly reminded about a WTF of a language - which one I can't remember just now - such that the compiler lets you define variables with as many characters as you like, but only *actually* takes any notice of the first 31.

    So if you define two variables with names 100-odd characters long, only the last 50 of those being different, the compiler will treat these as the same variable, and not tell you what it's doing.

    Although it may be kind and tell you that you've just tried to declare the same variable twice - I can't say.

    Sounds like UNIX Password, no?
  • Spork 2011-08-25 18:51
    QJo:
    I've thought of a way to improve it:

    public bool SSPCSPPAUPPAUPMTBDNMAPTHNDPA
    {
    get;
    set;
    }

    ... cut the name down to its initials. A dramatic improvement, though I say it myself.


    I think there's a bright future ahead of you as a system architect.
  • killahdz 2011-08-25 19:09
    Might as well make the property generic too


    public T GenericSettingAssociatedToStorePriceChangesForStoreProductPriceIfTypeIsStorePriceElseThrowsExceptionForTypesDerivedFromItemPriceAndMayUpdateProductPriceDependingOnTypeAlwaysUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlreadySometimesExceptWhenSettingIsNotNull
    {

    set;

    get;

    }
  • Chris 2011-08-25 19:11
    data was a list of chars which was the received message. It would be something like '013[the message]'. GetRange() was used to get the 'substring' of the message length, and he proceeded to get the length of the substring and take that as the length of the message, rather than actually parsing the string. End result is only the first three characters of any message were ever seen.

    The sad thing was that the original working code was replaced with this for some reason.
  • foo 2011-08-25 20:21
    Abso:
    frits:
    I'm usually pro Camel/Pascal casing. However, this WTF shows readability does seem to break down with very long variable names. Maybe I'll join the underscore camp now.


    I think it's improved even more if you don't mix the two systems. That is, do use underscores, but don't capitalize every word.

    Look at how nearly-readable this is!
    
    public bool Setting_store_price_changes_store_product_price_and_updates_product_price_and_updates_product_modified_timestamp_but_does_not_modify_a_product_that_has_non_default_pricing_already
    {
    set;
    get;
    }


    No, no. Nothing beats good old C convention. Easy to read and much shorter to type too:
    stngstrprcchngsstrprdctprcnupdtsprdctprcnupdtsprdctmdfdtmstmpbtdsntmdfyaprdctththsndfltprcnglrdy();
  • Son Of Thor 2011-08-25 21:30
    I create functions that are just as meaningfull

    public bool foo
    {
    ....
    }
  • Scarlet Manuka 2011-08-25 23:26
    Matt Westwood:
    I'm suddenly reminded about a WTF of a language - which one I can't remember just now - such that the compiler lets you define variables with as many characters as you like, but only *actually* takes any notice of the first 31.

    Reminds me of the first computer we had, one of the early 8-bit micros; in its BASIC interpreter only two characters of the variable name were used. You could use a string variable concurrently with a numeric variable of the same name, though (A$ and A respectively).

    But then, when you only have 6K of program memory you don't want to take up much of it with variable names.

    Z00n3$!$:
    Sectoid Dev:
    My COBOL final exam left me with 3 pencils worn down completely and a hand so cramped I couldn't beat off for a week.
    I once had a similar problem, except the cause and effect were reversed.

    What on earth were you doing with the pencils?

    Also, I think the people posting commented versions of the code have in general forgotten that the comments should not describe the function correctly. Otherwise they'd be too useful. You need to guess what the function did two or three revisions ago and write the comments based on that.
  • Hatshepsut 2011-08-25 23:27
    Z00n3$!$:
    Sectoid Dev:
    My COBOL final exam left me with 3 pencils worn down completely and a hand so cramped I couldn't beat off for a week.
    I once had a similar problem, except the cause and effect were reversed.


    You wore down 3 pencils wanking?!?

  • All the fake fritsen, as one 2011-08-26 00:05
    [quote user="Hatshepsut"][quote user="Z00n3$!$"]

    You wore down 3 pencils wanking?!?

    [/quote]

    Who hasn't done something like this?
  • Matt Westwood 2011-08-26 01:30
    Kittens:
    QJo:
    I've thought of a way to improve it:

    public bool SSPCSPPAUPPAUPMTBDNMAPTHNDPA
    {
    get;
    set;
    }

    ... cut the name down to its initials. A dramatic improvement, though I say it myself.

    So long as it doesn't get mixed up with:
    public bool SUPERCALAFREGALISTICEXPIALADOCIOUS
    
    {
    get;
    set;
    }

    (perhaps that's why people talk about spoonfuls of Syntactic Sugar)


    Arrg. Oh my fucking god. You are *one fired programmer* if you come near my department - you spelt the name of the word wrong. Have you any idea how difficult that makes maintenance? Everyone know's it's "supercallifraggalisticexpealadosuhs"!
  • takes one to know one 2011-08-26 03:20
    Jimbo:
    The Most Interesting Man in the World (Dos Equis Guy):
    Huey Lewis:
    Testing? We don't need no stinking testing. The first rule is... if it compiles, move it to production.
    I don't always test my code, but when I do, I do it in production.

    Tests are for Wusses!!

    We have plenty of undocumented features in our code, but at least it compiles!!


    what is this "documenting" that you speak of?
  • Nyarlathotep 2011-08-26 03:50
    The Most Interesting Man in the World (Dos Equis Guy):
    Huey Lewis:
    Testing? We don't need no stinking testing. The first rule is... if it compiles, move it to production.
    I don't always test my code, but when I do, I do it in production.

    If it works, it's production.
    If it doesn't work ... we were just testing.
  • 'nuff said 2011-08-26 03:50
    My representative line of the day. Describing the code quality of a web site I was asked to check:
    <td class="header">

    'nuff said.
  • Scourge 2011-08-26 04:02
    Is it just me or has that string broken the side of the browser, lapsing into freedom out of the confines of the text box?
  • dkf 2011-08-26 04:16
    Abso:
    Matt Westwood:
    I'm suddenly reminded about a WTF of a language - which one I can't remember just now - such that the compiler lets you define variables with as many characters as you like, but only *actually* takes any notice of the first 31.

    So if you define two variables with names 100-odd characters long, only the last 50 of those being different, the compiler will treat these as the same variable, and not tell you what it's doing.

    Although it may be kind and tell you that you've just tried to declare the same variable twice - I can't say.

    ANSI C?

    The reference I have here says that's the case, but only for identifiers that don't have external linkage. For identifiers with external linkage, apparently only the first six characters are significant, and they're case insensitive. Isn't backwards compatibility wonderful?

    Mind you, said reference also notes that "Most compilers and linkers are more generous than the standard". And it was published in 1996, so C99 might be better, I guess.
    It was a WTF-y linker on one commercial Unix (AIX?) that was responsible for that statement in the standard. (The real old school linkers that only coped with up to 7 characters of identifier name as distinguishing having been long gone at that point.) The advent of C++ forced a shake-out of all that nonsense; while C was usually possible within the restrictions of 31 significant chars, C++'s internal name mangling can easily blow past that before the actual function name is reached (let alone any argument types).

    The ANSI C committee tried very hard to not alienate any vendors. I can understand that, but sometimes you need to single out the runt for a vicious beating. It's for the good of all.
  • Wody 2011-08-26 04:32
    The function is incomplete. It should be:

    public bool SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready
    {
    ready;
    get;
    set;
    go;
    }
  • ThomasX 2011-08-26 04:51
    This is supposed to be a highly-descriptive property name?

    public bool SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready
    {
    get;
    set;
    }

    It is not at all descriptive. Imagine an alien species that has no conception of "Store", "Price" and "Product". How are they supposed to understand this? The property name should at the very least include the Wikipedia articles for the above mentioned concepts.
    Furthermore not everyone speaks english. The property name must contain its own translation in at least 10 languages to be of any use at all.
    Not everyone can read. To be even minimally usueful it is obviously obvious that the property name must contain the base64 encoding of a video of a speaker explaining the property name.
  • keigezellig 2011-08-26 06:05
    Hmmm.. If this property is really implemented like it name says, then it has side effects which is not done...
  • Anonymouse 2011-08-26 06:37
    airdrik:
    Uncle Al:
    Rawr:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool ChangingStorePriceModifiesProductInfo
    {
    set;
    get;
    }



    No, no, no. Clearly, the right approach is:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool SettingStorePriceChangesStoreProductPriceAndUpdatesProductPriceAndUpdatesProductModifiedTimestampButDoesNotModifyAProductThatHasNonDefaultPricingAlready
    {
    set;
    get;
    }




    No, no, no. Clearly you are moving in the wrong direction. We want small, concise variable names:
    /// <summary>
    
    /// Setting store price changes store product price and updates product price and updates product modified timestamp but does not modify a product that has non default pricing already.
    /// </summary>

    public bool Setting463
    {
    set;
    get;
    }



    Exactly. I like descriptive variables too though - I call a variable e.g. "DatabaseConnection" instead of "dbconn" - but one shouldn't exaggerate.
  • Z00n3$!$ 2011-08-26 09:14
    Scarlet Manuka:
    Z00n3$!$:
    Sectoid Dev:
    My COBOL final exam left me with 3 pencils worn down completely and a hand so cramped I couldn't beat off for a week.
    I once had a similar problem, except the cause and effect were reversed.
    What on earth were you doing with the pencils?
    Heh, heh. Better question is: what was I using instead of a pencil?
  • kilroo 2011-08-26 09:24
    Matt Westwood:
    Kittens:
    QJo:
    I've thought of a way to improve it:

    public bool SSPCSPPAUPPAUPMTBDNMAPTHNDPA
    {
    get;
    set;
    }

    ... cut the name down to its initials. A dramatic improvement, though I say it myself.

    So long as it doesn't get mixed up with:
    public bool SUPERCALAFREGALISTICEXPIALADOCIOUS
    
    {
    get;
    set;
    }

    (perhaps that's why people talk about spoonfuls of Syntactic Sugar)


    Arrg. Oh my fucking god. You are *one fired programmer* if you come near my department - you spelt the name of the word wrong. Have you any idea how difficult that makes maintenance? Everyone know's it's "supercallifraggalisticexpealadosuhs"!


    No no, that wasn't supposed to be the name of the word, it was supposed to be what the name of the word is called.

    Wait, wrong story.
  • C 2011-08-26 09:31
    ThingGuy McGuyThing:
    I'm not sure how this is going to "corrupt data".

    int length = data.GetRange(0, 3).ToArray().Length;


    The summary (seems to) state that data will be a 3-character string. I thought maybe it was failing on 0/1/2-character strings, but GetRange would throw an exception, rather than "corrupting data".

    Either the summary is confusing, or I'm missing something fundamental. 50/50 odds, I'd say.

    I interpret the summary as "the data will be treated as a 3-char string", and that the real code should've been something like:

    int length = int.Parse(string.Concatenate(data.GetRange(0, 3)));
  • gallier2 2011-08-26 11:03
    [quote user="Matt Westwood"][quote user="Cad Delworth"]

    I'm suddenly reminded about a WTF of a language - which one I can't remember just now - such that the compiler lets you define variables with as many characters as you like, but only *actually* takes any notice of the first 31.

    So if you define two variables with names 100-odd characters long, only the last 50 of those being different, the compiler will treat these as the same variable, and not tell you what it's doing.

    Although it may be kind and tell you that you've just tried to declare the same variable twice - I can't say.[/quote]

    That happenned on DOS and early Windows but it was not a language limitation but one of the linker.
    When C++ was invented with its name mangling scheme this limit was then lifted.

    Early BASICs also had a 2 significant character limit, that was a PITA.
  • grumpy 2011-08-26 11:13
    Sol the Sun God:
    Matt Westwood:
    Cad Delworth:
    Warren:
    Clay continues, "someone should write a plug-in that limits method names to a sane amount of characters."


    No need: method names in VS are limited, to 250 Unicode characters.


    I'm suddenly reminded about a WTF of a language - which one I can't remember just now - such that the compiler lets you define variables with as many characters as you like, but only *actually* takes any notice of the first 31.

    So if you define two variables with names 100-odd characters long, only the last 50 of those being different, the compiler will treat these as the same variable, and not tell you what it's doing.

    Although it may be kind and tell you that you've just tried to declare the same variable twice - I can't say.

    Sounds like UNIX Password, no?

    NTLM. Two times seven characters, ignore-case, IIRC, separately breakable. Should have been strangled at birth. The designer, that is.
  • Schol-R-LEA 2011-08-26 11:48
    Matt Westwood:

    You can use FORTRAN for business applications, but it's not really feasible to use COBOL for scientific applications. I've said enough.

    Feasible, no, but that never stopped anyone. I recall reading of some lunatic who wrote a Z80 cross-assembler in COBOL on an IBM mainframe, back in the 1970s. It's hard to imagine why this sounded like a good idea, aside from it apparently being the only language he had available to him at the time.
  • doozer 2011-08-26 13:53
    Very good

    +100000000
  • doozer 2011-08-26 13:54
    OneMist8k:
    Apropos of the WTF on female programmers, I'm going to guess the gender of each programmer.

    The first one was written by a female who likes long members.

    The second was written by a male who thinks length doesn't matter.



    Very Good

    +infinity +1
  • D-Coder 2011-08-26 14:00
    foo:
    Abso:
    frits:
    I'm usually pro Camel/Pascal casing. However, this WTF shows readability does seem to break down with very long variable names. Maybe I'll join the underscore camp now.


    I think it's improved even more if you don't mix the two systems. That is, do use underscores, but don't capitalize every word.

    Look at how nearly-readable this is!
    
    public bool Setting_store_price_changes_store_product_price_and_updates_product_price_and_updates_product_modified_timestamp_but_does_not_modify_a_product_that_has_non_default_pricing_already
    {
    set;
    get;
    }


    No, no. Nothing beats good old C convention. Easy to read and much shorter to type too:
    stngstrprcchngsstrprdctprcnupdtsprdctprcnupdtsprdctmdfdtmstmpbtdsntmdfyaprdctththsndfltprcnglrdy();
    That's the name of a Welsh town or something, right?
  • The Great Lobachevsky 2011-08-26 16:44
    Scourge:
    Is it just me or has that string broken the side of the browser, lapsing into freedom out of the confines of the text box?


    Nope, happened to me too in my little "forced by IT to use IE7 world"
  • Blizzaga 2011-08-27 09:31
    /// <summary>
    /// Does the work that this class was written to do
    /// by using parameters A and B, then writes the results
    /// to the database
    /// /* No I'm not actually going to tell you what the method
    /// does, just obeying the company's coding standards */
    /// </summary>
    DoTheClassesWorkOnParametersAandBThenWriteResultsToTheDatabaseAndPerhapsDoSomeSideEffectsOnTheParameters(object A, object B) throws SomethingBadHappenedExceptionButImNotGoingToTellYouWhatBecauseSomeHackersMayExploitThatInformation
  • Anonymous 2011-08-27 16:45
    And this is one of those reasons why self-documenting code (purism esp.) is retarded.
  • DeMorgan 2011-08-27 18:55
    /// <summary>
    
    /// If this is true, then setting "store price" changes store
    /// product price, updates product price, and updates product
    /// modified timestamp. It does not modify a product that has
    /// non-default pricing already.
    ///
    /// If this is false, then setting "store price" does not change store
    /// product price, or does not update product price, or does not update product
    /// modified timestamp, or it modifies a product that has
    /// non-default pricing already.
    /// </summary>


  • Matt Westwood 2011-08-29 07:20
    [quote user="gallier2"][quote user="Matt Westwood"][quote user="Cad Delworth"]

    I'm suddenly reminded about a WTF of a language - which one I can't remember just now - such that the compiler lets you define variables with as many characters as you like, but only *actually* takes any notice of the first 31.

    So if you define two variables with names 100-odd characters long, only the last 50 of those being different, the compiler will treat these as the same variable, and not tell you what it's doing.

    Although it may be kind and tell you that you've just tried to declare the same variable twice - I can't say.[/quote]

    That happenned on DOS and early Windows but it was not a language limitation but one of the linker.
    When C++ was invented with its name mangling scheme this limit was then lifted.

    Early BASICs also had a 2 significant character limit, that was a PITA.[/quote]

    Sounds like Atari BASIC, which never even had loops.
  • C 2011-08-29 11:45
    The Great Lobachevsky:
    Scourge:
    Is it just me or has that string broken the side of the browser, lapsing into freedom out of the confines of the text box?


    Nope, happened to me too in my little "forced by IT to use IE7 world"
    My Opera does the same, i think. Actually, what do you expect your poor browser to do in such a case?!
  • Matt Westwood 2011-08-29 13:25
    C:
    The Great Lobachevsky:
    Scourge:
    Is it just me or has that string broken the side of the browser, lapsing into freedom out of the confines of the text box?


    Nope, happened to me too in my little "forced by IT to use IE7 world"
    My Opera does the same, i think. Actually, what do you expect your poor browser to do in such a case?!


    CSS3 allows further options on how to split up ornery strings for greater flexibility. So future versions of this site might be able to treat such stuff differently. Thot it was worth mentioning.
  • Rachel 2011-08-29 17:31
    Clay continues, "someone should write a plug-in that limits method names to a sane amount of characters."

    Maybe after that, they could also write one that limits Property names. Because that's what this is - an automatic Property, not a Method.

    Are we absolutely certain that Clay didn't write this code himself?, perhaps in the form of some deranged programmer alterego like in The Dark Half? Because honestly, anybody that could get those two mixed up might JustBeCrazyEnoughToComeUpWithAPropertyStrokeMethodNameLikeThat. ;)
  • Dacy 2011-09-01 16:24
    Double FIRST

    Or maybe not.


    =====================================
    http://www.stubstop.com
  • Luiz Felipe 2011-09-02 22:29

    public writeonly T PropertyMethodGenericFactoryObserverThatCanChangeAPriceOfAPruductInCaseOfProductPriceChangeItAlsoUpdatesTheModifiedTimestampAndTriesToBlowTheWorld { set { SuperUltraSideEffects(); } }

    //T has widening cast overload also.

    //then to call this method

    PropertyMethodGenericFactoryObserverThatCanChangeAPriceOfAPruductInCaseOfProductPriceChangeItAlsoUpdatesTheModifiedTimestampAndTriesToBlowTheWorld = Convert.ChanteType(true, T);

  • ルイヴィトン 2012-05-18 02:45
    ルイヴィトン,http://www.bugbagsnow.com/
    ブランドバッグ,http://www.bugbagsnow.com/
    ハンドバッグ,http://www.bugbagsnow.com/women/bag-1/handbag.html
    ヴィトン財布,http://www.bugbagsnow.com/women/saifu.html
    ヴィトン財布,http://www.bugbagsnow.com/man/wallet.html
    ヴィトンバッグ,http://www.bugbagsnow.com/women/bag-1.html
    ヴィトンバッグ,http://www.bugbagsnow.com/man/bag.html