[{"data":1,"prerenderedAt":697},["ShallowReactive",2],{"project-41848150":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":48,"post_text":51,"what":52,"said":95,"maker_in_thread":235,"shape":245,"grid":250,"attempts":659,"same_week":660,"maker_shows":39,"maker_hidden":689,"reader_version":690,"card":691},"41848150","emoji","The most over-engineered Deal With It emoji generator","title","Show HN: I built the most over-engineered Deal With It emoji generator","https:\u002F\u002Femoji.build\u002Fdeal-with-it-generator\u002F","emoji.build","klimeryk",1728997505,2024,832,148,16,3515,1,"legend","creative","meme and gif generator","web_app",[24,25,26,27,28],"deal with it","gif generator","sunglasses meme","face detection","emoji maker","mixed",0.322,{"positive":32,"neutral":33,"mixed":34,"critical":35},35,25,3,15,78,{"execution":38,"design":41,"idea":42,"docs":44,"privacy":46,"performance":47},{"positive":39,"critical":40},2,10,{"positive":39,"critical":18},{"positive":43,"critical":39},8,{"positive":45,"critical":18},0,{"positive":45,"critical":45},{"positive":45,"critical":18},[49,49,18,45,45,49,49,45,49,49,18,45,34,34,49,45,45,49,34,34,18,50,18,34,34,49,34,49,34,18,18,49,50,49,50,49,50,49,49,34],5,4,"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\":\n\n- 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 vert",{"problem":53,"audience":59,"pricing":60,"motivation":64,"time_to_build":59,"stack":68,"openness":92,"stage":93,"team_size":94},{"value":54,"source":55,"evidence":56},"Adds Deal With It sunglasses to faces in images and exports animated GIFs.","maker",[57],{"id":58},"post",null,{"value":61,"source":55,"evidence":62},"free",[63],{"id":58},{"value":65,"source":55,"evidence":66},"Built as a job interview showcase, then polished and released for free.",[67],{"id":58},[69,76,82,88],{"value":70,"source":55,"evidence":71},"MediaPipe Face Detector",[72,73],{"id":58},{"id":74,"by":11,"text":75},"41848863","It's already using https:\u002F\u002Fai.google.dev\u002Fedge\u002Fmediapipe\u002Fsolutions\u002Fvision\u002Fface_detector for detecting the eye (and nose) position for the perfect fit ;) The face detection should…",{"value":77,"source":55,"evidence":78},"Cloudflare Pages",[79],{"id":80,"by":11,"text":81},"41850669","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…",{"value":83,"source":55,"evidence":84},"Tailwind CSS",[85],{"id":86,"by":11,"text":87},"41849826","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.",{"value":89,"source":55,"evidence":90},"antd",[91],{"id":86,"by":11,"text":87},"open_source","launched","solo",{"praise":96,"objections":135,"requests":162,"questions":196,"alternatives":213},[97,113,124],{"value":98,"source":99,"evidence":100},"Fun, useless, and well executed","commenter",[101,105,109],{"id":102,"by":103,"text":104},"41848701","m2fkxy","it's useless thence I love it. I lied, in fact I just used it to create a couple Slack emojis.",{"id":106,"by":107,"text":108},"41849839","yapyap","My god this is so bad, I love it. (bad in a taste way, not in the engineering way)",{"id":110,"by":111,"text":112},"41850829","navigate8310","Very clean, it just works!",{"value":114,"source":99,"evidence":115},"Customization options appreciated",[116,120],{"id":117,"by":118,"text":119},"41849072","klabb3","Used in WhatsApp on iOS the last frame didn’t stay, it seems to stop instantly and\u002For loop back to too early. IIRC I used 20 frames, 250ms between frame and 2500ms for the last…",{"id":121,"by":122,"text":123},"41850673","silisili","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…",{"value":125,"source":99,"evidence":126},"Sympathy for the rejected job application",[127,131],{"id":128,"by":129,"text":130},"41848824","airstrike","> 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…",{"id":132,"by":133,"text":134},"41851932","think_build","I love over-built projects. Do not worry about the job offer, the current market is posting job offers that do not exist.",[136,143,147],{"value":137,"source":99,"evidence":138},"Glasses are only black; no colour options at launch",[139],{"id":140,"by":141,"text":142},"41849296","TZubiri","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:…",{"value":144,"source":99,"evidence":145},"Output GIF last frame does not hold in WhatsApp and Telegram",[146],{"id":117,"by":118,"text":119},{"value":148,"source":99,"evidence":149},"Errors in Safari and Chrome with unsupported MIME type and infinite spinner",[150,154,158],{"id":151,"by":152,"text":153},"41854426","jitl","I got an error after clicking the \"Deal with it\" button. ``` Graph successfully started running. Uncaught (in promise) Error: Unsupported MIME type: application\u002Fxml at Et.a…",{"id":155,"by":156,"text":157},"41854794","WolfCop","Looks cool, but getting an error in Safari after clicking \"Deal with it!\". Unhandled Promise Rejection: Error: Unsupported MIME type: application\u002Fxml On this line: Q = await…",{"id":159,"by":160,"text":161},"41849814","ryandrake","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…",[163,178,185,192],{"value":164,"source":99,"evidence":165},"Add text captions like DEAL WITH IT",[166,170,174],{"id":167,"by":168,"text":169},"41849466","jihadjihad","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…",{"id":171,"by":172,"text":173},"41849106","agos","this is great. feature request: DEAL WITH IT caption and relative options",{"id":175,"by":176,"text":177},"41858219","m000","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…",{"value":179,"source":99,"evidence":180},"Shades rotation",[181],{"id":182,"by":183,"text":184},"41848780","pelagicAustral","I like it... faved for future fuckery. Can you add background photo rotation or shades rotation?",{"value":186,"source":99,"evidence":187},"Per-glasses frame delay and animation",[188],{"id":189,"by":190,"text":191},"41849381","devmor","I adore it. I would love the ability to add frame delay (and maybe start\u002Fend position\u002Frotation tweening?!) to each layer of glasses.",{"value":193,"source":99,"evidence":194},"Paste image URL input",[195],{"id":167,"by":168,"text":169},[197,207],{"value":198,"source":99,"evidence":199},"Why does the GIF delay use centiseconds",[200,204],{"id":201,"by":202,"text":203},"41855055","burke","only gotta wait 2.4 hours though, it's missing a zero :)",{"id":205,"by":11,"text":206},"41858193","No, it's correct - for some reason, the library expects centisecs O.o See https:\u002F\u002Fgithub.com\u002Fjimp-dev\u002Fgifwrap?tab=readme-ov-file#new_GifFrame_new Although, I will admit I never…",{"value":208,"source":55,"evidence":209},"Background photo rotation use case",[210],{"id":211,"by":11,"text":212},"41848835","Yup, shades rotation is on the roadmap: https:\u002F\u002Fgithub.com\u002Fklimeryk\u002Fdealwithit\u002Fissues\u002F30. Hope to get it done some time today\u002Ftomorrow. Most pieces are ready, just need to figure…",[214,221,228],{"value":215,"source":99,"evidence":216},"Parrotify",[217],{"id":218,"by":219,"text":220},"41849514","cheschire","Must've been this person: https:\u002F\u002Fparrotify.github.io\u002F",{"value":222,"source":99,"evidence":223},"Giphy Slack commands",[224],{"id":225,"by":226,"text":227},"41850592","bewuethr","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]:…",{"value":229,"source":99,"evidence":230},"face-api.js Deal With It demo",[231],{"id":232,"by":233,"text":234},"41849588","jammaloo","Hell yeah, this is great. I made a similar, but much worse, thing a while back https:\u002F\u002Fjammaloo.com\u002FDealWithIt\u002F It uses face-api.js to find the face, and then move the sunglasses…",{"comments":236,"answered":50,"key":237},32,[238,239,242],{"id":80,"text":81},{"id":240,"text":241},"41850944","Ah, gotcha! Hahah, yeah, I'm sure this is exactly the use case folks were thinking of when dreaming of AI applications decades ago...",{"id":243,"text":244},"41853292","Hahaha, achievement unlocked! Congratulations!",{"commenters":246,"max_depth":247,"maker_replies":236,"first_comment_mins":248,"lifespan_hours":249},96,6,56,64,[251,255,257,259,260,263,266,270,272,274,278,279,282,284,286,289,292,295,297,301,304,307,309,312,315,317,319,322,324,325,328,332,335,338,341,344,348,351,355,359,362,364,367,370,373,376,378,381,384,387,390,393,395,398,400,403,406,408,411,413,415,417,419,423,425,427,430,432,434,437,440,442,445,447,450,452,454,457,459,462,465,467,469,473,475,478,480,483,485,490,492,494,496,498,500,504,506,508,511,514,516,518,519,521,523,527,529,532,534,536,538,540,543,544,546,550,552,556,560,564,568,571,575,579,580,583,585,587,591,595,597,599,603,605,609,613,617,621,623,627,631,633,636,638,642,646,651,655],[252,45,49,253,254,45],"41850460","project\u002Fpositive\u002Fnone","zamadatix",[80,45,45,256,11,18],"commenter\u002Fneutral\u002Fnone",[258,45,45,256,254,45],"41850702",[240,45,45,256,11,18],[261,45,45,262,254,45],"41855471","other\u002Fneutral\u002Fnone",[264,45,45,262,265,45],"41856564","dalmo3",[267,18,49,268,269,45],"41852596","project\u002Fpositive\u002Fexecution","kjaer",[243,18,45,271,11,18],"commenter\u002Fpositive\u002Fnone",[201,18,18,273,202,45],"project\u002Fcritical\u002Fexecution",[275,18,34,276,277,45],"41858188","project\u002Fneutral\u002Fexecution","benjijay",[205,18,45,276,11,18],[280,18,45,256,281,45],"41858330","hmry",[283,18,45,256,11,18],"41858906",[285,18,45,262,202,45],"41860727",[287,18,45,262,288,45],"41855981","p0w3n3d",[290,18,45,262,291,45],"41857872","latexr",[293,18,45,262,294,45],"41858103","zigman1",[296,18,45,262,11,18],"41859007",[298,39,49,299,300,45],"41848738","project\u002Fpositive\u002Fdesign","andybak",[302,39,45,262,303,45],"41850096","pieter_mj",[305,39,45,262,306,45],"41850165","mattnewton",[308,39,45,262,303,45],"41850465",[310,39,45,262,311,45],"41852511","hatingisok",[313,39,45,262,314,45],"41854456","hersko",[128,34,49,316,129,45],"maker\u002Fpositive\u002Fnone",[318,34,45,262,11,18],"41848995",[320,34,45,262,321,45],"41849453","Aeolun",[323,34,45,262,11,18],"41849505",[218,34,45,262,219,45],[326,34,49,316,327,45],"41850450","aio2",[329,34,49,330,331,45],"41850903","maker\u002Fpositive\u002Fidea","com2kid",[333,34,45,262,334,45],"41851844","pc86",[336,34,45,262,337,45],"41852537","S201",[339,34,45,262,340,45],"41854196","primitivesuave",[342,34,45,262,343,45],"41876392","bestthrowaway",[345,34,34,346,347,45],"41852389","maker\u002Fneutral\u002Fnone","ndndjdjdn",[349,34,49,316,350,45],"41852857","teaearlgraycold",[352,50,18,353,354,45],"41851594","project\u002Fcritical\u002Fdocs","ChrisArchitect",[356,50,18,357,358,45],"41852860","project\u002Fcritical\u002Fidea","below43",[360,50,45,262,361,45],"41852993","radicality",[363,50,45,262,361,45],"41853051",[365,50,45,262,366,45],"41853366","SlackingOff123",[368,50,45,262,369,45],"41853568","TheNicholasNick",[371,50,45,262,372,45],"41853820","wholinator2",[374,50,45,262,375,45],"41854059","jampa",[377,50,45,262,294,45],"41858123",[379,50,18,357,380,45],"41853672","therealdrag0",[382,49,49,316,383,45],"41851114","asdfman123",[385,49,45,256,386,45],"41852114","bethemoly",[388,49,34,346,389,45],"41852354","moffkalast",[391,49,34,392,383,45],"41853251","project\u002Fneutral\u002Fnone",[394,49,34,346,314,45],"41854464",[396,49,45,256,397,45],"41855666","j_bum",[399,49,45,256,383,45],"41856161",[401,247,49,253,402,45],"41849984","steve_adams_86",[404,247,45,262,405,45],"41850286","yieldcrv",[407,247,45,256,11,18],"41850695",[409,247,45,262,410,45],"41851045","gxs",[412,247,45,262,402,45],"41853154",[414,247,45,262,402,45],"41853028",[416,247,45,256,405,45],"41853814",[418,247,45,256,402,45],"41854914",[420,421,45,262,422,45],"41850148",7,"underlines",[424,421,45,262,11,18],"41850710",[225,43,34,426,226,45],"project\u002Fneutral\u002Fidea",[102,428,49,429,103,45],9,"project\u002Fpositive\u002Fidea",[431,428,45,346,11,18],"41848877",[140,40,34,433,141,45],"project\u002Fmixed\u002Fdesign",[435,40,45,436,11,18],"41849388","project\u002Fneutral\u002Fdesign",[438,40,34,436,439,45],"41849445","barryrandall",[441,40,45,262,219,45],"41849508",[443,40,34,444,141,45],"41849581","project\u002Fneutral\u002Fprivacy",[446,40,45,444,11,18],"41849729",[448,40,34,436,449,45],"41851076","mnutt",[451,40,45,299,11,18],"41853913",[151,453,18,273,152,45],11,[455,453,18,273,456,45],"41857155","raesene9",[458,453,45,276,11,18],"41858938",[117,460,34,461,118,45],12,"project\u002Fmixed\u002Fexecution",[463,460,34,276,464,45],"41849492","summermusic",[167,466,49,429,168,45],13,[468,466,45,426,11,18],"41849805",[470,471,18,273,472,45],"41849646",14,"ninju",[474,471,45,276,11,18],"41849723",[476,471,18,273,477,45],"41850304","Krei-se",[479,471,45,276,11,18],"41850637",[481,35,34,346,482,45],"41849163","eezing",[175,16,34,484,176,45],"project\u002Fmixed\u002Fidea",[486,487,18,488,489,45],"41849283",17,"project\u002Fcritical\u002Fdesign","teqsun",[491,487,45,436,11,18],"41849428",[493,487,34,436,489,45],"41852164",[189,495,49,429,190,45],18,[497,495,45,426,11,18],"41849455",[499,495,49,429,190,45],"41858340",[501,502,49,253,503,45],"41860113",19,"CodeWriter23",[132,505,49,316,133,45],20,[121,507,34,436,122,45],21,[509,507,34,436,510,45],"41850871","_puk",[512,507,34,436,513,45],"41850899","tonymarks",[515,507,45,436,11,18],"41850964",[182,517,49,429,183,45],22,[211,517,45,426,11,18],[520,517,34,426,183,45],"41849178",[522,517,45,426,11,18],"41849197",[524,525,49,253,526,45],"41855679",23,"ks2048",[159,528,18,273,160,45],24,[530,528,34,276,531,45],"41849941","DrammBA",[533,528,45,276,11,18],"41849966",[535,528,18,273,160,45],"41849994",[537,528,45,276,11,18],"41850132",[539,528,34,276,160,45],"41850451",[541,528,45,262,542,45],"41854472","b212",[155,33,18,273,156,45],[545,33,45,276,11,18],"41857297",[547,548,49,253,549,45],"41849512",26,"chiefrubberduck",[106,551,49,253,107,45],27,[553,554,49,253,555,45],"41848818",28,"chankstein38",[557,558,49,253,559,45],"41850375",29,"stavros",[561,562,34,426,563,45],"41849342",30,"morkalork",[565,566,34,426,567,45],"41849642",31,"dsalaj",[569,236,34,426,570,45],"41849337","Aardwolf",[572,573,49,330,574,45],"41853064",33,"intelVISA",[576,577,34,426,578,45],"41848820",34,"llampx",[74,577,45,276,11,18],[581,32,49,316,582,45],"41852756","cabidaher",[232,584,49,429,233,45],36,[586,584,45,276,11,18],"41849900",[588,589,49,253,590,45],"41851465",37,"i_am_a_squirrel",[592,593,18,273,594,45],"41857692",38,"nyoomboom",[171,596,34,426,172,45],39,[598,596,45,346,11,18],"41849182",[600,601,49,299,602,45],"41849568",40,"joshdavham",[86,601,45,604,11,18],"maker\u002Fneutral\u002Fdesign",[606,607,34,426,608,45],"41856773",41,"donq1xote1",[610,611,49,253,612,45],"41851586",42,"howmayiannoyyou",[614,615,34,346,616,45],"41852714",43,"cannibalXxx",[618,619,49,253,620,45],"41848844",44,"vladde",[110,622,49,268,111,45],45,[624,625,49,253,626,45],"41864601",46,"mattmar96",[628,629,49,316,630,45],"41855643",47,"rralian",[632,629,45,346,11,18],"41858949",[634,635,49,316,542,45],"41854482",48,[637,635,45,346,11,18],"41858991",[639,640,49,253,641,45],"41852121",49,"blacksqr",[643,644,18,273,645,45],"41852734",50,"tonymet",[647,648,18,649,650,45],"41861616",51,"project\u002Fcritical\u002Fperformance","sheerun",[652,653,49,253,654,45],"41850394",52,"fHr",[656,657,49,253,658,45],"41850566",53,"jhickok",[],[661,665,670,674,679,684],{"id":662,"name":663,"points":664,"category":20},"41853810","Graphite",785,{"id":666,"name":667,"points":668,"category":669},"41801334","HTML for People",677,"learning_science",{"id":671,"name":672,"points":673,"category":20},"41848099","Mused Copan tunnels tour",462,{"id":675,"name":676,"points":677,"category":678},"41846636","Pumpkin",419,"games",{"id":680,"name":681,"points":682,"category":683},"41798477","Tenno",401,"productivity",{"id":685,"name":686,"points":687,"category":688},"41837204","clipscreen",346,"dev_tools",false,"v2",{"id":692,"name":5,"line":6,"ai":689,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":693,"top":18,"kw":694,"maker":11,"domain":10,"tier":19,"attempts":45,"strip":695,"url":9,"mix":696,"praise":98,"objection":137,"sub":21},41848150,0.32,[24,25,26,27,28],"5510055055103350053314133535311545454553",[32,33,34,35],1793991102670]