Slashdot Mirror


User: Estanislao+Mart�nez

Estanislao+Mart�nez's activity in the archive.

Stories
0
Comments
2,270
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 2,270

  1. I don't think so... on Microsoft's Top Devs Don't Seem To Like Own Tools · · Score: 1

    If CPython didn't suck so bad at performance, Google wouldn't have had to write "Go".

    I don't think so. Go is very different than Python. Python's designed to be a really simple procedural + OOP language. Go is procedural only, but the big idea is to facilitate concurrent programming by forbidding shared mutable state, and have all thread synchronization be done by communications channels. Even if Python suddenly became a lot faster, it would still be haunted by shared memory issues when it comes to concurrent programming, and Go would still have the advantage for writing concurrent code.

  2. Re:They are trying to go public on Facebook Stock Going Public? · · Score: 1

    What? Should Slashdot be sued for "tipping" because an article was posted here about it? What about the Wall Street Journal, for writing about their stock reclassification? Sue them too?

    The stock reclassification is public knowledge, as is the existence of that WSJ article. The original poster in this thread claims to have insider knowledge obtained from somebody in the employ of the company. Those are very different.

  3. Those two things are orthogonal. on Facebook Stock Going Public? · · Score: 1

    IANYFA, but you can't sell short from an IRA account, you'll need a margin account. If you want to fund that margin account with your 401k proceeds, it will be a taxable distribution.

    IRA and margin accounts are two orthogonal things. An IRA is a tax-advantaged retirement savings account, and an margin account is an account that allows you to borrow against your securities. There's no legal reason you can't have a margin account within your IRA.

    Don't actually do it, though. Margin accounts are mostly just a mechanism for losing money.

  4. No, don't quit the 401(k). on Facebook Stock Going Public? · · Score: 2, Insightful

    401(k) plans may suck, but you're investing pre-tax, and your employer may be matching your contributions, in which case you'd be leaving money on the table by not participating. Over the long term, the investment return on the tax savings and an employer match are more important than the mediocre performance of your employer's sucky 401(k) plan. Here's better advice:

    1. First priority is to contribute to the 401(k) plan up to your employer maximum match. Make sure that you pick the lowest-cost, most diversified investment choices offered in the plan (i.e., the ones that suck the least). Index funds are ideal, so if your 401(k) offers some, pick those up.
    2. Once you've made the match, your second priority is to put further contributions into an IRA from a good provider. I'll insist that you go with Vanguard.
    3. Once you've filled up the IRA, then if you have extra money to invest, put it into the 401(k), so you get more of the tax savings.
    4. When you leave your employer, make sure to roll the 401(k) over to an IRA at a good company like Vanguard.
    5. Learn about asset allocation and rebalancing, and practice them religiously.
  5. Private vs. public doesn't make difference. on Facebook Stock Going Public? · · Score: 1

    Once it's a public company, it has a fiduciary responsibility to bend its users over to try and get as much money for its shareholders as it can.

    I second Phat_Tony's response to you, but I have to add one really important fact you're missing: private vs. public isn't relevant for this. All corporate officers, be it at private or public corporations, have a fiduciary responsibility toward the shareholders.

    To your credit, though, in private corporation the shareholders and the officers tend to overlap a lot more, so there's often fewer conflicts of interest in this regard.

  6. Re:Concurrency? on Haskell 2010 Announced · · Score: 1

    I'm still tempted to quibble at the difference between "opaque" and "side effect free". Hidden side effects are still side effects, although I guess so long as they truly are opaque then the formal constraints on the language are still enforceable, and one gets the power of pure functional programming out of it.

    We need a more careful definition of "pure" and "side effect" to answer this one.

    A pure function (or, mathematically speaking, just a function) is a value that maps each value of a domain to exactly one value of its codomain. The result of applying a pure function to a value depends on nothing other than the function and the value it applies to. If f is a pure function and a is a value, f(a) always has the same value, no matter in which context you call it.

    Correspondingly, an impure function (which is mathematically not a function at all) is one where the same function, applied to the same value, can produce different results at different times. This means that the result of the function is context dependent; the function result depends on its arguments and some piece of mutable context.

    Now, a side effect is any change to a mutable context. If a function has a side effect, then a call to that function has the potential to change the values returned by future calls to impure functions.

    So, Haskell is functionally pure because all functions you can write in Haskell are pure; the language doesn't allow you to write any code that implements an impure function where the result depends on anything more than the argument values. Because all of the possible Haskell functions are pure, they are all side-effect free relative to each other. No Haskell function can have a side effect visible to any other Haskell function; this follows just from the fact that they are pure.

    However, the trick that the IO monad does is that your program is implemented as a pure function from an initial state of the world to a final state of the world. The runtime system, conceptually speaking, calls this pure function, but it never calls it with the same initial value, and the program's main function likewise never returns the same value. So the IO functions in your program are pure (in a mildly perverse sense, given that the IO values are never reused) and side-effect free (as far as any of them can detect), even though the runtime system is side-effecting the world behind the scenes.

    Why does it matter to insist that the language is pure and side-effect free? Because it means that you can reason about code and transform it in ways that you couldn't if the language wasn't. In particular, you have the following guarantees:

    • The same function applied to the same values always has the same result, period.
    • You can compute the values of function applications in any order that respects the dependencies between values, and you will always get the same result.
    • If you compute the value of a function application in one part of the program, you can always reuse the result there if you need to compute the same function application anywhere else.

    These guarantees don't apply in impure functional languages like ML, because those languages allow for pure functions that side-effect the world; e.g., a function print_hello in ML may print a string "Hello" and return "unit," the ML/Haskell equivalent of null. The function is pure, and doesn't cause other functions to be impure, but you can't reorder the call to print_hello with another one, because that other one might then perform IO in the wrong order. You can't decide to cache the result of print_hello either, because then you'd fail to print the string when the program was supposed to. Haskell is designed in such a way that the guarantees listed above hold everywhere, but without breaking the IO system.

  7. A simple explanation on Haskell 2010 Announced · · Score: 1

    A purely functional language can model a stateful computation by encoding the program as a sequence of state transformers. Basically, the state of a computation is explicitly represented in the program by actual values that you pass around as arguments to functions that return a new states. By chaining state transformer functions you can write an equivalent to any imperative program.

    Thus, in principle, could encapsulate IO into a purely functional language simply by requiring that all IO functions take an abstract "state of the world" argument and return an altered "state of the world" value. These "state of the world" values don't have any functions that allow you to introspect into them; all they serve to do is to determine the order in which IO actions would be performed.

    So for example, your purely functional language could have a print(str, sow) function would take as its arguments (a) a string to be printed, and (b) the state of the world before the string has been printed, and return (c) the state of the world after the string has been printed. If you want to print "Hello " before "world!", then you have to write code like this ("sow" means "state of the world," and is passed in as the argument to the main() function of the program):

    function main(sow):
    print("world!", print ("Hello ", sow))

    In this pseudocode, "Hello " is printed before "world!" because the state of the world that results from the inner print() function call is passed in as an argument to the outer one.

    The problem now is that unless you do something to forbid it, people can write impossible programs by using nonsensical state chains; e.g., by trying to use the same "state of the world" value twice as if you could reset the world to the state before you printed "Hello " and reperform this destructive action:

    function main(sow):
    let s1 = print("boo!", sow)
    in discard_first(print("world!", print ("Hello ", sow)), s1)

    function discard_first(a, b):
    b

    In this nonsense program, you're supposed to print both "boo!" and "Hello " as the very first thing, which is impossible. The main() function is also supposed to return the state after "boo!" was printed, which means that the caller of main() is allowed to print stuff before "world!". Yeah, it makes little sense.

    Basically, you can think of monads as an abstraction that allows us to implement this kind of purely functional state-passing program, but encapsulating the state-of-the-world values so that the callers can't touch them, and thus prevent them from writing nonsensical programs. So strictly speaking, they allow the language to provide side-effecting operations but isolate them from the purely functional parts of the language. Any function that does IO must use the IO monad in its type, and purely functional code that can't extract any values or state from the IO monad. To perform any computation on values that depend from things you read from IO, for example, you can't pull out the state-dependent values out of the monadic context and pass them as arguments to your functions; you must, in effect, pass your functions to the IO monad so that its internal implementation can apply them to the quarantined, stateful values.

  8. Closures are probably really necessary. on Haskell 2010 Announced · · Score: 1

    Closures are a mechanism that allows you to efficiently write a function that can produce infinitely many different functions as its output. Functional programming without closures would either be a big pain, or would involve compiling new functions at runtime all the time. There might even be things that you provably can't do without closures; in the lambda calculus, beta-substitution can substitute free variables inside a lambda abstraction with values from outside its scope, so it comes down to whether certain restrictions on substitution impair Turing completeness.

    And once you have closures, you need garbage collection.

  9. Re:...because those folks are full of it. on Is That Sushi Hazardous To Your Health? · · Score: 2, Insightful

    I think I may be using "linguistic prescriptivism" in a slightly different, more general sense than you have in mind.

    Yes, and one completely disconnected from the actual practice of the thing.

    People always try to distinguish themselves as social superiors, it's what we (including linguistically-educated people quick to jump in with cries of "there's no so thing as "correct" English usage! Language is fluid!") do. People also try to get others to share their views about art, music, and morality, and tend to like more those who do so. I fail to see what the problem with that is. The only difference is that the issue of morality has tended to get wrapped up with the power of the state, so views on that one have more consequences (not to say that issues of language and culture don't have significant sociological implications).

    No, there are more differences here. In your comparison here, language falls somewhere in between art/music and morality. People are far, far more likely to assume a gustibus non disputandum attitude about art and music than about language. If you don't like a certain form of music, you might get called tasteless or a philistine at worse. If you speak a non-standard dialect, on the other hand, you will have people say that you are illogical and mentally deficient, or even worse. Especially if dialect in question is AAVE; inner-city black children have been matter-of-factly said to not have language at all in some academic circles.

    In any case, if I find one form of the English language more aesthetically pleasing than another, why shouldn't I prefer that it become dominant?

    You can prefer all you want. The problem starts when you bully other, less educated people than yourself into bowing to your preferences as superior for spurious reasons--which is what actually happens in practice.

    However, the gap between is and ought remains as wide as it ever was, and my reasons for preferring certain forms of English are mainly based on aesthetics and tribalism, not some imagined sense of the practical superiority of one form over another (with the vehement exception of the Oxford comma).

    But you see, "cuz I say so" is a pretty bad reason to demand that other people talk and write in the way you say they should. It's one virtue is that it is at least honest--a typical prescriptivist will cover it up with piles and piles of bullshit about "logic" and "aesthetics" and "clarity" and "avoidance of ambiguity" and on and on and on.

  10. Invalid argument. on Is That Sushi Hazardous To Your Health? · · Score: 1

    In my culture people go to eat a "sushi restaurant" to go get "sushi" but then they order "sashimi". This would indicate that in the culture I live in sashimi is a subset of a boarder category of "sushi".

    Close to where I live and work there's a restaurant that specializes in Philly cheesesteaks; they also make burgers. My coworkers and I often go to get "cheesesteak," and inevitably one of us ends up getting a burger. Would this indicate that in the culture I live that burgers are a subset of a broader category of "Philly cheesesteak"? Oh, and there's this Turkish pizzeria where I usually get kebabs...

    Not that I'm trying to argue that Americans understand very clearly the difference between sushi and sashimi (they don't), but the argument you're making just doesn't follow. It's very common for a restaurant that specializes in one food item to offer a couple other ones that are considered distinct. For example, in some Latin American countries a panadería is literally a bread bakery, but these places typically also make sandwiches, coffee, toast and pastries, and very often also serve as cafeterias serving full lunch meals.

  11. Nope. on Is That Sushi Hazardous To Your Health? · · Score: 1

    Butchering words is how languages grow and develop.

    You're thinking about language as a layperson does: conceptualizing it as a big bag of words, so that language change means change of the words in the bag.

    A linguist, on the other hand, thinks of language in terms of grammar: a set of implicit, shared rules for using sound to encode meaning. This involves rules for things like which sounds your language has, how those sounds may be combined into syllables, and how to form phrases and sentences out of words.

    A simple change in the inventory of words is the least interesting kind of language change; in fact, in the classic Comparative Method, those sorts of individual word changes are noise that one must discard in order to prove the historical relationships between languages. What is more interesting is the change of the grammar of a language; e.g., the change of a language's whole sound system , so that all of the words of the language are affected in an uniform manner.

  12. ...because those folks are full of it. on Is That Sushi Hazardous To Your Health? · · Score: 1

    Why exactly do you think that, if you've studied language, you must necessarily give up on linguistic prescriptivism?

    Because you realize that, almost without exception, prescriptivists are full of shit, and trying to solve "problems" that don't exist with solutions that make no damn sense. You learn pretty quick that these folks don't know what the hell they're talking about and are constantly making up inane rules that they don't ever follow, and demanding that you do. You also realize that it all comes down to them trying to impose their idiosyncratic, unfounded taste as the rule.

    Then you study some sociolinguistics, and you realize that it's just some folks trying to construct a style to distinguish themselves socially from other folks they look down on.

    This is the same problem I have with the more glib moral relativists - I accept that there is no "objective" standard, but that doesn't mean that I can't make prescriptive statements, it just means they're backed up by me, as opposed to nature or God.

    Are you really ready to back up your prescriptive statements about English usage, using modern linguistics? That would be quite an exceptional character.

  13. Two points... on Is That Sushi Hazardous To Your Health? · · Score: 1

    Sushi, and other words, are defined by how people use them. And in the US that means rice and raw fish wrapped in seaweed for 99% of the population. Then english language, unlike C, does not have an ansi standard. It's all fluid.

    Two points:

    1. The "meaning is use" theory you're espousing here is not as simple as you make it. One of the ways people use words is to defer to experts on their precise use. The classic example is that, off the top of our heads, most of us cannot tell fool's gold apart from true gold, yet most of us will defer to somebody who knows better as to whether a given nugget is really gold or not. Likewise, most of us will defer to an expert in Japanese cuisine on what is "sushi" and what is "sashimi."
    2. However, the biggest problem, and one which you're missing, is that the raw pieces of fish used in sushi are not actually called sashimi by the Japanese. Sashimi is a different way of serving the (some of) the same ingredients, involving no rice; additionally, sashimi is commonly eaten at homes, whereas sushi is restaurant food. People who affect to calling the piece of fish in the sushi sashimi in English are, under the terms of my first point, pretending they have expertise about Japanese language and cuisine that they actually don't.
  14. Is the problem really DPI? on Are There Affordable Low-DPI Large-Screen LCD Monitors? · · Score: 5, Interesting

    I think the real problem here is that the software is rendering text way too small. Tons of websites out there insist on ridiculously tiny font sizes like 8 point.

    Apple had at one point a plan to give OS X resolution-independent rendering, so that UI objects are always displayed at the specified physical size independently of resolution. That seems to have fallen by the wayside, but this is part of the correct solution--the other part is to alow the user to just say they want everything to be displayed larger at a specified ratio.

  15. Galileo was not quite a "crackpot" in his day. on Are You a Blue-Collar Or White-Collar Developer? · · Score: 1

    Cute, the old "they laughed at galileo" adage... Every crackpots favorite.

    Folks, we all know about Wegener, Semmelweis etc. How they were ridiculed and later vindicated. Now, why do we remember these guys? Because they were the exception. They happened to be right. They were not your ordinary crackpot.

    Don't miss the fact that Galileo was popular and controversial in his own day. Just as he had a lot of enemies calling out for his blood, he also had a lot of people who thought very well of him. The Medici, the Jesuits, other astronomers; and for god's sake, the Pope Urban VIII himself was his friend and admirer, and asked him to write the book that got him condemned.

  16. This stuff deserves better explanation. on FreeCreditReport.com Wins 1,017 Domains By UDRP · · Score: 1

    I don't think they existed before the US government mandated the credit agencies give you a free copy of your credit report every year (via annualcreditreport.com). "free"creditreport.com doesn't actually give you a credit report for free; you have to enroll in a reporting service to get it.

    This is worth emphasizing more carefully so that people can't possibly miss it. You are entitled to one free yearly credit report from the consumer credit reporting agencies. The official website for this is AnnualCreditReport.com.

    Some important details to be aware of:

    • A credit report is not the same as a credit score. A credit report states what names and addresses are known for you, what credit accounts you have had, and your history of making payments on these accounts. A credit score is a number generated by a computerized analysis of your credit report, used for a quick judgement of how good your credit is.
    • You're entitled to one free credit report each year, not a free credit score. The free reports website will forward you to the websites for the credit reporting agencies to get your reports. Read the pages in those websites very carefully, because the reporting agencies are sleazebags that will try to trick you into buying a credit score in addition to your free credit report, and sell you credit monitoring subscription services.
    • The credit scores that the websites will try sell you are normally calculated with a different formula than the ones that lenders use to process your credit application. So don't buy the agencies' credit scores because you'd like to see the same score that a lender would pull up for you; the number will likely not be the same. (The credit agencies don't want you to know this either; when pressed upon this point, they say something along the lines that they sell you a special credit score designed to help consumers improve their credit.)
    • The point of looking at your credit report is to make sure there are no errors. Read the information carefully, and if you see anything you think is an error, then bring it up with the agency.
    • You don't have to get the credit reports from all three agencies all at once. You can get a report from one of them now, one from another four months from now, one from the third eight months from now, and start the cycle all over again next year.
  17. Yes. on Go, Google's New Open Source Programming Language · · Score: 1

    Also immutable objects are 100% safe in multi-threaded environments which means they require no mutexes/locks/semaphores or any other such thread access control tricks. This makes using them much speedier.

    Yes. And additionally, strings are the most common type of object used as a hash table key. Mutable keys can lead to nasty bugs.

  18. Serial latency on Apple's Mini DisplayPort Officially Adopted By VESA · · Score: 2, Interesting

    Yeah, just like people using serial ports to program Cisco gear or people in EE using serial ports to program microcontrollers by plugging the RX and TX pins directly to a serial port.

    IIRC, serial ports offer lower latency than USB, and certain real-time guarantees. So, for example, you use a GPS unit with a serial port connection to deliver a pulse-per-second output to your computer, which ntpd can then use to calibrate your clock pretty accurately. It works much worse with USB.

  19. Re:Good Example, But Not Necessarily How You Meant on Glenn Beck Loses Dispute Over Parody Domain · · Score: 1

    I watched the video of her delivering the speech, and it's perfectly plausible that her explanation is true. "...two of my favorite political philosophers: Mao Zedong and Mother Theresa" has all the hallmarks of a poorly delivered joke.

    ...and then there's the fact that republicans often quote Mao too.

  20. Re:Psychonomics on What Computer Science Can Teach Economics · · Score: 2, Insightful

    I'm not saying that there isn't value to distributing tasks across people that are specialized at them. I just don't buy the argument that economics is never a zero-sum game. I think in all but the most ideal circumstances, it is indeed zero-sum game. Often the case, the true cost is hidden in the form of time. If the costs do not happen at the same time as the benefits, people only see the benefits for a long time and then lament the cost later.

    Two points here:

    1. The claim that a given game is not zero-sum game doesn't entail that there are no outcomes where the sum is zero. It just means that there are outcomes where the sum is not zero. And it doesn't entail a positive sum--the sum can be negative.
    2. You do bring an important point, however, in the part of your comment where you argue that one generation's children might not agree that what their parents did was valuable. One of the problems with the argument that free markets produce optimal outcomes is that there is no guarantee that this "optimal" outcome is one that anybody actually wants. If your economy contains two people who want things that are attainable with the available resources but incompatible with each other, and they have equivalent resources, neither will be able to get what they want. You will hear people argue that this is the "optimal" outcome because it's the best that they can realistically hope for, but then when you're not pointing out this problem to them they'll gladly try to squelch criticism of market outcomes by claiming that the outcome is "optimal."
  21. Cart before the horse. on What Computer Science Can Teach Economics · · Score: 2, Insightful

    I thought growth came from fractional reserve banking.

    No. This is really much simpler than you're thinking. "Growth" really just means that people, in the aggregate, obtain more or better real goods and services. Or to put it in crude terms, economic growth = people obtain more and better stuff than they used to be able to.

    All the stuff about markets, currencies, banking and investment is just a set of schemes to make it possible for more stuff to be built. For example, using money instead of barter to trade makes it possible to have extremely specialized label. How many CT scans does the radiologist have to trade to the car mechanic to get the latter to fix his transmission?

    bank to [A] -> here is loan
    bank to [A] -> please deposit your loan
    [A] to bank -> ok
    bank to [B] -> here is a loan derived from the money loaned to [A] who kindly gave us some free money

    You're missing the part where A and B work and produce valuable stuff that didn't exist before, get paid for it, use the money to pay the bank for the loan, and the bank's shareholders are now able to buy the stuff that A and B produced. Basically, credit is a mechanism for paying for stuff today with tomorrow's stuff. It does fall apart if there isn't enough stuff tomorrow, true.

  22. Yeah, anything people choose is always good. on What Computer Science Can Teach Economics · · Score: 1

    I give you $150 and you give me an hour of labor. We've both benefited by the trade. If we are really acting freely, we've both benefited (or we wouldn't have engaged in the trade), so we are both wealthier than we were before.

    I know that stuff is a standard economics axiom, but this is one of the canards that people trot out to defend the unthinking application of free-market policies: that whatever trades "free" people do are necessarily good and beneficial, because otherwise they would not have chosen to make those trades. That, of course, can be stretched to justify any outcome the market produces whatsoever. People drink toxic sludge? Well, we know that they chose it in order to maximize their utility, because, um, everything people choose maximizes their utility, because otherwise they wouldn't choose it.

    Not to mention that this sort of thinking dismisses offhand the whole problem of weakness of will. The psychological drug addict who keeps doing drugs despite judging that it's destroying his life clearly is lying to himself about the latter. He is truly better off losing his job because of his crack addiction, because otherwise he wouldn't have chosen to buy crack.

  23. Right. on What Computer Science Can Teach Economics · · Score: 1

    The emergent intelligence of the market will likely never be able to be simulated.

    Right. A true believer must take it on faith.

  24. Not quite... on What Computer Science Can Teach Economics · · Score: 3, Insightful

    Polynomial time approximate, probabilistic or special case solutions to NP problems are wide spread. The problem is that real human being in economics can not be easily described by an equation - and when they can be, they quickly change their behavior based on that knowledge.

    No, I'd say that we're dealing here with two facets of the same problem: the unreality of Homo economicus. The classic objection to economic theory is that people don't act "rationally" in the sense that economic theory requires them to do; even when given all the information that should be necessary to make a decision, they often make an "irrational" one. The objection this sort of applied CS research brings to reinforce that is that economics not only assumes perfect rationality, but also, that "perfect information" requires that arbitrarily complex computations be performed in arbitrarily short times. This is because to have "perfect information," you must compute all of the consequences of all of the information you've explicitly seen.

    In fact, I'd say that the irrationality and the computational complexity objections overlap. There's bound to be a lot of cases where the "irrational" decisions come from a failure to compute the consequences of the information that's explicitly given. (There are certainly other cases where it's not, like on the experiments where somebody is asked to split $100 between themselves and another participant, on the condition that if the other party doesn't agree with the split, neither one gets anything.)

  25. Better choices, perhaps... on Comic Books Improve Early Childhood Literacy · · Score: 1

    It's usually the case that in every country there is a classic comic strip or two that is very highly regarded, and which language learners would do very well to pick up and read, with the extra bonuses that (a) people won't look down on you for reading it, and (b) people often make references and allusions to the strips in question in everyday conversation. For American English it's Peanuts; for Spanish it's Mafalda; for French it's Astérix.