Pull to refresh
66
0
Сания Галимова @owlnagi

Пользователь

Send message

Почему JavaScript пожирает HTML: примеры кода

Reading time18 min
Views27K
Веб-разработка постоянно развивается. В последнее время стал популярным один тренд, который в основном противоречит общепринятому представлению о том, как нужно разрабатывать веб-приложения. Некоторые возлагают на него большие надежды, а другие испытывают разочарование. У каждого на это есть свои причины, которые в двух словах объяснить достаточно трудно.



Код веб-страницы традиционно состоит из трех разделов, каждый из которых выполняет свои обязанности: HTML-код определяет структуру и семантику, CSS-код определяет внешний вид, а JavaScript-код определяет его поведение. В командах с участием дизайнеров, HTML / CSS разработчиков и JavaScript-разработчиков это разделение получается естественно: дизайнеры определяют визуальные элементы и пользовательский интерфейс, разработчики HTML и CSS размещают эти визуальные элементы на странице в браузере, а JavaScript-разработчики добавляют взаимодействие с пользователем, чтобы связать все вместе и «заставить это работать». Каждый может работать над своими задачами, не вмешиваясь в код остальных двух категорий разработчиков. Но все это справедливо для так называемого «старого стиля».
Читать дальше →
Total votes 24: ↑21 and ↓3+30
Comments26

CSS Grid: Верстаем адаптивный журнальный макет в 20 строк

Reading time12 min
Views61K

Недавно я работал над современной реализацией блогролла (перечня внешних полезных/интересных блогов). Замысел был в том, чтобы предоставить читателям подборку из последних постов в этих блогах, упакованную в журнальную вёрстку, а не сухой список ссылок в сайдбаре.

Самая простая часть задачи — получение списка постов и их эксцерптов (эксцерпт — вступительный текст до ката) с наших любимых RSS–фидов. Для этого мы воспользовались WordPress-плагином Feedzy lite, который умеет агрегировать несколько фидов в один список, отсортированный по времени — идеальное решение в нашем случае. Трудная же часть в том, чтобы сделать всё красиво.
Читать дальше →
Total votes 29: ↑28 and ↓1+47
Comments10

Тестирование вакцины от COVID-19 начнется уже в понедельник

Reading time3 min
Views14K


По словам представителя правительства США первый участник клинических испытаний вакцины от коронавируса получит экспериментальную дозу в понедельник, 23 марта. Испытание финансируют Национальные Институты Здравоохранения. Оно проводится в Вашингтонском Научно-исследовательском институте Здравоохранения Kaiser Permanente в Сиэтле. Обнародовавший эти сведения чиновник выступил с речью на условиях анонимности, потому что это мероприятие не анонсировалось.

Тестирование начнётся с 45 молодых, здоровых добровольцев. Дозы вакцины различны. Вакцина создана совместными усилиями NIH и Moderna Inc. Нет никаких шансов, что участники могут заразиться от уколов, потому что они не содержат вируса. Цель испытаний — проверка, что вакцина не имеет побочных эффектов, а также подготовка почвы для более масштабных испытаний.
Читать дальше →
Total votes 20: ↑17 and ↓3+27
Comments22

5 малоизвестных секретов Pandas

Reading time5 min
Views19K

Pandas не нуждается в представлении: на сегодняшний день это главный инструмент для анализа данных на Python. Я работаю специалистом по анализу данных, и несмотря на то, что пользуюсь pandas каждый день, не перестаю удивляться разнообразию функционала этой библиотеки. В этой статье я хочу рассказать о пяти малоизвестных функциях pandas, которые я недавно узнал и теперь продуктивно использую.

Для новичков: Pandas — это высокопроизводительный набор инструментов для анализа данных на Python с простыми и удобными структурами данных. Название произошло от понятия «panel data», эконометрического термина, которым называют данные о наблюдениях одних и тех же субъектов в течение разных периодов времени.

Здесь можно скачать Jupyter Notebook с примерами из статьи.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments2

Почему стоит делать совещания во время прогулок? Доказано наукой, подтверждено мафией

Reading time4 min
Views17K

Когда мы гуляем, с нашим мозгом случается какая-то магия. И ученые из Стэнфорда объяснили, почему.


Дж. К. Роулинг говорила: «Нет ничего лучше, чем ночная прогулка, которая дает вам новые идеи». Чарльз Диккенс напряженно работал 5 часов, а потом совершал свой 10-12 мильный моцион. «Я не мог сохранить свое здоровье иначе», — настаивал он.


Но, возможно, философ Сёрен Кьеркегор лучше всех сформулировал тезис: «Лучшие мысли посещали меня на прогулке, и я не знаю ни одной настолько обременительной мысли, от которой бы не спасала прогулка».



Исследование Стэнфордского университета (2014) говорит о том, что за магией стоят строгие научные выкладки. В своих экспериментах исследователи из Стэнфорда попросили небольшую группу участников провести серию тестов, чтобы измерить уровень дивергентного мышления, придумывая свежие и творческие идеи, а также оценить получившиеся результаты.

Читать дальше →
Total votes 28: ↑26 and ↓2+40
Comments25

Стоит ли хранить Google Fonts на своём сервере?

Reading time22 min
Views24K
В последние несколько недель, по стечению обстоятельств на работе и в сторонних проектах, я узнал много о веб-шрифтах, а также много нового о Google Fonts в частности. Благодаря этому я могу дать более развернутый ответ на вопрос, который в прошлом мне казался простым: стоит ли вам хранить Google Fonts на своём сервере?

Говоря объективно, признаю, шрифты — не моя сильная сторона. Я предпочитаю более практичный подход и не зацикливаюсь на дизайне (посмотрите на этот сайт и убедитесь, что так и есть) и прежде не чувствовал необходимости в использовании нестандартных шрифтов. Конечно, они выглядят немного приятнее и «брендируют» текст. Но для основного текста толку в них мало. Я никогда не оценивал статью (или иначе относился к её содержанию), только потому что для её подачи использовался красивый шрифт. Тем не менее, мне было полностью понятно негативное влияние дополнительных шрифтов на производительность и скорость загрузки страницы, так что, возможно, из-за этого я предвзят.

Тем не менее, многие со мной могут не согласится, да и шрифты, важны они лично для меня или нет, регулярно используются многими другими разработчиками, и часто у них просто нет выбора. Давайте посмотрим, что можно сделать, чтобы и в скорости сайта не потерять, и дизайнеров довольными оставить.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments10

Как дейтинг-приложения делают нас одинокими

Reading time7 min
Views33K
Аналогично Request For Startups (запрос на стартапы, которые призваны решить проблемы и задачи, которые Y Combinator считает актуальными для общества и бизнеса), я решил вести рубрику Request for Co-founder. В ней я рассматриваю продукты (или сразу несколько похожих продуктов) и рассказываю об их проблемах. Я как будто веду здесь диалог с потенциальными со-основателями, партнерами, как если бы мы планировали сделать аналогичный продукт.

Я выбираю в основном те продукты, которые заинтересовали лично меня. В этот раз я хочу поговорить про дейтинг-приложения. Эту тему меня натолкнула дискуссия на Hacker News.
Прежде чем начать, хочу предупредить, что рассматривал рынок дейтинг-приложений с точки зрения 33-летнего холостого парня из Лос-Анжелеса, кем я и являюсь. Я не принимаю во внимание приложения для представителей сообществ ЛГБТК+, приложения для свингеров и женатых пар, а также приложения для одноразовых интрижек.

Современные дейтинг-приложения


Большинство современных приложений для знакомств ужасны, и давно пора разобраться, почему. Я выделяю три уровня качества приложений для знакомств: приличный, плохой и мусор. Лучшие из них (что, как мы увидим, ничего особенного не дает): Hinge, Bumble, Coffee Meets Bagel и eHarmony. В следующей категории у нас есть: Tinder, OKCupid, Plenty of Fish и несколько других. И, наконец, приложения, которые я считаю просто бесполезным мусором: Zoosk, Badoo, Happn. К сожалению, даже если посмотреть на лучшие из этой группы, с ними процесс поиска партнера превращается в пытку.
Читать дальше →
Total votes 11: ↑7 and ↓4+8
Comments56

Как запустить стартап с минимальными потерями: 23 правила

Reading time13 min
Views7K
За 5 лет бутстрэппинга я попробовал много всего и обнаружил, что существует много способов создать себе сложности, которые отнимают время и энергию. В результате ты вынужден разбираться с ними вместо того, чтобы заниматься делом и наращивать ценность своего продукта.

Для стартапера очень важно умение не создавать себе сложности. На ранних стадиях бутстрэппинга ничего не происходит, пока ты, основатель проекта, не пошевелишься. Поэтому сохранять свое время и энергию критически важно.

Если вы хотите полностью минимизировать сложности при запуске софтверного бизнеса, то следуйте каждому из приведенных ниже правил.

Правило #1: Организуйте стабильный доход


Если ваш продукт может работать по подписной модели, например, как SaaS, используйте это: даже если вам потребуется немного допилить его, чтобы применить эту бизнес-модель.

Зато в этом случае ваш доход можно будет прогнозировать. Если в двух словах, то ваша месячная выручка будет равна предыдущей месячной выручке за вычетом ушедших пользователей, и с учетом вновь прибывших в этом месяце.

Запуск бизнеса с выручкой, которая в основном растет и очень редко существенно падает, раз в сто снижает уровень вашего стресса по сравнению с ситуацией, когда выручка меняется по принципу «то густо, то пусто».


Читать дальше →
Total votes 8: ↑7 and ↓1+9
Comments3

Как я самостоятельно выучил новый язык за 12 месяцев: тотальный гайд

Reading time31 min
Views159K
От А0 до B2 за год

Чуть больше года назад я был полностью монолингвом, говорящем только на английском, с нулевыми познаниями во французском языке. А спустя двенадцать месяцев, я с лёгкостью сдал международный экзамен DELF B2. Если вы не знаете, что значит «В2», посмотрите шкалу CEFR.

Более того, все мои успехи — это результат домашнего обучения и практики. Моё обучение было полностью самостоятельным, без каких-либо специальных учебных программ. Это стало возможным только благодаря множеству удивительных ресурсов, доступных в Интернете, многие из которых бесплатны. Немаловажно, такой результат был достигнут потому, что я отдавал предпочтение продуктивному общению, в частности, проводя много времени за разговорами с теми, кто хорошо знает французский.

Стоит отметить, что мой темп обучения был несколько агрессивным, поскольку за последний год я посвятил изучению французского много времени, однако, это всё ещё значительно меньше, чем фултайм обучение.

Не могу сказать, что полностью свободно говорю, но чтобы вы лучше понимали, каких результатов удалось достичь, приведу список того, что больше не вызывает у меня проблем:

  • Беседа на французском в течение нескольких часов;
  • Понимание различных видов французских СМИ (например, новости и видео на YouTube);
  • Чтение статей, написанных для носителей французского языка;
  • Построение мыслей на французском;

Конечно, я всё ещё очень далёк от уровня носителя. У меня точно есть слабые места, и я не могу выражаться на французском так же хорошо, как на английском. Тем не менее, я очень даже доволен своим уровнем владения французским и думаю, что многие изучающие язык тоже были бы довольны.
Читать дальше →
Total votes 41: ↑38 and ↓3+44
Comments91

IPv6 — вы делаете это неправильно

Reading time5 min
Views16K


Вокруг IPv6 много заблуждений и мифов. Часто хостинг-провайдеры неправильно понимают, как его использовать и размышляют устаревшими подходами из мира IPv4. Например, имея октиллионы IPv6-адресов, хостер продает адреса клиентам поштучно вместо того, чтобы выделять полноценную сеть /64, как следует из рекомендаций.

Бывает, что хостеры назначают разным клиентам IPv6-адреса внутри одной сети /64. При этом крупные сервисы, вроде Google, воспринимают все адреса внутри диапазона /64 как одного клиента. В результате клиенты могут страдать из-за действий соседа по диапазону.

Доступность IPv6-адресов позволяет назначать внутренним ресурсам, например, контейнерам или VPN-клиентам полноценные внешние адреса. Для этого хостер должен выдать клиенту отдельную маршрутизируемую сеть. К сожалению, почти никто не умеет это делать.

В статье мы разберем основные ошибки использования IPv6 провайдерами.
Читать дальше →
Total votes 13: ↑10 and ↓3+12
Comments22

Как сократить накладные расходы при обработке исключений в С++

Reading time8 min
Views6.1K


Обработка ошибок времени выполнения (runtime error) очень важна во многих ситуациях, с которыми мы сталкиваемся при разработке софта — от некорректного пользовательского ввода, до поврежденных сетевых пакетов. Приложение не должно падать, если пользователь вдруг загрузил PNG вместо PDF, или отключил сетевой кабель при обновлении ПО. Пользователь рассчитывает, что программа будет работать, чтобы ни случилось и, либо обрабатывать внештатные ситуации в фоновом режиме, либо предлагать ему выбрать вариант решения проблемы посредством сообщения, отправленного через дружественный интерфейс.

Обработка исключений может оказаться запутанной, сложной задачей, и, что принципиально важно для многих разработчиков С++, она может сильно замедлить работу приложения. Но, как и во многих других случаях, есть несколько способов решения этой проблемы. Далее мы углубимся в процесс обработки исключений на C++, разберемся с его подводными камнями и увидим, как это может повлиять на скорость работы вашего приложения. Кроме того, мы рассмотрим альтернативы, которые можно использовать, чтобы сократить накладные расходы.

В этой статье я не буду призывать вас отказаться от использования исключений полностью. Они должны применяться, но применяться именно тогда, когда этого избежать невозможно: например, как сообщить об ошибке, которая произошла внутри конструктора? Мы в основном будем рассматривать использование исключений для обработки ошибок времени выполнения. Использование тех альтернатив, о которых мы будем говорить, позволит вам разрабатывать более надежные и легко сопровождаемые приложения.
Читать дальше →
Total votes 15: ↑7 and ↓8+3
Comments18

Почему так важно сообщать соискателю, что пошло не так на собеседовании (и как это сделать правильно)

Reading time10 min
Views23K
Одна из самых отстойных вещей в технических собеседованиях — то, что это чёрный ящик. Кандидатам сообщают лишь то, прошли ли они на следующий этап без каких-либо подробностей, почему так вышло.

Отсутствие обратной связи или конструктивной обратной связи не просто фрустрирует кандидатов. Это плохо и для бизнеса. Мы провели целое исследование на тему обратной связи и оказалось, что многие кандидаты постоянно недооценивают или переоценивают уровень своих навыков во время прохождения интервью. Примерно так:


Читать дальше →
Total votes 17: ↑15 and ↓2+21
Comments44

10 полезных функций Angular, которые вы упускали

Reading time6 min
Views9K

Если вы регулярно пишете приложения на Angular и потратили на это не одну сотню часов, вы, скорее всего, знаете об этих функциях. Но, всё же, чтобы убедиться — прочтите :)

Прежде чем мы перейдем к функциям Angular, стоит упомянуть один очень полезный инструмент. Bit (Github) позволяет с легкостью работать над Angular-компонентами вместе и делиться ими. От души рекомендую его для поддержания консистентного интерфейса, ускорения разработки и минимизации количества ошибок в коде.


Пример: Круговые загрузчики для Angular с bit.dev
Читать дальше →
Total votes 10: ↑6 and ↓4+5
Comments8

Разбираем идеальный кейс фишинга при аренде квартиры

Reading time5 min
Views45K
Недавно я стал жертвой (к счастью, неудачной) фишинговой атаки. Несколько недель назад я бродил по сайтам Craigslist и Zillow: я хотел арендовать жилье в районе залива Сан-Франциско.
Мое внимание привлекли симпатичные фото одного местечка, и мне захотелось связаться с арендодателями и узнать о нем поподробнее. Несмотря на мой опыт в качестве специалиста по безопасности, я не понимал, что со мной общаются мошенники, вплоть до третьего письма! Ниже я подробно расскажу разберу кейс вместе со скриншотами и тревожными звоночками.

Я пишу это, чтобы проиллюстрировать, что хорошо подготовленные фишинговые атаки могут выглядеть очень убедительно. Безопасники часто рекомендуют обращать внимание на грамматику и оформление, чтобы защититься от фишинга: якобы у мошенников слабое знание языка и небрежное отношение к визуальному оформлению. В некоторых случаях это действительно работает, но в моем кейсе не помогло. Самые изощренные мошенники пишут на хорошем языке и создают иллюзию соответствия всем писаным и неписаным правилам, стараясь оправдать связанные с этим ожидания жертвы.



Читать дальше →
Total votes 68: ↑65 and ↓3+83
Comments141

Пользуетесь Google Chrome? Значит Google собирает ваши данные через X-client-data

Reading time4 min
Views19K
Многие считают сервисы Google полезными и удобными в использовании, однако у них есть как минимум одна важная особенность. Речь идет о постоянной слежке за пользователями, об интенсивном сборе и отправке данных об их активности.

Далеко не все пользователи представляют, какого рода данные собирает компания, и в каких объемах. Но многие принципиально относятся к своей конфиденциальности, а некоторые готовы усмотреть нарушение тайны частной жизни даже в отправке лога с чисто техническими сведениями. Однако иногда на путь борьбы с Google выходят по-настоящему продвинутые пользователи.
Читать дальше →
Total votes 11: ↑10 and ↓1+11
Comments16

Emacs — 6 трюков для продуктивной работы

Reading time4 min
Views14K
Ранее я уже писал об использовании Emacs в качестве C++ IDE и другом техническом оснащении. Однако, я не обращал особого внимания на то, что использую Emacs и для работы много с чем ещё. Честно говоря, я не смог бы пользоваться этим редактором в полной мере, не будь в нем возможностей, которыми я здесь поделюсь. Также расскажу о настройках, которые я использовал в своём окружении, чтобы запустить всё это «из коробки» (буквально, копируя .emacs).

Чтобы начать


tl; dr: Особо нетерпеливые этот раздел могут пропускать и сразу переходить к настройкам Helm.
У меня установлен Emacs — 26.1, собранный из исходников. Вам это не потребуется. Все пакеты установятся из пакетного менеджера Emacs. Запускаете:

M-x list-packages
Читать дальше →
Total votes 8: ↑5 and ↓3+6
Comments3

Подкроватный хостинг: жуткая практика домашних хостингов

Reading time7 min
Views75K

«Подкроватный» хостинг — жаргонное название сервера, расположенного в обычной жилой квартире и подключённого к домашнему интернет-каналу. На таких серверах обычно размещался публичный FTP-сервер, домашняя страничка владельца и иногда даже целый хостинг для других проектов. Явление было распространено в ранние времена появления доступного домашнего интернета по выделенному каналу, когда аренда выделенного сервера в дата-центре была слишком дорогой, а виртуальные сервера ещё не были распространены и достаточно удобны.

Чаще всего для «подкроватного» сервера выделялся старый компьютер, в который устанавливались все найденные жесткие диски. Он также мог выполнять роль домашнего роутера и файрвола. Такой сервер обязательно был дома у каждого уважающего себя сотрудника телекома.

С появлением доступных облачных сервисов домашние сервера стали менее популярны, и сегодня максимум, что можно встретить в жилых квартирах — это NAS для хранения фотоальбомов, фильмов и бекапов.

В статье рассматриваются курьёзные случаи, связанные с домашними серверами, и проблемы, с которыми сталкиваются их администраторы. Посмотрим, как это явление выглядит в наши дни и выберем, что интересного можно захостить на своём подкроватном сервере сегодня.

Читать дальше →
Total votes 70: ↑62 and ↓8+80
Comments322

React Native: новая веха в мобильной разработке Shopify

Reading time9 min
Views11K
Или почему Shopify переходит на React Native.

После многих лет нативной мобильной разработки мы решили на всех парах двинуться в сторону разработки мобильных приложений на React Native. Ниже будет ясно, что это решение далось нам нелегко.

В конце каждого квартала мы видим одну и ту же картину: большинство наших клиентов делают покупки через мобильные устройства (в третьем квартале прошлого года их доля составила 71%). Чёрная пятница и Киберпонедельник — самое горячее время для наших продавцов, а активность покупателей в эти дни зашкаливает. В этом году в период скидок партнеры Shopify зафиксировали 3-процентный рост заказов с мобильных устройств, а средняя доля таких покупок составила 69% от общего числа транзакций.

Так почему же мы решили перейти на React Native? И почему именно сейчас? Что теперь будет с нашей нативной мобильной разработкой? Быстро и коротко ответить на эти вопросы не получится. Начнем с предыстории.
Читать дальше →
Total votes 12: ↑10 and ↓2+10
Comments0

Google вернёт старый вид результатов поиска

Reading time3 min
Views11K
Google будет снова редизайнить редизайн результатов поиска. Недавно на компанию обрушился шквал критики в связи с обновлением, после которого органические результаты стали практически неотличимы от рекламы.

Google зарабатывает деньги на кликах по рекламе в поиске и не зарабатывает, когда пользователи кликают на один из обычных результатов. И, соответственно, начинает зарабатывать больше, уменьшая различия между первым и вторым.

Это можно назвать довольно злостным решением (или, как минимум, неэтичным) со стороны компании, чьей мантрой в прошлом было «не быть злом» (которую они выбросили из своего Code of conduct в 2018)
Читать дальше →
Total votes 11: ↑8 and ↓3+8
Comments10

Тайм-менеджмент не поможет: прокрастинация это проблема регуляции эмоций, а не времени

Reading time5 min
Views56K

От прокрастинации не избавиться, не разобравшись в её причинах.

В этом деле я собаку съел, как и многие писатели. Когда мне нужно работать над задачей, а дедлайн уже близок, я буду делать всё что угодно — смотреть политические ток-шоу, подборки нокаутов МакГрегора, но не работать. В худшем случае я начинаю чувствовать себя слегка сумасшедшим: «Ты должен работать, — говорю я себе, — так чем же ты опять занят?!»
Читать дальше →
Total votes 36: ↑32 and ↓4+39
Comments97
1

Information

Rating
Does not participate
Registered
Activity