This is 100% the kind of thing I was hoping for when daydreaming "what will the internet be like 20 years from now" growing up. Cool design, hilariously overpowered backend to do something basic (but do it so well), and 0 of the corporate feeling or ad apocalypse. Awesome stuff!
klimeryk 63 days ago [-]
Hahah, so true! One clarification, though: while I'm sure the backend is overpowered (Cloudflare Pages, easily handling the Hug of Death from HN), but in this case it's only serving static resources. All the hard work is done by the hilariously overpowered devices we carry in our pockets or use for everything but serious work ;)
zamadatix 63 days ago [-]
Oh 100%, the hosting is more than fitting. I had meant to refer to the app's non-UI code (machine learning to place meme glasses)! Apologies for the lack of clarity.
klimeryk 63 days ago [-]
Ah, gotcha! Hahah, yeah, I'm sure this is exactly the use case folks were thinking of when dreaming of AI applications decades ago...
zamadatix 63 days ago [-]
Right behind "Badger Badger Badger in photorealistic 3D" ;)
dalmo3 63 days ago [-]
Wait, where is it? Stop teasing us!
kjaer 63 days ago [-]
This made me smile :)
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;
}
p0w3n3d 63 days ago [-]
Nice, this reminds me that I made myself some time ago an avatar for a forum, and it has these crazy eyes standing still. Unless a few minutes passed, when they rolled. Only one person noticed it.
latexr 63 days ago [-]
I once grabbed the generic profile picture (a silhouette) for an internal bug tracker, tilted it slightly, then set it as my avatar. One person commented something looked off, but they couldn’t put their finger on what.
klimeryk 63 days ago [-]
Love that! Not many folks will notice, but those that do, it will make their day (or make their skin crawl). Speaking of which, there's two or three Easter Eggs in this app as well :)
zigman1 63 days ago [-]
Thats hilarious! :D
klimeryk 63 days ago [-]
Hahaha, achievement unlocked! Congratulations!
burke 63 days ago [-]
only gotta wait 2.4 hours though, it's missing a zero :)
> Unfortunately, they were not impressed and ultimately did not offer me the job :(
Sorry to hear that. No recruiting process is perfect. They often get it wrong, as they clearly did here!
com2kid 63 days ago [-]
I interviewed a developer once who was super junior on paper but had a side project of a fully featured desktop anime episode to watch/watched tracker with lots of library feature features.
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.
pc86 63 days ago [-]
Also a great filter from the other side.
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 :)
S201 63 days ago [-]
I actually quite like it when this happens from the candidate side of the table. I don't want to work anywhere that is so short term focused on "you need to have X years of experience with this exact language/framework or we won't even consider you." It saves us both a lot of time by realizing our values are clearly not aligned early on in the process.
bestthrowaway 61 days ago [-]
I made something similar but for adult videos. I personally think it's technically impressive but it's obviously not something I'd be willing to put my name to.
primitivesuave 63 days ago [-]
I landed my first software job when I was 18 years old. I didn't have a degree or any professional experience in their tech stack, and the recruiter told me later that I was hired because of "my passion for Legos and foreign languages" (I was learning Swahili at the time, and one of my interviewers happened to be a former volunteer in the Peace Corps, who conducted most of the interview in Swahili).
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.
Aeolun 63 days ago [-]
The only thing I can imagine is that they were up against someone making a partyparrot generator.
Hahaha, genuinely laughed out loud, thank you! (also, big fan of partyparrot, of course)
teaearlgraycold 63 days ago [-]
They realized OP would put them all to shame.
klimeryk 63 days ago [-]
Thank you! Yeah, I totally understand and not taking it against them. It's impossible to always get the right impression and fit for the candidate (even if it was based on a few interviews and trial, like here). So I figured I'd make the best of the situation and share the project with others! Hoping to make some new connections this way, and maybe find an even better opportunity!
ndndjdjdn 63 days ago [-]
Sorry to be the devil's advocate (just call me Beelzebub ... sung like Queen [1])
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.
Thank you Slack? For the confusing use of "emoji" instead "animated GIF" or sticker.
radicality 63 days ago [-]
I’m similarly annoyed by Discord’s term “server”.
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.
SlackingOff123 63 days ago [-]
In the Discord API, "servers" are called "guilds" which I assume it was the original name for them when they started developing the platform. Don't know why they decided to change it.
jampa 63 days ago [-]
In the dark ages of the internet, you had to host a server in things like Ventrilo[1], which was the thing Discord tried and succeeded at disrupting. Since now you can create a "server" for talking with friends (and friends of friends) without being technical.
Suspect, pure speculation, when they pivoted from being focused on gamers, switching from guild to server helped.
wholinator2 63 days ago [-]
Or, even more broad, someone just thought it might and implemented it, irrespective of whether it actually changed anything (discernible from background growth) or not
zigman1 63 days ago [-]
Did you have any success with the servers you joined?
I want to start using it as well, but I just feel like an old person, not really getting it
therealdrag0 63 days ago [-]
Even as a slack user I’m confused. Slack emoji should still be usable in low resolutions and preferably have transparent background. None of the examples seem like emoji.
below43 63 days ago [-]
Thank you. As a non-Slack user, this explains a lot. I was somewhat disappointed that this didn't generate actual emojis.
radicality 63 days ago [-]
Would that even make sense, to “generate emojis” ? They are defined by the Unicode emoji specs like here: https://unicode.org/reports/tr51/
I guess it would need to generate all possible emojis given by the spec? Supposing it did generate all emojis, is there even a way to “install” it for example iOS ?
asdfman123 63 days ago [-]
I'm a Google employee. After looking at this demo I can tell you're spiritually a Googler in ways I can't quite articulate.
moffkalast 63 days ago [-]
Well if people start using it and like it a lot, only for him to then suddenly delete the whole thing without warning... then he'd truly be a Googler.
;)
hersko 63 days ago [-]
Ooof, savage
asdfman123 63 days ago [-]
This feels more like an internal tool that will be used forever
j_bum 63 days ago [-]
I’m sorry, but this comment reads as “culty” to me. Google has 180,000+ employees, of which tens of thousands must be engineers. What does “Googler” mean. Someone who is passionate, hacky, and creative?
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.
asdfman123 63 days ago [-]
Every company has a corporate culture, including Google, and my comment has a heavy dose of self deprecation in it.
bethemoly 63 days ago [-]
Interesting take.
steve_adams_86 63 days ago [-]
Thanks for sharing this. I love tiny projects like this, especially if they’re over engineered.
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.
yieldcrv 63 days ago [-]
> 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
steve_adams_86 63 days ago [-]
> the job market isn’t thaaaat tough to need to compromise
I’m finding it absolutely brutal. I’ve never encountered anything like it. I could be doing something wrong, though.
yieldcrv 63 days ago [-]
If you leave RSU-land there are tons of midsize companies, fully remote, filling headcount pretty quickly
Get a third party recruiter
It was brutal for me in that tier last year and before, but now its ridiculous
steve_adams_86 63 days ago [-]
I feel like I'm hitting those midsize companies, and I'd love to be at one, but my applications get passed over like crazy.
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.
klimeryk 63 days ago [-]
To clarify - I wrote this tool as my own initiative. On top of the "normal" process (that involved multiple interviews and a day paid trial). I was really excited about the opportunity and wanted to go the extra mile.
gxs 63 days ago [-]
Dude I’m often on interview panels and some of the other interviewers are insufferable.
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.
steve_adams_86 63 days ago [-]
I’ve had the same experience many times where the people I’m interviewing candidates with wouldn’t get hired under the same conditions. They tend to be early hires who have stuck around, and they’re super protective and defensive.
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.
underlines 63 days ago [-]
The company who didn't hire you will soon use your tool because they feel remorse for not hiring you, and now they have to "deal with it"
klimeryk 63 days ago [-]
Well, I'm using their tool in mine (hint is in one of the Easter Eggs... or just look at what's powering the product analytics ;)). So it's an ouroboros of open-source :D
bewuethr 63 days ago [-]
A rudimentary version of this used to be integrated into Giphy[1], but it seems to be broken now, meaning the market is wide open for this! ;)
I lied, in fact I just used it to create a couple Slack emojis.
klimeryk 63 days ago [-]
> it's useless thence I love it.
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!
TZubiri 63 days ago [-]
This is useless, I can't make the glasses come from below, in addition to coming from above.
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
I retract my indignation on the one half of my requests, but transfer it doubly so for the request of a colour palette
klimeryk 63 days ago [-]
Glasses can now be set to any color you want. Only applies to the "Classic" style, though. Unless I find the other glasses in SVG format as well.
As a nice side-effect, the glasses can now also be set as semi-transparent!
That feature was removed because half the people who want black frames were offended that the app offered options that they didn't want to use.
TZubiri 63 days ago [-]
What's interesting is that the moment that you introduce a feature that allows for sharing of the images, and you need a backend to host the images. You enter a world of pain where you inevitably will end up hosting illegal material, and it turns from a fun project to a serious project.
klimeryk 63 days ago [-]
Yeah, that's why I'm keeping everything client-side. There's no backend. This is hosted on Cloudflare Pages, everything on the backend is static.
Definitely not looking to host any generated images.
mnutt 63 days ago [-]
On Mobile Safari at least, you can press and hold the image to share. I imagine there's probably an equivalent gesture on Mobile Chrome. I spent considerable time many years ago trying to figure out how to indicate to users that they could do this. ("press and hold to share", with a progress indicator) Results were mixed.
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.
cheschire 63 days ago [-]
Those responsible for sacking the people who have just been sacked, have been sacked.
klimeryk 63 days ago [-]
> We demand a color palette for glass colour.
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!)
63 days ago [-]
jitl 63 days ago [-]
I got an error after clicking the "Deal with it" button.
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 :(
Nah I'm getting the same error on Chrome and Firefox (both on Windows). It seems a little intermittant in that I got one good generation but most of the time I just get this error.
klabb3 63 days ago [-]
Used in WhatsApp on iOS the last frame didn’t stay, it seems to stop instantly and/or loop back to too early. IIRC I used 20 frames, 250ms between frame and 2500ms for the last one. Seems to have a similar problem on Telegram.
Otherwise incredible. The customization options are much appreciated.
summermusic 63 days ago [-]
This is a known problem for Telegram at least. It cuts off the last frame regardless of that frame's duration. I work around this by adding a single identical frame for 1ms at the end of the GIF.
Source: I've made way too many GIFs for Telegram.
jihadjihad 63 days ago [-]
It's great. I wish you could paste an image URL too, that would be slick.
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!
klimeryk 63 days ago [-]
> It's great. I wish you could paste an image URL too, that would be slick.
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
klimeryk 63 days ago [-]
I immediately knew what you meant, because I ran into the bug while testing earlier today and apparently forgot to file it. So thanks for reporting - I've filed it now properly and should have it fixed soon.
Krei-se 63 days ago [-]
Hey man, awesome job and while i'm hitting that same bug: Changing to 512px does not resize the glasses for me and it's on the wrong placement.
This is great for mastodon replies so PLEASE make this work.
> There are only two hard things in Computer Science: cache invalidation and naming things.
eezing 63 days ago [-]
Great way to promote yourself. Well done!
m000 63 days ago [-]
Well done! I had built something similar, but as a cli tool. It must still be sitting on my old laptop, never took the time to spin it up as a service.
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".
teqsun 63 days ago [-]
That's fantastic stuff!
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)
klimeryk 63 days ago [-]
> 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)
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.
teqsun 63 days ago [-]
My natural instinct to return to the "default" view (as in, how the page looked the very first time before I interacted with anything) was to click the header text at the top (that says "deal with it"). Same as you click the "Hacker News" text at the top to return to the default home page view.
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.
devmor 63 days ago [-]
I adore it. I would love the ability to add frame delay (and maybe start/end position/rotation tweening?!) to each layer of glasses.
klimeryk 63 days ago [-]
I think we're thinking of the same thing here: https://github.com/klimeryk/dealwithit/issues/22 That's part of the reason I made the list of glasses draggable/sortable. Because I want to add the ability to specify which glasses should appear together and which ones should appear in a sequence.
So many features to implement, so this one did not make it for the launch, but it's definitely on the roadmap!
devmor 63 days ago [-]
Exactly what I meant! I now look forward to your future work with more excitement than most actual products.
CodeWriter23 62 days ago [-]
You have done great service to the internets
think_build 63 days ago [-]
I love over-built projects. Do not worry about the job offer, the current market is posting job offers that do not exist.
silisili 63 days ago [-]
This is actually really neat. I like the configurability. Is there an option to change glasses size that I missed? I think that's the only thing I noticed I couldn't do when playing around with it.
* Found it, there is a small indicator in bottom right of glasses that allows dragging out to resize. Thanks all!
tonymarks 63 days ago [-]
on a desktop you can click the glasses to resize them
klimeryk 63 days ago [-]
On mobile it should work too (at least when I tested on recent iPhones). The drag handle is a bit small, though. Just aim for bottom right corner of the glasses.
_puk 63 days ago [-]
Drag to resize
pelagicAustral 64 days ago [-]
I like it... faved for future fuckery. Can you add background photo rotation or shades rotation?
klimeryk 63 days ago [-]
Yup, shades rotation is on the roadmap: https://github.com/klimeryk/dealwithit/issues/30. Hope to get it done some time today/tomorrow. Most pieces are ready, just need to figure out a good UX for the rotate handle. Worst case scenario, it can be also an input field.
Background photo rotation - could you share what would be the use case? The output would be a bit weird, since it has to be square, so either it needs to be cropped (so now there needs to be crop feature ;)) or there will be blank spaces. Honest question, I might be missing some interesting use case! But hopefully, rotating the shades would solve for most of these.
pelagicAustral 63 days ago [-]
Background photo rotation is the over-engineered alternative to shade rotation...
klimeryk 63 days ago [-]
Hahaha, roger that! I mean, it would be in line with the whole premise of the tool... I should implement it so that the whole tool/page rotates around the glasses XD
ks2048 63 days ago [-]
Nice job. Although I disagree with the adjective "over-engineered". I think it means using too much machinery to accomplish a simple task (bad), where here it seems to mean having lots of options (good).
ryandrake 63 days ago [-]
Infinite spinner for me: Stuck at "Loading AI models for face detection..." forever. I'd want to fix that before sharing it with recruiters as an example project.
Desktop Safari 18.0.1 (18619.1.26.111.11, 18619)
b212 63 days ago [-]
As a FE dev I’m not surprised something does not work in Safari.
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.
[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!
klimeryk 63 days ago [-]
Thank you! Yeah, that looks like the pipeline from mediapipe (used for ML face detection) has troubles initializing the WebGL context. I don't see immediately any settings for disabling WebGL in Safari, but I'm sure there's some feature flags for that. Do you remember touching any settings related to this? I'm wondering if it's related to some browser settings, an extension (?) or something else.
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.
ryandrake 63 days ago [-]
I went into Safari Settings and, under Feature Flags, turned on "Allow WebGL in Web Workers" and the site now works. I don't recall ever turning that off or messing with any other feature flags, so I'm guessing that this necessary feature is off by default in at least some versions of Safari. Web development must be so fun, I feel for you.
DrammBA 63 days ago [-]
As another data point it works on my M1 with Safari 17.2
WolfCop 63 days ago [-]
Looks cool, but getting an error in Safari after clicking "Deal with it!".
This is great! I always joke with my girlfriend about people in billboards or whatever needing deal with it glasses and will likely use this regularly haha Thank you!
63 days ago [-]
stavros 63 days ago [-]
Oh man, this is amazing, I love it. Well done.
morkalork 63 days ago [-]
Please please please add a blunt/joint option. I think my favorite ever use of this meme was in Colossal (2016).
dsalaj 63 days ago [-]
Cool, thanks! It desperately needs the copping feature for the original image, so I don't need other tools.
Aardwolf 63 days ago [-]
It seems some memes just stick forever :)
intelVISA 63 days ago [-]
Really nice, can't believe any good place would turn this down. You should be relieved, in a way.
llampx 63 days ago [-]
This could be a reCAPTCHA test, to train the models to better detect eye position and face angle.
klimeryk 63 days ago [-]
It's already using https://ai.google.dev/edge/mediapipe/solutions/vision/face_d... for detecting the eye (and nose) position for the perfect fit ;) The face detection should be done locally, so hopefully Google is not fine-tuning their models based on this.
cabidaher 63 days ago [-]
Thank you for sharing this. Many laughs were had!
The company you were applying to sure missed out!
jammaloo 63 days ago [-]
Hell yeah, this is great. I made a similar, but much worse, thing a while back
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!
klimeryk 63 days ago [-]
Heck yeah! Love the touches like resize handling or rotation support! Contributions are more than welcome... hint hint ;)
> 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.
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.
[1] https://en.wikipedia.org/wiki/Ventrilo
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!)
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.
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.
https://s11.gifyu.com/images/SB5XB.gif
(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...
[3] https://github.com/tensorflow/tfjs/issues/7905
[4] https://github.com/tensorflow/tfjs/issues/8290
Just noticed what company you did leave and I have even more respect for you.
Someone get this guy a job please.