• (cs) in reply to jonnyq
    jonnyq:
    GPL means that when you distribute your software, you have to show your code. If you're not distributing your software, no one gives a fuck. Chances are this was an internal application never seen by the outside world.

    Chances are that the Architect's fear of open-source is unfounded and silly.

    Depends on the version; I think GPL v3 changed it so if you use it at all, it automatically makes your code open-source, meaning you cannot use it in even an internal application without a license. There's also another version of the GPL, the APL I think, which does the same thing.

    Most versions though will let you use the code without releasing YOUR source so long as it's not distributed, so web applications don't have to release their code since users are just accessing them, they aren't actually being given the code.

  • futbol (unregistered) in reply to ObiWayneKenobi
    ObiWayneKenobi:
    jonnyq:
    GPL means that when you distribute your software, you have to show your code. If you're not distributing your software, no one gives a fuck. Chances are this was an internal application never seen by the outside world.

    Chances are that the Architect's fear of open-source is unfounded and silly.

    Depends on the version; I think GPL v3 changed it so if you use it at all, it automatically makes your code open-source, meaning you cannot use it in even an internal application without a license. There's also another version of the GPL, the APL I think, which does the same thing.

    Most versions though will let you use the code without releasing YOUR source so long as it's not distributed, so web applications don't have to release their code since users are just accessing them, they aren't actually being given the code.

    Depends on what your lawyers think. I work for a medium sized SaaS company and our laywers interpret the usage of our products as distribution. It's not the classical definition of the term, but then again, SaaS is about the difference of delivery. We have to be careful about the libraries we use to make sure we don't have to make modifications.

    It seems very clear cut, unless you're a laywer.

  • Buck B. (unregistered) in reply to neminem

    This is pretty common sense. Always create boundaries between you and third-party libraries.

  • (cs) in reply to MWF
    MWF:
    ...Snip...

    But it's not often the case that you can find some library out there that really does what you want.

    ...Snip...

    If the library is widely used, then I would also suggest that the peron revisits their "wants" and see if perhaps the problem is not with them, rather than with the library.

  • Herby (unregistered)

    This is the "Money class", so I would write the following to the "Architect":

    Have it your way. By the way, we use the "Money Class" for your paychecks and deductions. Errors may take a long time to resolve themselves if they get resolved. The errors induced may not be in the favor of the recipients of paychecks. Sorry if this may inconvenience you.

  • urbanheretic (unregistered) in reply to Patrick Magee

    Left out "by design"

  • Are you for real? (unregistered) in reply to Patrick Magee
    Patrick Magee:
    Patrick Magee:
    Architect = "Prick"

    if(Architect.Equals("Prick")) { Architect.IsSacked = true; }

    ??? where is the edit button??

    Do you think allowing edits on unregistered posts is a good thing? [Yes][No][File_not_found]

  • Mick dah Coda (unregistered) in reply to snoofle
    snoofle:
    Anon:
    pjt33:
    b.multiply(b).subtract(Integer.valueOf(4).multiply(a.multiply(b)))
    
    etc. (I wasn't able to properly port your code, because your brackets didn't match up).

    No magic numbers!

    const int THREE = 4;
    
    b.multiply(b).subtract(Integer.valueOf(FOUR).multiply(a.multiply(b)))
    

    Amateur.

    FTFY
    Actually:

    
    const int ONE = 0;
    const int TWO = 1;
    const int THREE = 2;
    const int FOUR = 3;
    const int FIVE = 4;
    
    b.multiply(b).subtract(Integer.valueOf(FOUR).multiply(a.multiply(b)))
    

    Any programmer worth his salt knows that all real programming starts at 0

  • airdrik (unregistered) in reply to Mick dah Coda
    Mick dah Coda:
    snoofle:
    Anon:
    pjt33:
    b.multiply(b).subtract(Integer.valueOf(4).multiply(a.multiply(b)))
    
    etc. (I wasn't able to properly port your code, because your brackets didn't match up).

    No magic numbers!

    const int THREE = 4;
    
    b.multiply(b).subtract(Integer.valueOf(FOUR).multiply(a.multiply(b)))
    

    Amateur.

    FTFY
    Actually:

    
    const int ZERO = 1;
    const int ONE = 2;
    const int TWO = 3;
    const int THREE = 4;
    const int FOUR = 5;
    
    b.multiply(b).subtract(Integer.valueOf(FOUR).multiply(a.multiply(b)))
    

    Any programmer worth his salt knows that all real programming starts at zero

    FTFY

  • Yuri (unregistered) in reply to t3D
    t3D:
    நாகேஷ்:
    MWF:
    This is actually fairly spot-on, when speaking generally.

    If there exists some third-party solution that exactly solves your problem, then they can be quite useful - assuming that the legal department okays the licensing agreement, of course.

    But it's not often the case that you can find some library out there that really does what you want. Too many times people want to pull in third-party libraries that offer nearly what they want. That leads to nothing but headaches - you spend lots of time creating workarounds to try and mimic the behavior you really want. On long-term projects, the time spent on workarounds often ends up being longer than the time it would have taken to just write what you needed in the first place.

    So, based on what I'm reading here, it's easier to write something new than to add small amounts of functionality to an almost complete solution?

    That, sir, is poppycock!

    Not if I have to release my "small amounts of functionality" to the whole world to see and my business is making money off of the software I write.

    The GPL can go fuck itself.

    That make no sense. The "small amounts of functionality" that wat's his face was talking about are already in public domain.

    Not sure you understand the GPL If he edit the open source bit he must leave that bit open source. He is under no necessity to release any code that uses the Open source bit, only any modification he make to it.

  • OAHwe (unregistered) in reply to ᴺᵃᵍᵉsh
    ᴺᵃᵍᵉsh:
    Some damn Yank:
    ɥsǝƃɐu:
    Some damn Yank:
    As a mechanical engineer, I find that most electrical/electronic problems are usually fixed by giving the box a good wack.
    As not a mechanical Engineer, I find that you have much in common with my Nani.
    If you were a box, I'd agree with your Nani. BTW, how old are you?
    Old enough to know that most MEs actually would think that was a legitimate electronic repair procedure (read: kinda dumb). Also, I'm old enough to know that your PE (if you have one) explicitly forbids you from offering services or advice outside of your expertise domain. No one is impressed with your "qualifications".

    BTW-Threats of violence over the internet doesn't scare anybody. Ever.

    Did Nagesh #7 forget his accent, or was that just me (also, Nagesh #7 is defending Nagesh #9 - are all the Nagesh's one Nagesh?)
  • Hello Moto (unregistered) in reply to neminem
    neminem:
    MWF:
    Then of course there are the times when the third-party library is distributed under some licensing agreement that is likely to cause conflict with the legal department; it would be better to check that upfront and consider the tradeoffs in time spent writing the functionality yourself versus time spent battling with legal.

    Indeed. A while back, our company got sick of dealing with a particular closed-source image library, that when we reported bugs to them, they refused to fix in a timely manner or possibly at all. So the word from on high was, switch to this other closed-source image library, that did roughly all the same things, just in a different way, so it required restructuring basically everything to do with generating or modifying images (which was a lot.)

    Thankfully, my direct boss was smart enough to suggest that instead of just directly redoing everything for the new image library, we refactor it so as much as possible would go through an abstract library wrapper, so if we ever changed libraries again, we'd mostly just need to rewrite the wrapper (and keep a version of the wrapper for the old library, too). Because, sure enough, after I finished modifying everything to use the new image library... word from a different on-high was there were legal complications (our product could be considered to expose their API, in some twisted legal sense, for which they wanted a bajillion dollars.)

    So after all that, someone ended up tasked with writing our own internal image library, which scared me a bit, but it turned out entirely successful. And now if there are bugs in the image library, I can tell a coworker to fix them, instead of a faceless 3rd party company that couldn't care less. Win!

    Of course, unlike this story, said coworker is open to modifying the API if I have a good reason for considering the current one inadequate. He complains about it all day first, as is his right, but he still fixes it.

    A place I once worked did (READ: Tried to do) a similar thing with cryptographic functions. A middle layer was meant to interface between which ever library we decided to use and the application - which could consistently assume method signatures didn't change. Somewhere along the way, someone got confused and instead of replacing the translation layer, new layers ("Shims") kept getting added (we were up to 5 when I worked their), and I recall at a meeting someone talking about "adding another shim" (as opposed to "replacing the shim"), to which someone responded "Wouldn't that be a sham?".

    Fun times.

  • qawo;ty (unregistered) in reply to Anon
    Anon:
    நாகேஷ்:
    If one buys shahi paneer but finds it too bland, does one throw out precious food and make his own recipe from scat?

    Actually I pretty particular about my food containing no scat at all.

    This is not the first time a reference to Nagesh eating shit appears....(I assume some wise-ass has translated Nagesh into a hindi alphabet or something)

  • anon (unregistered) in reply to Andrew Norman O'ther

    If he were alive he'd be spinning in his grave?....eh?... um..... nevermind.

  • Gunslinger (unregistered) in reply to A Gould
    A Gould:
    trtrwtf:
    Code Slave:
    There should be a rule that when your title includes "Architect" you should no longer be laying hands on code (much like a building Architect never picks up a hammer).

    Of course, the counter example is when a coder says "We should do <idiot idea>, because it's Best Practices" to a more senior person and then can't tell them who says so or explain why it is "Best Practice".

    "Laying hands on the code"? What is he, a faith hacker?

    OK, now I have the urge to spend the rest of my day walking up to co-workers' desks, laying hands on their machines and shouting "Let your Spreadsheet.. be HEALED!".

    Thanks.

    OK, but seriously - everyone should stop, take a moment, and be totally jealous of a guy who has managed to get a coding job where management is completely unwilling to overrule him. Yes, this guy is an arse, but if you could code what you want, give any BS reason you wanted, and be assumed to be Absolutely Correct, wouldn't you powertrip a little too?

    A little? More like a lot.

  • qawo (unregistered) in reply to ObiWayneKenobi
    ObiWayneKenobi:
    jonnyq:
    GPL means that when you distribute your software, you have to show your code. If you're not distributing your software, no one gives a fuck. Chances are this was an internal application never seen by the outside world.

    Chances are that the Architect's fear of open-source is unfounded and silly.

    Depends on the version; I think GPL v3 changed it so if you use it at all, it automatically makes your code open-source, meaning you cannot use it in even an internal application without a license. There's also another version of the GPL, the APL I think, which does the same thing.

    Most versions though will let you use the code without releasing YOUR source so long as it's not distributed, so web applications don't have to release their code since users are just accessing them, they aren't actually being given the code.

    To reiterate what someonbe else seemed to be saying

    From GPL V3.0:

    GPL 3.0:
    Does the GPL require that source code of modified versions be posted to the public?

    The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.
    

    But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL. Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

    NOTE also it talks about modifications and versions of GPL Licensed component. If I use some library that is GPL, I DO NOT (even if I release the application) need to release my code that calls the library under the GPL, however if I change the GPL Library that I use in any way then it needs to be released under the GPL.

    Made up example 1: I need a LinkedList for a project ("pls send da codez" simply hasn't worked on any of the forums I've tried). I use a LinkedList licensed under GPL I am under no obligation to release as GPL my Project Code that calls this LinkedList

    Made up example 2: I need a LinkedList to store character Arrays for a project ("pls send da codez" simply hasn't worked on any of the forums I've tried). I use a LinkedList that I've found for integers licensed under GPL I modify this LinkedList to store character Arrays rather than integers If I plan to release my Project, I must (under the GPL) release the new version of the LinkedList that is based on the GPL one as Open Source.

    This of course gets fiddly - what if I needed this List to store a home-made data type? Do I need to then release the data type as well (probably - even though it is no use to anyone)?

    The GPL does not require an entire application's code to be released just because some small component uses a GPL component

  • justSomeone (unregistered) in reply to நாகேஷ்
    நாகேஷ்:
    MWF:
    This is actually fairly spot-on, when speaking generally.

    If there exists some third-party solution that exactly solves your problem, then they can be quite useful - assuming that the legal department okays the licensing agreement, of course.

    But it's not often the case that you can find some library out there that really does what you want. Too many times people want to pull in third-party libraries that offer nearly what they want. That leads to nothing but headaches - you spend lots of time creating workarounds to try and mimic the behavior you really want. On long-term projects, the time spent on workarounds often ends up being longer than the time it would have taken to just write what you needed in the first place.

    So, based on what I'm reading here, it's easier to write something new than to add small amounts of functionality to an almost complete solution?

    That, sir, is poppycock!

    If one buys shahi paneer but finds it too bland, does one throw out precious food and make his own recipe from scat? No. Instead he just adds some bhut jolokia and he is very happy customer.

    why re-invent the wheel, right?

  • Anonymous coward (unregistered) in reply to qawo
    qawo:
    The GPL does not require an entire application's code to be released just because some small component uses a GPL component
    From http://www.gnu.org/licenses/gpl-faq.html
    If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license?
    Yes, because the software as it is actually run includes the library.
    
    So the GPL does in fact explicitly require that the entire application source code be released just because some small component uses a GPL component.
  • Different Anonymous Coward (unregistered) in reply to Anonymous coward
    Anonymous coward:
    qawo:
    The GPL does not require an entire application's code to be released just because some small component uses a GPL component
    From http://www.gnu.org/licenses/gpl-faq.html
    If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license?
    Yes, because the software as it is actually run includes the library.
    
    So the GPL does in fact explicitly require that the entire application source code be released just because some small component uses a GPL component.
    It is interesting that many other FAQs on that page refer to particular sections of the GPL, whereas that one doesn't.

    Just sayin...

  • B (unregistered) in reply to qawo

    It's funny how many people fail to read the license - or read about it, at least.

    What you say is right, but incomplete. What others have stated here (except for the part you quoted) is misleading or wrong.

    In layman terms:

    GPL V2: If you hand out something that uses code under GPL V2 or links to GPL V2 (the latter is ~hard~ in legal terms for late binding, plugins etc..) you have to offer a way to get the sources.

    You CAN sell your software. You CAN even ask for a reasonable amount of money to deliver the source (note: this is meant for shipment, media etc.. If you only offer your source on DVD and interested parties to pay for your costs to mail those you're good). The source doesn't need to be delivered with the product, but you need to provide the GPL license and point to a way to get the source.

    GPL V3: This has a couple of major changes. One was recently discussed online regarding Android: GPL V2 says that you lose the right to use the software if you're not in compliance, period. No words on how to get back on the good side again: If you say 'Whoops, here's the source' the license doesn't specifically say that your rights are returned. Untested in court, but this could mean that you'd need to ask ever contributor of a project (Hey, Linux!) to grant you the license (back) again if you messed up.

    GPL V3 fixes that and says that you're automatically back in the game if you're complying. But it also tries to fix the software as service loophole. With GPL V2 the general interpretation is that you don't need to open your application if your software is not distributed, just 'hosted' on your system for your clients (I'm aware of the post of someone here that says their lawyers disagree. I don't want to sound more clever than those, but they are certainly not following the mainstream interpretation here). GPL V3 now targets this specifically and says that this is considered creating a distributed, derived work. Source has to be available, under the GPL V3 license.

    Ah yeah. The topic, the architect.. Poor guy. He probably read about how cargo-cult programming is bad and totally didn't get it. I feel sorry for him..

  • B (unregistered) in reply to B

    (cue the 'the real wtf is this frikkin board software' jokes)

    The last reply was targeted at qawo, post 362482 in reply to 362464

  • AndyC (unregistered) in reply to Different Anonymous Coward
    Different Anonymous Coward:
    It is interesting that many other FAQs on that page refer to particular sections of the GPL, whereas that one doesn't.

    Just sayin...

    It's a really, really bad idea to rely om that FAQ page, several of the points it claims are at best dubious compared to the actual wording of the license. Others are just flat out wrong.

    If you include GPL (not LGPL) code in a program, the entire program must be GPL. And if a lawyer argues the distributing it internally constitutes distribution (and believe me they can and will) then claiming it was internal use only won't help one iota.

    Just sayin...

  • (cs) in reply to MWF
    MWF:
    "Third-party libraries introduce unnecessary risk into projects," the Global Services Enterprise Systems Lead Architect – or, The Architect, as he preferred to be called – would often say. "If the library is closed sourced, then we will be unable to fix bugs. If it is open-sourced, then we will not only have another codebase to maintain, but it will introduce certain legal risks."

    This is actually fairly spot-on, when speaking generally.

    If there exists some third-party solution that exactly solves your problem, then they can be quite useful - assuming that the legal department okays the licensing agreement, of course.

    But it's not often the case that you can find some library out there that really does what you want. Too many times people want to pull in third-party libraries that offer nearly what they want. That leads to nothing but headaches - you spend lots of time creating workarounds to try and mimic the behavior you really want. On long-term projects, the time spent on workarounds often ends up being longer than the time it would have taken to just write what you needed in the first place.

    People also tend to pull in large third-party libraries for tiny bits and pieces (or libraries with massive, overly-complicated dependency chains), leading to application bloat that may cause problems if you need to maintain a small footprint.

    Then of course there are the times when the third-party library is distributed under some licensing agreement that is likely to cause conflict with the legal department; it would be better to check that upfront and consider the tradeoffs in time spent writing the functionality yourself versus time spent battling with legal.

    And then there's the ongoing maintenance. My company offers basically one software product (and a few ancillary products that expand our flagship product), and each successive version is forked off the previous. It's entirely possible (and in fact quite likely) that code we write today will still be in use decades from now.

    Will those libraries still exist then? Will those authors implement the features we need? Will the licensing still be acceptable? It's uncertain.

    So we do most of the work ourselves; it's very hard to get approval from Legal to use any third party software.

    The biggest exception is one company that offers a product that would be time-prohibitive to write ourselves (especially years ago, when we first needed this software), and we actually have a contract with that company that if they stop maintaining their product for any reason, the intellectual property rights become ours and we will take over development and support going forward.

  • ac (unregistered) in reply to Svick
    Svick:
    Иagesh:
    This is why operator overloading is sacred animal feces. Operators (+,-,=,÷ etc.) are nothing but syntactical jujubes. All serious programming should use proper method calls only. Just like Java.
    Math.Divide(
      Math.Plus(
        Math.Minus(b),
        Math.Sqrt(
          Math.Minus(
            Math.Times(b, b),
            Math.Times(4, Math.Times(a, c)))))
      Math.Times(2, a))
    

    Would you prefer to write code like this?

    FTFY. Notice that if you close all those parentheses, it looks just like lisp! Just put abbreviated names, put them inside the parentheses and remove commas. Voilà:

    (div
      (add
        (neg b)
        (sqrt
          (sub
            (mul b b)
            (mul 4 (mul a c)))))
      (mul 2 a))
    

    And yes, I do prefer to write code like this.

  • ac (unregistered) in reply to qawo;ty
    qawo;ty:
    This is not the first time a reference to Nagesh eating shit appears....(I assume some wise-ass has translated Nagesh into a hindi alphabet or something)

    Indeed. Copy-pasta into Google Translate with automatic input language guess says "நாகேஷ்" is Tamil for "Nagesh".

  • ac (unregistered) in reply to MWF
    MWF:
    "Third-party libraries introduce unnecessary risk into projects," the Global Services Enterprise Systems Lead Architect – or, The Architect, as he preferred to be called – would often say. "If the library is closed sourced, then we will be unable to fix bugs. If it is open-sourced, then we will not only have another codebase to maintain, but it will introduce certain legal risks."

    This is actually fairly spot-on, when speaking generally.

    If there exists some third-party solution that exactly solves your problem, then they can be quite useful - assuming that the legal department okays the licensing agreement, of course.

    But it's not often the case that you can find some library out there that really does what you want. Too many times people want to pull in third-party libraries that offer nearly what they want. That leads to nothing but headaches - you spend lots of time creating workarounds to try and mimic the behavior you really want. On long-term projects, the time spent on workarounds often ends up being longer than the time it would have taken to just write what you needed in the first place.

    People also tend to pull in large third-party libraries for tiny bits and pieces (or libraries with massive, overly-complicated dependency chains), leading to application bloat that may cause problems if you need to maintain a small footprint.

    Then of course there are the times when the third-party library is distributed under some licensing agreement that is likely to cause conflict with the legal department; it would be better to check that upfront and consider the tradeoffs in time spent writing the functionality yourself versus time spent battling with legal.

    Instead of paying a (several?) developer's salary, you can probably approach the library author(s) and ask them if it's OK to purchase a specially licensed version. I'm sure if you made a substantial donation to author or the project, they might consider it, and you'd be free of legal concerns. This, of course, also probably means that you don't get updates from further development, but hey, you can't have everything.

  • ᴺᵃᵍᵉsh (unregistered) in reply to OAHwe
    OAHwe:
    ᴺᵃᵍᵉsh:
    Some damn Yank:
    ɥsǝƃɐu:
    Some damn Yank:
    As a mechanical engineer, I find that most electrical/electronic problems are usually fixed by giving the box a good wack.
    As not a mechanical Engineer, I find that you have much in common with my Nani.
    If you were a box, I'd agree with your Nani. BTW, how old are you?
    Old enough to know that most MEs actually would think that was a legitimate electronic repair procedure (read: kinda dumb). Also, I'm old enough to know that your PE (if you have one) explicitly forbids you from offering services or advice outside of your expertise domain. No one is impressed with your "qualifications".

    BTW-Threats of violence over the internet doesn't scare anybody. Ever.

    Did Nagesh #7 forget his accent, or was that just me (also, Nagesh #7 is defending Nagesh #9 - are all the Nagesh's one Nagesh?)
    The other Nagesh is legion. I'm one guy with legion of ᴺᵃᵍᵉsh names. I left the accent behind to properly dress-down Mr. Arrogant Yankee Noodler.
  • Xuan (unregistered)

    I know there are worse examples out there, but this one just irks me really badly...

    Every single paragraph was filled with sarcasm. Awesome shit.

  • Shinobu (unregistered)

    And this is why the reference equality operator and the value equality operator of a programming language should be different. As for prohibiting operator overloading, well I agree in principle, but I must say it makes it mighty annoying to do vector calculations. As a compromise, how about allowing overloading +, -, &c. but tying them to the class (no overloading + for int and other built-ins) and disallowing overloading for equality and such?

  • L. (unregistered) in reply to Software Libre
    Software Libre:
    t3D:
    Not if I have to release my "small amounts of functionality" to the whole world to see and my business is making money off of the software I write.

    The GPL can go fuck itself.

    One or more authors spent months (or years!) writing 98% of what you need. You were able to download their hard work, complete with source code, for free.

    And, you think it's somehow unfair that you can't redistribute THEIR WORK (plus your 2%) without providing the source to the 2%?

    Contact the original authors. They can relicense it to you without the restrictions of the GPL. If you make them a fair offer (say, 98% of the profits, considering they wrote 98% of the code), they might take you up on it.

    I like your vision of Open Source ... in my world, most OS libraries are of relatively low quality, some have been left to rot, and others are just duplicates of a copy of an imitation - of low quality.

    Wake up my dear, OS isn't such a blessing, there are only a few things you can really rely on, many need to be modified and some should just be removed for sanity.

  • ThomasX (unregistered) in reply to dkf
    dkf:
    Anon:
    No magic numbers!
    const int FOUR = 4;
    b.multiply(b).subtract(Integer.valueOf(FOUR).multiply(a.multiply(b)))
    Amateur.
    Strictly, the developer should have looked up a MathematicalConstantProvider implementation on the enterprise service bus rather than hard-coding that constant at all, so that it can all be configured correctly during deployment. That way, maximal flexibility would be achieved for only minimal extra complexity.

    There is an AbstractMathematicalConstantProviderFactory missing from your "design".

  • Open Sauce? (unregistered) in reply to L.
    L.:
    I like your vision of Open Source ... in my world, most OS libraries are of relatively low quality, some have been left to rot, and others are just duplicates of a copy of an imitation - of low quality.

    Wake up my dear, OS isn't such a blessing, there are only a few things you can really rely on, many need to be modified and some should just be removed for sanity.

    The majority of software is of relatively low quality.

    The only difference between open and closed source is that the open source screwups are visible to everyone, while the closed source rubbish just causes mysterious failures.

    However, this difference clearly means that the widely-used Open Source libraries are likely to be of a higher quality than widely-used Closed Source libraries - because everybody can see the dirty laundry of the open source one.

    Any kind of rarely-used library is likely to be poor to terrible, because anything that's used a lot either gets improved or replaced by something better.

    How do you think this website got started, anyway?

  • L. (unregistered) in reply to Open Sauce?
    Open Sauce?:
    L.:
    I like your vision of Open Source ... in my world, most OS libraries are of relatively low quality, some have been left to rot, and others are just duplicates of a copy of an imitation - of low quality.

    Wake up my dear, OS isn't such a blessing, there are only a few things you can really rely on, many need to be modified and some should just be removed for sanity.

    The majority of software is of relatively low quality.

    The only difference between open and closed source is that the open source screwups are visible to everyone, while the closed source rubbish just causes mysterious failures.

    However, this difference clearly means that the widely-used Open Source libraries are likely to be of a higher quality than widely-used Closed Source libraries - because everybody can see the dirty laundry of the open source one.

    Any kind of rarely-used library is likely to be poor to terrible, because anything that's used a lot either gets improved or replaced by something better.

    How do you think this website got started, anyway?

    /agree

    However, there are some closed source libraries that really have no equal (thinking about some c++ math stuff etc.) in Open Source -

  • -.- (unregistered) in reply to pjt33
    pjt33:
    Svick:
    Иagesh:
    This is why operator overloading is sacred animal feces. Operators (+,-,=,÷ etc.) are nothing but syntactical jujubes. All serious programming should use proper method calls only. Just like Java.
    Math.Divide(
      Math.Plus(
        Math.Minus(b),
        Math.Sqrt(
          Math.Minus(
            Math.Times(b, b),
            Math.Times(4, Math.Times(a, b)),
      Math.Times(2, a))
    

    Would you prefer to write code like this?

    No, of course not. I'd rather write it cómo Dios manda:

    b.multiply(b).subtract(Integer.valueOf(4).multiply(a.multiply(b)))
    

    etc. (I wasn't able to properly port your code, because your brackets didn't match up).

    This is much better already. Pity that cannot write

    b.multiply(b).subtract(4.multiply(a.multiply(b)))

    but that is just Java's stupidity.

  • Stephen Wilkins-Feeney (unregistered) in reply to L.
    L.:
    Open Sauce?:
    L.:
    I like your vision of Open Source ... in my world, most OS libraries are of relatively low quality, some have been left to rot, and others are just duplicates of a copy of an imitation - of low quality.

    Wake up my dear, OS isn't such a blessing, there are only a few things you can really rely on, many need to be modified and some should just be removed for sanity.

    The majority of software is of relatively low quality.

    The only difference between open and closed source is that the open source screwups are visible to everyone, while the closed source rubbish just causes mysterious failures.

    However, this difference clearly means that the widely-used Open Source libraries are likely to be of a higher quality than widely-used Closed Source libraries - because everybody can see the dirty laundry of the open source one.

    Any kind of rarely-used library is likely to be poor to terrible, because anything that's used a lot either gets improved or replaced by something better.

    How do you think this website got started, anyway?

    /agree

    However, there are some closed source libraries that really have no equal (thinking about some c++ math stuff etc.) in Open Source -

    So if you find a proprietary library that rocks your world and floats your boat and so forth, then use it.

    If you find an open source library that does what you need it to, bring the license to your legal department and ask them if it's possible to comply with this license. If they freak out, shake your fist at the sky, curse the day you were ever born to such a world, where people make neat stuff for the fun of it and give it away for free with only the requirement that you also share the neat changes you make to it, and go find or produce a proprietary library that you can work with.

  • been there with OS libraries (unregistered) in reply to Software Libre
    Software Libre:
    And, you think it's somehow unfair that you can't redistribute THEIR WORK (plus your 2%) without providing the source to the 2%?

    Contact the original authors. They can relicense it to you without the restrictions of the GPL. If you make them a fair offer (say, 98% of the profits, considering they wrote 98% of the code), they might take you up on it.

    except that their incomplete 98% does 96% the same as all the other incompatible and abandoned OS libraries that also only implement 98% of what you need... because instead of producing one library that was worth selling, the project splintered into factions over which OS licence to use or some coding style or design issue largely irrelevant to the finished API, and produced a plethora of incompatible and unfinished versions.

  • Roman (unregistered)

    Comments are so boring.

    PLEASE BRING BACK THE MANDATORY FUN DAY!!!

  • drusi (unregistered) in reply to x00|\|3s!s
    x00|\|3s!s:
    C-Octothorpe:
    Nagesн:
    C-Octothorpe:
    The trick is to never ask how old they are... Plausible deniability and all that jazz.
    Wait, did you just admit to pederasty?
    I plead the fifth, your honor.
    She was in fifth grade!?! You're really sick, you know that?!
    To be fair, most women have been in fifth grade at some point.
  • x00|\|3s!s (unregistered) in reply to drusi
    drusi:
    x00|\|3s!s:
    C-Octothorpe:
    Nagesн:
    C-Octothorpe:
    The trick is to never ask how old they are... Plausible deniability and all that jazz.
    Wait, did you just admit to pederasty?
    I plead the fifth, your honor.
    She was in fifth grade!?! You're really sick, you know that?!
    To be fair, most women have been in fifth grade at some point.
    I'm so using that at my hearing.
  • (cs)

    For perpus of record, Bhoot Jholokia not availabel in Hyderabad.

  • (cs) in reply to Nagesh
    Nagesh:
    For perpus of record, Bhoot Jholokia not availabel in Hyderabad.
    When you say not available, do you mean it's banned? Because that would be total sacred animal feces.
  • Arne (unregistered) in reply to Svick

    Or, if you use something like Ruby:

    (0.- b).+(Math.sqrt((b.* b).- 4.* a.* c))./(2.* a)

    Looks ugly...but I have a feeling that if this was what everything was defined as from the start - we would not have that big a trouble using functions only instead of these horrible operators.

    Ugly, ugly operators.

  • (cs) in reply to frits
    frits:
    Nagesh:
    For perpus of record, Bhoot Jholokia not availabel in Hyderabad.
    When you say not available, do you mean it's banned? Because that would be total sacred animal feces.

    I ment unavailabel, mean if you go to shop for "bhoot jholokia", shop-kipper laff a lot at you.

    Noting is banned in Hyderabad as far as edible stuf goes.

  • (cs) in reply to Nagesh
    Nagesh:
    frits:
    Nagesh:
    For perpus of record, Bhoot Jholokia not availabel in Hyderabad.
    When you say not available, do you mean it's banned? Because that would be total sacred animal feces.

    I ment unavailabel, mean if you go to shop for "bhoot jholokia", shop-kipper laff a lot at you.

    It's good to see some people in Hyderabad have a sense of humor.
  • (cs) in reply to Roman
    Roman:
    Comments are so boring.

    PLEASE BRING BACK THE MANDATORY FUN DAY!!!

    I have to agree with you.. most people complained, but a comic is sometimes better filling than a story on some days.

  • (cs) in reply to ᴺᵃᵍᵉsh
    ᴺᵃᵍᵉsh:
    Svick:
    Would you prefer to write code like this?
    I would prefer you not be starting game of FizzBuzz except more boaring.
    Shit, I wouldn't want to be boared at all. I've seen boars as a kid at the forest around our summerhouse. Thanks but I'll pass.
  • the one and lonely (unregistered)

    Could it be What I did see? An long comment thread With no big giant head Where could he be, The man with a J.D. No nuts to grope Had octothorpe. Oh, so missed was he this day Not! To see it twice I would pay. Perhaps a tale to close to home Through his employee list he doth roam To find the culprit who said this About or beloved …

  • (cs)

    Tennyson should have fired another salvo asking Teh Architect - "teh" intentionally spelled like that for this given case - for clarification of where that tribal knowledge failed to meet the bar in their specific case, in particular if the class was brand new and Tennyson was the only person using it.

    Unless the money is ridiculously good, or we have a family crisis that limits our walking-away options (God forbid), even in a shitty economy, there is (or should be) a limit on how much stupidity tea one should take as a professional, specially when the tea is being served by a sanctimonious asshole.

  • C-Octothorpe (unregistered) in reply to the one and lonely
    the one and lonely:
    Could it be What I did see? An long comment thread With no big giant head Where could he be, The man with a J.D. No nuts to grope Had octothorpe. Oh, so missed was he this day Not! To see it twice I would pay. Perhaps a tale to close to home Through his employee list he doth roam To find the culprit who said this About or beloved …
    hoodaticus, my love. Is that you?
  • (cs) in reply to Yuri
    Yuri:
    That make no sense. The "small amounts of functionality" that wat's his face was talking about are already in public domain.

    Not sure you understand the GPL If he edit the open source bit he must leave that bit open source. He is under no necessity to release any code that uses the Open source bit, only any modification he make to it.

    Whoa! You mean you make a single bit open source and, what, leave the other seven bits in the byte (octet) "closed?" Man, that is a truly fine-grained license. You, sir, have just blown my mind.

    Oh, also -- "Me Tarzan."

Leave a comment on “Tribal Knowledge”

Log In or post as a guest

Replying to comment #:

« Return to Article