[{"data":1,"prerenderedAt":490},["ShallowReactive",2],{"project-15422995":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":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":44,"post_text":46,"what":47,"said":75,"maker_in_thread":203,"shape":211,"grid":216,"attempts":454,"same_week":455,"maker_shows":37,"maker_hidden":482,"reader_version":483,"card":484},"15422995","ui-avatars","Generate avatars from user initials","title","Show HN: Generate avatars from user initials","https:\u002F\u002Fui-avatars.com","ui-avatars.com","lasserafn",1507367112,2017,164,96,225,2242,11,"notable","dev_tools","avatar generator","api",[21,24,25,26],"initials avatar","gravatar fallback","default avatar","mixed",-0.319,{"positive":30,"neutral":31,"mixed":32,"critical":33},3,18,2,16,39,{"execution":36,"privacy":38,"idea":40,"design":42,"performance":43},{"positive":37,"critical":32},1,{"positive":39,"critical":32},0,{"positive":37,"critical":41},8,{"positive":39,"critical":30},{"positive":39,"critical":37},[39,39,37,37,30,37,37,37,39,37,37,37,37,37,30,30,37,39,39,30,30,30,30,37,37,30,45,37,30,37,30,45,45,30,39,39,39,39,30,37],5,null,{"problem":48,"audience":58,"pricing":46,"motivation":67,"time_to_build":46,"stack":71,"openness":72,"stage":73,"team_size":74},{"value":49,"source":50,"evidence":51},"Gives users a default avatar built from their name initials when no profile picture exists.","maker",[52,55],{"id":53,"by":11,"text":54},"15423327","Yeah, it absolutely is (ui-avatars). I think its a neat little think to act as fallback for gravatar, but I totally agree that it's overkill",{"id":56,"by":11,"text":57},"15423268","I built this service (or, the core GitHub package) because we needed it internally, and someone requested an API of this, so I quickly threw together this :-). Also, I think…",{"value":59,"source":60,"evidence":61},"Developers building apps with user profiles","inferred",[62,66],{"id":63,"by":64,"text":65},"15423043","cyberferret","Nice service - I was looking for something like this to generate default avatars for our SaaS app recently. How does it handle middle names? i.e., does \"John Arthur Smith\" still…",{"id":56,"by":11,"text":57},{"value":68,"source":50,"evidence":69},"Needed it internally for accounting software and offered it as an API after a request.",[70],{"id":56,"by":11,"text":57},[],"open_source","launched","unknown",{"praise":76,"objections":100,"requests":138,"questions":162,"alternatives":174},[77,89],{"value":78,"source":79,"evidence":80},"Useful and well executed API","commenter",[81,85],{"id":82,"by":83,"text":84},"15423276","vog","Nice idea! What surprised me most: It is also very well executed, with a sane and simple API, good performance considerations, and it fits its purpose almost perfectly. Having…",{"id":86,"by":87,"text":88},"15425941","aymeric","I love you for creating this.",{"value":90,"source":79,"evidence":91},"Fun alternatives like Robohash and adorable avatars",[92,96],{"id":93,"by":94,"text":95},"15423358","oever","Two of my favorite avatar generators: https:\u002F\u002Fwww.peppercarrot.com\u002Fen\u002Farticle391\u002Fcat-avatar-generator the furry version of https:\u002F\u002Frobohash.org\u002F",{"id":97,"by":98,"text":99},"15423086","latchkey","Woah, Robohash is 6 years old now, time goes so fast... https:\u002F\u002Frobohash.org\u002F",[101,112,127],{"value":102,"source":79,"evidence":103},"Sending real names to a third-party service is a privacy concern",[104,108],{"id":105,"by":106,"text":107},"15423145","earlybike","Nice idea. As one wrote, this can easily done with one line of JS but having this as an web API which returns an image file is definitely neat. However, I see a privacy issue…",{"id":109,"by":110,"text":111},"15423207","dewiz","If you use only the initials, you can cut or fake the other letters since they're ignored anyway. Not 100% privacy but better than sending the full name",{"value":113,"source":79,"evidence":114},"CSS or a line of JavaScript can do this without an API",[115,119,123],{"id":116,"by":117,"text":118},"15423080","dmitriid","For web this is done with 1 line of Javascript and a div with rounded borders, really ``` const initials = name.split(' ').map((n) => n.substr(0,1)).slice(0,2).join('') \u003Cdiv…",{"id":120,"by":121,"text":122},"15423053","ComputerGuru","SVG is awesome... but this is a basic enough subset of SVG that SVG is unwarranted. CSS will do this just fine (and any browser capable of displaying this SVG can probably…",{"id":124,"by":125,"text":126},"15424464","OJFord","I don't understand why one would prefer an API to a CSS for this? I'm not even saying don't add the dependency - why should this project be an API instead of some CSS that I…",{"value":128,"source":79,"evidence":129},"Initials handling breaks for non-Latin scripts like Thai and Hindi",[130,134],{"id":131,"by":132,"text":133},"15423546","wingerlang","Cool to see thai on the header example. However the results doesn't really make sense, for example this \"name\" โจ เคน (Jo Keen) has the first letters of each word จ (j) and ค (k)…",{"id":135,"by":136,"text":137},"15424142","lgessler","Note that the \"take the first codepoint\" approach doesn't work for all languages. Take Hindi for example. This is a name: ``` प्रेरणा 'preraṇa' ``` The convention for initials…",[139,149,155],{"value":140,"source":79,"evidence":141},"Random or generated colours",[142,145],{"id":143,"by":64,"text":144},"15423067","Brilliant - thanks for this. Also, would be a nice feature to have the colours randomise themselves as an option, so that I could have different coloured avatars on my people…",{"id":146,"by":147,"text":148},"15423229","williamdclt","I'd say random is better than generated from initials, to avoid two persons with same initials having the same avatar! Random with font color depending on background color (so…",{"value":150,"source":79,"evidence":151},"More complex generated avatar styles and themes",[152],{"id":153,"by":106,"text":154},"15423244","Why don't you rather provide a service which generates more complex avatars such as those from Github[1] or Slack. Your API consumer sends some unique string (user-id, hashed…",{"value":156,"source":79,"evidence":157},"Better Chinese and Unicode script support",[158],{"id":159,"by":160,"text":161},"15423065","mstaoru","No Chinese? https:\u002F\u002Fui-avatars.com\u002Fapi\u002F?name=马云",[163,167],{"value":164,"source":79,"evidence":165},"How are middle names and comma-separated names handled?",[166],{"id":63,"by":64,"text":65},{"value":168,"source":79,"evidence":169},"Is there rate limiting?",[170,171],{"id":63,"by":64,"text":65},{"id":172,"by":11,"text":173},"15423077","Ut stores the avatars on the server, cached by all parameters (not the name, but the generated initials) to avoid generating them again. Also some response headers are set to ask…",[175,179,189,196],{"value":176,"source":79,"evidence":177},"Robohash",[178],{"id":93,"by":94,"text":95},{"value":180,"source":79,"evidence":181},"Adorable avatars",[182,185],{"id":183,"by":11,"text":184},"15423364","Haha, they're so great! There's also this one: http:\u002F\u002Favatars.adorable.io",{"id":186,"by":187,"text":188},"15423990","kauegimenes","I like using http:\u002F\u002Favatars.adorable.io\u002F",{"value":190,"source":79,"evidence":191},"invatar",[192],{"id":193,"by":194,"text":195},"15423494","foxhop","I pulled invatar (https:\u002F\u002Fgithub.com\u002FBekt\u002Finvatar) into my code base for Remarkbox (https:\u002F\u002Fwww.remarkbox.com) invatar generates SVG and the way I use it is slightly different, I…",{"value":197,"source":79,"evidence":198},"Tobiaslins avatar",[199],{"id":200,"by":201,"text":202},"15423098","bluefin","There's also this: https:\u002F\u002Fgithub.com\u002Ftobiaslins\u002Favatar",{"comments":204,"answered":18,"key":205},36,[206,207,210],{"id":183,"text":184},{"id":208,"text":209},"15423164","Absolutely, I'd probably also just use CSS and HTML and use the core package: https:\u002F\u002Fgithub.com\u002Flasserafn\u002Fphp-initials to generate the initials, it's faster and you won't depend…",{"id":56,"text":57},{"commenters":212,"max_depth":213,"maker_replies":204,"first_comment_mins":214,"lifespan_hours":215},46,6,26,29,[217,219,221,224,228,231,234,236,238,240,242,244,247,249,250,253,255,258,259,262,263,265,268,271,274,275,278,281,283,286,287,289,292,295,296,299,301,304,306,310,311,313,316,319,321,323,325,327,328,331,333,334,337,338,340,342,346,348,350,354,356,360,361,363,366,369,371,374,376,380,384,387,391,393,395,397,400,402,407,409,413,415,418,420,422,425,429,432,434,436,439,441,444,446,450,452],[93,39,39,218,94,39],"other\u002Fneutral\u002Fnone",[183,39,39,220,11,37],"maker\u002Fpositive\u002Fnone",[222,39,39,218,223,39],"15423624","est",[225,39,39,226,227,39],"15423799","other\u002Fpositive\u002Fnone","IgorPartola",[229,39,39,218,230,39],"15423864","StavrosK",[232,39,39,226,233,39],"15424542","egypturnash",[131,37,37,235,132,39],"project\u002Fcritical\u002Fexecution",[105,32,37,237,106,39],"project\u002Fcritical\u002Fprivacy",[208,32,39,239,11,37],"project\u002Fneutral\u002Fprivacy",[153,32,30,241,106,39],"project\u002Fmixed\u002Fidea",[56,32,39,243,11,37],"maker\u002Fneutral\u002Fidea",[245,32,30,246,106,39],"15423303","project\u002Fneutral\u002Fidea",[248,32,39,243,11,37],"15423320",[109,32,37,237,110,39],[251,32,37,252,106,39],"15423214","project\u002Fcritical\u002Fidea",[254,32,39,239,11,37],"15423230",[256,32,37,252,257,39],"15423321","donohoe",[53,32,39,252,11,37],[260,32,30,239,261,39],"15423593","mundanevoice",[200,30,39,218,201,39],[264,30,39,226,11,37],"15423106",[266,30,39,218,267,39],"15425504","tobiaslins",[120,269,37,270,121,39],4,"project\u002Fcritical\u002Fdesign",[272,269,39,273,11,37],"15423064","project\u002Fneutral\u002Fdesign",[124,45,37,252,125,39],[276,45,30,246,277,39],"15424507","t1o5",[279,45,39,280,11,37],"15424766","project\u002Fcritical\u002Fperformance",[282,45,37,252,125,39],"15424890",[284,45,39,285,11,37],"15426170","project\u002Fneutral\u002Fexecution",[116,213,37,252,117,39],[288,213,39,280,11,37],"15423092",[290,213,37,252,291,39],"15423302","padolsey",[293,213,30,285,294,39],"15423646","tyingq",[135,213,30,285,136,39],[297,213,39,298,11,37],"15424241","maker\u002Fneutral\u002Fexecution",[300,213,39,218,117,39],"15424619",[302,213,30,273,303,39],"15424189","wavelen",[305,213,30,273,117,39],"15424621",[307,308,37,252,309,39],"15425021",7,"CM30",[97,41,39,218,98,39],[312,41,39,220,11,37],"15423088",[193,314,39,315,194,39],9,"other\u002Fpositive\u002Fdesign",[317,314,39,318,11,37],"15423508","maker\u002Fpositive\u002Fdesign",[320,314,39,220,11,37],"15423509",[322,314,39,218,194,39],"15423537",[82,324,30,241,83,39],10,[326,324,39,252,11,37],"15423292",[63,18,30,285,64,39],[329,18,30,285,330,39],"15423052","amyboyd",[332,18,39,298,11,37],"15423056",[143,18,30,273,64,39],[335,18,39,336,11,37],"15423081","maker\u002Fneutral\u002Fdesign",[146,18,30,273,147,39],[339,18,39,318,11,37],"15423246",[172,18,39,341,11,37],"project\u002Fneutral\u002Fperformance",[343,344,37,270,345,39],"15425756",12,"EthanV2",[347,344,39,336,11,37],"15426175",[186,349,39,226,187,39],13,[351,352,37,270,353,39],"15424985",14,"karmakaze",[355,352,39,336,11,37],"15426182",[357,358,39,359,11,37],"15424663",15,"project\u002Fneutral\u002Fnone",[159,33,30,341,160,39],[362,33,39,298,11,37],"15423100",[364,33,45,365,230,39],"15424002","maker\u002Fpositive\u002Fexecution",[367,33,39,368,11,37],"15424677","maker\u002Fneutral\u002Fnone",[370,33,39,285,11,37],"15423151",[372,33,37,235,373,39],"15423479","mgkimsal",[375,33,39,285,11,37],"15423510",[377,378,30,273,379,39],"15423042",17,"chrismorgan",[381,378,39,382,383,39],"15424152","commenter\u002Fneutral\u002Fnone","dawnerd",[385,31,37,280,386,39],"15426031","jwatte",[388,389,39,218,390,39],"15423877",19,"nqzero",[392,389,30,273,294,39],"15424715",[394,389,30,359,390,39],"15425629",[396,389,30,273,294,39],"15425678",[86,398,45,399,87,39],20,"project\u002Fpositive\u002Fidea",[401,398,39,220,11,37],"15426179",[403,404,45,405,406,39],"15423264",21,"project\u002Fpositive\u002Fnone","ZykezIX",[408,404,39,220,11,37],"15423370",[410,411,30,246,412,39],"15423112",22,"j_s",[414,411,39,243,11,37],"15423121",[416,411,39,382,417,39],"15423181","homero",[419,411,39,382,11,37],"15423220",[421,411,39,382,417,39],"15423378",[423,411,39,382,424,39],"15423228","Kiro",[426,411,39,427,428,39],"15423291","commenter\u002Fneutral\u002Fidea","wastedhours",[430,411,39,431,11,37],"15423295","commenter\u002Fpositive\u002Fidea",[433,411,39,427,132,39],"15423503",[435,411,39,427,428,39],"15428295",[437,411,39,427,438,39],"15423301","superasn",[440,411,39,243,11,37],"15423334",[442,411,30,246,443,39],"15423431","oneeyedpigeon",[445,411,39,243,11,37],"15423441",[447,448,37,252,449,39],"15423523",23,"flotillo",[451,448,39,243,11,37],"15423888",[453,448,39,243,11,37],"15423897",[],[456,460,465,470,473,477],{"id":457,"name":458,"points":459,"category":20},"15429390","fd",456,{"id":461,"name":462,"points":463,"category":464},"15425324","sunboxlabs",236,"infrastructure",{"id":466,"name":467,"points":468,"category":469},"15417975","Resume Worded",209,"productivity",{"id":471,"name":472,"points":468,"category":20},"15427891","FormAPI",{"id":474,"name":475,"points":476,"category":469},"15433879","Rejection Conditioner",177,{"id":478,"name":479,"points":480,"category":481},"15425545","HNDesktop",141,"consumer_social",false,"v2",{"id":485,"name":5,"line":6,"ai":482,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":486,"top":18,"kw":487,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":488,"url":9,"mix":489,"praise":78,"objection":102,"sub":21},15422995,-0.32,[21,24,25,26],"0011311101111133100333311351313553000031",[30,31,32,33],1794036559537]