HN user

perrylaj

171 karma

Bay Area Native currently Sacramento based. Sr. SDE@InductiveAutomation. Get in touch perry@perryjon.es .

Posts1
Comments107
View on HN

Jetbrains IDEs have AI support with all the things you've described, and in a more polished experience that requires significantly less maintenance and tuning. It does that while affording an actual IDE experience that works well for supported languages/projects out of the box, without the need to constantly tune plugins and experience jank misaligned UX that seems to be the norm for VSCode and derivatives.

No association with Jetbrains, and despite having a license, don't even use their AI support much myself (mostly using CC, with IDE integration for diff viewing). But if you haven't tried it recently, probably worth a revisit if you're open to Jetbrains products.

Opposing Hot take (possibly missing the joke....):

Coding was never the most valuable skill a software engineer contributed. Socially-capable engineers are going to be far more likely than PMs to 'shine' when agents can write code and engineers are afforded more time to engage with busines/customers/stakeholder/domain experts.

If my experience is any reflection of the norm, the avg PMs greatest value has never come from effectively determining the value or requirement of a product or translating requests/feedback to meaningful deliverables. It's been in providing cover (time) for engineers that could do the same job better, but are irreplaceable in the development process and so are more rare/valuable spending time doing development. When engineers no longer need to write code, they are a more direct line to effectively solving "Product-Led" business needs with technical solutions than a typical PM will be.

Nearly 100%. They don't call it that or use that term, and almost never _design_ thinking about the domain. But the absence of a formal 'domain model' still results in domain modeling - it's just done at the level of IC who may or may not have any awareness of the broader implications of the model they are creating.

When I compare Java and Python in this respect -- and I do as a working programmer in both on a frequent basis -- Java is still slow.

I feel this as well, but I also think it's desirable. Java is slower to add features because the bar is quite a bit higher (especially with regard to backwards-compatibility).

I'd much rather have long previews and occasional removal of previews than have a language that becomes bloated and kneecapped by past rushed decisions.

There's Kotlin, Scala, Groovy, etc, if you want to run on the JVM with languages that offer more features (and footguns). I find the balance OK, personally.

I'd much rather them pull the `STR.` templates than push it forward knowing its not ergonomic in practice.

Going to assume you're talking frontend? Otherwise you'd be claiming most Spring, Django, Rails, Angular, <enter common backend framework> codebases are a nightmare to work in. While there are many good application architectures that don't fit into the MVC pattern (or introduce additional layers, e.g. - auth), separating DB ops (M) from business logic (C) and endpoint handlers (V) has always been rather maintainable/testable in my experience.

There are plenty of examples of real damage caused by ISPs being able to give preferential treatment to what _they_ think is important. A quick search comes up with plenty of examples:

1. ISPs limiting 3rd party VOIP solutions to avoid competition with their own VOIP solutions

2. Comcast blocking bitorrent communication was pretty obvious case of ISP preferentially limiting traffic

3. Verizon blocking text messages it didn't like the political message of

4. Verizon blocking 3rd party tethering apps, limiting users from using the bandwidth they pay for because they want to prevent competition

5. ATT prevented Facetime over their network unless users paid a higher subscription, even though users were already paying for data

6. Verizon limiting bandwidth for arbitrary reasons during natural disasters (first responders communication hampered due to limits justified through 'we don't need to follow net neutrality anymore')

Those are a few, there are MANY more examples in the US alone. Ya, some or many have been rolled back due to public outcry, but they shouldn't have happened to begin with. Allowing ISPs to determine which traffic is allowed based on their own self interest is just a terrible idea. Just because you haven't been harmed by it yet doesn't mean much, especially not in a country where the majority have only one or maybe two broadband ISPs to choose from. It WILL be abused, and we know this because it already has.

ISPs should be dumb pipes and not much more.

Interesting - I run Intellij Ultimate on Macbooks (both Intel and m2) and never have a crash. Infrequently run into bugs when upgrading the ide or 3rd party plugins; that requires some sort of cache invalidation or project reimport (couple times a year), but it's pretty smooth sailing for something I use across many different projects and languages. Java, kotlin, TS, python, groovy, shell scripting, json/xml/yaml/html/tsx are all generally touched 40+ hours on a weekly basis - it just works.

I do agree intellij is memory hungry with multiple projects open and a variety of languages involved, but RAM is cheap enough (and VMs/Docker/K8s hungry enough) that I just don't buy a machine with less than 32GB anyway, so I give intellij up to 6 GB and never give it another thought.

I don't do much android development, but do find Android Studio to feel clunky and slow at times, guessing because of the heavy integration with Android dependencies and emulation, but not really something I know enough about to comment with any sense of authority.

I think I view the situation in a similar fashion as you. There's absolutely nothing preventing a well architected modular monolith from establishing domain/module-specific persistence that is accessible only through APIs and connectable only through the owning domain/module. To accomplish that requires a decent application designer/architect, and yes, it needs to be considered ahead of time, but it's 100% doable and scalable across teams if needed.

There are definitely reasons why a microservice architecture could make sense for an organization, but "we don't have good application engineers/architects" should not be one of them. Going to a distributed microservice model because your teams aren't good enough to manage a modular monolith sounds like a recipe for disaster.

As in "this 748 square foot property was deemed 'affordable' when priced at $610k" - the implication being that it's a low bar to call something affordable, not that it's a low bar to _actually be_ affordable.

edit: sorry, this was already said by multiple other people - apparently had an outdated thread in the browser, those comments weren't there when I hit reply!

I work for a company (Inductive Automation), and we build a platform for industrial automation called Ignition. A few years back we created a special free license tier (and some light weight branding) for personal and educational use. It's called "Maker Edition", and there is a growing group of users using it for home automation. Mostly people already in the operational/industrial automation space, but it seems like it's growing more broadly.

We package Ignition as a docker image, an installer, or just a simple zip archive you can decompress and launch, so it's easy to self-host or deploy to a cheap cloud tier. The biggest downsides are that there will be a bit of a learning curve to using it (as with any new tool), the documentation being focused on commercial use cases, and similarly, we don't offer first party drivers for common home protocols (zigbee, zwave, etc). But we have pretty good docs, a free online learning platform, and pretty active forums. 3rd parties have written various drivers for home use.

I'd love for more in the home automation/maker space to know about and use it. We don't monetize maker edition in any way, and so don't really promote it, but I'd love to see the home userbase grow (and hopefully by extension, the hacker/maker community who might be able to help contribute to drivers and other resources).

It's an open platform built on the JRE, with a public sdk and example modules (plugins) and related tools available on github.com/inductiveautomation. The software is in use to automate virtually every industry, so it's fairly well tested (at least to the extent that a toolkit can be).

Maker Edition info is available at: https://inductiveautomation.com/ignition/maker-edition

Disclosure : work for inductive automation, but otherwise don't have a financial interest in people using Ignition Maker Edition or anything of that (aside from any side effects that come from broader adoption in general). My selfish interest is in a larger home use community so there are more cool projects to check out, resources to share, open source modules published, etc.

All statements here are my personal views.

I'm not sure how global the practice is, but at least in the US, you're briefed on the study as part of patient consent. They clearly tell you that nature of the study, including details about blinding, placebos that study participants may get instead of the active chemical, etc.

You're missing an important element though:

Not all criminals are deterred by threat of prison, and not all prisoners can be rehabilitated. For those people, jail is simply a mechanism to remove a known threat to society.

In this TB case, jail isn't a threat, it's a consequence that will improve the safety of innocent citizens.

Web IDE Beta 4 years ago

C/C++ is only 'one language' (I know, but for sake of this discussion, may as well be), and even then, Intellij does just fine for me, even if it's not on par with Clion. To say it doesn't support mixed language development is silly. In one sizeable project I have python, js, TS, kotlin, Java, bash, groovy, even a little C. All of it works in Intellij ultimate with code completion, refactoring, goto definition, find usages, etc. And it does it does better and faster than the same project when attempting to use VSCode. VSCode starts getting real slow trying to find references and whatnot on significant size projects, and the refactoring is night and day better in Intellij.

I used it for about two weeks total, over two different periods. Mostly Kotlin, Java, Typescript, small amounts of Groovy. I ended up turning it off. In my experience, it has moments of utility, but most of time it felt like it was getting in the way. The kinds of things it completed well were not the kinds of things that cost a lot of time or mental energy. I found wasting more time trying to fix things that when it got close but not quite there, than it saved in spitting out boilerplate.

Not sure what's preventing you from setting up Intellij to do what you want, even without .editorconfig. I setup intellij editor format preferences to follow the formatting I setup with my build-based linter/formatter. I just change the IDE settings so that they match my formatter, use it as the project setting, and then commit the codestyle files in .idea folder so that it's always there when I import or open a project. Never have to touch it again, autoformat in the IDE works and is 100% compatible with my ktfmt, ktlint, checkstyle, spotless or whatever. Imports, order, line wraps, indentation, etc... it 'just works' for me.

Yes, it's a minor additional step at first, but it's like 15 minutes tops, and after the first time you do it, you simply copy the xml from project to project if you want to use the same settings.

I entertained buying the advantage (maybe 2?) before ultimately buying a keyboardio model 1. The main things I didn't like about the advantage was the fixed geometry and small/awkward function keys. Had this been out, it would have been strongly considered, looks like it addressed my primary concerns.

That said, I loved the keyboardio so much that I recently received the updated model 100, and love it more than the original. The hot swappable switches are great, and the layout is really efficient for me (admittedly, took a frustrating few weeks to get proficient).

Knowing what I do now, I'd personally choose the keyboardio 100 over the kinesis 360, but I'm glad there is another flexible high quality split kb on the market.

This idea sounds appealing, but wouldn't that also (generally) require standard power (115v/60hz stateside) to run the amps? Not having to worry about having an electrician run the appropriate 'high voltage' (in a residential wiring context) power to ceiling/wall speakers is appealing to me. I'd love any additional resources you have about this method though.

I've been loving Prana for a while as well, for all the reasons mentioned. I haven't needed anything new recently, but have heard that the newer generation 'eco friendly' materials are noticeably worse in ways, and fit/sizing has changed. Have you had any experience with the new stuff?

I'm on the other side of the fence - I believe they can store all they need to. Backdoors into Google, AWS, and others were strongly hinted at if not fully exposed with all the leaks back in the Snowden days, so US Agencies may not even need to store some of the bulky stuff. But given the vast size and number of datacenters operated by US agencies, it seems likely they have a LOT of storage capacity. http://worldstopdatacenters.com/government-data-centers/

While I wish it were faster, I actually appreciate that Intellij can defer as much as it does to the underlying build tooling. The native ability of the IDE to interpret the full contextualized classpath of a given project is a double-edged sword. While it _can_ improve iteration speed, it also introduces a lot of room for IDE-specific environmental issues where something works in the IDE, but not in the build (and vice-versa).

Pros and Cons, but my experience spending hours or even days solving IDE classpath hell in large projects is a huge annoyance to me, especially when the same issues don't actually exist in the 'real' build. So much that I'm willing to pay a few more seconds for every task/build initiation in large projects if that's the cost of having an accurate representation of the classpath in the IDE.

I also really enjoy Kotlin, but find the weird configuration and versions of the kotlin sdk bleeding between the IDE, build tool (gradle) and actual dependencies to be a source of confusion. This is especially true when building/publishing gradle plugins written in kotlin.

I'm in the same boat - backed the original Kickstarter for the 01, bought a second to keep at the office, and have a 100 on order through the more recent Kickstarter. Took a bit of getting used to, but I really enjoy them. My biggest complaints were handled with the model 100 (serviceability), looking forward to the new one arriving.

Anecdotally, the movement I've seen largely results in consolidation of 'like-minds', rather than a culture-mixing diaspora that results in a greater balance of varied perspectives. I hope my limited experience isn't the norm, but I suspect it is.

You realize that during the time of the Civil war the Republican party was the more progressive party, right? The shift to more conservative ideals started in the early 1900s, shifting further with the Southern Strategy, and then most recently, has shifted even further.

The Republican party of today shares little but name with the progressive GOP of the mid 1800s. Trying to claim it is the "side that ended slavery" is a fairly silly statement, as that side no longer exists in the party at all.

I actually went a very similar route, but with a Thinkserver device. It's been some number of years, but it looks like they still have something similar on offer: https://www.lenovo.com/us/en/p/servers-storage/servers/tower...

These aren't low power in the same way an ARM-based edge-of-network device might be, but it's been great for what I need: some minimal local services, lots of storage, and fair cpu performance for things like transcoding media.

This might be true, but it's also misleading. Intellij is a pretty huge application, with a gigantic set of features and capabilities, likely far more substantial than even the largest/most complex Electron app out there.

Intellij would require notable memory and cpu regardless of whether or not it was Java. See XCode and Visual Studio for comparison, as they are probably closer to the same feature profile than something like VSCode would be. Their memory footprint and performance is not what I'd call substantially better than Intellij (and as with most comparisons of this nature, many caveats exist around which plugins/addons/features are in use).

Would Intellij have a better resource profile if it were native? Ya, possibly, but it's also possible that another language/platform would have been a significant barrier to long-term success. Not many cross-platform UI toolkits from 2000 to choose from, and many fewer have continued to be well-maintained and usable today.