Как стать автором
Обновить

Компания VDSina.ru временно не ведёт блог на Хабре

Сначала показывать

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

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

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

Тем не менее, многие со мной могут не согласится, да и шрифты, важны они лично для меня или нет, регулярно используются многими другими разработчиками, и часто у них просто нет выбора. Давайте посмотрим, что можно сделать, чтобы и в скорости сайта не потерять, и дизайнеров довольными оставить.
Читать дальше →

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

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

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

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

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

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

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


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

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

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


Читать дальше →

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

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

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

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

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

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

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

Конечно, я всё ещё очень далёк от уровня носителя. У меня точно есть слабые места, и я не могу выражаться на французском так же хорошо, как на английском. Тем не менее, я очень даже доволен своим уровнем владения французским и думаю, что многие изучающие язык тоже были бы довольны.
Читать дальше →

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

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


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

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

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

В статье мы разберем основные ошибки использования IPv6 провайдерами.
Читать дальше →

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

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


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

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

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

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

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

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


Читать дальше →

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

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

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

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


Пример: Круговые загрузчики для Angular с bit.dev
Читать дальше →

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

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

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



Читать дальше →

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

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

Далеко не все пользователи представляют, какого рода данные собирает компания, и в каких объемах. Но многие принципиально относятся к своей конфиденциальности, а некоторые готовы усмотреть нарушение тайны частной жизни даже в отправке лога с чисто техническими сведениями. Однако иногда на путь борьбы с Google выходят по-настоящему продвинутые пользователи.
Читать дальше →

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

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

Чтобы начать


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

M-x list-packages
Читать дальше →

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

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

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

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

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

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

Читать дальше →

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

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

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

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

Так почему же мы решили перейти на React Native? И почему именно сейчас? Что теперь будет с нашей нативной мобильной разработкой? Быстро и коротко ответить на эти вопросы не получится. Начнем с предыстории.
Читать дальше →

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

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

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

Это можно назвать довольно злостным решением (или, как минимум, неэтичным) со стороны компании, чьей мантрой в прошлом было «не быть злом» (которую они выбросили из своего Code of conduct в 2018)
Читать дальше →

Ближайшие события

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

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

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

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

Чем меня разочаровал Typescript и стоит ли он того?

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


Прежде чем начать, хочу упомянуть, что я фанат TypeScript. Это мой основной язык программирования для фронтенд проектов на React и для любой бекенд работы, которую я выполняю в Node. Я полностью за Typescript, но есть моменты, которые меня беспокоят и про которые я и хотел рассказать этой статьей.
Читать дальше →

Стартап на триллион долларов или как родились большинство успешных компаний Долины

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


Спустя шестьдесят лет после основания в 1957 году, Fairchild Semiconductor Corporation назвали первым триллион-долларовым стартапом. Благодаря беспрецедентной серии технических, культурных и бизнес-инноваций, компания «породила» сотни предприятий, которые утвердили Кремниевую долину в статусе мирового центра предпринимательства и технологического лидерства. Хоть рыночная оценка компании никогда и не превышала 2,5 миллиарда долларов, общая стоимость её выжившего «потомства» оценивается более чем в 2 триллиона долларов.


Экспозиция в лобби Музея компьютерной истории: «семейное древо» шести поколений крупнейших венчурных вложений Fairchild. Фото © Douglas Fairbairn Photography

Итоги: 9 главных технологических прорывов 2019 года

Время на прочтение10 мин
Количество просмотров20K
На связи Александр Чистяков, я евангелист vdsina.ru и расскажу про 9 лучших технологических событий 2019 года.

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

Я не сортировал события в списке по значимости или вау-эффекту, потому что их значимость будет понятна лет через десять, а вау-эффект слишком краткосрочен, просто постарался сделать эту историю связной.
Читать дальше →

DDoS-атака через социальную инженерию

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


TL;DR Атакующий подменяет source ip на адрес вашего сервера и триггерит автоматические абузы. В результате клиента банят на хостинге за вредоносную активность, которой не было.

Комментарий от vdsina.ru:
Эта статья написана нашим клиентом, который перешёл к нам от крупного хостера после DDoS-атаки и любезно согласился поделиться этой историей.

Расскажу про удивительно коварный способ DDoS-атак, с которым я раньше не сталкивался. Коварство заключается в том, что на сам сервер жертвы не выполняется никакой атаки. Вместо этого, злоумышленник провоцирует срабатывание сторонних систем обнаружения атак, заставляя генерировать совершенно настоящие жалобы (в простонародье «абузы») на ваш сервер.

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

В статье подробно разбирается этот вид атаки в реальном кейсе.
Читать дальше →

Настоящее суммирование интернет-каналов — OpenMPTCPRouter

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


Можно ли объединить несколько интернет-каналов в один? Вокруг этой темы куча заблуждений и мифов, даже сетевые инженеры с опытом часто не знают о том, что это возможно. В большинстве случаев, объединением каналов ошибочно называют балансировку на уровне NAT или failover. Но настоящее суммирование позволяет пустить одно единственное TCP-подключение одновременно по всем интернет-каналам, например видеотрансляцию так, чтобы при обрыве любого из интернет-каналов вещание не прерывалось.

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