Hacker News new | past | comments | ask | show | jobs | submit | ricardolopes's comments login

This looks really neat. I've definitely thought of "Duolingo for X" project ideas that I only wish I had the time to actually develop.


In the post he mentions that he was already getting bored before Ukraine, and that war actually kept him going a bit further


Like others in the comments, I've also been happily using Harmonic after having tried almost every other HN app.

I've got a strong preference for open source apps, so this is the best news I could get from this app.

Thank you for your great work!


Do you believe the amount of time developers have spent building hello worlds is a waste because those are useless applications?

Should go without saying, but the interesting thing about this thread is not that you can now play a flawed text version of an old game. It's that this example toy use case manages to explore the new capabilities and limitations of this new promising tool. This improves our understanding of this technology, and helps us make better use of it in the future, for more productive and innovative applications that we may not be able to predict yet at this point.


Relying on hacks for production code is usually a red flag/code smell that indicates there was probably a better alternative. `string & {}` definitely feels like one of those hacks.

As an alternative, wouldn't it be better to map the list of supported values in a structure like an enum?

Example:

```

enum HelloWorldValue {

  Hello: 'hello',

  World: 'world'
}

const value = HelloWorldValue.Hello

```

And now you can call that enum when declaring a variable value and get its contents in autocomplete. As a nice bonus, because these are references and not strings, you can ask your IDE for all places instantiating those values, which can be a life saver.


This is what happens when you are building rules are around an existing system versus the other way around.

In another language you have a value of type String which can take any value, might crash, might not, when you give it a color value.

And then you have a set of items like you described, which are convertible to String (or are a string, like your enum).

In fact, the receiver property probably shouldn't even be String, but typeof Color, which can be constructed through a method/constructor that ensures the String input is a valid format.

Because which color is "XXXXXX"?


Based on the last time I played with thml colours, probably red


It's also a lot of effort for a language which seems to be incapable of runtime type checking. Typescript is a glorified linter


> This is what happens when you are building rules are around an existing system versus the other way around.

exactly right!


I like to focus on the main business element. If it's a SaaS for sharing videos with comments, for instance, I'd take a longer look at the video and comment models, their relations, and the call chain from API endpoint to model.

Another strategy I like is picking parts of the codebase and trying to refactor them. You don't even need to commit anything if you're not supposed to go around changing things: just by spending some time moving things around, seeing what breaks and so on will give you a better understanding of the code and what it does.


I remember reading this book in my teenage years and being moved by its story. I still think about it, and it's one I'd definitely recommend.

I wonder how it got to the top of hn all of a sudden though.


This looks amazing! But if it's streaming copyrighted material, how will it survive legal action?


Thank you :) Users have to upload their own games. You can only play games that you upload. It's like backing up your music to google drive and not sharing it with anyone :)


That's not how coinbase operates. You have a "Buy <Coin>" button, and you expect to get that coin without fail, every time. If a new token launches, you should be able to buy it without waiting for users to deposit and sell. Maybe you're confusing with coinbase pro, which uses the more traditional order book model, or with other exchanges?


Coinbase adds new assets to the pro option first, establishes a market, and then adds to the retail Coinbase "buy button" app. When a user hits the retail Buy Coin button, the internal market maker fills the order against the coinbase pro's order books.


I honestly fail to understand how downranking state-run propaganda that promotes a dictatorship's lies is considered to be a bad thing in a service that is all about providing useful information.

This isn't about silencing a political view, cancelling an unpopular opinion, or whatever. It's defending against a deliberate attack from an oppressive regime. Search engines already have to do a lot of tweaking, for instance to defend against SEO spammers. I don't know how can this be controversial.

Anyway, answering your question, I use and like Ecosia. I've heard good things from Brave Search, but haven't tested it yet.


> This isn't about silencing a political view, cancelling an unpopular opinion, or whatever. It's defending against a deliberate attack from an oppressive regime.

This is your opinion (not one I disagree with in this case) - but it's besides the point. I don't want DuckDuckGo to filter/sensor based on "politics of the day". I don't mind them tagging results.

> Search engines already have to do a lot of tweaking, for instance to defend against SEO spammers.

Sure, but there is clearly a difference here.

> Anyway, answering your question, I use and like Ecosia.

Will check it out, thanks.


> I don't want DuckDuckGo to filter/sensor based on "politics of the day". I don't mind them tagging results.

Agreed on both. Maybe it should have been done sooner, to avoid looking reactionary. Though I understand why today that propaganda may be considered worse than in the past.

> Sure, but there is clearly a difference here.

There's a difference, but not significant IMO. Just like misleading results should generally be penalised, to help people get to the information they requested.


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

Search: