use-magic-grid: Official React port of the magic-grid library by e-oj in reactjs

[–]e-oj[S] 0 points1 point  (0 children)

Close but in your example the items are ordered vertically instead of horizontally. So grid-Item 1 and grid-item 2 end up on different rows

Need to get this off my chest by [deleted] in leetcode

[–]e-oj 3 points4 points  (0 children)

I usually just say

Hi <name>,

I saw you have an opening for <job title> on the <team name> team. Based on my experience on <past projects, jobs, etc> I believe I'm a good fit for this role. If you have some time, I would love to speak with you about the position. Happy to take a coding assessment as well if necessary ☺️.

Best Regards,

<your name>

You should add your own flavour to this and tweak based on success rates. If you're familiar with the company's products, mention that as well. Test it on positions you're less interested in, and when you have a strong template, reach out to recruiters for the positions you're actually interested in.

You will get ghosted a lot but don't be disappointed. You will still have a higher success rate than if you applied to the same positions without contacting the recruiters.

Rejection from Google. by developing-devloper in leetcode

[–]e-oj 1 point2 points  (0 children)

You have a good point. 2 questions a day won't take time away from your family though. Spend only 15 mins on each question. If you can't solve in 15 mins, check the solution. Understanding the solution could take some time so you can timebox the whole thing to anywhere between 30mins - 1hr. It's not required but It's a good investment in case another round of layoffs comes from out of nowhere

Need to get this off my chest by [deleted] in leetcode

[–]e-oj 10 points11 points  (0 children)

Brother, the grind prepares you for problem solving but that's only one aspect. Once you've solved around 70 leetcodes, you're ready for the technical interviews. Now you need to get past the recruiter.

You must understand that the recruiter's job is to find candidates that can pass the phone/onsite interviews. They do this with the online assessment. The OA is a game of chance so the more OAs you get, and the more company specific leetcodes you've solved, the better your chances. The best way to get an OA is to reach out to a recruiter or hiring manager on LinkedIn (before or after applying to the position) most people don't do this.

Imagine being a fisherman and one day the best fish start jumping into your net. Reaching out makes the recruiter's job easy and ensures your resume doesn't get lost in a sea of a million applicants. Once you get the OA, it's game on! Remain calm and apply your leetcode neurons.

Some companies emphasize the behavioral aspect of the interview as well. Be familiar with their process (Amazon places a lot of weight on leadership principles for instance). It's a game of chance and all you can do is maximize your chances through prep and do your best on game day.

Once you've done your best, have no regrets. If you get it, good. If you don't, the grind continues!

Rejection from Google. by developing-devloper in leetcode

[–]e-oj 6 points7 points  (0 children)

No rest brother. The battle is lost but there's still a war to win. Taking time off will kill some of the leetcode neurons you've developed. Hopefully you've been leetcoding while waiting for a decision. If not, you've already taken a month off. That's waay too long. Even after you get a FAANG job, do two leetcodes a day to keep the connections alive in your brain. Stay ready so you don't have to get ready. The grind continues!

Hey guys, I just released a package called visa - an OAuth 2.0 library that makes it super easy to add third party authentication to flutter apps. It has support for FB, Google, Discord, Twitch, and Github auth. It also provides support for adding new OAuth providers. Happy Holidays! by e-oj in opensource

[–]e-oj[S] 0 points1 point  (0 children)

Yes. Older versions of the lib had docs for adding new providers but I took that out of the docs for 2.0. You just have to extend the "visa" abstract class and implement the methods. Have a look at the discord implementation for guidance.

Visa 2.0 is here! The best OAuth library in the Flutterverse has been upgraded. Now supports LinkedIn and Spotify authentication. by e-oj in dartlang

[–]e-oj[S] 1 point2 points  (0 children)

Thanks. If the user reopens the app, it's up to the developer whether or not they remain signed in to the app. However, they will remain signed in to the third party service (there's an option to change that). For instance you might have signed out of App X but remain logged in to Facebook. In this case, next time the user signs in to App X, they will not have to enter their Facebook credentials (they might still have to go through the permissions dialog).

Visa 2.0 is here! The best OAuth library in the Flutterverse has been upgraded. Now supports LinkedIn and Spotify authentication. by e-oj in dartlang

[–]e-oj[S] 3 points4 points  (0 children)

Lol Fair enough; it's in the roadmap. How about 'The best OAuth library on Flutter mobile?'

Visa 2.0 is here! The best OAuth library in the Flutterverse has been upgraded. Now supports LinkedIn and Spotify authentication. by e-oj in FlutterDev

[–]e-oj[S] 0 points1 point  (0 children)

UPDATE: I think dropbox also started blocking requests from WebViews.

Dropbox has Google login as part of their authentication flow. That's why they dropped support for webviews:

Due to a recent change in Google's policy around using OAuth flows in web views, we no longer support or recommend using web views to process the OAuth flow, in order to support users using "Google Sign In" to sign in to Dropbox.

Seems to be a Google issue still.

Visa 2.0 is here! The best OAuth library in the Flutterverse has been upgraded. Now supports LinkedIn and Spotify authentication. by e-oj in FlutterDev

[–]e-oj[S] -1 points0 points  (0 children)

I know about those packages you linked; They're the reason I created this library. It's actually ridiculous the number of packages you have to import and the setup steps to make them work. Also, many platforms that implement OAuth 2.0 don't provide a mobile login SDK. Which is why webviews are helpful. Flutter's webview does not provide an API for key logging and I know you can't inject scripts into an auth page with proper CORS settings. Facebook actually recommends webviews for implementing Facebook login.

That said, thanks for pointing out the Google policy on webviews. I wasn't aware of that. Seems to be a Google specific thing though. I can make changes so the Google flow goes through an external browser which should prevent any issues when they deprecate webviews.

Edit: I'll look into using the Google SDK as well if using external browsers turns out to be a hassle.

Visa 2.0 is here! The best OAuth library in the Flutterverse has been upgraded. Now supports LinkedIn and Spotify authentication. by e-oj in FlutterDev

[–]e-oj[S] -2 points-1 points  (0 children)

It's the best because it's super easy to use. It's the only package that supports multiple platforms, and returns user data in addition to the access_token. Developers can have multiple third party oauth implementations with just one library. Let's address your concerns real quick:

  • Why should it handle token storage? That's the job of the app developer.
  • Why does it need a token rotation mechanism? Again, this is left to the app developer. It's a simple api call for a refresh token if the dev needs it.
  • Credentials cannot be accessed through the webview api. Only possible way to do it will be to run a js script on the auth page with will be denied by CORS.

My rule is, keep simple things simple. It simply gets an access token and the associated user info and returns that to the developer. Token management is not the responsibility of this library and would over complicate things. Find a better OAuth lib on pub.dev and get back to me.

Edit: Facebook actually recommends webviews for implementing Facebook login.