[для директологов]Вижу на канале много коллег по Яндекс Директу — именно вы мне и нужны! У меня давно зреет мысль запустить совместный продукт как связку: Директ + ленд + соц. сетиЭто позволит в разы увеличить ср. чек + даст больше буста для клиента (за счет ретаргетинга и доп. целевого трафика с соц. сетей + еще и монетка в бренд)Абсолютно понятно, что это история не для клиентов с бюджетом 50к )) Тем не менее, затестить гипотезу можно в ближайшее время: 1. докрутить и упаковать совместный продукт (в идеале найти общие кейсы) 2. сделать жирный офф на первые 2-3 проекта 3. допродать услуги друг друга по текущим клиентамИдея «сырая», надо думать и считать, но я вижу в этом будущее. Сам по себе Директ/smm сложнее окупается, чем системная работа по трафу (как для нас, так и для клиента) Кто готов штурмить и вписываться, маякните плюсом в комментарии ⬇️Можем совместный созвон на подумать организовать )
Веб-разработка — страница 16
Лента темы
https://yesviz.com/viewport/Иногда нужно глянуть какие разрешения есть у тех или иных устройствах. Во тут есть неполный, но список.
CSS в React Server ComponentsВ блоге Джошуа Комо вышла статья про использование CSS-in-JS библиотек в React Server Components. Если вы используете CSS-in-JS библиотеки, то эта статья даст вам полезную информацию о том, какие есть варианты использования в RSC. Если не используете CSS-in-JS библиотеки, то сможете лучше разобраться как устроен RSC.В отличие от клиентских компонентов, RSC выполняется только на сервере. RSC это как PHP шаблоны, которые рендерятся на сервере и возвращают HTML. RSC не поддерживают хуки, из-за того что они вызывают ре-рендеры, а RSC рендерится только один раз на сервере. CSS-in-JS библиотеки, которые выполняются в runtime, используют контекст и динамически генерируют стили компонентов, помещая их в тег <style>. Эти стили могут обновляться, если обновляется компонент. В парадигме RSC такой подход не будет работать. Для того чтобы использовать CSS-in-JS библиотеки в RSC, стоит использовать zero-runtime CSS-in-JS библиотеки, которые генерируют стили во время сборки приложения. Пример таких библиотек: Panda CSS и Pigment CSS. Пример Panda CSS:import { styled } from '../styled-system/jsx'export default function Homepage() { return ( <BigRedButton> Click me! </BigRedButton> );}const BigRedButton = styled.button` font-size: 2rem; color: red;`;Компилируется в:/* /styles.css */.font-size_2rem { font-size: 2rem;}.color_red { color: red;}/* /components/Home.js */export default function Homepage() { return ( <button className="font-size_2rem color_red"> Click me! </button> );}https://www.joshwcomeau.com/react/css-in-rsc/
‼️Кстати, дамы и господа, знаете ли вы, что великолепный чат, который нам год разрабатывали вместо того, чтобы разработать нам отчеты - кривой?))) если вы постоянно отвечаете с приложения, зайдите с компа для разнообразия и вы очень удивитесь, ведь на половину сообщений вы оказывается не ответили))
To close or not to closeЗабавная дискуссия(на самом деле самый настоящий холливар) выдалась в одном ишьюсе в репозитории Svelte. Кратко: Рич Харрис(создатель Svelte) только сейчас обнаружил, что<div /> HelloЭто не<div></div> HelloА<div> Hello</div>Ну и предлагает в Svelte-файлах вместо самозакрывающихся тегов использовать, то как было бы это в HTML с открытием и закрытием. Нам не так интересно что в самом Svelte, сколько разобраться с самой ситуацийВначале разберемся с ситуацией в HTML:HTML - не имеет понятия self-closing element. Вместо этого есть void elements: br / hr / input и тп. Так же есть допущение для внешних элементов: svg/mathml, которые реализованы на основе XML. В стандарте XML self-closing tags называются empty-element tags(элементы у которых нет контента). В остальных случаях HTML просто... игнорирует завершающий /, но с 1 исключением<a href=login/> <a href="login/"> тоже самое<a href="login" /> не верно (Svelte и этот тест провалил) Самое забавное, что все фреймворки ведут себя по разному относительно этого вопроса:JSX(React. Solid etc...) - поддерживает self-closing tagsAngular - только с 16-ой версии начал их поддерживать для своих компонентов, в остальном все как HTML. Кстати, там тоже была бойня, хоть и поменьшеLit - все согласно HTML. Кстати, согласно спеке даже custom elements не могут быть самозакрывающимися. Один человек недовольный отказом, даже сделал расширение добавлющее этот функционалEmber - официально поддерживает self-closing tags, как часть расширения HTMLVue - тут все сложнее.1) Если используется рантайм компиляция шаблонов из HTML, то работают правила HTML и все работает согласно спеке2) Если происходит этап билда шаблонов, например со сборщиком, то self-closing tags доступны.При этом в vue eslint можно четко разграничить желаемое поведение. Но и это было не всегда и сам Эван был против self-closing tags, но с появлением vue-loader все-таки поддержали данный функционал.Как мы видим единого мнения в сообществе вообще нет. На одной чаше удобство, на другой плашка "соответствует HTML5"и куча различных трейдоффов.А что считаете вы, как должны поступать фреймворки?
Как ходить на разные хосты c RetrofitВсем Retrofit хорош. Но как быть, если мне надо ходить на разные домены? Создавать постоянно разные инстансы Retrofit? Ну это не дело.У Retrofit билдера есть метод public Builder baseUrl(String baseUrl), с помощью которого можно задать базовый урл. Это может быть или хост или хост с путем — в любом случае это называется “базовый” URL.Ok, но что если мне надо динамически ходить на разные урлы? Или при старте приложения я тупо не знаю свой базовый урл? Есть 3 ответа. И все они не очень классные 🤢1. Если вы просто пока что не знаете свой базовый url, то просто постарайтесь лениво оттянуть инициализацию Retrofit как можно позже ⏱2. Если пункт 1 вам не подходит, то есть замечательная аннотация @Url. Пишете @GET suspend fun getBestCoffee(@Url url: String): BestCoffeeНо в этом случае вам придется каждый раз руками разбираться с полными урлами. Если вам это подходит, то ок. 👷🏻3. Если пункт 1 вам не подходит, а 2 — не нравится, но вам надо реально менять урлы, то есть механизм Interceptor-ов. Наш последний оплот. Пишем Interceptor, который при каждом запросе подменяет ваш базовый урл на то, что вы хотите 🥷🏻Вообще, это не я придумал, сам Джейк Вортон так советует делать. А мы знаем, если кто-то в андроид постах цитирует Джейка, то это безаговорочный респект сразу, лайки и сердечки!Вот так в Retrofit вы можете ходить на разные хосты.В следующем посте расскажу как с этим обстоит дело в Ktor. Спойлер, там это поудобнее будет.#network #retrofit
КАК УЗНАТЬ НА КАКОМ CMS СДЕЛАН САЙТ?Мне тут нужно было определить на каком движке создан сайт и пришлось гуглить. А вот вам гуглить не придется, все все расскажу. Сторонние программы нам не понадобятся. Способ №1— Открываем сайт — Вызываем код страницы (F12 на винде) — Ctrl+F чтобы найти нужный нам мета-тэг "generator» — видим на какой cms сделан сайтСпособ №2Пойти в онлайн определитель CMS и не париться с кодом. — переходим в iTrack (или его подобным) и вводим нужный сайт в окно определителя и получаем название движка.Способ №3Можно попробовать поводить определенные добавки к домену и попасть в админ панель. Метод подбора, но вдруг тоже понадобиться.site.com/wp-admin/ — WordPress;site.com/administrator/ — Joomla;site.com/admin/ — OpenCart;site.com/user/ — Drupal;site.com/auth/ — 1С Битрикс.Способов много как оказалось, но выделил самые простые и популярные. Надеюсь, что для кого-то будет познавательно так же как и для меня.
Как много контенщиков, работающих в телеграме, разбираются в телеграме?Быстро-тест на знание ТГ:- как местная аудитория относится к смайликам?- кто видит, какой автор отправил сообщение в канал?- можно ли скопировать себе цитату с канала простым нажатием на нее?Ответы:- отношение к смайликам зависит от ниши — в маркетплейсах и обучению им без смайликов продать невозможно, а вот экспертам в нишах, вроде маркетинга, — невозможно продать со смайликами;- подпись автора в канале видит любой подписчик, если кто-то из администраторов включил в настройках канала функцию «подписывать сообщения», в другом случае — посмотреть, кто и что делает в канале (включая действия подписчиков, администраторов, ботов), можно в настройках, во вкладке «недавние действия»;- цитаты, части текста или даже весь текст можно скопировать одним нажатием на него с большинства устройств, если цитата, часть текста или даже весь текст отформатированы под моноширинный шрифт — и это отличный формат для инструкций и шаблонов, которые больше не нужно изгаляться и как-то выделять.К чему это я? Мне тут сказали, что у меня канал кайфовый и у меня с радостью что-то полезное купят.И я вот думаю: может, сделать вам максимально подробное пособие по телеграму — от инструкций (создание канала, включение комментариев, отложенный постинг, преобразование видео в кружочки и так далее), обзора функционала мессенджера до раскрытия и анализа алгоритмов, особенностей местных текстов и всего такого?Мне кажется, это страниц 30, не меньше. Скорее всего, даже больше.Если бы вы хотели такое купить и, что важно, стали бы им пользоваться, поставьте огонек. А в комментариях можете написать (или отреактить) цену, за которую бы такое взяли.В остальном же, продолжаем быть против некачественного контента, до новых встреч :DWEdelberg | Сегодня Леру бесит 🖕
Как найти оригинал сайта, который впоследствии изменился или умерВот вы когда-то делали сайт и вспомнили, что не положили в портфолио. А клиент, допустим, перестал оплачивать хостинг или взял и переделал ваше детище, сделав говно. А вы хотите в портфолио вашу, родную версию.Идете в хранилище web.archive.org, вбиваете адрес, затем ищете нужную дату, кликаете на кружочки дня и времени. Откроется сайт той версии, которую Веб-архив тогда «сфоткал». Вбивать можно только домен, не конкретную страницу. Поэтому, например, нельзя посмотреть старую версию своей статьи. Однако посмотреть внутренние страницы сайта — получится. Ведь откроется-то не скриншот сайта, а сам сайт в старой его версии. Единственная проблема — теряется часть контента: не грузятся картинки, фоны и прочее. Это решаемо, если вам нужен скриншот.Если хотите сделать скриншот, ставите расширение GoFullPage, делаете PNG-скрин и потом в Фотошопе маскируете непрогрузившиеся картинки, пережимаете до JPG приемлемого объема и качества (есть стандартная фотошоп-фича «Сохранить для web») — и выкладываете в портфель. Фсё.
Признаюсь, мне очень нравится идея open annotation тулов, и я хочу сделать с вами общий асинхронный ридинг клаб на основе hypothes.is. Нас там будет три с половиной гика, но я всё равно хочу попробовать (проще было бы комментарии открыть, но это не так интересно).Если всё уже понятно, то вот ссылка https://hypothes.is/groups/br3MN36A/ux-research, а если нет, сейчас объясню.Что за open-annotation тулы? Это инструменты (браузерные плагины, или подменялки ссылок на мобильных), которые позволяют оставлять заметки к тексту на любой странице. Эти заметки могут быть приватными (тогда это работает как личные пометки на полях, но для веб страниц), или публичными, видимыми для всех пользователей инструмента, или участников отдельной группы (тогда это работает как общий виджет комментариев или форум поверх любой страницы).По сути, они создают метаслой для комментариев (это предложение избыточно, очень хотелось использовать слово метаслой), выглядит вот так (ниже ещё картинка есть).У этого несколько забавных применений: - можно использовать как инструмент для обсуждения контента на сайте, не надо ничего в почту копировать- можно сделать странненькое метамедиа в формате "колумнист медузы комментирует ежедневные новости на царьград.тв", - можно использовать в образовании (инструмент встраивается в LMS, говорят, что помогает вовлекать студентов)И можно сделать reading club. Я читаю статьи, вы читаете статьи, Джефф Сауро (чем чёрт не шутит) читает статьи, все оставляют пометочки на полях, все могут оставлять пометочки к этим пометочкам, ну вы поняли. Я вот уже сделал группу на основе hypothes.is (он опенсорсный, работает на мобильных, поддерживает веб-стандарты для open annotation, не знаю, что это значит, но наверное хорошо).Приходите https://hypothes.is/groups/br3MN36A/ux-research#Methods