[HN Gopher] Show HN: I built the most over-engineered Deal With ...
       ___________________________________________________________________
        
       Show HN: I built the most over-engineered Deal With It emoji
       generator
        
       Hi, all! Author here. What started as a small tool I built for a
       job interview, became "The Most Over-engineered Deal With It Emoji
       Generator":  - All operations done fully client-side - no backend,
       no private data leaves your browser. - Uses machine learning models
       (MediaPipe Face Detector task) to automatically scale and position
       glasses on the detected faces. - Extensive customization options
       for glasses: - Placement of glasses anywhere on the input image
       (including slightly going outside it). - Change the size of
       glasses. - No limit on the number of glasses. - Flip the glasses
       vertically or horizontally. - Customize the direction from which
       the glasses appear on the image. - Different types of glasses. -
       GIF output options: - Looping mode. - Number of frames. - Frame
       delay. - Separate delay setting for last frame. - Output size. -
       Celebration confetti - Easter eggs.  I've been working remotely for
       the last >9 years. When using non-verbal communication, it's
       important that your tone and intent comes across accurately..
       Custom emojis became for me part of expressing yourself, creating
       bonds and camaraderie. I've originally created an MVP of this tool
       while applying for a exciting new job opportunity. As a showcase of
       my passion for programming, building teams and creating delightful
       user experiences. Unfortunately, they were not impressed and
       ultimately did not offer me the job :( But I wanted to polish it
       and release it for everyone to use for free, so that you can too
       "Deal With It"!  I have more ideas for even more features (check
       GitHub[1]), but wanted to launch it and see what's the feedback and
       ideas from the community! And if you're looking for a Fullstack
       Developer with >14 years of experience, with passion for great
       customer experience (remote work or locally in Iceland), let's
       chat!  [1] - https://github.com/klimeryk/dealwithit
        
       Author : klimeryk
       Score  : 525 points
       Date   : 2024-10-15 13:05 UTC (9 hours ago)
        
 (HTM) web link (emoji.build)
 (TXT) w3m dump (emoji.build)
        
       | m2fkxy wrote:
       | it's useless thence I love it.
       | 
       | I lied, in fact I just used it to create a couple Slack emojis.
        
         | klimeryk wrote:
         | > 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!
        
       | andybak wrote:
       | I love it: https://s1.gifyu.com/images/SB5A9.gif
        
         | pieter_mj wrote:
         | Isn't that a child eating creature?
        
           | mattnewton wrote:
           | Saturn, yes
           | https://en.m.wikipedia.org/wiki/Saturn_Devouring_His_Son
        
             | pieter_mj wrote:
             | ty. uv.
        
             | hatingisok wrote:
             | Nice. Thank you for this bedtime story.
        
       | pelagicAustral wrote:
       | I like it... faved for future fuckery. Can you add background
       | photo rotation or shades rotation?
        
         | klimeryk wrote:
         | 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 wrote:
           | Background photo rotation is the over-engineered alternative
           | to shade rotation...
        
             | klimeryk wrote:
             | 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
        
       | chankstein38 wrote:
       | 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!
        
       | llampx wrote:
       | This could be a reCAPTCHA test, to train the models to better
       | detect eye position and face angle.
        
         | klimeryk wrote:
         | 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.
        
       | airstrike wrote:
       | _> 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!
        
         | klimeryk wrote:
         | 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!
        
         | Aeolun wrote:
         | The only thing I can imagine is that they were up against
         | someone making a partyparrot generator.
        
           | klimeryk wrote:
           | Hahaha, genuinely laughed out loud, thank you! (also, big fan
           | of partyparrot, of course)
        
           | cheschire wrote:
           | Must've been this person: https://parrotify.github.io/
        
         | aio2 wrote:
         | Yeah, this is pretty cool and they can fuck off.
        
         | com2kid wrote:
         | 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 wrote:
           | 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 wrote:
             | 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.
        
         | ndndjdjdn wrote:
         | 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.
         | 
         | [1]
         | https://m.youtube.com/watch?v=fJ9rUzIMcZQ&pp=ygURYm9oZW1pYW4...
        
         | teaearlgraycold wrote:
         | They realized OP would put them all to shame.
        
       | vladde wrote:
       | Love it. I'll definitely be using this!
        
       | klabb3 wrote:
       | 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 wrote:
         | 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.
        
       | agos wrote:
       | this is great. feature request: DEAL WITH IT caption and relative
       | options
        
         | klimeryk wrote:
         | Thanks for checking it out! I have adding text on the roadmap:
         | https://github.com/klimeryk/dealwithit/issues/31 :D Upvote on
         | GitHub to show interest!
        
       | eezing wrote:
       | Great way to promote yourself. Well done!
        
       | teqsun wrote:
       | 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 wrote:
         | > 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 wrote:
           | 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.
        
       | TZubiri wrote:
       | 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
       | 
       | 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
        
         | klimeryk wrote:
         | > 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!)
        
         | barryrandall wrote:
         | 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.
        
           | cheschire wrote:
           | Those responsible for sacking the people who have just been
           | sacked, have been sacked.
        
           | TZubiri wrote:
           | 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 wrote:
             | 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 wrote:
               | 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.
        
         | klimeryk wrote:
         | 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!
         | 
         | All thanks to some clever (mis)use of SVG and canvas, see https
         | ://github.com/klimeryk/dealwithit/commit/d8f280b5f2e4bd....
         | Enjoy!
        
       | Aardwolf wrote:
       | It seems some memes just stick forever :)
        
       | morkalork wrote:
       | Please please please add a blunt/joint option. I think my
       | favorite ever use of this meme was in Colossal (2016).
        
       | devmor wrote:
       | 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 wrote:
         | 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!
        
       | jihadjihad wrote:
       | 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 wrote:
         | > It's great. I wish you could paste an image URL too, that
         | would be slick.
         | 
         | 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
        
       | chiefrubberduck wrote:
       | awesome tool :) thank you for making and sharing it!
       | 
       | https://s11.gifyu.com/images/SB5XB.gif
        
       | joshdavham wrote:
       | I love the UI! Definitely gonna inspire from it for a future
       | project
        
         | klimeryk wrote:
         | Thank you! It was my first time using Tailwind CSS (and antd).
         | Wanted to try them out for a while, so figured it's a nice
         | opportunity.
        
       | jammaloo wrote:
       | Hell yeah, this is great. I made a similar, but much worse, thing
       | a while back
       | 
       | 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!
        
         | klimeryk wrote:
         | 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.
         | 
         | [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
        
       | dsalaj wrote:
       | Cool, thanks! It desperately needs the copping feature for the
       | original image, so I don't need other tools.
        
       | ninju wrote:
       | Found a bug
       | 
       | 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 wrote:
         | 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 wrote:
           | 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.
           | 
           | Hang tight!
        
         | klimeryk wrote:
         | Should be fixed by
         | https://github.com/klimeryk/dealwithit/commit/7728d06c90c437...
         | As the classic saying goes:
         | 
         | > There are only two hard things in Computer Science: cache
         | invalidation and naming things.
        
       | ryandrake wrote:
       | 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)
        
         | DrammBA wrote:
         | As another data point it works on my M1 with Safari 17.2
        
         | klimeryk wrote:
         | Any console errors?
        
           | ryandrake wrote:
           | Yep, a bunch of warnings and then:
           | Unhandled Promise Rejection: Error: StartGraph failed:
           | $Service "kGpuService", required by node mediapipe_tasks_visi
           | on_face_detector_facedetectorgraph__mediapipe_tasks_component
           | s_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_visio
           | n_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 wrote:
             | 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 wrote:
               | 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.
        
       | yapyap wrote:
       | My god this is so bad, I love it.
       | 
       | (bad in a taste way, not in the engineering way)
        
       | steve_adams_86 wrote:
       | 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 wrote:
         | > 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
        
           | klimeryk wrote:
           | 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 wrote:
           | 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 wrote:
             | 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.
        
           | steve_adams_86 wrote:
           | > 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 wrote:
             | 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
        
       | underlines wrote:
       | 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 wrote:
         | 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
        
       | stavros wrote:
       | Oh man, this is amazing, I love it. Well done.
        
       | fHr wrote:
       | Now this is amazing, well done.
        
       | zamadatix wrote:
       | 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 wrote:
         | 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 wrote:
           | 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 wrote:
             | Ah, gotcha! Hahah, yeah, I'm sure this is _exactly_ the use
             | case folks were thinking of when dreaming of AI
             | applications decades ago...
        
       | jhickok wrote:
       | Thanks I hate it. Seriously tho, I've already used this twice at
       | work today.
        
       | bewuethr wrote:
       | 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! ;)
       | 
       | [1]: https://giphy.medium.com/the-secret-giphy-slack-
       | commands-9cb...
        
       | silisili wrote:
       | 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!
        
         | _puk wrote:
         | Drag to resize
        
         | tonymarks wrote:
         | on a desktop you can click the glasses to resize them
        
           | klimeryk wrote:
           | 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.
        
       | navigate8310 wrote:
       | Very clean, it just works!
        
       | asdfman123 wrote:
       | 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.
        
         | bethemoly wrote:
         | Interesting take.
        
         | moffkalast wrote:
         | 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.
         | 
         | ;)
        
           | asdfman123 wrote:
           | This feels more like an internal tool that will be used
           | forever
        
       | i_am_a_squirrel wrote:
       | Thank you OP. I needed this.
        
       | howmayiannoyyou wrote:
       | Thank you for this. Changed my life for the better.
        
       | ChrisArchitect wrote:
       | Thank you Slack? For the confusing use of "emoji" instead
       | "animated GIF" or sticker.
        
         | below43 wrote:
         | Thank you. As a non-Slack user, this explains a lot. I was
         | somewhat disappointed that this didn't generate actual emojis.
        
           | radicality wrote:
           | 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 ?
        
         | radicality wrote:
         | 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 wrote:
           | 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.
        
             | TheNicholasNick wrote:
             | Suspect, pure speculation, when they pivoted from being
             | focused on gamers, switching from guild to server helped.
        
               | wholinator2 wrote:
               | 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
        
         | therealdrag0 wrote:
         | 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.
        
       | think_build wrote:
       | I love over-built projects. Do not worry about the job offer, the
       | current market is posting job offers that do not exist.
        
       | blacksqr wrote:
       | :-O
        
       | kjaer wrote:
       | 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;       }
        
         | klimeryk wrote:
         | Hahaha, achievement unlocked! Congratulations!
        
       | tonymet wrote:
       | yet the back button...
        
       | cabidaher wrote:
       | Thank you for sharing this. Many laughs were had!
       | 
       | The company you were applying to sure missed out!
        
       | intelVISA wrote:
       | Really nice, can't believe any good place would turn this down.
       | You should be relieved, in a way.
        
       ___________________________________________________________________
       (page generated 2024-10-15 23:00 UTC)