ИИaicanvasjavascriptгенеративноеискусствопромптwebdevГенерация дудл-арта через Canvas 2D и промптT@tips_aiAI-инженер2 нед😏 Очередной пример, что почти всё можно реализовать кодом: Понравились у одного дизайнера вот эти дудл-арты, он рисует каждую отдельную черточку кодом Так что я конвертировал его идею в промт, можно генерить любую тему, не только людей: [naive hand-drawn human doodle faces] Write one self-contained HTML file with no libraries and no image assets that uses canvas 2D to draw a grid of 40 variations of the subject in brackets above on textured off-white paper: give each one its own seeded PRNG (same seed = same drawing, click one to reroll it, one button regenerates the whole sheet); start by breaking the subject into 6-12 named parts, each a tiny function with several variants assembled from arcs and curves (that granularity means an eye is two arcs plus a pupil, a nose is one long curve around a tip); then put a rough 3D armature under the 2D art — the simplest solid the subject implies, an ellipsoid for a head or a body, a tilted disc for anything radial, a curve for anything that grows — give it random yaw/pitch/roll and pin every part to a (u,v) anchor on it, projecting that anchor to 2D for position but taking each part's orientation and scale from the armature's own global axes rather than the surface tangent (or the parts converge at the poles), and hide parts whose surface normal faces away; draw everything with a handmade pen: build point arrays, offset them by a smooth low-frequency wobble (a few summed sines, never per-point noise), stroke with round caps in one or two passes at slightly different width and opacity, scatter short scratchy hatch strokes, fill the heaviest masses solid black; then add a rules layer so nothing slides off the form — clamp parts inside the silhouette, keep anything worn or attached sitting on its outside, drop occluded parts on hard turns; keep the style deliberately naive and asymmetric — wobbly outlines, mismatched pairs, ink #232a22 on paper #e9e3d6, with occasional flat muted colour patches (terracotta, sage, dusty rose) laid under the ink. Никаких библиотек, чисто ваш Claude + JavaScript + Canvas 2D А если еще докинуть к этому seed случайности, то получаем похожие но всегда уникальные образы Применение придумайте сами) ☕️ @tips_aiaicanvasjavascriptгенеративноеискусствопромптwebdev
ТехнологииpasskeysuxsecurityauthwebdevpasswordlessПочему Passkeys — это лучший способ аутентификации сегодняС@nikitonsky_pubмедиа / агрегатор1 месВ мире, у каждой хромой собаки есть свой веб-сайт, в каждую электронную сигарету надо логиниться, а память браузеров стремительно приближается к памяти золотой рыбки, проблема логинов во все подряд стоит ОЧЕНЬ ОСТРО. И на фоне всего этого, пасскеи как будто неплохо получились? Я знаю, жизнь отучила нас ожидать от современных «инноваций» чего-то хорошего, но тут как будто исключение? Типа, это правильно навязаный пользователю менеджер паролей (ты не придумываешь пароли, они генерятся для тебя — случайно и усточиво), плюс ты не показываешь пароль даже сайту, на который логинишься, т.е. это еще такая навязаная система асимметричной криптографии. Уберегает от ошибок и пользователя, и программиста сайта. По сути это те же ssh-ключи, которыми мы все пользовались вот уже 50 лет, но сделанные ДЛЯ ЛЮДЕЙ. Но это даже не главный кайф. Главный — что поскольку пасскеи настолько дуракоустойчивы, сайты смогли наконец расслабить булки и им поверить. А это значит, что логин в сайт по пасскею происходит одной кнопкой. Нажал — выбрал паскей — все, ты внутри. Тебя никто не считает за дебила и не перепроверяет по десять раз, не задает тупых вопросов типа «ваш ли это компьютер» или «доверяете ли вы своей маме». И КАК ЖЕ Я ПО ЭТОМУ СКУЧАЛ. Пароли когда-то именно так и работали. Потом надмозги придумали делить логин и пароль на два разных экрана, чем сломали автозаполнение из менеджера паролей. Потом решили, что тупым пользователям верить ни в чем нельзя и сделали двухфакторку. Это еще хуже — бегаешь каждый раз по всей квартире как дурак в поисках телефона. А учитывая, сколько современные сервисы просят тебя логиниться и как часто, это превратилось в нормальный такой воркаут. Потом кто-то догадался сделать «волшебные ссылки» на почту, типа, пароль вообще не нужен. Круто, но это лишняя вкладка, переключение между приложениями, задержка на доставку почты. Если там ссылка, то у тебя вторая вкладка приложения появляется, или не в том браузере откроется (пытались залогиниться? Мы залогинили вас в embedded браузер внутри приложения, который не шарит ссылки ни с чем другим в системе, и по сути растворится, как только вы его закроете. Кстати, ваша ссылка теперь невалидна! Рады помочь, обращайтесь!), короче, не сильно-то то ты и выиграл. Я мог бы нажать одну кнопку, а вместо этого бегаю по пяти экранам и что-то там копи-пащу туда-сюда. Как дурак. Ну и вот. На фоне всего этого пасскеи — реально магический опыт. Каждый раз радуюсь. Современная молодежь не знает даже, что когда-то компьютеры работали нормально и ими можно было пользоваться без приступов паники/ярости. Понятно, создать пасскей это целая проблема, сайты так и не разобрались, когда там попап показывать, где кнопки нажимать и т.д. Перенести между компами их нетривиально (только не пишите мне, что над этим работают, пожалуйста, Я ЗНАЮ). Другу его быстренько не передашь, на бумажку не запишешь, и т.д. Но в целом — когда все настроишь уже — как будто очень приятно пользоваться. Прям кайфую, когда не надо ни на почту ходить, ни за телефоном бегать, ни даже на втором экране ничего заполнять. — Это ты? — Это я. — Входи, верю. Ну офигенно же?passkeysuxsecurityauthwebdevpasswordless
ITseodomaincloudflarewebdevgoogle-search-consolemigrationКак правильно сменить домен сайта с сохранением SEO-весаM@mister_sosisterмедиа / агрегатор2 месЯ часто менял домены в своей практике, но впервые разобрался как делать это правильно! Тк у нас уже были медиа упоминания и беклинки на era.shopping хотелось сохранить их на новом домене. Для этого оказывается нужно сделать пару дополнительных действий: 1. 301 redirect. Ни framer (где хостится сайт), ни squerspace (провайдер домена) не дают это сделать, поэтому самым простым вариантом, спустя несколько часов мучений с противоречащими советами клода/чатгпт, оказалось сделать бесплатный аккаунт Cloudflare, добавить там старый домен, и прописать правило для редиректа типо: If incoming requests match: (http.host eq "era.shopping") or (http.host eq "www.era.shopping") URL redirect: Dynamic - concat("https://tryera.ai", http.request.uri.path) - 301 redirect 2. В google search console есть специальный инструмент Change of address где нужно указать гугла на новый домен. 3. В GA не нужно добавлять новую property, а можно просто обновить ссылку в data stream.seodomaincloudflarewebdevgoogle-search-consolemigration