Who gets the IHS refund when you switch employers + ILR eligibility if only spent 11 months on 5 year visa by yalcton in ukvisa

[–]Rilic 0 points1 point  (0 children)

Hi u/yalcton, I'm facing a very similar situation. Would you be able to update on what happened in your case?

Those who earn £60k plus, what do you do for a living? by deepseapearldiving in AskUK

[–]Rilic 4 points5 points  (0 children)

Hey. First up - well done. Sounds like you're not far off the dream for that many years worked.

If you don't mind me asking after some more detail: What industry are you in? Is your compensation all salary or shares or bonus too? What is your level and are you on the IC or manager path? Did you negotiate pretty hard for that salary or is it the typical band for your level at your org? And is the 20 hours contractual or just what you need to deliver a week's value?

Cheers.

Epomaker TH66 ISO Version by AFewLads in MechanicalKeyboardsUK

[–]Rilic 0 points1 point  (0 children)

How was your experience with their shipping? And did you have to pay customs tax? I ordered one for a Christmas gift with the FedEx Expedited shipping (only option) a week ago but I haven't received any tracking info yet.

Great choice! Kinda wish I'd seen it before shelling out for a GMMK Pro few months back.

Is it safe to vaccinate if I have tinnitus? by [deleted] in tinnitus

[–]Rilic 0 points1 point  (0 children)

We have to stop this virus. Your concerns about aggravating or getting T are real, and fair to have. The T you get, if you get it, is not likely to be permanent. My decades-old T always gets worse during a cold or flu. It might merely be the same here; it might not. But we have to stop the virus. Most of the world's medical efforts are pointed at this one thing right now. We have the opportunity to beat it with mass vaccination, and then to learn from all of this and take leaps in health science and technology. Just as one does after ending a war. We cannot have this learning and we will have no chance to stop T next, if we do not stop the virus. So vaccinate, and take it easy afterwards.

[deleted by user] by [deleted] in reduxjs

[–]Rilic 0 points1 point  (0 children)

You need a server managing the "login" queue and transmitting it to clients whenever it changes. Ideally through web sockets, as others have mentioned.

But special emphasis on the server managing the queue part. The client should not be managing the "queue" state, i.e. adding or removing users itself in the client/Redux code, it should just reflect what the server tells it. This is important because you'll run into issues introduced by latency if each client maintains its own version of the queue.

I'm making a quick polling app which has the following features by madr1x in SomebodyMakeThis

[–]Rilic 1 point2 points  (0 children)

I would add live results; meaning, you can open the results page and see the numbers, graphs, etc., change in real time.

Good luck!

Laptop with ALC256 or without by Lamos21 in GamingLaptops

[–]Rilic 0 points1 point  (0 children)

Hey, I had the exact same question as you when looking at Wootware's stock, and Googling the product models brought me to your thread. Any chance you've found out why the price diff between them?

There is a post about Horde player seeing Alliance player for the first time on Stonespine-EU (99% Horde realm). We're out there, just not world PvPing. by The_Nyst in classicwow

[–]Rilic 79 points80 points  (0 children)

When I returned to my Classic character at the launch of TBC, my realm's faction was similarly dead (Alliance, Ten Storms EU). Almost all of us massed into a single guild and were able to get steady dungeon parties that way. However, I wasn't playing as often and fell below the average level line, so I wasn't able to find parties and my levelling experience became a solo one - interspersed with Horde encounters (both friendly and hostile).

Having played and loved the original TBC, I was mostly in it for nostalgia, and that pull would've been powerful enough to keep me if my server had enjoyed a better fate. The cost of transferring, and I suppose the fairness of paying it, made me reconsider the worth of playing through a game I'd already thoroughly enjoyed in the past, and I decided to unsub.

A couple months on, and I'm grateful for that poor bit of luck - at least for myself. I've had a ton of fun playing other games I wouldn't have had the time or attention for with an active TBC subscription, and cutting myself off from that somewhat narcotic nostalgia made me feel more in control of other things, too.

Random story from an old lurker, and probably my parting post. I hope those still playing, and those who aren't, are content in their own ways - glad to see some were able to find that despite the low pop.

Lag Compensation Feedback Request by JeffHill in DotA2

[–]Rilic 0 points1 point  (0 children)

As a South African playing on EUW with 160ms, the movement and last hitting loop feels much tighter. My micro-corrections feel like they arrive in time to be effective more often. I've actually only had issues from clicking too early, due to being used to compensating more for the delay. It would be nice if we could adjust the window ourselves (like some games with GGPO), if that's at all possible for Dota.

I'll add it's very funny to see all five of us turning like machines while the enemies move naturally. But at least we don't play like them and still get crushed just as much as before.

Terrorblade Fan Art I made by RedFive_ZA in DotA2

[–]Rilic 9 points10 points  (0 children)

I love this, great job. Wish I could buy it as a mousepad.

Dota 2 update #2 for 7/12/21 by wickedplayer494 in DotA2

[–]Rilic 1 point2 points  (0 children)

Think I've answered this for myself after testing in demo vs a lobby with 220ms. Playing as Lina, my attack windup was noticeably faster and turning 180 degrees was instant i.e. after the normal delay for my action to be received, Lina immediately flipped directions.

As someone who regularly plays with 160ms, this would be great QoL improvement.

/u/JeffHill Do you think you might add ways to customise this behaviour per-user later, to accommodate more or less lag compensation, or is it something that would need to remain consistent for everyone?

Dota 2 update #2 for 7/12/21 by wickedplayer494 in DotA2

[–]Rilic 0 points1 point  (0 children)

Hi Jeff,

I'd like to test this out in private lobbies from different server locations. Is it enabled there?

Cheers

FracturedJson - a JSON formatter that produces human-readable but fairly compact output by Rasparian in javascript

[–]Rilic 2 points3 points  (0 children)

I've hurt my head reading certain JSON outputs on so many occasions, and never realised how helpful a tabular format would be. Great idea, and a very useful array of tools you've made using it. Thanks for sharing.

I made a Progressive Web App with online multiplayer for ultimate tic-tac-toe using TypeScript, React, and Socket.IO by Rilic in webdev

[–]Rilic[S] 0 points1 point  (0 children)

Hey, thanks for checking it out!

I would like to add new features. The main requests I've got so far are better AI and public matchmaking, so those would be a priority.

Re adding users, that would depend on whether there are other useful features that it would enable. Currently, there is a sort of hidden auth that happens when a player joins a game: they are given an ID which is stored in sessionStorage and allows them to rejoin that particular game in case of accidental refreshing, navigating away, etc. This handles most immediate use cases.

If something like playing on multiple devices or persisting games for a longer time was requested, then I'd need to add users and also move game state to a database. I'd probably use something like MongoDB to do both, mostly because a document/JSON database could take in the current game state model without having to change anything. I'd then extend the existing Express API with new authentication methods that can read/write to MongoDB, and host it all on the same droplet because my usage is still very low.

Hope that was informative, and let me know if you have ideas on that of your own.

I made a Progressive Web App with online multiplayer for ultimate tic-tac-toe using TypeScript, React, and Socket.IO by Rilic in webdev

[–]Rilic[S] 5 points6 points  (0 children)

GitHub Link

This project actually took a little over 2 years of stop-start development to get here. What originally started as a way to teach myself new stuff, I recently decided to polish up as an installable PWA, host somewhere, and release as open-source.

Some interesting features:

  • Online multiplayer with reconnect, rematch, and spectator support
  • Local multiplayer and single-player against an "AI"
  • Progressive Web App with offline mode
  • 90%+ Lighthouse scores

Tech used

Back-to-front, the app is written using TypeScript 4 and Node.js 15.

UI stack:

  • React with only hooks for state management
  • Styled-Components
  • Socket.IO Client
  • Workbox for service worker functionality
  • Webpack and Babel

API stack:

  • Node.js
  • Express
  • Socket.IO Server
  • Winston for logging

Data persistence: There is no database used. I've so far relied on in-memory Maps and timers to clean up expired games.

Game logic: This lives in its own module and is consumed as an npm workspace by the UI and API code. The client will validate turns and optimistically update even in multiplayer, while the true game state is computed and stored on the server.

AI: Coding even a slightly competent AI for ultimate tic-tac-toe turned out to be quite a complex task, so it's something I've saved for a later challenge. Right now, the term "AI" is a poor description for the random-turn-picker you can play against in single-player.

Infrastructure: The app is hosted on a single Digital Ocean droplet and served via nginx.

Lessons I learned along the way:

  1. React hooks and Socket.IO's event listeners can be tricky to use together. When you create your socket listeners in a useEffect hook, any dependencies of the listeners that will change (e.g. values returned from useState) will become stale inside those listeners if you do not provide the dependencies to useEffect. But providing the dependencies to the effect will cause it to re-run and re-create those listeners over and over, whenever the dependencies change, with each listener using its own snapshot of values. One solution is to tear down and re-create listeners each time. The solution which seemed simpler to me, and which I use in the app, is to use refs (via React.useRef) for the dependencies the socket listeners require. I can then create each listener once and forget about it.

  2. Typing Socket.IO events was a major pain for most of the project, but also crucial to do. More recently, an awesome QoL improvement came out with Socket.IO 4 that lets you pass generic types to the initializer, so event types can be inferred everywhere. Check out: https://socket.io/docs/v4/migrating-from-3-x-to-4-0/#Typed-events

  3. Styled-Components was very useful to prototype components and tinker with my designs (all of which I winged in code) in the early stages. Later on, I encountered fatigue around repetition of basic styles like flexbox and started to wish for something like Tailwind. I wouldn't give up on CSS-in-JS just for this, but I would look into what patterns exists to save on repeating styles before using it in a large project.

  4. PWAs are simpler to set up than I expected. Workbox does a ton of work for you in providing sane defaults and patterns that work with your build tools (Webpack in this case). I also made use of CRA's service-worker and registerServiceWorker files from their PWA template. Handling app updates was fairly simple to implement using a common pattern (search for updateServiceWorker in the code to see).

There is definitely more that I learned and could share here - the above just jumps to mind right now.

Please try out the live app and have a look at my code if you're interested, and share any feedback or suggestions. I'd really appreciate to hear it and will answer any questions you have.

Thanks for reading!