787 karma · joined December 1, 2021
> 1. Unsolicited advice is always criticism.
This is important to me. Especially when I become a senior, my opinion without much thought can be taken as a criticism and make others irritated or insecure.I want this to integrate well with type checkers. For example, if I edit a TypeScript function and it causes several type errors, it's nice to open all files and jump to the errors. If more edits cause other errors, open those files again. This would make code changes much easier!
Even though I'm pretty tech-savvy, I'm not sure I could totally avoid falling for this. These scammers don't ask for money directly; they casually mention how they're making big bucks through crypto trading on some app. Naturally, you get curious about the app, but you're still cautious. Then you see it's got a ton of good reviews on the app store, so your trust increases a little.
You install the app, and it looks legit - like it was made by a solid dev team. It offers some limited-time crypto deals where you can't withdraw for a while. The victim invests a little, watches the crypto value climb, and sees their "money" grow on paper. So they put in more. When they finally try to cash out, they realize they can't. They panic and turn to their "romantic partner" for help. That's when the scammers and the fake app squeeze out the last bit of cash, claiming it's for taxes or fees, and they need to put some money. And the victim loses everything.
It's not unreasonable for the victim to think the relationship is real if they've spent months chatting and calling, sharing really personal stuff. Plus, the app seems totally legit, both from the store reviews and how it looks and works. I really hope these scams will disappear soon.
I don't need to be unrealistically optimistic, but it's possible that the situation can be improved a bit and maybe I can play a part in that. Well, if the cost of tax evasion increases by 1%, I can say it's a big win.
But I have a mixed opinion on the big Context object. It may help to write less verbose code, but it can also cause OOP's antipattern God Object[1], even though the context is more of a namespace rather than a big object.
// Not
app.get('/hello', (c) => { return c.json({ greet: `Hello ${c.req.params('id')}`)
// But
import { jsonResponse } from 'library'
app.get('/hello', (req) => { return jsonResponse({ greet: `Hello ${req.params('id')}`)
[1] https://www.wikiwand.com/en/God_objectFix: format
Plus, when I'm well-rested, my brain seems to actually register when my stomach isn't empty, so it doesn't send out those annoying craving signals.
And after all that health talk, I'll probably still end up scrolling through Reddit for a couple of hours before bed.
> If you can't easily explain why something is difficult, then it's incidental complexity, which is probably worth addressing
That's a real eye-opener. Hope I remember this next time I implement something complex. The thing is, I don't think this stuff would've helped me much when I was a junior dev. A lot of them are just too nuanced.
It's unrealistic to expect agencies to implement flawless regulations, especially when they're often underfunded. Complex situations will always have loopholes, but letting corporations exploit them freely doesn't benefit society. Sure, agency overreach can be a problem, but in this case, I think the lack of regulation is more concerning.
> The problem with a lot of the called "progressives" is that they've adhered to a different kind of conservatism, where while the ideals are progressive, every single instance of actually implementing those ideals are conservative and play to old power structure.
I agree with your point about the conservative/progressive labels. People's views are nuanced - they might want to maintain the status quo on some issues, push for progressive change on others, or even revert to past practices. It's not black and white, even though we feel that way cause our society is getting more polarized.
Question: do almost all LLM APIs have the same roles "user", "assistant", and "system"?
[local]
API_KEY=local-key
API_SECRET=local-secret
DB=postgresql://username:password@localhost:5432/database_name
[production]
API_KEY=prod-key
API_SECRET=prod-secret
DB=postgresql://username:password@prod-db:5432/database_name
[staging]
API_KEY=stg-key
API_SECRET=stg-secret
DB=$(production.DB)
It makes it easier to update all env at once, compare, and share.
It's not much help, but it helps me avoid a few annoyances.On an unrelated note, I always find it a real headache to keep the naming convention of the environments throughout the project. It always ends up like a mixed bag:
* Juggling production/prod, staging/stg, and develop/dev,
* Inconsistent placement of env, e.g. prod-myproject or myproject-stg,
* Skipping env name sometimes, e.g. myproject-bucket for dev S3 bucket but prod-myproject-bucket for prod (though it's okay to emit env name for user facing places like URL),
* Inconsistent resource sharing between envs, e.g. same S3 bucket for local and dev but different DB, or same Kubernetes cluster with different labels for dev/stg but different cluster without a label for prod.
These inconsistencies often result from quick decisions without much thought or out of necessities,
and everyone is too scared to fix them anyway.
But it bothers me a lot and sometimes causes serious bugs in production.Fix: format
[1] https://support.anthropic.com/en/articles/9517075-what-are-p... [2] https://support.anthropic.com/en/articles/9519177-how-can-i-... [3] https://support.anthropic.com/en/collections/4078531-claude-...
This shows that even widely used open-source projects aren't immune to being abandoned by the companies. I'm currently enjoying VS Code, but I wonder if it will face a similar fate. There's a risk Microsoft could prioritize VisualStudio or move important features behind a paywall. It may be one or two board members away from abusing their market power to push for full monetization of the product.
The worst is the sticky side button overlapping the main content. A few years ago, I sometimes saw "share on social media" buttons obscuring the article, and that was so annoying.
[0] https://www.youtube.com/watch?v=DQHQhNq5Tek The original creator seems to have removed their account and this is reupload.
But there's nothing close to Google Search or iPhone.
That said, I'm not particularly sure Japanese politicians can handle those complicated matters efficiently. I mean, our "cyber-security minister" was accused of never using a PC and not knowing what a USB memory stick is [0]. I can't help but think that this will end in disaster and IT giants will use these examples as evidence of how bad it is to make strict regulations against them...
[0] https://www.theguardian.com/world/2018/nov/15/japan-cyber-se...
When I worked for an ad-tech company, we built an ETL system to convert our messy, complex, and technical debt-ridden application database into a well-organized analytical database. The main purpose was to make the jobs of data scientists and machine learning engineers easier.
However, it also helped business people with some technical knowledge create the dashboards they wanted. Although some queries were a bit messy, it made it easier for them to organize their requirements and communicate effectively with the tech team. Unfortunately, it also resulted in a lot of half-baked and unused dashboards, but overall, it brought positive change to the company.
That said, I don't think it's worth developing an ETL system just for business people. It requires multiple dedicated devs, whereas writing SQL for dashboards occasionally only takes a few days per month for a single dev. I agree that the most important part is fostering a good relationship between tech and business people. If business people have a mental barrier, it becomes challenging to create new dashboards and update or fix existing ones.
One thing I really want but missing in Jupyter is a straightforward auto-completion integrated with something like Copilot. I'm spoiled by the "just-mashing-Tab development", where I just type a few words and let auto-complete do the rest.
The lack of auto-completion is the main reason I prefer using VS Code or Neovim recently over Jupyter even for experiments.
Some linters like pyright can identify dangerous defaults in function call, like `def hello(x=[]): pass` (mutable values shouldn't be a default). Linter plugins for widely-used and critical libraries like SQLAlchemy are nice to have.