832 points | by klimeryk2 个月前
if (looping.mode === "off") {
// If you waited for a day, you deserve to see this workaround...
// Since there is no way to not loop a gif using gifwrap,
// let's just put a reeeeaaaaallly long delay after the last frame.
return 8640000;
}
Sorry to hear that. No recruiting process is perfect. They often get it wrong, as they clearly did here!
Hire.
Interviewed another Dev who made arcade sticks as a side project.
Hired.
You can't teach passion. Hire all that passionate people you can. Tech stacks are irrelevant compared to the love of building things.
I was not hired once because I didn't have React experience, despite having years of both Vue and Angular and having led teams building non-trivial apps in both. IME focusing on such a minor detail like that means either a) you're going to be so pressured to get stuff out of the door they can't handle slightly lower productivity for a month while you learn the different syntax, and/or b) the person hiring you isn't technical enough to know this is a minor detail.
Either way, better off somewhere else :)
I had a great experience at that company while I was in college, which also launched me into an exciting professional career. All of it wouldn't have happened without people like you.
There may be other factors. Hiring is complex. They could have judged tbis fairly and they may have had a better candidate. Having a project like this should probabilistically increase your chances.
[1] https://m.youtube.com/watch?v=fJ9rUzIMcZQ&pp=ygURYm9oZW1pYW4...
Only recently started using Discord, and joined various “servers”, which seem as basically just groups with chats. When I was prompted to create my own “server”, at first was hesitant thinking “whoa, I don’t want them to provision a whole server for me, that can’t be cheap”, then realized it has nothing to do with actual servers.
I want to start using it as well, but I just feel like an old person, not really getting it
;)
If so, why do we need to slap a corporate label onto them? Can’t you just describe them as such?
I’m not trying to be cynical or rude, but this just feels wrong to me.
The job market is rough. I have no doubt you were considered, and they were interested, but everyone is giving their all right now. Someone likely submitted something even cooler, somehow.
yeah by recycling their project from a previous interview and adding more to it
I just don't engage in that kind of assessment anymore, the job market isn’t thaaaat tough to need to compromise
or, put another way, jumping through that hoop will not solve your interview progress as its just far too subjective. other hoops are just as fine
I’m finding it absolutely brutal. I’ve never encountered anything like it. I could be doing something wrong, though.
Get a third party recruiter
It was brutal for me in that tier last year and before, but now its ridiculous
At the same time, RSU-land is interested in me, and I have active processes with Apple and Amazon. Yet, not to sound like I'm my own worst enemy, I don't know that I have what it takes to get in at those companies. I know I've got solid skills and valuable experience, but at the end of the day... I'm up against a ton of talented people who know how to play the game, you know?
So strange to have huge companies reach out to me (I didn't even apply) and yet tiny places in my city or abroad and remote won't even give me a moment to pitch myself to them.
When they give feedback, they love getting on their soapbox and critiquing others as if they were Olympic judges or something.
I’ve had to hold myself back from saying bro we wouldn’t hire you yourself if this criteria actually had to be met.
Some hiring managers require all this elaborate prep work and it’s such bullshit, imo it’s a total cop out to have people do so much work as part of the interview process.
It’s the lazy way of evaluating someone versus thoughtfully putting together a good hiring process and conducting effective interviews.
Rather than welcome people to the team to learn from them and grow the team, they criticize and reject people like crazy. It’s very reactive rather than proactive behaviour, and it’s a bad sign to have it at a company.
[1]: https://giphy.medium.com/the-secret-giphy-slack-commands-9cb...
I lied, in fact I just used it to create a couple Slack emojis.
That's what kept me going while adding more features :D Just the joy of creating something so useless, but still capable of bringing smile to my (and hopefully your too!) faces. Glad you love it!
Also, glasses can only be black? We demand a color palette for glass colour.
EDIT: wait, I managed to make the glasses come from below
blob:https://emoji.build/50c07035-efb9-4341-9205-30adfd6b088e
I retract my indignation on the one half of my requests, but transfer it doubly so for the request of a colour palette
All thanks to some clever (mis)use of SVG and canvas, see https://github.com/klimeryk/dealwithit/commit/d8f280b5f2e4bd.... Enjoy!
Fortunately, these days if you wanted to make it more obvious you could hook up a regular Share button to navigator.share() API and pass it your image blob.
You can choose different styles of glasses. But, yeah, they're all black-ish. Definitely open to different colors/styles! I've created a new issue with some possible solutions and will look into it: https://github.com/klimeryk/dealwithit/issues/33 (but PRs are welcome too!)
Graph successfully started running.
Uncaught (in promise) Error: Unsupported MIME type: application/xml
at Et.a (gif.worker-WYu6DU4i.js:23:56331)
at Et.zt (gif.worker-WYu6DU4i.js:23:78271)
This might be caused by my workplace enforcing the Okta chrome plugin :(Otherwise incredible. The customization options are much appreciated.
Source: I've made way too many GIFs for Telegram.
Oh, and it would be cool to have an option for the meme text to go under the image too, and to appear in the final frame of motion for the glasses. For now, I can DEAL WITH IT!
Good suggestion - implemented in https://github.com/klimeryk/dealwithit/commit/12c2254e4a1e5f...
> Oh, and it would be cool to have an option for the meme text to go under the image too, and to appear in the final frame of motion for the glasses
Yup, on my radar! Upvote on GitHub: https://github.com/klimeryk/dealwithit/issues/31
If *after* generating a gif you change the gif size (bigger in my case) the new gif has the sunglasses appear in the same place. But if I change the size first and then generate everything work fine.
Hope I explained it right
This is great for mastodon replies so PLEASE make this work.
Hang tight!
> There are only two hard things in Computer Science: cache invalidation and naming things.
What I miss feature-wise from my variant is text. IIRC, I had two lines of text (top and bottom, rendered in capital Impact of course) that were configurable on when they appear and for how long.
The main use of the text was to tease friends supporting rival sports teams after lost games. E.g. "STILL THE BEST" "DEAL WITH IT".
Minor UX notes: - clicking the header doesn't navigate back to the "home" screen - singular page history (so the back button doesn't take you back to the previous page state)
Combined it made it not intuitive for me how to "get rid" of the selection I'd created (I eventually figured it out, but the previous two points were what I intuitively tried first)
Could you describe in more detail this? I'm not sure I agree that state changes should be pushed to browser history. In my experience this usually leads to confusing user experience. But that might be also just years of conditioning and I'm missing some best practices. So happy to learn more.
Just as something to be a quick "oops, didn't want to use that image, I want to go back to how the site is when I first visited it", and essentially wipe the state.
The history stuff is secondary, since that was my second instinct after trying to find and hit a "home" button, just from my personal UX perspective.
* Found it, there is a small indicator in bottom right of glasses that allows dragging out to resize. Thanks all!
Desktop Safari 18.0.1 (18619.1.26.111.11, 18619)
I love Apple but Safari is the new IE, it’s more and more common for feature to take x then fixes for Safari take x^2, it is a joke of a browser.
Unhandled Promise Rejection: Error: StartGraph failed: $Service "kGpuService", required by node mediapipe_tasks_vision_face_detector_facedetectorgraph__mediapipe_tasks_components_processors_imagepreprocessinggraph__ImageCloneCalc...
Warnings prior to the error: [Warning] I0000 00:00:1729008143.963000 1 gl_context_webgl.cc:81] Couldn't create webGL 2 context. (vision_wasm_internal.js, line 1087)
[Warning] W0000 00:00:1729008143.966000 1 gl_context_webgl.cc:106] Creating a context with WebGL 2 failed: UNKNOWN: emscripten_webgl_create_context() returned error 0 (vision_wasm_internal.js, line 1087)
[Warning] === Source Location Trace: === (vision_wasm_internal.js, line 1087)
[Warning] third_party/mediapipe/gpu/gl_context_webgl.cc:82 (vision_wasm_internal.js, line 1087)
[Warning] W0000 00:00:1729008143.967000 1 gl_context_webgl.cc:107] Fall back on WebGL 1. (vision_wasm_internal.js, line 1087)
[Warning] I0000 00:00:1729008143.968000 1 gl_context_webgl.cc:81] Couldn't create webGL 1 context. (vision_wasm_internal.js, line 1087)
[Warning] W0000 00:00:1729008143.968000 1 gl_context.cc:1000] OpenGL error checking is disabled (vision_wasm_internal.js, line 1087)
[Warning] E0000 00:00:1729008143.968000 1 gl_graph_runner_internal.cc:252] StartGraph failed: INTERNAL: Service "kGpuService", required by node mediapipe_tasks_vision_face_detector_facedetectorgraph__mediapipe_tasks_components_processors_imagepreprocessinggraph__ImageCloneCalculator, was not provided and cannot be created: emscripten_webgl_create_context() returned error 0; StartRun failed (vision_wasm_internal.js, line 1087)
[Warning] === Source Location Trace: === (vision_wasm_internal.js, line 1087)
[Warning] third_party/mediapipe/framework/calculator_graph.cc:651 (vision_wasm_internal.js, line 1087)
[Warning] third_party/mediapipe/framework/calculator_graph.cc:682 (vision_wasm_internal.js, line 1087)
[Warning] third_party/mediapipe/framework/calculator_graph.cc:551 (vision_wasm_internal.js, line 1087)
[Warning] research/drishti/app/pursuit/wasm/graph_utils.cc:87 (vision_wasm_internal.js, line 1087)
Hope that helps!Edit: tested on M2 and Safari 18.0 and I cannot reproduce it. Updating now to 15.0.1 to see if that makes a difference.
Unhandled Promise Rejection: Error: Unsupported MIME type: application/xml
On this line:
Q = await getGlassesImages(p, D, O);
This is a 2020 M1, Safari 17.6.
(bad in a taste way, not in the engineering way)
The company you were applying to sure missed out!
https://jammaloo.com/DealWithIt/
It uses face-api.js to find the face, and then move the sunglasses over it. It's about a 5 meg model, so it's pretty slow to load. You can customize with a URL, or drag and drop an image on. Resizing the browser also moves the glasses around.
Very happy to see someone take the idea way way way further!
> It uses face-api.js to find the face
Yeah, I'm using Google AI's Face Detector [1]. There's Tensorflow's Face Landmarks Detection [2] that looked most promising and accurate. But it had two bugs [3][4] that are blockers. The first one got fixed recently, but the other one is still pending.
[1] https://ai.google.dev/edge/mediapipe/solutions/vision/face_d...
[2] https://github.com/tensorflow/tfjs-models/tree/master/face-l...
Just noticed what company you did leave and I have even more respect for you.
Someone get this guy a job please.