For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | more lloydjatkinson's commentsregister

Fully agree. No need for the shitty parts of UNIX to be in a new OS. Use full names. I've never used OSX/macOS but I do admire how they've gone about doing the whole UNIX thing, there seems to actually be some standard to it unlike the LSB and from what I gather to uninstall a program you just delete it's directory. Try doing that on literally any other mainstream OS!


Unfortunately not. You also have to delete from ~/Library/Caches at the least. If you want to delete the user data then you will need to delete from ~/Library/Application Support, Preferences, Containers, etc, etc...


Doesn't always work. Lots of apps end up leaving data Lyon around in Library, and some of the "big name" apps require a full installer and uninstalled, along with admin privileges (see adobe, autodesk, Microsoft)


Very similar to something I'm working on. Except in my case I have an interface that the consumers implement to be able to talk to their service/database/whatever. It's designed for time series data (e.g., cpu usage, room temperature, that kind of thing). It's meant to only allow for numeric values and strings. But because there is no base type or interface for numeric types I unfortunately can't do something like:

    public Result WriteValue<T>(T value) where T : INumeric/Numeric { }
https://stackoverflow.com/questions/32664/is-there-a-constra...

:(

So instead the interface has an identical method for ints, doubles, floats, decimals, strings...


My favorite taunt from the .NET team: according to the .NET Reference Source, built-in numeric types implement an IArithmetic<T> interface... And then they comment it out.

http://referencesource.microsoft.com/#mscorlib/system/double...


Here's an ad-hoc polymorphic way of dealing with numeric types in C# without the boxing that would be caused by using an IArithmetic interface:

    public interface Num<A>
    {
        A Add(A x, A y);
        A Subtract(A x, A y);
        A Multiply(A x, A y);
        A Divide(A x, A y);
        A FromInteger(int value);
    }

    public struct NumInt : Num<int>
    {
        public int Add(int x, int y) => x + y;
        public int Subtract(int x, int y) => x - y;
        public int Multiply(int x, int y) => x * y;
        public int Divide(int x, int y) => x / y;
        public int FromInteger(int value) => value;
    }

    public struct NumDouble : Num<double>
    {
        public double Add(double x, double y) => x + y;
        public double Subtract(double x, double y) => x - y;
        public double Multiply(double x, double y) => x * y;
        public double Divide(double x, double y) => x / y;
        public double FromInteger(int value) => (double)value;
    }

    public struct NumBigInt : Num<BigInteger>
    {
        public BigInteger Add(BigInteger x, BigInteger y) => x + y;
        public BigInteger Subtract(BigInteger x, BigInteger y) => x - y;
        public BigInteger Multiply(BigInteger x, BigInteger y) => x * y;
        public BigInteger Divide(BigInteger x, BigInteger y) => x / y;
        public BigInteger FromInteger(int value) => (BigInteger)value;
    }

    public static class TestGenericNums
    {
        public static void Test()
        {
            var a = DoubleIt<NumInt, int>(10);  // 20
            var b = SquareIt<NumInt, int>(10);  // 100
            var c = NegateIt<NumInt, int>(10);  // -10

            var t = DoubleIt<NumDouble, double>(10);  // 20
            var u = SquareIt<NumDouble, double>(10);  // 100
            var v = NegateIt<NumDouble, double>(10);  // -10

            var x = DoubleIt<NumBigInt, BigInteger>(10);  // 20
            var y = SquareIt<NumBigInt, BigInteger>(10);  // 100
            var z = NegateIt<NumBigInt, BigInteger>(10);  // -10
        }

        public static A DoubleIt<NumA, A>(A value) where NumA : struct, Num<A> =>
            default(NumA).Add(value, value);

        public static A SquareIt<NumA, A>(A value) where NumA : struct, Num<A> =>
            default(NumA).Multiply(value, value);

        public static A NegateIt<NumA, A>(A value) where NumA : struct, Num<A> =>
            default(NumA).Subtract(default(NumA).FromInteger(0), value);
    }


That doesn't account for overflow, though...


Sorry, I don't follow?


The .NET implementation detects overflow and reports it back. This doesn't.


This:

    var x = DoubleIt<NumInt, int>(Int32.MaxValue);  // 20
Performs exactly the same as this:

    var a = Int32.MaxValue;
    var b = Int32.MaxValue;
    var c = a + b;
DoubleIt calls NumInt.Add which invokes the same code, why wouldn't it work in exactly the same way?


I saw that too! WTF!


Rust is also 32bit/64bit. That's totally fine (obviously) for PC-like situations and servers and more powerful embedded systems, etc.

But there are literally billions of 8bit and 16bit embedded systems out there, many of which have a C compiler.


There is some limited 16-bit support happening.



Are 8-bit systems still being used for new development?


There's 8-bit MCU's all over the place. I tried to find some numbers for you with a quick Google. This 2014 Amtel report puts 8-bitters at $6+ billion a year. Even the 4-bitters are still making hundreds of millions a year. I include a bonus link on that if it perplexes you.

http://www.atmel.com/Images/45107A-Choosing-a-MCU-Fredriksen...

http://www.embeddedinsights.com/channels/2010/12/10/consider...

Far as future, Jack Ganssle of The Embedded Muse has a nice assessment of it summarizing various sides:

http://www.ganssle.com/rants/is8bitsdying.htm


Oh, absolutely. The most familiar to software engineers is the AVR used in Arduino but there are so many 8 Bit micros out there (literally 10's of thousands different device) and new ones are coming out every month. So plenty of new development going on.


There are a couple of orders of magnitudes more Intel 8051 derivatives out there than there will ever be AVRs, and they still have yearly sales in the 100s of millions.


And how many percent of this is for new development?


There are still 24-bit systems used for new development.


Microcontrollers? Absolutely.


Yes but those are unlikely to be networked. The nasty stuff is something that is powerful enough to be connected to the internet and too weak to run modern languages. Fertile fields for Rust.


That is analogous to the "I've had this brush for years, and it's had a new handle 3 times and a new brush head 5 times." type idea. Safe to say that no, it is not the same organism.


At what point do you consider the bacterium dead? If it splits in two, you consider them both offspring and the parent is dead?


Why do you hate redis?


Redis is great when used as a persistent cache for short-lived + no value data, or data that can be reproduced from another source. If your data, or queued items, have value then find a better tool.

But if you're foolish enough to use it as a database... lol.


I like to think of C# as what C++ should have been.


No, a garbage collector is a non-starter for a lot of what C and C++ get used for.

C# is more what Java should have been (which lines up pretty well with the history of C#).


No HN only allow political ideologies or narratives they agree with. The moderator team do not hide that they are SJW's.

As another example, currently HN's narrative of choice is how Uber is literally the worst thing since Hitler and you can't go a week without seeing 3 or 4 top-voted links bitching about Uber. Perhaps some people like being able to conveniently travel from point A to B without caring about what some whiny keyboard warrior hates about Uber this week.


What's an SJW?

Not playing dumb, just interested in what it personally means to someone who applies it to others as a (pejorative?) label.


A Social Justice Warrior, though it's mostly used to refer to people who weaponize feminist ideology and use it to disturb peace in a community.

I don't know what SJW accusation has to do with Uber here, nor have I observed any particular SJW inclination within the mods. There's plenty of SJW action on HN, especially in threads about diversity in IT industry - but I'm yet to see a HN mod behaving that way.


I went and checked, and the OP seems to have been offended over this post: https://news.ycombinator.com/item?id=14358379

The OP posted "*he" as a "correction" for a "she" talking about Chelsea Manning, and seems to have been offended they got downvoted.

Apparently they may not be familiar with the difficulty of assigning gender. The least politically charged way to seeing this is to look at Olympic sports, and https://www.buzzfeed.com/azeenghorayshi/sex-testing-olympian... is a good overview.

I'd draw particular attention to the case of Ewa Klobukowska who was stripped of an Olympic Gold medal for "failing a chromosome test" (ie, exactly what the OP is claiming should be the arbitrator of gender).

https://en.wikipedia.org/wiki/Maria_Jos%C3%A9_Mart%C3%ADnez-... is another case.

Ewa Klobukowska later had a son, and had her medals returned.


Yeah. It was a surprise to me when I first discovered just how complex sex/gender is, in purely factual terms. I suppose over time society will have to develop sub-qualifications, because having just one binary category (man/woman) doesn't properly work at categorizing various aspects of a human being, like:

- grouping by the way someone looks (influenced by hormones)

- grouping by reproduction capability (can or can not be pregnant)

- grouping by reproduction hardware

- grouping by which group of partners one finds sexually interesting

- grouping by various other aspects of biology (chromosomes and all)

Different areas in life really want to categorize by a different set of those aspects, and bundling it all under one word starts to become problematic. My programmer intuition tells me we need to become more explicit about which aspect we mean at any given moment.


And of course it gets even more complex when you consider how things like hormonal changes (either natural or unnatural) effect gender.

Also there seem to be other factors which aren't understood yet:

The researchers identified a region of the hypothalamus, known as the bed nucleus of the stria terminalis (BSTc), as being responsible for sexual behaviour. This area is always larger in men than women. However, in their study of six MTF GID sufferers, a female‐sized BSTc was present in all subjects. Additionally, the size of the BSTc was not influenced by taking sex hormones in adulthood. This implies that these individuals had a powerful biological force compelling them to be female, rather than just a psychological conviction.

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2600127/

But.. I guess yelling "SJW" is much easier, or something.


> Ewa Klobukowska who was stripped of an Olympic Gold medal for "failing a chromosome test" (ie, exactly what the OP is claiming should be the arbitrator of gender)

Chromosomes are the arbitrator of sex. We know about intersex people and have known about them for some time. None of this means men can become women and women can become men


> I don't know what SJW accusation has to do with Uber here

This is why I mentioned political ideologies and narratives too.


I'd still love to see a citation for "the moderator team do not hide that they are SJW's".

As for allowing in only what mods agree with, I haven't observed such a thing. In fact, Uber stories serve as a great example. Since the first stories many years ago to this very day, HN community remains essentially split between those who love Uber and focus on the benefits it brings vs. those who hate Uber and focus on their anti-social business practices. Nowhere I've seen mods trying to force the discussion in favour of either side.

(And Uber stories are like catnip for me, so believe me, I follow those discussions closely.)


I'd agree with this - having previously been active on reddit and other social forums, HN is generally the most open to debate and alternative opinions that I've come across. Perhaps not so much with politics, where you'll get a mixed bag of genuine debate and left-leaning bias, but most subjects are treated as open for debate and that's one of the biggest draws for me.


I disagree. I got indoctrinated with left wing ideology here. It wasn't until I actively went and looked at right wing arguments to consider them seriously that I realized that those ideas are being misrepresented here


that's why I say I'd exclude politics when it comes to neutrality on HN - as a conservative/classical liberal myself, I've had very few productive political conversations here. Most other subjects are up for debate though.


Ah of course it's a Node/Electron thing.


I'm not sure how you can equate a corrupt money stealing government with a genocidal regime in which tens of millions of people were killed, imprisoned, and made refugees; while also drawing all the super powers into a protracted and bloody war, arguably we are still feeling the effects of today.


Dozens of Venezuelans are murdered every day as a result of the Government's inability to maintain even the minimal facade of law in order in many parts of the country. I'm not sure how many people have to die, and how many others have to live in misery, so clearly caused by corruption, before the world acts against the leaders responsible. There has to be some standard, but I think that Venezuela has met it.


Can the civilized world do this in Syria as well? Its appalling that the slaughter and destruction has gone on this long


> require a native app otherwise

Oh, the tragedy /s


I'm extremely hesitant about installing random non-sandboxed applications. A Chrome app comes sandboxed with well-defined permissions. It's rare for native apps outside of mobile to come sandboxed or be easy to sandbox.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search:

HN For You