Hacker News new | past | comments | ask | show | jobs | submit | Guthur's comments login

What are you taking about, is not artificially deterministic, it is like that by design. We are fortunate that we can use a logic to encode logic and have it for the most part so the same thing given a fix set of antecedents.

We even want this in the "real" world, when I turn the wheel left on my car I don't want it turn left only when it feels like it, when that happens we rightly classify it as a failure.

We have the tools to build very complex deterministic systems but for the most part we chose not to use them, because they hard or not familiar or whatever other excuse you might come up with.


The fact is that while the tools exist and may be easy to learn, there’s always that nebulous part called creativity, taste, craftsmanship, expertise, or whatever (like designing good software) that’s hard to acquire. Generative AI is good at giving the illusion you can have that part (by piggybacking on the work of everyone). Which is why people get upset when you shatter that illusion by saying that they still don’t have it.


And if you borrow that money is even better because they just created the money for you to add to the GDP, and now it will have lots of sweet service fees and interest in top of that.

And on a side note because US dollars are the reserve currency and only created in one country they can go shopping around hovering up every asset and resource.


Consider this scenario. Dollar holds value for the next 1 year. FED prints dollar. It gives them to BlackRocks of the world. And these vehicles go shopping around the world in emerging markets buying up ownership. Similar to Cantillon effect, others and emerging market are left holding the bag.

Here’s How America Really Runs Britain | Aaron Bastani meets Angus Hanton

https://www.youtube.com/watch?v=uK7DINiVuPA


    > FED prints dollar. It gives them to BlackRocks of the world. 
This in nonsense. No such thing happens in the US. Also, as I understand, the Federal Reserve is winding down QE from the last 10+ years.


I was just highlighting a scenario of cantillon effect on the back of reserve currency status. But such a convergence of factors is possible, don't you think? Or atleast it could play out in this manner.


The US produces a lot of things others want to buy, including stability and security, and that is why non Americans want USD and hence others give Americans purchasing power.


They are not given a choice mate, the US has shown itself quite willing to unilaterally dispose of any government it feels to not be doing exactly what they want. And is on record to at least plan to kill it's own citizens to justify such actions.

The narrative that we all have peace because of the US is well and truly broken, the propoganda can't cover the smell, it stinks to bad.


I’m sure China/Russia/Israel/India/Saudi Arabia/Iran/North Korea/Pakistan/etc are all doing exactly what the US wants.

The US is so effective that it can force a country that it embargoes (Iran) to sell oil in USD to a country with its own currency (India).

https://www.economist.com/finance-and-economics/2024/10/17/i...

And the US allows articles to be written about China and Saudi Arabia considering buying and selling oil in Yuan, ostensibly to provide cover for the fact that the US is actually forcing both China to buy in USD and Saudi Arabia to sell in USD.

https://www.wsj.com/articles/saudi-arabia-considers-acceptin...

It couldn’t possibly be that Iran trusts USD to have a more reliable purchasing power than an Indian Rupee, or that Saudi Arabia would rather bet on stability from USD rather than the Yuan.


The other important stuff is due to petrodollars and US controlled swift system, there is no real price discovery in the world economic system.


Trade balance shows US doesn't produce that much others wants to buy while others produce a lot of things US wants to buy. You almost never see "Made in USA" outside of USA, except some agricultural products like almonds from California.


Look at the biggest software tech stocks. They generate enormous amounts from exports. Same for pharma. Same for AMD, and most of their final product is manuf in Taiwan, Malaysia, and Korea. Made in X will most often be seen on clothing and cheap consumer goods. Those are low value products, produced in poorer countries. Even the iPhone is mostly assembled in China, but where do most of the profits land? With Apple.


Trade balance isn’t going to show a lot of what the US offers, which is not readily convertible to a numeric figure.

Changes in currency exchange rates are the best way I know of to get a pulse on what the collective population of the world thinks about what the US offers.

Things like choosing to do business in the US because they overall trust the courts, or investing in US companies because they overall trust the management and SEC oversight. Or even just investing in US land because they trust the internal stability and lack of external threats.


> Changes in currency exchange rates are the best way I know of to get a pulse on what the collective population of the world thinks about what the US offers.

No it isn't, many non-American companies trades in US dollars without anything ever having to do with the USA. The world doesn't change what currency it trades in that easily, people will stick with the dollar until USA screws up majorly, like every previous world currency did.


A French bank was fined $9 billion by the United States because it routed Iran-France trade payments through US banks in dollars, violating American law (despite the trade being legal internationally), demonstrating the power of the US dollar as the global reserve currency.

When Will De-Dollarization Happen? Explained by Kishore Mahbubani

https://youtu.be/k_9bU90gGmo?t=183


The world trades in many currencies, in varying amounts. Supply and demand of currencies is always in flux.

The continued strength of the USD is just a vote of confidence in the buying power of the USD in the future.


> The continued strength of the USD is just a vote of confidence in the buying power of the USD in the future.

Right, but that buying power comes from buying Chinese goods, so a European likes USD since China accepts it and you can buy stuff from them with it. Nobody buys American so that isn't a factor.

If China stopped accepting USD the demand for the currency would drop like a rock, since it is the main exporter in the world.


And why does China want USD? At the end of the day, demand is demand. One or multiple people want to use USD, and why would people want to use a specific currency? Because they trust it to get them something else they want in the future.

China has yuan, Europe has Euro, why can’t they trade that? Clearly, they don’t want each other’s currency, and the best option for both appears to be USD.

(Assuming the premise is true, I don’t know how eurozone countries pay China).


> And why does China want USD?

China isn't a free market, the government does strange things for reasons other than maximizing their own wealth. That completely screws over your analysis, companies go to where there is the most profits but undemocratic governments do not.

It is perfectly possible that China does this to weaken the US production industry making it more dependent on Chinese exports since it lets US buy Chinese goods with printed dollars instead of having to deliver anything in return. Then by suddenly ending this agreement it would devastate the US who is now unable to get those goods while China is left with the whole production pie.

> I don’t know how eurozone countries pay China

Europe exports to US and buy China, they are on average trade neutral since USA buys their stuff and they buy Chinese stuff. USA is the source of money and China is the source of goods.


That’s a little too conspiratorial for me, I prefer simpler explanations in the absence of other evidence.


It isn't like China is buying a lot of American stuff, but China hoarding USD makes everyone want USD at least. I'm not sure why they do it, your guess is as good as mine, but at least the world isn't getting USD to buy American stuff, they do it to buy Chinese stuff.


US is the very reason why there is instability around the world. US touts security for itself as reason while causing insecurity for other nations, (either through military adventurism or social engineered coups) so that they can't rise.


That's like saying the government is the biggest source of instability since they are sole entity performing the most violence.

Saying the US is preventing other countries from rising in the same thread where people are complaining about US industrial decline is paradoxical, it's precisely those industries were given to developing countries to foster their rise, what the neoliberals underestimated was how that convergence would lead to resurgence of palingentic ultranationalism that is why the world is so unstable today.


US is happy if a country becomes its vassal state just like G7, EU and Japan. US likes if other countries don't have independent thought or freewill.

There is nothing largesse about US in this "those industries were given to developing countries to foster their rise". If it wanted to help others, it would have helped Africa the most. I can't believe the amount of brainwashing people have undergone.

How the U.S. Uses Wars to Fuel Perpetual Consumption|Yanis Varoufakis

https://www.youtube.com/watch?v=TjLEmclSbO0


Except Africa has in fact received billions in aid. Building factories & infrastructure like the BRI was all tried in the 60s, it never worked out due to failures of ISI development and weak governments and instuitions.

We've had 40 years of learning hard mistakes, if you believe the Western System is exploitative then the logical conclusion would be that isolation from that system would provide better outcomes, when in reality those that did stagnated. Domestic consumption markets are far too weak initially to drive growth, it's only through the focus on export surplus capacity to sell to open foreign markets that one can provide the impetus for growth.

But that's only possible so in as far the West or really the USA willingly chooses to open it's markets and let it's industries and blue-collar workers decline. From a global perspective, with the assumption that these developing markets would open their markets eventually would have been optimal in providing a path for everyone to develop. Except in reality, many of these countries especially now in the 2020s never intended to open their markets, they're perpetuating the massive trade imbalance with their neomercantalism. Which Varoufakis himself btw points out in The Global Minotaur as unsustainable.

Can you really say the USA is the oppressor in this instance or the victim in maintaining that massive trade deficit? If America decides to go protectionist (which is happening with Trump), the entire damn system collapses and the pathways for development will be closed for future nations.

It's not a question of whether China is building infrastructure or cheap cars for developing nations, it's whether they will be willing to let their industries be gouged by future upstarts. And with economic nationalism, the answer will always be no. And that goes for most of the "global south" for that matter. A zero-sum world for a zero-sum worldview. Compared to that, I would argue that America's attempt at positive-sum world was alot more charitable.


Why is Yellen crying loud about "overcapacity" in China then? According to market principles, overcapacity is good and people will get cheaper goods. Maybe US has overcapacity of WMDs.


The Core were good but also AMD fumbled with bulldozer which left them floundering until the Zen era.

AMD has been doing pretty well from a strategic point of view, specifically in high volume data centre SKUs, and so it's hard to see Intel being given as wide a window this time. And there are now also other players looking to take some market share, most notably Nvidia, but also all the big players are looking at their own in house ARM silicon.

The road back for Intel is not going to be nearly as wide and smooth as it was for Core.


Holden was GM for quite some time anyway, Australia ceased having an independent car manufacturer a very long time ago.

But Australia allow large international companies to steal all their gas at essentially 0% resource tax so it's not like they'll ever do anything to ensure their independence.


Countries have run nationalise infrastructure before, and successfully. The problem is if they did not view it as nationalised infrastructure and instead viewed it as some sort of mana that would fall from open source heaven.

Open source software is the building blocks used by large rent (service fee) seeking corporations. They will extract large profits from any of these contracts and that is a demonstrable fact, they are also nearly all from the USA and so those profits will flow in one particular direction. It is also a historical fact that governments have run successful large scale infrastructure. Make your choice.


The point of going to big businesses for software services and support is that most customers don’t have needs that are large enough to justify the full-time staff needed for top-notch support. So companies that provide services amortise this over many customers and can employ n dozen full-time staff for a particular subsystem when the average customer might only need them a few times a year. So the tradeoff makes sense – even with a big profit margin, the customers still save money compared with DIY.

This logic doesn’t really hold when it comes to large governments. Their needs are large enough that they can justify employing specialists. At that point, the profit margin the service business is capturing is just inefficiency. Internal services should be more common in large governments.


Theoretically the advantage of outsourcing to a business instead of running it inhouse is that you can put it out to tender, picking the most competent of the entire industry, whereas your inhouse team is what it is.

In practice, Microsoft isn't going anywhere. You're just paying for an external inhouse.


If you're a government you absolutely have the ability to compete with big tech, it's "just" a matter of political will. If you decide that it's important enough you can hire competitively from the same talent pool. Strategically it makes little sense to depend on another nation's companies to run your critical infrastructure. You have to own your dependencies.


It depends? Sometimes it is the feature set, but for example with future VMware pricing we'd be cheaper off hiring two full-time staff and running proxmox, which is currently being evaluated.


This depends on the level of support you need. Two members of staff might be fine for non-critical systems but it’s not enough to support anything that needs to be up 24/7. There’s not enough coverage and less than zero slack. If my alternative is to hire two people, I would rather spend the money with a company that is large enough to employ more people, in different timezones. But if most support can be handled by a larger body of existing staff and you only need specialists occasionally, then it might make sense.


But it does run it in a particular way that isn't necessarily as profitable which in this example is a good thing.

imho the question should be if the country continues to function if the project goes bankrupt. If it is so essential that it needs to be saved by the government (even in theory) then it lives outside the domain of capitalism.


Because they gave up their monetary sovereignty they have very few options when it comes to funding.


```I think Rust makes a great prototyping and deploy straight to production language.```

How?


What's when more mental is that they are essentially all funding state propaganda agencies and so you're literally paying to be propagandised.

Not that much of none state media is really that much better to be honest.


We all pay to receive propaganda, be it governmental or not. A private TV channel will spread the ideology of their owners, and it is usually an ideology that is useful to them.


With private channels you can choose which ones to fund. Not so much with forced TV license fees for state broadcasters.


JSON is derived from JavaScript, it is not a strict subset.

The most glaring issue is JSON number type versus JavaScript float. This causes issues in both directions whereby people consistently believe JSON can't represent numbers outside the float range and in addition JSON has no way to represent NaN.


Is there any legal JSON that's not legal JavaScript?

If not, it's fair to say it's a subset.


It is a subset as of JavaScript edition ES2019, when JavaScript strings are now allowed to contain U+2028 LINE SEPARATOR and U+2029 PARAGRAPH SEPARATOR. Prior to ES2019, that was the only known example of legal JSON that was not legal JavaScript


JavaScript used to forbid U+2028 line separator and U+2029 paragraph separator in string literals, but JavaScript now allows them for compatibility with JSON.

The remaining wrinkle is different handling of "__proto__"


The event loop is brilliant example for how much `loop` is a full blown iteration DSL... love it or hate it ;)


Why loop when you can https://iterate.common-lisp.dev/ instead? No s-expr-less alien syntax, no need for `do` to switch to back to Lisp syntax, normal `if`/`when` without the ugly `else`/`end` and generally useful features added.


If I used Common Lisp more I'd probably have a go at copying Racket's `for` forms[1]; they're really nice because you can usally tell at a glance what they're going to return - `for/list` returns a list for example. No having to scan the body for a `collect`.

But in the meantime since discovering iterate I've barely used `loop`. It just feels so much more lispy and I find myself running to the documentation less often.

[1]: https://docs.racket-lang.org/reference/for.html


Interesting concept, but it visually has the same problem as loop IMO, using keywords to implement a new syntax instead of seamlessly blending with Lisp (at the cost of needing code walking, though).

And it seems to lack all the iterations drivers (incl. builtin destructuring) that make half of loop/iterate's usefulness and "reads like English" comfy factor; especially liking

  (for (i j) on list [by #'cddr])
  (for i initially init-expr then then-expr)
  (for prev previous i [initially init-expr])
  (for i in-{file,stream} [using #'reader])
The two lasts are iterate goodies and I often use the last with these custom readers: https://git.sr.ht/~q3cpma/cl-utils/tree/master/item/src/read...


Racket splits up the iteration forms from what to iterate over (sequences[1]). You can compose different sequence constructors together, or make brand new ones, without introducing new syntax.

It has limited destructuring - sequences can return multiple values, all of which can be bound. There's an adapter to convert one that does that into returning a single list, but not the other way around. If there was it could be used with `in-slice` to be equivalent to your first example.

I could probably write a new sequence to get the `previous` behavior; don't think `initially ... then` is possible.

Lots of sequences for reading from open ports (the Racket/Scheme name for CL streams)... `(for ([i (in-port)]) ...)` for example (with an optional reader argument defaulting to `read`).

[1]: https://docs.racket-lang.org/reference/sequences.html


Ah, I see, though I'd say it pollutes the function namespace a bit this way (as "in-x" semantically only makes sense in a loop) and missing on-list. Technically, you could do most of these in a few lines of CL too, but well, convenience is the point of these macros.

Those seem to return sequences instead of streams/iterators, any idea why? Though it says "An in-list application can provide better performance for list iteration when it appears directly in a for clause", so I guess there's some macro magic at play.

Anyway, thanks for exposing those, Racket does seem to be pretty practical (and with its Chez backend, I guess it's pretty fast); can't stand the square brackets used as syntax (as opposed to vector literals used as data), though ¯\_(ツ)_/¯.


racket does not differentiate between () [] {}, so you don't have to use square brackets if you don't like them.


I know but I have to read them =)


Not so much macro magic, as not having to dispatch at runtime to the correct sequence constructor. (There is some magic if you use literals though).


Have they fixed the problem in Iterate yet where it breaks any uses of the built-in count function?


Sadly no. Biggest bug in there, "fortunately". Easy to patch, though.


I used to scoff at it at first, but after a few years of CL programming loop is one of my favourite CL constructs :)


I'm with you there. Is a bit of a mind bend, as I really disliked it the first few times I saw it.

For an even sillier mind bend, I'm using tagbody to be able to directly transcribe some of Knuth's algorithms as I am learning them.


Cool! Using tagbody feels like writing supercharged C or even assembler to me (not that I've used it much, but still).


I don't understand why turning a simple loop into a 'mindbend' is considered good. The downfall of programming is complexity, if you're getting your mind blown by a loop how are you going to do the rest of the program?


Something can be mindbending in its implementation, but offer a very convenient interface at the same time.

If mindbending isn't relating to its usage, but to its implementation, then I could see, how it could still be a good thing.


mindbending can also refer to something being deceptively simple. you might think it would be a big complicated mess, but using this one weird trick makes it really obvious what's going on.


How does that relate to a simple loop construct though? Why would you want that to be mind bending in interface or implementation? Every other language makes it as simple as possible.


This isn't really true – you have languages like Odin that only have a for loop, no while loop, that only supports index-based iteration. Then you have languages like Python that let you loop over an arbitrary iterable, and define your own iterables. Some languages allow conditionals in loops, some don't. Some let you loop over multiple iterables, while some only take one at a time.

Common Lisp happens to be on the upper end of what loop allows – you can use it as a standard for loop pretty easily, but the interface gives you many other options.


> Common Lisp happens to be on the upper end of what loop allows – you can use it as a standard for loop pretty easily, but the interface gives you many other options.

If you really wanna get freaky try 'do. It is the heroin addicted cousin of 'loop

https://www.lispworks.com/documentation/HyperSpec/Body/m_do_...


`do` is very straightforward and basic compared to the things that `loop` allows.


oh no. maybe you have in mind 'dolist or 'dotimes

'do is much more general and way more powerful. in some sense 'loop is the taming of 'do. see for example

https://www.lispworks.com/documentation/lcl50/loop/loop-7.ht...


No, I mean do. It's basically just a C style for loop except with a return value. Nothing special.


yes the syntax for 'do is simple, like that of lisp. however 'do allows you to make far more complex iteration constructs than 'loop. 'loop is just a DSL to make some of these constructs more concise. read up on it


LOOP has the DO functionality included.

Example:

    CL-USER 18 > (do ((a 1 (+ a 1))
                      (b 10 (* b 1.5))
                      (c nil))

                     ((> a 5) (list a b (reverse c)))

                   (push (* a b) c))

    (6 75.9375 (10 30.0 67.5 135.0 253.125))

    CL-USER 19 > (loop for a = 1 then (+ a 1)
                       and b = 10 then (* b 1.5)
                       and c = NIL then c

                       when (> a 5) do (return (list a b (reverse c)))

                       do (push (* a b) c))

    (6 75.9375 (10 30.0 67.5 135.0 253.125))


You can also express LOOP constructs in terms of DO. However if you were to construct a more exotic iterator that is not so straight forward in LOOP (beware of edge cases), I think it is more reasonable to pick DO. I think also that your example illustrates this.


I would miss the in-order collects, actually collect/maximize/... features, destructuring of lists, direct type declarations, ...

I also find DO not easy to read and understand.

The code from above I would actually write in LOOP as

    (loop for a from 1 upto 5
          and b = 10 then (* b 1.5)
          collect (* a b) into c
          finally (return (list a b c)))
I find that to be readable.


Of course to each their own. I like LOOP a lot actually when I need to do something familiar, however for something unfamiliar DO is often my choice. It also serves as a caution to tread and think carefully when I return to the code. Sometimes, after a while, I realise how to do the DO construct succintly with LOOP


And then there's Scheme, where there are no iterative loops; all looping is done with recursion. You can build pretty much everything other languages do with loops on top of that, though.


Not true. Scheme has `do`. See R7RS section 4.2.4 "Iteration".


Scheme's `do` is implemented using recursion. There's a sample macro for it in 7.3.


The mindbend was more of my approach to the construct. It began with disdain before even really using it much. Looking back, I really couldn't articulate what I disliked about it.


He started with a bent mind though.


Simple minds loop simply


I don't think this comment means anything or contains any information.


Colorless green ideas sleep furiously


This seems like you're replying with nonsense. Did you have anything coherent to say?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: