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

That's called bike shedding! People tend to avoid complex stuff as it's much easier to discuss the simple stuff


Thank you that is such a useful change! I wondered about symmetry but had no idea how to break it.


I realized that there is more to do in handling the team positions. Since the number of each position is fixed, the whole array of team_position can be replaced with a fixed set of integers.

With that change, it is also possible to add symmetry breaking on the player identifiers within each type of player position.

These two changes taken together makes the HiGHS solver taker around 3.2s on my machine, and OR-Tools with 10 threads takes 1.28s.


VS code (developer interface) has this feature where you activate a text input with a hotkey. It is used to trigger specific actions. You can type text and it will give you the actions that match the text. You also see a list of the actions you triggered that way previously. This is great because I don't have to remember how to trigger a specific action and I can also discover new actions just by searching. Ultimately it doesn't change the UI, but it sounds quite similar to what the author describes. There is some potential there with a search bar that is more about intent than text matching.


They also have this in recent versions of Office (Alt+Q). Helps a lot when I can't remember exactly what the button on the ribbon looks like.


This brings back memories from my old days of VS programming (.NET C# or C++) with IntelliSense when I used to bless every object instance with Ctrl+Space.


Yes, I remember dark IT history where nonetheless my VS IDE had traveled back from the future, where it is now missing.


MacOS has this in every program through a search field in the help menu. It is very useful!


Because that's the reality of what our average life could look like if would have a sustainable life.


That's why remote work is so liberating. You don't have to stay at your desk but you can move your body and free your mind as much as you like. When I get back to the office I feel stuck. Physically and mentally.


I never felt constrained or locked out even at office. I would go for a walk. I would space out at desk. I would chat with people. No one got offended. Of course it probably helped that mg boss was not in the same states.


This article makes some assumptions that could easily change the result. By the way, if you have a batch size of 1 you're back to the initial hypothesis which is obviously not how things work in the fast food industry. I think it misses the point of idle time and availability. From the supply chain theory, if your resources are always 100% busy, your delivery time will go infinite because as soon as something takes a little more time as expected then you can never catch up. This applies particularly well to software engineering.


Nice article. I built my own online version of a turn based board game because none exists at the moment. I just want to play with my family so I didn't bother coding a server at all, instead all clients communicate their actions to all others so I naturally implemented the deterministic approach. I haven't thought about secret state so it's interesting to see a possible solution for that. Fun!


I'm also writing an online version of a board game I like, to play with family and friends. I am about to start the networking part, and I actually intended to implement the deterministic approach, although I didn't know the concept had a name before reading the article. It's nice to read some validation that it is a good design.

I'm curious to know how you achieve not to need a server at all. How do you create the initial connection between clients without a server to negotiate NATs and things like that?


If your game is web-based, you could leverage WebRTC - where you only need to share a unique link between users - see peerjs (https://peerjs.com/) or croquet.io (https://croquet.io/docs/croquet/)


If you target desktop, should be fine, but mobile users tend to use cell towers which are on Symmetric NAT, which would require a TURN server on top of the WebRTC.


I'm targeting desktop, but your point is good to know, thanks. I will keep it in mind.


Even on desktop you run into people with weird configs. For example my router will not allow mDNS to work but my ISP NAT is pretty good so I can connect two machines as long as they’re not on the same network! In the end you almost always will need a relay to guarantee connectivity for any random pairing of participants in a large enough population.

The good news is that WebRTC is perfectly straightforward if all you want to do is to connect to a server on the open internet.


It is web-based, yes. I was aware of WebRTC but assumed I would need a least to host the server myself. I'm looking at the links you provided and they seem very interesting. Thank you.


Initially I thought I would be able to do it with webRTC but it turns out you still need some kind of specific server to connect clients. Instead I cheated a little bit and used a messaging service https://ably.com/. It was easy to setup and use, and their free plan is generous. Another thing I didn't achieve is to find a RNG I could configure with a seed, so amongst my client I have a special one, the "host" who is drawing the cards, etc. Overall it's been working really well. There is one thing that is particularly difficult without a server, that is debugging. Especially if using a mobile phone, you're in the dark when a bug happens. And with Ably and the free tier, you have to be connect in debug mode beforehand to see the logs, very unpractical. Good luck with your game!


Not sure how far along you are, but I could help you build the game if you are willing to try making it for acos.games. I built a simulator that can help speed up development which is done in React and NodeJS.


Thank you for the suggestion. However I am close to finishing all the game mechanics, just on a single computer (the game has no secret knowledge so it playable on a single computer or, at worst, via screen sharing). Also I'm implementing it in Scala.js with Indigo [1], and part of the reason for the project is to have an excuse to learn Indigo, so i wouldn't change the technical stack.

Thank you, though. It seems like a nice platform!

[1] https://indigoengine.io/


I think it could be made compatible. Will look into indigo engine, didn't know about it until now. Thanks and good luck!


It sounds like good advice. Heck I don't wanna automate my life, especially not up that point. Imagine if the people the author contacted knew why, I wouldn't be too happy about it. Slightly related, I try to remember my closest friends birthdays, means more to me if I can remember it rather than a generic reminder...


This.

I've been working on native mobile apps in the last couple of years, and I realized the only reason companies want to push native apps is because they can do whatever they want with the tracking and 3rd party stuff in general.

Seriously this native apps world is so backwards compared to the web...

I'll take youtube as an example, on the mobile web app you can block most ads and you don't get the latest stupid features youtube is trying to push for some reason. Sometimes I'm brought back to the native app through a link and I'm shocked. The only reason I keep it is Chromecast support.


Depending on your feeling towards the ethics of it:

YouTube Vanced (3rd party YouTube app) with its integrated sponsorblock actually makes the app pleasant to use, it also unlocks some of the premium only features like background play.

No root required, although you're buggered if you run iOS presumably


Nice app, but I had to uninstall it after a week due to frankly ludicrous battery usage. My phone (pixel 3) battery typically lasts for 2-3 days between full charges, but with YouTube Vanced installed I was running out of battery by 8pm. I want to like this app, but the battery drain was insane.


Is using ubo/sponsorblock unethical? I have been blocking ads for so long I cannot bear to see ads in any shape or form. Our attention is abused.


It depends on your personality but working from home allows us to be more connected with our mind and body (or connect them more).

I'm not a morning person but I try to find the time for a morning walk and get fresh air.

I take long lunch break to do sports or hike, this is my favorite time of the day for physical activities.

Don't be too comfortable sitting in front of the computer, try standing up or kneeling down. Go take a walk or do some exercise if you feel like it.

I'm amazed at how my brain switches on when I'm taking a break with a little sporty walk.

It's yours to find out what suits you the best.


Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: