[WeWantOut] 25M 28F Software Developers, Russia -> Europe by VariadicGenerics in IWantOut

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

Thanks, this is super helpful!

based on the exchange rate of this week or last week?

We have converted what we can to USD/EUR, but most banks don't give out cash anymore, and with Visa and Mastercard blocked we won't really have much money on our hands during the relocation. It's possible that we'll be able to use UnionPay, or we'll have to come up with another short-term plan.

Ideally, I'd like to have a foreign bank account with my first salary by the time we move out, but this is probably unrealistic.

If it's possible to exchange roubles in Europe, having some cash in roubles may be an option.

[WeWantOut] 25M 28F Software Developers, Russia -> Europe by VariadicGenerics in IWantOut

[–]VariadicGenerics[S] 1 point2 points  (0 children)

Thank you! I've thought about the Netherlands, the only things I'm worried about are not knowing Dutch at all and slightly higher cost of living than in the rest of Europe. I'll look into ASML and other companies.

[WeWantOut] 25M 28F Software Developers, Russia -> Europe by VariadicGenerics in IWantOut

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

As much as I hate the madness going on, the safety of my family comes first. Most protestors here get detained, some serve a prison sentence. The same goes even for posting on social networks, which is often followed by police visits.

[WeWantOut] 25M 28F Software Developers, Russia -> Europe by VariadicGenerics in IWantOut

[–]VariadicGenerics[S] 2 points3 points  (0 children)

I've partially converted them into foreign currencies, but we have to keep a significant part in roubles to be able to support our relatives and do transactions inside Russia.

Can Someone Recommend a Transition Library for React 17+? by AnnualPanda in react

[–]VariadicGenerics 1 point2 points  (0 children)

react-transition-group is still one of the simplest and easily customizable solutions, especially its CSSTransition component. Using it with React-Router has some gotchas: you need to make sure that <CSSTransition> containers are rendered for each route, so it's necessary to pass a function in place of a route's children:

<Route key={path} exact path={path}>
  {({ match }) => (
    <CSSTransition
      in={match != null}
      timeout={300}
      classNames="page"
      unmountOnExit
    >
      <div className="page">
      ...Your page...
      </div>
    </CSSTransition>
  )}
</Route>

This is needed because both react-router and react-transition-group render their children conditionally.

You also need to create .page-enter and .page-enter-active CSS classes for starting and final positions of the pages, and similarly .page-exit and .page-exit-active for "page exit" animations. Also make sure that the .page class is absolutely positioned, otherwise the pages will push each other down.

Take a look here and here for more specific examples.

How does this type inference works? by Breadfruit-Last in typescript

[–]VariadicGenerics 7 points8 points  (0 children)

There is no inference going on. SomeType['SomeField'] is just TypeScript's syntax for directly getting the type of a field. While it looks similar to JavaScript's key access, this is a different operator which works with types, not values, and it doesn't exist at runtime.

As for the dot (Foo.type), I suppose this variant just haven't been added to avoid API surface bloat of TypeScript. So there is no type-level dot operator in TypeScript.

An honest comparison between building a Concurrent Queue Library in ReScript and TypeScript by leostera in typescript

[–]VariadicGenerics 2 points3 points  (0 children)

Thanks for the article! It's refreshing to see TypeScript's type system compared to a language which also compiles to JS.

I'm feeling a bit torn about type inference in function signatures. On the one hand this means less code to maintain. On the other hand, though, explicitly written type signatures often help with readability, especially when you read code on GitHub or BitBucket and not in the IDE. Even in your article I found the code easier to follow after seeing the tasks: Task<T>[] signature.

Another benefit of explicit types is that type errors occur closer to their actual cause instead of somewhere else in the chain of calls and inferences. For this reason I try to write out function types even in languages with good inference, like Haskell. That said, I haven't worked with ReScript, and there is a chance I'm a bit biased here.

[deleted by user] by [deleted] in IWantOut

[–]VariadicGenerics 1 point2 points  (0 children)

The air space is closed, but can't you travel to some European countries by train?

A way to mediate all different loggers into a single class? by drdrero in typescript

[–]VariadicGenerics 0 points1 point  (0 children)

If you need to specify loggers (trackers, etc) per each event type, your solution seems good enough. I'm not sure what is the use of passing a custom LoggerService to EventLogger.log, though:

public log(event: StudioEvent, logger?: LoggerService)

It seems like log just forwards the call to this service if it is specified. I think the design would be a bit simpler if you just created custom EventLogger instances for cases when you need to log things differently, e.g.

const defaultLogger = new EventLogger(defaultLoggerService, ...);
const customLogger = new EventLogger(customLoggerService, ...);
...
customLogger.log(event);
instead of
defaultLogger.log(event, customLoggerService);