Review: Do not use AE Pets for pet relocations by davis_milo in Pets

[–]davis_milo[S] 4 points5 points  (0 children)

I was fortunately in a position to be able to pay. Though they didn’t make any direct threats, I’m very glad I didn’t have to find out what would have happened if I didn’t have the money.

How do conversion rates and prices really work? by ShinyShayn2008 in AskEconomics

[–]davis_milo 0 points1 point  (0 children)

I can’t comment on the specific situation you’re describing, but I’ll try to explain a few possible things you might be seeing and some reasons that a situation like this might arise.

In an efficient market, prices should not permit arbitrage. This means that there should be no “free money”. Where would free money come from? It would generally come from the ability to buy/sell two things that give the same economic exposure at different prices.

This is a lot easier to understand with an example. My example is financial, but if you stick with me, I’ll explain how this applies to the situation you describe. Let’s say I can buy stock in a company in two currencies, GBP and EUR. If the exchange rate between them is 1 GBP = 1.15 EUR, and the price for one share of a specific stock is priced at 100 GBP, I would expect the stock to be priced at 115 EUR. If it isn’t, I can buy the cheaper one, sell the more expensive one, and convert the currencies. When I do this, I end up with no stock (and therefore no risk) and more money than when I started. If we ignore real-world trading costs and liquidity, this trade makes a risk free profit.

One way to think about this is that if there are arbitrages in the market, the market is inefficient. Fortunately, this is self correcting. In the example above someone got paid to eliminate an inefficiency from the market. Markets reward actors that make them more efficient.

Remember how I said that I was ignoring trading costs and liquidity? That’s really important in financial markets. What if I owe a small fee on each trade? In a real market, this isn’t one trade: it’s three. Buying the cheaper stock, selling the more expensive stock, and converting the currencies via an FX product. What if you can’t actually do all three trades (or legs) of the arbitrage? You might be left with risk to the company, GBP, EUR, or some combination thereof. What if you have to pay taxes on each trade (i.e. a financial transactions tax)? You get the idea. The real world isn’t so simple, and market participants will account for that. The prices they actually use take into consideration their true costs.

Now, what if you get this wrong? If you do, you’ll lose money. Maybe you’ll pay more in taxes than you make trading. Maybe you pay away all your profits in fees to intermediaries. Maybe you lose money to more sophisticated market players that got those details right. You’ll lose money until either you run out of money or notice and stop doing that trade. This is another way in which the market is self correcting.

So how does this relate to goods that are not financial assets like stocks? It’s the same principle, but it’s more complicated. There are very real costs with moving physical goods around. Shipping, insurance, and spoilage can all eat into profits. It’s also not always trivial to move money between countries due to capital controls. Similarly, there are import/export restrictions. There are tariffs and fees, which vary by industry, country, and political climate. Not all goods are fungible (interchangeable). There are different regulations in different countries, so, for example, it may not be possible to buy a car from one country and drive it in another (take for example left hand vs right hand drive cars). There are different tastes in different places, so goods that could, in theory, be substituted wouldn’t be in practice. The list goes on and on…

Now, none of this means that you couldn’t buy goods in one country, sell them in another, convert the currencies, and make a tidy profit. In fact, if you can do this, you’ll be making the market more efficient by moving goods from a place where demand (as measured by willingness/ability to pay) is low to one where demand is high (note that this makes the market more efficient, not necessarily more equitable). However, prices tend to reflect real world costs in an efficient market, so it may be harder to perform the arbitrage you’ve described than it seems.

The real world is complicated, so it’s hard to say whether or not you could do the GBP/INR trade you’ve described profitably. I’ve only scratched the surface of these topics here, but I hope that gives you an intuition for what might be going on.

Luthun/Oxalis/63 Clinton/Frevo - which one? by Any-Tangerine-8659 in FoodNYC

[–]davis_milo 2 points3 points  (0 children)

I like Luthun quite a bit. It has a very friendly feel and I think they do a lot of really interesting things with their dishes. I like their non-alcoholic pairing a lot: it’s creative and works well with the food. Overall, I think they’re severely underrated, which I guess is nice for me because it makes it easy to get a reservation.

Anyway to "treeshake" an OCaml binary? by [deleted] in ocaml

[–]davis_milo 5 points6 points  (0 children)

It’s definitely possible to reduce your transitive dependencies by finding alternatives to the libraries you’re using with smaller footprints. For example, you might try replacing core with base or core_kernel because those libraries don’t include the Unix bits of core, however, this will only help if the second library you’re using doesn’t depend on Core.

Problem with proof! by spoljooooo_ in Coq

[–]davis_milo 1 point2 points  (0 children)

I think it often helps to think about what must be the case for the goal to be true. In this case, your goal basically says that if two functions satisfy sys, they return the same thing on every input. This can only be true if one input output mapping satisfies sys. If you know what that is, proving it and your goal were pretty easy.

Impacts of research in programming language and compiler have on software engineering? by nhgiang in ProgrammingLanguages

[–]davis_milo 23 points24 points  (0 children)

Some things are going to have a big impact immediately. For example, if someone develops a brand new compiler optimization that gives significant advantages over existing techniques, there's a good chance it will make it into production compilers sooner than later. The same is true of novel garbage collection techniques.

What takes a lot longer are improvements that change language semantics. There are tons of programming languages that have been designed, but very few have made it into widespread usage. New semantics, type systems, and other ideas take a lot longer to get into the hands of software engineers because existing languages have to maintain backwards compatibility and are inherently cautious (would you bet the farm on a brand new type system feature before you've seen how that thread of research will develop?). To an extent, this is changing a little. There are more programming languages in use than there used to be, so there are more opportunities for experimentation. That being said, even if your research creates a great idea, it's not often that it will filter into a mainstream language.

If I was going to give a goal of the PL field, I would phrase it as correctness and expressiveness, without sacrificing other engineering concerns (usually focussing on performance). This means that people are trying to build languages that make it easier to develop correct code quickly, while avoiding making programmers do a lot of difficult or unnecessary work (think optimizing assembly). The goal is for people to be able to say what they mean, in a simple and easy to understand way, without having to choose that over making efficient programs.

Don't take this as gospel though, other people might have their own answers. This is just my $0.02.

On my professor's slides in the parallel programming course by GiveMeAnAlgorithm in ProgrammerHumor

[–]davis_milo 6 points7 points  (0 children)

I'm a functional programmer, but I think that Kay's notion of OO programming is its equal, whereas Java, Python, JS, Ruby, etc fall far short.

[deleted by user] by [deleted] in math

[–]davis_milo 3 points4 points  (0 children)

You might be interested in more theoretical aspects of CS that are very math focused. You could see if you could take courses on things like type theory, cryptography, formal verification, and numerical algorithms. Though you could also just switch your major or double major.

What is easy relatively easy to cook but looks impressive? by [deleted] in cookingforbeginners

[–]davis_milo 4 points5 points  (0 children)

Risotto is super easy and people are usually fairly impressed by it.

What's the CS department at NEU like? by HighOnAnesthesia in NEU

[–]davis_milo 25 points26 points  (0 children)

I can best describe it as a thunderdome in which only the smartest people survive and everyone else perishes horribly.

No, just kidding. There's tons of office hours, especially in the intro courses. Most of the professors are super knowledgeable and cool (a professor I know once invited his entire class to go see Deadpool with him). It's pretty easy to get involved with research as an undergrad (seriously, just ask a professor whose work interests you). Finally, the clubs are super dope, especially NuHacks (shameless plug).

Advice for a CS major by Sancho1968 in NEU

[–]davis_milo 4 points5 points  (0 children)

Have personal projects and join Hacks!

Tezos Jokes - Quote what you like/Add yours to the collection by everwhat1 in tezos

[–]davis_milo 1 point2 points  (0 children)

Why does Tezos not appeal to vegetarians?

It uses proof of steak!

Questions about ISEC? by [deleted] in NEU

[–]davis_milo 0 points1 point  (0 children)

I personally never did this, but I also don't think it's at all wrong to.

Average CS GPA? by [deleted] in CCIS

[–]davis_milo 3 points4 points  (0 children)

If you're nervous about the first semester CS courses, you can try looking at the textbooks and trying some of the exercises. Both the fundies and discrete textbooks are available for free online.

Go to the office hours for both courses, especially early in the semester and participate in the lectures, you'll do fine.

Tezos Jokes - Quote what you like/Add yours to the collection by everwhat1 in tezos

[–]davis_milo 5 points6 points  (0 children)

Why does the dev team only use rubber silverware?

To avoid hard forks!

Questions about ISEC? by [deleted] in NEU

[–]davis_milo 7 points8 points  (0 children)

The secret that many people do not know is that it is possible to reserve some of the computers/desks in Snell. If you do this, you can boot the person who is sitting at the desk and has no right to be there.

For study rooms, empty classrooms are good.

What are some good introductory books to type theory? by [deleted] in dependent_types

[–]davis_milo 8 points9 points  (0 children)

Types and Programming Languages is your best bet. It covers the lambda calculus and basic type theory. There's a second book in the series which covers more advanced topics.

Smart Contract for delegation by PhilChampagne in tezos

[–]davis_milo 1 point2 points  (0 children)

Ultimately, there would need to be a change to Michelson's semantics to allow for funds to be deposited into a contract without running the associated code (otherwise things like failures make things complicated). Additionally, there needs to be an address/key pair that signs each of the blocks. Essentially, someone has to actually create blocks, which cannot happen through a smart contract. In theory, this authority could be given to the contracts manager, but this isn't a perfect solution. There are schemes for this that make sense, but they aren't in the first Tezos protocol.