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

Yeah especially as in places like London there have been many explosions and house fires originaying from cheap foreign e-bike batteries.

Some Chinese companies care about a long-term brand and place high standards on themselves but it's not true that anything online has passed safety standards. It's hard to differentiate the two due to the amount of fake reviews also.


Yes, I would never buy something grid-powered from AliExpress, and I would be very careful with larger batteries.


Yes,also beware of power strips and electrical wires in general: those coming from there are increasingly made of coated iron instead of copper or brass in contacts. The side effect is a much higher resistance that makes the wire dissipate a lot more power than it should, even to the point it can overheat and catch fire if under serious load (heaters, ovens etc.). Their exceptionally bad insulation and usually smaller size than advertised make the problem even worse. Such bad cables can be used for breadboarding where small lengths and low currents mitigate the effects, but they shouldn't be considered for anything serious. I've learned to ditch almost every bundled cable coming from there after multiple bad experiences. Surplus is a good source of top notch cables that can last decades. Crappy cables can be checked using a magnet: pure copper ones won't stick. There are also reports of junk coated aluminium cables that wouldn't stick as well to a magnet, but they're rare as aluminium, at least good quality one, is not cheap.


Rust is slow to develop and prototype in. It's good if you're a big company not the average Joe.

We need a better C++ ("systems") base language that could have an optional borrow checker or bounded model checker enabled.


Is C++ easier to prototype in? Of course there's the borrow checker, but I feel like Rust at least shows up with some expressiveness niceties that gets you some productivity wins in the prototyping stage.

Though really I suppose "comfort with a language " is such a big factor, seeing people really belt out stuff in C is always a bit impressive to me (yeah yeah, bug filled etc)


C forces me to do the barest minimum and avoid prematurely astronaut architect everything. That often makes it faster to prototype in. Not because I can do more. But because I have to reframe the problem so it fits.

But large codebases in C are tedious to work with and slow to refactor.


> Is C++ easier to prototype in?

Maybe if you’ve already got the toolchain set up and boilerplate templates etc.


Isn't that just D? No one uses D not because it's a bad language, but because the actual language isn't nearly as important for adoption as the community behind it.


If the borrow checker slows you down, the C++ you write instead would just be buggy


Safe programs extend beyond those that Rust's borrow checker accepts though. There is more than one way to make a program safe, not all of them would be valid Rust.


There are more than one way to achieve safety in Rust. Two more, infact - runtime safety and fully manual (unsafe with some additional work). Runtime safety is a very fast way to overcome the resistance offered by the borrow checker. While it does slowdown the code a little bit, that should be pretty fine for prototyping. A more careful use of runtime checks will still give you a program more performant than in most other languages.


Runtime safety still comes with a good amount of complication source-wise, having to spam RefCell/Arc everywhere, and whatever derefs/.get()s they necessitate, and probably a different approach to passing references. Refactoring either that or unsafe away after being done with prototyping isn't trivial, if even possible without entirely rethinking the approach.


Isn't that a bit dramatic? How much extra code or care do you need to implement runtime safety checks? This isn't the first time I hear these sort of arguments either. It gives the impression that a crowd is making up one exaggeration after another to drive the perception that Rust is somehow not suitable for general purpose programming.


It is a bit dramatic, though less so for some approaches to programming. And of course prototyping is very different from general purpose programming.

With Rust, if you really want the borrow checker to actually never bother you, you really do just have to spam the dynamically-checked wrappers everywhere; when in the groove, having to stop and wrap some existing field (or its holder) and all its usages just to be able to mutate it because you previously didn't think you'd need to is just completely awful if you don't find that "fun".

Whereas in C, if you want to mutate a thing, you can always do so whenever with no concerns (whereas using unsafe to mutate a field of a &Thing in Rust is just UB, though maybe you can get away with using unoptimized builds for a bit) and deal with previous code that may have been written with the assumption it wouldn't change Later™ (but, importantly, still allowing properly testing the modified thing, and perhaps the entire project). Want to change the lifetime of a thing? Just move where you free it, no need to ever change lifetime args across a dozen functions. And in Java the most anything may take is removing a "final" on a field.


[flagged]


If you remove "develop" from the OP and stick to "prototype", it's a totally valid criticism, and you come across as a condescending jerk if you suggest that software can't be "working" unless it's bug-free.

I can't count the number of times I've wanted to try out some library and whipped up a quick prototype app in an hour or two to play around with it. I don't give a damn if that app is memory safe, handles signals safely, satisfies arcane aliasing rules or deals with any of the other million footguns in C/C++. I'm happy if it compiles and does what I want it to. I deal with that stuff when I inevitably rewrite it from scratch the next day and have an actual design in mind.

FWIW, I'm comfortable enough with Rust that I would personally choose it over C or C++ for most stuff like this these days since the standard library makes a lot of boilerplate prototyping stuff (e.g. setting up a project, pulling in dependencies, handling files and I/O) much more pleasant. But suggesting that anyone who writes unsafe C/C++ in any context doesn't know what they're doing is ridiculous.


What trade-offs are you typically evaluating with the prototype?

Have you ever found that decision harder to make because of shortcuts etc taken during prototype?


Like everything, “it depends”.

I used to work on a product that handled video, and I would regularly spin up prototypes where I’d stitch together gstreamer pipelines with different plugins to try things out. For reasons that aren’t important, it was easier to use an app linked against the gstreamer libraries than to use its CLI.

There were all sorts of ways I’d evaluate some plugin I was trying out. Maybe I’d look at some test pattern for artifacts. Maybe I’d measure latency. Maybe I’d profile its resource usage. But I can confidently say that in all of those cases, the memory safety of the 100 lines of C++ code that told gstreamer how to plug things together had absolutely no impact on what I was evaluating.

Sometimes the code you’re writing is basically unrelated to what you’re interested in from a prototype.


Working software doesn’t always have to be correct or safe. This is highly use case dependent. Rust’s guarantees aren’t free, it comes with a handful of tradeoffs, such as learning curve, implementation speed, (this one is personally annoying) compilation speed, and portability. I’m a huge proponent of using the right language for the job. Sometimes rust is the obvious choice, sometimes it’s Python, Go, Lua, Java, Prolog, C, brainfuck etc.


> Working software doesn’t always have to be correct or safe.

I feel like I am missing some very obvious point of yours because that statement in isolation I cannot agree with (I've read the rest of your comment and still can't find the extra context). Can you clarify?


Let me define the terms I used to see if that clears it up at all.

Working software: Does the software satisfy the use case?

Correct or safe: does the software enter into any invalid states? Are edge cases handled?

Does that help?


[flagged]


You are really being a jerk in this entire thread. Here is an 18,000+ word article on one domain where Rust is not a great fit.

https://loglog.games/blog/leaving-rust-gamedev/


Working software and correct software are two different things and understanding that like in most things there is a tradeoff might be beneficial.


Rust isn’t too bad if you throw clones everywhere. Otherwise, you might as well use a garbage collected language.


If it's optional, people are unlikely to use it, and we'll be back at square one again regarding pervasive memory safety issues.

That being said, keep an eye on Carbon.


Prototype, sure.

Develop? Debatable. At a certain scale of project, all the static guarantees become quite helpful. And a "prototype" written in Rust is often much closer to production-ready than you might think. Rust makes it easier to see which corners you've been cutting than most languages.


Apple is positioning Swift as this (and are also moving it from Apple's space on Github etc. into its own and gradually trying to build more of a community), so I wonder if it will catch on more. If people are already using it in the app space, it might be able to branch out into other areas.

Over the last year and a bit they've also been working on strong C++ interop to be able to start using it in their own projects without having to do rewrites, and also better cross-platform and static linking support on Linux which could all make it a lot more attractive.

(For context, like Rust, Swift is both memory safe and data-race safe)


Swift uses garbage collection (I know, arc, but that's still garbage collection), so it more or less is in the same category as Go. And I don't see people choosing Swift over Go any time soon.

C++ and Rust are a different thing.


Swift uses garbage collection (I know, arc, but that's still garbage collection)

That’s simply not true, starting with ARC being compile-time and GC being run-time.


Reference counting very much incurs a runtime cost; it's not just a compile time abstraction, like borrow-checking in Rust.


> We need a better C++ ("systems") base language that could have an optional borrow checker or bounded model checker enabled.

Are you describing Rust?


Maybe if Opera, Arc, and Brave people joined forces... Without a combined effort they lack the power of Chrome store and developer docs.

Worst comes to worst they can use the Firefox engine. The MV2 extensions don't need much work to leap over for Firefox


This is why it’s so critical that we don’t consolidate onto monocultures. It is crucial that Firefox and WebKit continue to be viable alternatives to Chromium.


Worst comes to worst they can use the Firefox engine

I wish that was the outcome. I could finally try firefox with a ui that fits my workflow.


My impression is that it's much easier to embed chromium than Firefox’s engine


Is this something that Mozilla is focusing on at all? That would seem like an important step towards actually protecting the heterogeneity of the web (or what's left of it).


If most companies become 4 day work week, that would be the new floor and not a perk no more?

You might still have 5 day work week employees who get paid more but to them the perk is money/earlier retirement.


That's true for all perks: if all firms offered the same perk, that becomes the new floor. But this does not stop companies from offering perks.


Mission accomplished. Otherwise what's the point of increasing productivity? If we can get the work done in less time, we should be able to work less. In an ideal world, we would work as little or as much as we want and be compensated accordingly.


People who cite interest rates and economy are coping hard. It's all of a sudden a factor now but never was before. Apart from dotcom specific crash, tech has seen relentless growth, until recent years where it was shown firing people had no negative effect.


The only way I'd agree to "no negative effect" is to say that:

1) all FANGs are effectively dropping in profits, and it's because of "net-revenue": if revenue is up, it's because of new loans, new future financial obligations.

2) One exception is Facebook BUT profit growth certainly isn't what it used to be. And they certainly weren't shy about new loans either.

3) Another different exception is Apple BUT it's "very Apple" financial results: all Apple revenue sources are dropping, some fast, except for one: "services". And, yes, that one new revenue source is making up, for now, for the losses everywhere else. Does anybody seriously believe this can last more than a few quarters though?

I get that apple wants the "big new thing" every decade or so. But I find it very hard to believe that service revenue increase can be the big new thing for even 2-3 years without angering every last customer Apple has. The iPhone was a total homerun, and I just refuse to believe that "service" can be even the palest of shadows compared to that.

(just so we're clear: I applaud Apple for continuing to innovate, even on product lines dropping in revenue for years, that every MBA on the planet would mass-layoff the shit out of and suck the customers dry in an attempt to extract every last dollar they can)

(P.S. Apple is an exception because they haven't done layoffs, which is what's supposed to make the difference. It certainly made SOME difference, but is it big enough? Time will tell)


That's nothing to do with number of engineers you have.


It might be. He fired a whole lot of moderators who would oversee the removal of content which, among other things, would be distasteful to advertisers. It’s possible that before Musk joined Media Matters would not have been able to find anti-semitic posts next to Apple advertisements due to their removal by moderators.


Twitter was a bloodthirsty cesspool before Musk too. Maybe it got worse, I don't know, but the big difference is that buyers started to pretend to care since they did not like him.


No it definitely has gotten worse. Notably, almost every comment and post I make gets interactions from bots right away. That never used to happen before. These bots are not following me.

Also from analysis I have seen, hate speech has gone up significantly. This makes sense since there are no moderators. Twitter has recently decided to hire a substantial new group of people to rebuild a moderation team, because they truly did cut too many people there.


A significant fractions of this layoffs weren't engineers but instead worked on moderation. When moderation was gone, antisemitic tweets (among others) became ubiquitous, which drove advertisers away.


I rarely see proper anti-semitic posts in Twitter. The problem is that people keep on insisting that posts condemning Israeli government illegal and immoral actions are anti-semitic. If anything, I welcome that people now can ask how Israel gets a pass of refusing to implement UN resolutions that back from as early as 1948 without any consequences.


I'm not talking about Israel here, I'm talking about what happened last years, where you even had Twitter accounts called Gas_the_Jews and the like spawning up and attempts to report them being automatically closed (for this one in particular, the Auschwitz memorial had to step up to get it banned).


Echoing the other comment that this is genuine antisemitism at issue here, not the very legitimate questioning of Israel’s genocide against Palestinians. Much of the analysis of the increase in antisemitism on Twitter after Musk happened before Oct 7th.


There is already socialcoder for non profits, which also provides project management and liaison. This thread would not do better than that service for non-profits, simply because it's more organized.


By the same logic, there is already Indeed, Monster, Dice, and LinkedIn, so the "Who is hiring?" thread would not do better than those services.


That service does a lot of the matching that you need and provides all roles from PM to designers to programmers. It's unquestionably better as you're dealing with volunteers. Unless you're picky with who you select and then lucky for them to have enough continued time for you.

Companies just want a resume and straight to interviews.


.io is simply the new .net, what you get when you can't get .com but don't want to rename. Although .io and .ai are really expensive so I wouldn't be surprised if something new comes up.


in my world that was true 10 years ago, except it wasnt a cop out: nobody needed .coms but nobody knew it yet because of prevailing wisdom

over here .xyz is the new .io and nobody cares about the tld that much at all

if you’re relying on users to type in your domain name, or SEO, or some form of legitimacy with an equally as antiquated crowd, you’ve already failed and need to scrap the idea


Singular data point, but I don't think I've ever seen a company that I would take seriously use .xyz.


Double data point here.

In fact, unless you're selling to techies, it's dubious to operate a US business on anything but .com.


Aussie here, we try to get both the .com and the .com.au (and now also the .au), because people will just use one or the other, regardless of what the link says.


I think opening up .au was criminal. Same as the .uk one.

Investor value at the cost of hurting small business by increasing cost or creating confusion.


I realize you're referring specifically to general .au, but I don't think the average person will think to try foo.au instead of foo.com.au and .com.au isn't opened up to my knowledge. The name must be derived from your registered Australian business (ACN or ABN).

I've had a .net.au since 1999 and the same rules apply there.


The domain does not have to be derived form anything, only associated (owned?) with an ABN/ACN. And the bar for registering an ABN is as low as signing up for an email account.

People in Australia use .com.au all the time, domain.au almost looks broken to my eye.


abc.xyz?


Alphabet is not a company most people interact with directly so their website address doesn't matter at all.


together.xyz, although they’re .ai now


I only seem to see .xyz in the crypto space (and alphabet inc). Generally it's a crypto scam pushed at me in a twitter/x ad. What are some other players on the .xyz tld?


I've used .xyz because the domains go for a few cents per year. And then I moved away from them because it felt so unprofessional.


i've seen lots of devs using it for their personal blogs, i guess because it's cheap. personally, im excited to buy an .lol tonight!


.lol is overpriced and worse, can arbitrarily increase the price in the future. Using anything other than an ICANN-controld gTLD (com,net,org,etc.) or a ccTLD (be very careful about ones from countries other than your own) is a fool.


the domain i was looking at is $1.80/yr so im not upset at the price, and its just for silly personal stuff so if they increase price i could just switch to something else.

good to know about the risks of price hikes though!


First registration is $2 but any renewal is $20 after. A lot of first year domains use different pricing and they are charged differently I think by the TLD holders, so it's not just stupid marketing by like GoDaddy who hopes you don't transfer to another registrar after them taking a loss the first year and huge hike after

A lot of super cheap ones have expensive renewals.


“A fool” is beyond dramatic.


One of the lecturers at my faculty has his academic website on an .xyz domain.


Does he speak any Slavic languages? I know a Russian lecturer who does that in part because he considers it funny to use a TLD that looks similar to the obscene word "хуй".


That's a bit weird of an association. I'm Russian and хуй doesn't usually come to my mind when I see xyz.


> Does he speak any Slavic languages?

Well yes, but not one that uses the Cyrillic alphabet or has this word.


Damn, poor little Google seems really scared. I'm not sure if that info is true. You have to provide the whole source of the entire product and not just a segment of code (eg library) you forked which they do often?


It's a research paper. You can write a theoretical paper and let others apply it practically, which others can figure out the practical aspect and report results of benchmarks, or others can also build on the theory.

This paper only has 2 authors. The other solvers are probably applying technique specific tricks and speedups, and you're working with approximate optimization, it's not that easy to move everything over.


> This paper only has 2 authors.

So? I don't get the relevance of the author count.


It's quite easy to go tell other people what they should do with their time.

These researchers are in the business of improving algorithms. Implementing them in large industrial (or open source) code bases in a maintainable way -- and then actually maintaining that code -- is a different skillset, a different set of interestes, and as was pointed out, besides the point.

Either you believe their results, then be grateful. Someone (yoU!) can implement this. Or you don't. In which case, feel free to move on.

Your tone comes off as entitled.


> Implementing them in large industrial (or open source) code bases in a maintainable way -- and then actually maintaining that code -- is a different skillset, a different set of interestes,

You're making a very general point on how algorithm research and software development are two different things, which is of course true. However OP's question is genuine: a lot of research in OR is very practical, and researchers often hack solvers to demonstrate that whatever idea offers a benefit over existing solving techniques. There are no reason to believe that a good new idea like this one couldn't be demonstrated and incorporated into new solvers quickly (especially given the competition).

So the quoted sentence is indeed a bit mysterious. I think it just meant to avoid comment such as "if it's so good why isn't it used in cplex?".


>business of improving algorithms

You do realize that the solver companies are in exactly the same boat, right?


no they're not. they're in the business of making their customers' problems solve fast and well. That's of course strongly related, but it is _not_ the same. An algorithm may well be (and this is what OP might be hinting at) be more elegant and efficient, but execute worse on actually existing hardware.


And given how much the licenses cost, I'd love a new player to show up and bring them down to a reasonable level.


Since version 8.0.3, SCIP is available under Apache 2.0 License:

> https://www.scipopt.org/index.php#news

So the new player to show up is here. :-)


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

Search: