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

I don’t see how it’s foolish. When you mention a bazaar essentially no one thinks of the closed door meetings of the merchant guilds. Instead, they think of the hustle and bustle of a busy marketplace where all manner of goods, services, and ideas are openly exchanged.

This in contrast to the somber atmosphere of a cathedral where people whisper even when there are no services taking place at the time. It’s an image of reverence, humility, and monumental architecture.


Yeah, "foolish" maybe wasn't the right word. All metaphors fall short in some way (hence why they're metaphors). I just, knowing something of the history of that part of the world, like to use the opportunity to share the knowledge that, despite the appearances of a chaotic, random aggregation of humans, Bazaars often had a significant structure under the surface (perhaps another lesson about open source to be had there).

Shouldn't they then use Congress as intended rather than what they're doing now which bypasses it?

They can’t because of the filibuster [1]. They cannot bypass the filibuster without a 3/5 majority which they do not have. Thus any bill which the Democrats oppose will be blocked by filibuster in the Senate.

[1] https://en.wikipedia.org/wiki/Filibuster_in_the_United_State...


The existence of the filibuster seems to be a current part of things working as intended. That they might hypothetically get filibustered and have trouble passing legislation doesn't provide carte blanche to do whatever. Rather it should suggest that the rules around the filibuster should be amended beforehand or perhaps after it actually appears as a material issue.

Your reply also runs counter to the parent comment I was replying to where they state that Congress would repair any irregularities after the fact. Frankly it feels like people are making things up to support their guy doing things counter to the established mechanisms of government and your own constitution.


They could easily remove the filibuster if they so choosed.

Yes, they could remove the filibuster. But then if the Democrats retake the Senate in the midterm elections they will benefit from the removed filibuster and be able to undo everything the Republicans did in the first place.

The filibuster remaining in place is a good thing because it encourages negotiations and compromise instead of a seesaw battle.


> But then if the Democrats retake the Senate in the midterm elections they will benefit from the removed filibuster and be able to undo everything the Republicans did in the first place.

That's called democracy.


Yes, so isn't that a satisfactory answer for why the Republicans won't remove the filibuster? It's ultimately self-defeating.

I agree the filibuster is a good thing. But you can't decide to keep it and then use it as a reason to bypass congress.

Zig’s comptime feature gives a lot of the power of C++ templates. This makes it easier to implement a lot of libraries which are just a pain to do in plain C. Even seemingly simple things like a generic vector are annoying to do in C, unless you abandon type safety and just start passing pointers to void.

I believe Zig even has some libraries for doing more exotic things easily, such as converting between an array of structs and a struct of arrays (and back).


Depends on which C++ version you're talking about.

>Zig’s comptime feature gives a lot of the power of C++ templates. This makes it easier to implement a lot of libraries which are just a pain to do in plain C. Even seemingly simple things like a generic vector are annoying to do in C, unless you abandon type safety and just start passing pointers to void.

I get it, thanks. in C you have to cast everything to (void *) to do things like a generic vector.

>I believe Zig even has some libraries for doing more exotic things easily, such as converting between an array of structs and a struct of arrays (and back).

yes, iirc, there was a zig thread about this on hn recently.


I have been using Duolingo for a couple years to learn some Mandarin. Its resources are pretty good, if a bit dodgy here and there (some occasional weird pronunciations or translations).

I'm really excited about a Cantonese resource though. I have a few Cantonese-speaking friends and I would love to learn some myself!


Thank you :). Definitely feel free to use, download and share 粵卷 for your learning. I'll be continuing to make improvements to it over time. This is a life long project of mine so expect more improvements as my Cantonese develops.

I've seen weird tones, but IMHO the biggest limitation of Duolingo Mandarin is the lack of a traditional character option.

Section 6.3.2.3 of the C11 standard [1] reads:

1 A pointer to void may be converted to or from a pointer to any object type. A pointer to any object type may be converted to a pointer to void and back again; the result shall compare equal to the original pointer.

...

6 Any pointer type may be converted to an integer type. Except as previously specified, the result is implementation-defined. If the result cannot be represented in the integer type, the behavior is undefined. The result need not be in the range of values of any integer type.

The issue for your code is that on line 2 you cast to uintptr_t the pointer (p+1) to type char, which is not a pointer to void (and not a null pointer). So the result of your conversion is implementation-defined and the result need not be in the range of values of any integer type. Thus an implementation can assume that the result of the comparison (iq == ip) is always false and even omit the entire if-block.

[1] http://port70.net/%7Ensz/c/c11/n1570.pdf


> The following type designates an unsigned integer type with the property that any valid pointer to void can be converted to this type, then converted back to pointer to void, and the result will compare equal to the original pointer:

> uintptr_t

Given this, are you suggesting that the code would be valid if the char pointer was first cast to void as so:

  char p[1], q[1] = {0};
  uintptr_t ip = (void *)(p+1);
  uintptr_t iq = (void *)q;
  if (iq == ip) {
    *(char *)(void *)iq = 10;
    print(q[0]);
  }
Additionally, it seems the code may be valid as-is:

> A pointer to void shall have the same representation and alignment requirements as a pointer to a character type.

> § 6.2.5.28


You still have a few bugs to fix (need to cast to uintptr_t after casting to void *, need to use printf with a proper format string) but now your code is valid. I believe it's still implementation-defined because different implementations are free to lay out memory as they wish, say by including the use of padding bytes between values, or by changing the location of the stack and the direction it grows (up or down in memory). This means you cannot assume that the array q directly follows the array p in memory (they may be in the opposite order or they may be separated by padding bytes).

I created a working version of your code on Godbolt Compiler Explorer [1]. I tried it with a few different compilers and the code runs. The comparison evaluates to false on every compiler that I could get to work at all. Some don't seem to print anything at all, though the assembly they generate seems like it ought to.

As a general rule of thumb for C, you should assume it is impossible to reach the object pointed to by one pointer via another pointer, unless the second pointer directly aliases the first. You also cannot assume that the integer representation of a pointer corresponds directly to a valid address in memory. Virtual memory (with address translation), fat pointers, segmented memory, etc. are all possible which means the pointer's actual bit pattern should be considered an opaque structure handled by the implementation, not an integer for you to manipulate and then cast back to a pointer.

The main reason for wanting to convert a pointer into a uintptr_t type is to serialize it into some other structure in a one-way fashion, such as to store it in a hash table.

[1] https://godbolt.org/z/dT8G8o5xM


This code doesn't assume that q follows p, that's the trick to it. The way you are trying to explain this to me, I feel like you haven't read the article or understood the code snippet.

After (re)reading the article I've come to the conclusion that with proper provenance tracking through the cast to an integer, the comparison:

    (iq == ip)
Should be replaced (at compile time) with the constant 0 (or false, if you like). Since iq and ip have different provenances -- even though they may (or may not) be bitwise equal (which is entirely implementation-dependent in C) -- they can never be considered equal, so falsity can be deduced at compile time.

It should also be considered invalid (and a compile-time error) to cast any old plain integer (one whose provenance is not a pointer) to a pointer, regardless of whether or not the address of said pointer lands on a live object, because an integer created by any means other than a cast from a pointer should have empty provenance.

Edit: Ahhh, this provenance story is way messier than I thought. One serious problem with tracking provenance is that functions like memcpy become a huge headache to deal with.


At one time they were nonprofit by choice. Now they are nonprofit not by choice.

They’re calling this a carnivore diet but it’s really an animal fat diet. Should more properly be called lipivore diet. The man wasn’t consuming mostly meat.

I’m curious how this diet compared to traditional diets of Inuit people. These diets are also known to be high in animal fats and proteins.

(1) https://www.sciencedirect.com/science/article/abs/pii/004896...


They also live in an environment where you burn substantial calories maintaining body temperature.

I was going to make a joke sbout how I'd bet this gentleman lived in Florida...

... but it seems like 2/3 authors are in Tampa, with the other in Houston.

Florida Man is a thing. (So glad I don't live there anymore)


That’s a US-specific problem. Doctors dismiss patients’ complaints all the time in countries with universal healthcare.

I think the issue is much simpler than that: if the doctor is out of ideas (and doesn’t know of a specialist to refer to) they just get frustrated and give up.


The symptoms may be very different but the causes may be similar: permanent damage to tissues and organs which the body is unable to heal over time.

I just don’t understand why they shut them down in the first place. They couldn’t have cost much to keep running. They provide a huge amount of value in the form of free support for their products. What am I missing?

> I just don’t understand why they shut them down in the first place. They couldn’t have cost much to keep running. They provide a huge amount of value in the form of free support for their products. What am I missing?

Businesses are actually pretty stupid, and often make decisions based on narrow and parochial criteria without considering important factors and externalities (from the decision maker's perspective).

For instance, we've had our internal corporate wiki (or wiki equivalent) nuked on several occasions, with little to no supported migration path. The nuking is presented as an "opportunity" to "clean up," and I get the impression they're result of cost-saving migrations (e.g. cancel contract with one intranet provider, because a better deal was to be had with another). I don't think the "owner" of the intranet understands it as anything more than an announcement board and a place for storing FAQs.

The result is we've lost a lot of documentation for apps that at the time of the nuking weren't supported by an engaged and future-thinking developer, who was unwilling to put in the thankless and unfunded legwork to migrate documentation thoroughly. Those apps still need to be supported, it just becomes harder to do it properly.


> They couldn’t have cost much to keep running.

It cost at the very least the salary of a software engineer, though most likely a lot more. Autodesk is not some passion project of a group of volunteers who just want to keep it up. At large companies, I have seen few models of how to run public facing legacy services that don’t “align” with the company any more and as a result there is very little interest in them. They are all expensive in terms of personal and always a potential PR disaster to manage. Doubly so if it’s something that requires moderation like a forum.

You have the “there is a dedicated team for ‘legacy stuff’. They just inherit all dead end projects in the company”. If you are gonna have that model, that teams scope is ever growing, and so is their size. It’s not a shiny job either. “I maintain projects no one cares about” is not interesting or shiny and most good people will move to something else.

There is also the “since you started it, you own it now” approach. Where the virtual team that started a service, will sort of own it forever. It’s this thing that just hover over a team’s shoulder forever. Though “forever” usually means until a manager comes along who is loud enough about not wanting to deal with that shit anymore. It only causes issues when things go down, break, need updating, etc and they don’t want to work on that anymore.

There is the “the ownership of this random ass service will fall wherever we randomly draw and redraw random organizational lines. It’ll keep forever bouncing between random teams as no one cares about it, and no one wants it, and everyone argues that “it actually belong in fabric because it’s the only remaining consumer of their v2 APIs”, “fabric thinks this is more business layer because its main audience are end customers”, “business unit thinks it’s actually more UX as it’s running on the same domain”

And there is always the looming PR issue when an eventual issue happens, a ton of infighting over the lack of clear ownership and once they are over that, the person who has to fix it has no idea what this thing is and needs to get up to speed. Then you get a post on top of HN or Reddit or twitter etc saying “{Insert multimillion/billion dollar company random service} has been down for a week” and a lot of people like “seriously, they can’t figure out how to run that? I run one just for my ham group and it never goes down”

Why bother is usually the final approach.


> It cost at the very least the salary of a software engineer, though most likely a lot more. Autodesk is not some passion project of a group of volunteers who just want to keep it up.

It's not a passion project, and that's why I find it very unlikely that they are not using some off-the-shelf forum software. I doubt Autodesk would be paying anything near a full software engineer salary for anyone working on the forum. Of course there will be some developer integrating the forum with the rest of their website, but that is hardly a full-time job. Moderation is probably also not done by engineers but by support staff that doesn't receive a salary at the level of an engineer.


Also they made 5.4 billion last year, even if we assume it took the entire salary of a top shelf software dev, that's still barely a rounding error.

Corporate cheapo strikes again.


It's nearly free if they simply changed their archiving process from deleted to read-only with a giant red banner warning at the top. Both expend the same amount of effort to do.

Building a read only mode into a product not designed with that in mind is more effort than deleting.

This argument would make sense if you weren't talking about forums, where archiving is as simple as locking the entire forum.

Heck you could even scrape + convert to static HTML like what they did with the original Processing forums. Which is run by volunteers.


You would definitely need to convert to static HTML or the forum software would be exploited at some point in the future. Doing that while keeping URLs intact is not trivial.

I totally get your point and am pro non-deletion, but it really is way less work to just delete it all.


yeah running wget in spider mode is ROUGH.

It's probably a month of work for anyone competent to produce a static version of ALL of the posts.


Ignore this remark if irrelevant

But f00kin'AYE on wget.

I can't say for certain (please pard0n) but if there was anyway to (ya, right) find we'd learn way back when 'AutoCad' was originaly built (and for) UNIX.

Because LISP (Lost In Stupid Parentheses) was an emacs dealio, Richard Stahlman stuff but I suspect even before Torvalds built Linux...

When 8086/88 machines went viral there was a (hardware) limit <640K (kb) RAM.

To escape this we used 'PharLap' to make a 16mb (megabytes) Ramdisk look like "REAL" to Autocad...

It'd be amusing to know how the UNIX app was ported to 8086/88 (before 'Windows' 3)


Turns out that wget is still great for spidering.

The entire deletion exercise was probably to thwart AI training related scraping but the fallout was greater than expected. "Old forum posts on some storage" are an insignificant expense for a company of that size in terms of storage/infrastructure, and even less significant as effort to manage the forum.

Ironically it probably helped AI since the previously slurped up forum data is then only available when regurgitated from one of the models that was trained on it before it was taken down.

Ssssh talk softly, you’l upset the senior engineer’s clever retirement plan

> It cost at the very least the salary of a software engineer, though most likely a lot more.

Why is that the very least? If keeping a forum running a full time job?


As I understand it, they only deleted old threads. So, you're right, it was providing free support, but only for old versions of their software, so they didn't make any money out of that. The theory is, if people struggle with those then they might be pushed towards their newer versions (where forum threads haven't been deleted) and so they have to pay up.

I'm not an Autodesk user (of any version) but this seems more plausible to me than LLM experiments or hosting costs.


As I understand it, they only deleted old threads. So, you're right, it was providing free support, but only for old versions of their software, so they didn't make any money out of that. The theory is, if people struggle with those then they might be pushed towards their newer versions (where forum threads haven't been deleted) and so they have to pay up.

That's not sound reasoning though, business-wise. Old customers are going to stick with old software. Keep them! If they're growing at all then they're going to need new seats which means you can sell them some. Maintaining the old versions (with all that free support on the forums and one part-time engineer to fix bugs) is cheap.

On the other hand, if you cut off the old customers and try to force them to retool their entire workflow to your new software then you risk driving them over to a competitor. Why would you do that? It's better to have customers on your old software than alienate them entirely.

I think with Autodesk's size it's easy to forget what they actually do: build tools for professionals in a variety of high-end niches (engineering, architecture, graphics). This is not a mega-growth industry, it's a conglomeration of lifestyle businesses. Professionals like this demand first class support and workflow stability. They absolutely will get alienated if they have to waste hundreds of engineers' hours retraining and retooling for your new product and will look at that as a prime opportunity to jump to a competitor who treats them better.


Probably something related to LLMs. The LLMs picking up outdated info, them trying to hoard the data. Who knows, but it smells of something LLM related.

Embarrassment at discussions of bugs from 2007 that are still not fixed.

(For clarification, I doubt that is really the (main) reason, but longstanding bugs in CAD systems are definitely a thing, and I guarantee there are bugs that old in Inventor (and its main competitor Solidworks), and probably older still ones in AutoCAD).


The most pessimistic theory is that Autodesk has been using the forum posts to train an AI that they intend to put into their products as a paid add-on. No incentive to pay for it if there is free of cost forum available.

Be on the lookout for an AI-summarized review of discussions on forums. Then the review is put on top, and the thread is hidden. Then the thread is "archived", inaccessible, and lost.

As a matter of fact, why is this not a trend?


Someone wanted to save a couple hundred bucks per month to get a bullet point in their promo case

Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: