Как стать автором
Обновить
66
0
Сания Галимова @owlnagi

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

Отправить сообщение

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

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



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

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

Время на прочтение12 мин
Количество просмотров58K

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

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

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

Время на прочтение3 мин
Количество просмотров13K


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

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

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

Время на прочтение5 мин
Количество просмотров18K

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

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

Здесь можно скачать Jupyter Notebook с примерами из статьи.
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии2

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

Время на прочтение4 мин
Количество просмотров17K

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


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


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



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

Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии25

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

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

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

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

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

Время на прочтение7 мин
Количество просмотров32K
Аналогично 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. К сожалению, даже если посмотреть на лучшие из этой группы, с ними процесс поиска партнера превращается в пытку.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии56

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

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

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

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

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


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

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

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


Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии3

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

Время на прочтение31 мин
Количество просмотров154K
От А0 до B2 за год

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

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

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

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

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

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

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

Время на прочтение5 мин
Количество просмотров16K


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

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

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

В статье мы разберем основные ошибки использования IPv6 провайдерами.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии22

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

Время на прочтение8 мин
Количество просмотров5.9K


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

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

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

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

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

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


Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии44

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

Время на прочтение6 мин
Количество просмотров8.4K

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

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


Пример: Круговые загрузчики для Angular с bit.dev
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии8

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

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

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



Читать дальше →
Всего голосов 89: ↑86 и ↓3+83
Комментарии141

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

Время на прочтение4 мин
Количество просмотров19K
Многие считают сервисы Google полезными и удобными в использовании, однако у них есть как минимум одна важная особенность. Речь идет о постоянной слежке за пользователями, об интенсивном сборе и отправке данных об их активности.

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

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

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

Чтобы начать


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

M-x list-packages
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии3

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

Время на прочтение7 мин
Количество просмотров74K

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

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

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

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

Читать дальше →
Всего голосов 96: ↑88 и ↓8+80
Комментарии322

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

Время на прочтение9 мин
Количество просмотров11K
Или почему Shopify переходит на React Native.

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

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

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

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

Время на прочтение3 мин
Количество просмотров11K
Google будет снова редизайнить редизайн результатов поиска. Недавно на компанию обрушился шквал критики в связи с обновлением, после которого органические результаты стали практически неотличимы от рекламы.

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

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

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

Время на прочтение5 мин
Количество просмотров55K

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

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

Информация

В рейтинге
Не участвует
Зарегистрирована
Активность