Hacker Newsnew | past | comments | ask | show | jobs | submit | vbernat's commentslogin

It's odd to always say "Hashicorp, an IBM company". Looks like they want to assign blame.

I did try Pulumi a while back, but the compatibility with Terraform modules was not great, so I've switched to CDKTF, which can handle unmodified modules. Dunno if I'll switch back to Pulumi or just use OpenTofu directly.


> It's odd to always say "Hashicorp, an IBM company". Looks like they want to assign blame.

All their branding does this now, including the HashiCorp logo on their website [0]. There's gotta be a name for this specific branding pattern, but I don't know it.

[0] https://www.hashicorp.com/en/blog/products/terraform


It’s endorsed branding. Basically when a parent company “endorses” its subsidiaries’ brands, but keep their own name (as opposed to renaming everything to IBM, like eg Google would do).

Metastatized branding

I was recently working for a company which got acquired by IBM and we had to do it too. It’s an IBM thing. I bet most people at HashiCorp hate it, at least that was the case for us.

Makes IBM look really bad. Do they also force people to bow when the CEO of IBM enters the room, and address them as sir or your highness?

They used to have their employees sign songs praising the company...

Granted, that was in the 1930s or something, but still.


I remember it being a part of the movie Pirates of Silicon Valley and thought it couldn’t be true. But apparently it was.

https://youtu.be/VyQEbLx6AEY?si=CwhqHQEdFGCsE33l


Wow, the truth is stranger than fiction.

I have absolutely nothing good to say about Pulumi. Stay far, far away.

My experience with Pulumi is you can write bad pulumi code and good pulumi code and just like everything else, it's easy to end up in a codebase where one poor soul was tasked with writing it all and they didn't do the best job with it.

Please expand on your experiences, because I've had great luck with Pulumi at my company since October 2021. No engineer liked HCL, our demographic was engineers who were familiar with programming languages who wanted to self service basic infrastructure (AWS SecretsManager, IRSA roles, Databricks Service Principals, etc). We were pretty easily able to shim in a RunAtlantis inspired system that displayed previews that required explicit approval when a PR was raised, performed apply on merge to main, and ran drift checks periodically.

Their stack builds a lot of abstractions on top of each other and this works only well as long as you don't deviate from the beaten path.

One example:

You can't really build custom TS providers for AWS resources.

Why?

Because this feature is built using the compilation magic that makes inline lambdas work.

But the compilation step omits the AWS SDKs since these are present in a lambda anyways. So you can't use the AWS SDK in custom providers.


For me, the ideal is each team owns its own config/lifecycle mgmt, and does it in the language they wrote the rest of the system in.

Why? I’ve had nothing but good experiences, but I don’t run it and the team that does is extremely competent

My experience is that by stealing providers from Terraform, they failed to properly handle statically typed languages (Go) with certain providers (HCloud); I had problems with their ID type and had to abandon my Pulumi setup.

Have a look at https://github.com/purpleidea/mgmt/ and tell me what you think. We don't have enough docs though. Tough being an open source thing that you want to keep open.

Running SST with Pulumi and it's been a great experience. Infrastructure and maintenance has been pleasant and SST's pre-fabs really make things easy to spin up resources.

Strange, I have a lot of good things to say about both it and Terraform.

Probably some specifics might be more useful there...


please expand on this, I am interested (for real!)

We use OpenTofu it’s pretty seamless

Does it do ephemeral values yet?

Yep, as of yesterday’s 1.11 release it’s supported!

That also includes a new “enabled” meta argument, so you don’t have to hack around conditional resources with count = 0.

[0]: https://opentofu.org/blog/opentofu-1-11-0/

Disclaimer: affiliated with the project


How do you migrate from count/for_each to `enabled` ?

You can just switch from `count = 1` to `enabled = true` (or vice-versa, works back-and-forth) for a resource and tofu will automatically move it next time you apply.

It's pretty seamless.


That's cool! We'll still need to change all of the references to `resource[0]`, right? Or does tofu obviate that need as well?

I’m not sure I understand. You refer to the conditional resource fields normally - without list indices. You just have to make sure the object isn’t null.

There’s some samples in the docs[0] on safe access patterns!

[0]: https://opentofu.org/docs/language/meta-arguments/enabled/


And you don't get the annoying array form for the resulting resource with the `enabled` syntax, right?

EDIT: Oh just realized the sibling asked the same, but the doc doesn't state that clearly, although it seems to me that the doc implies that yeah, it doesn't use the array form anymore.


Yes indeed! It does not use the annoying array form.

Worth switching to Opentofu only for this, then! I fuckin hate the count pattern for conditional present/not present that leads to an array of size == 1.

Amazing. Good work !

Damn, might finally be able to use it. The lack of ephemeral values was a major blocker.

Now more will be using a combination of OpenTofu and Terraform, and there will probably be some tacit endorsement of OpenTofu by Hashicorp folks in their communication with those who are using both. Good to see!

I was thinking the same thing about the "an IBM company". My guess is that it's a lazy find/replace.

I assume it's a matter of branding and making IBM look more modern by associating with the Hashicorp brand.

It’s one thing to say it once but 3 times in the same paragraph seems weird for sure!

They should have renamed it first to HashiCorp, an IBM Company CDK, then shut it down

> It's odd to always say "Hashicorp, an IBM company". Looks like they want to assign blame.

Or it's legal trying to preempt a risk.

If it was the author just wanting to point at IBM, they'd mention it just once or twice, but using that awkward phrase throughout the text makes me think it was an edit mandated by a careful lawyer.


It’s how Red Hat identifies themselves too

It's common when corps buy large enough companies that they don't want to kill the original brand. That's why you get hotels like "(something) by Hilton".

Do you mean Red Hat identifies itself using the phrase "Red Hat, an IBM Company"? Because I don't see any use of this on redhat.com (including that website's corporate "about" content) and if any Red Hatters are using this phrasing (I'm a current Red Hat employee) I haven't been aware of it.

I have seen it in several articles. (I don’t work for HashiCorp or Red Hat subsidiaries so no idea what is said or done inside those subs)

1. https://business.adobe.com/customer-success-stories/red-hat....

2. https://www.openpr.com/news/4100338/linux-operating-system-m...


You said "It’s how Red Hat identifies themselves too" but those two articles are not by Red Hat. So ... it's not how Red Hat identifies themselves, though it seems to be how Hashicorp identifies themselves.

"Hashicorp, an IBM company"

Common sense would be IBM mandating that branding, as opposed to Hashicorp.


If the attribute says "encapsulate this", dropping just the attribute will create a blackhole as you will attract traffic that should be encapsulated and packets following this route will be dropped it if not.


I guess you're referring to RFC9012.

Yes, but then again since you have logs of why it was dropped (like I suggested in my first post, to log everything dropped), you can easily troubleshoot the problem. A much better outcome than flapping a BGP session for no good reason and creating route churn and network instability.


Or just drop the announced route (not the session) with the attribute you can't work with


Author here. I agree this is an important feature for a CA. I'll try to add it.


Just added it.


Another lightweight option is tio.


The article is surprisingly inconclusive. From my understanding, the easiest way is to use the <video> tag with mp4.


Pardon my pedantry but MP4 is just the container and does not spare you from finding a compatible set of codecs to put in that container that will play on your target browser-plus-OS combo. See the video and audio codec table here for example: https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Fo...


> From my understanding, the easiest way is to use the <video> tag with mp4.

The easiest way for everyone involved is... using GIFs as GIFs.

The 19% in savings (when converting to lossless WebP) aren't worth it. Not even 60%, when you consider what you lose in usability.


I stumbled over that 19% in the article. Maybe in practice you wouldn't want to convert a GIF to lossless webp, but original video to lossy webp? And then the lossy webp would be slighly smaller than the GIF with far superior quality?


<video> and mp4 can also work well. As a GIF replacement, the initial differences are minor because you can easily add loop and autoplay to the video’s attributes, and both work with most browsers’ reader modes. From my tests, though, video-as-GIFs isn't a feature supported by the major RSS readers, while WebP works without any issues.

Anyways, the real insurmountable problem is animations with transparent backgrounds. There’s no good way to do this in mp4, and WebP seems to be the only format that does it well. But because of all the little pains, headaches, and surprises that can arise due to subtly different use cases, I still think WebP is the format that will give you the most benefit with the least drawbacks for silent animated images. Even without having transparent backgrounds as a requirement.


MP4 is just a container format (like .tar or .zip in some ways). The video codec is more important information than the video/audio/subtitle container.


Agreed with the MP4 recommendation. As I mentioned in another thread, animated WebP can have frame-rate issues on Safari... but if you want autoplaying videos with transparency it's pretty much the only game in town.

If you don't need transparency, I would 100% stick with mp4. Just make sure you set the tag elements "autoplay loop muted".

Mobile Safari used to be pretty weird. If you wanted autoplay (and NO controls), you needed to make sure to remove the audio channel on the video. Setting the "muted" attribute wasn't enough.


He mentions this adapter: https://www.amazon.fr/Club3D-CAC-1087-DisplayPort-4K120Hz-8K.... With DSC 1.2, you should get 8K at 60Hz.


That's not the case for this website. It is fully responsive.


A bit late, but this is an AS-SET. When a prefix is sent to a non-confederation peer, the sequence of sub AS is replaced by the (public) confederation AS. Therefore, you should not see AS confederation sequences in the wild.


I have something similar with this short Python script:

https://github.com/vincentbernat/i3wm-configuration/blob/mas...


Same as for application/json I suppose: this is a structured format to be processed by an application, not by humans directly.


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

Search: