Pull to refresh
1
0
Alexey Kolesnikov @CDK

Иностранный агент

Send message

Два с половиной странных правила английского языка, которых не учат в школе

Reading time6 min
Views148K

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

Но если с глаголами знакомы все, кто учит английский как второй, то некоторые необычные и странные правила в учебных программах упускаются. И многие студенты удивляются, когда впервые с ними сталкиваются в общении с носителями. О таких правилах сегодня и поговорим.

Читать далее
Total votes 61: ↑55 and ↓6+68
Comments188

[Личный опыт] Как просто переехать в Словакию и что там делать IT-специалисту на удаленке

Reading time10 min
Views37K

В Германии инженерам хорошо платят, в Португалии тепло, а в Финляндии много стартапов и низкая конкуренция. Но что IT-специалисту делать в Словакии? Стоит ли туда перебираться, и не получится ли, что переедешь в ту же Россию, только в Европе?


Поговорили об этом с Сергеем Федосеевым, который уже три года живет в Братиславе — учится и ведет там бизнес. Он рассказал, каково вообще живется в Словакии, как тут с работой и расходами и почему уехать сюда легче, чем в любую другую страну Европы.




Читать дальше →
Total votes 20: ↑18 and ↓2+21
Comments22

Настройка BGP для обхода блокировок, версия 3.1. И немного Q&A

Reading time8 min
Views75K

Близится кожаная свадьба Роскомнадзора с Телеграмом, именно 16 апреля 2018 года начался крестовый поход, ставший фактически символом уничтожения интернета в России, хотя в глобальной войне, начавшейся в 2012 году, он был всего лишь ярким эпизодом.

Ковровые блокировки в исполнении РКН стали причиной появления на свет множества различных сервисов, помогающих пользователям сети выживать под бомбежками. Одним из них стал antifilter.download, позволяющий получать списки находящихся под блокировками IP-адресов. Далее пользователи сервиса могли использовать полученную информацию по своему усмотрению. Одно из таких усмотрений было описано в статье Настройка BGP для обхода блокировок, версия 3, без VPS, которая стала достаточно популярной в сети и породила несколько сотен пользователей сервиса.

Однако "Tempora mutantur et nos mutamur in illis". За прошедшие три года сервис пережил Alpharacks-gate, похоронивший вместе с собой практически все донаты, упирание в технические ограничения как следствие роста количества пользователей, упирание в те же ограничения как следствие взрывного роста количества ip-адресов в списке РКН... Да что только не пережил. Каждое из этих изменений приводило к небольшому устареванию предыдущей статьи и когда неделю назад один из хабраюзеров предложил мне поправить ее под текущие реалии, я понял, что проще родить нового, чем отмыть этого написать новую версию, заодно и ответив на часто задаваемые вопросы. Результат - ниже.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments63

Собеседование в Яндекс: театр абсурда :/

Reading time14 min
Views519K

Привет, Хабр!

В прошлой статье меня знатно разбомбили в комментариях, где-то за дело, где-то я считаю, что нет. Так или иначе, я выжил, и у меня есть чем с вами поделиться >:)

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

Как вы думаете, что делают рекрутеры, когда видят "Alexandr, NOT OPEN FOR WORK"? Правильно, пишут "Алексей, рассматриваете вариант работать в X?" Я обычно игнорирую это, но тут мне предложили попытать счастья с Яндекс.Лавкой, и я не смог пройти мимо - интересно было, смогу ли я устроиться куда-нибудь, когда введут великий российский файерволл. К тому же за последние 3 года я проходил только два интервью, и мне показалось, что я не в теме, что нынче требуется индустрии. Блин, я оказался и вправду не в теме. И вы, скорей всего, тоже - об этом и статья.

Читать далее
Total votes 531: ↑504 and ↓27+610
Comments1270

FrontEnd разработка в Docker

Reading time5 min
Views27K

Когда приходит новый разработчик, то перед ним встает задача запустить окружение для разработки. И до недавнего времени - это часто становилось похожим на танцы с бубном. Поставь 10 разных пакетов определенных версий, а еще окажется что твой собственный pet-проект требует другие версии или это даже может быть другой проект в рамках той же работы. Каждый раз из этой ситуации специалист выходил по своему, но основной проблемой помимо временных затрат на эту конфигурацию - оставалось, то что работоспособность от разработчика к разработчику или runner не гарантировалась.

К счастью - эта проблема решена в современном мире разработки, если не полностью, то в большей мере. Нам на выручку пришел Docker.

Read more
Total votes 9: ↑9 and ↓0+9
Comments6

Как переехать в Польшу в условиях локдауна/карантина

Reading time7 min
Views10K
Update:
По рекомендации читателей небольшой апдейт. Эта статья может быть полезна жителям Республики Беларусь и тем, кто задумывается о переезде в Польшу в ближайшее время. Кому это не интересно, просто не тратьте свое время. Это очень специфический кейс, но для тех кому это важно это действительно больной вопрос.

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

Как свалить самому?


От 13 марта 2020 г. действуют новые правила пресечения внешней границы с Польшей. В первых пунктах этих правил указаны следующие лица, которым разрешено пересекать внешнюю Польскую границу: граждане Польши; иностранцы, которые являются супругами или детьми граждан Польши или находятся под их постоянной опекой; иностранцы с Картой поляка; главы дипломатических миссии; Скорее всего если вы читаете эту статью, то не один из пунктов вам не подходит. Если у вас нет карты Поляка, супруга или супруги в Польше. Но если почитать дальше, то есть пару интересных пунктов, которые вам должны подойти.
Total votes 19: ↑6 and ↓13-7
Comments10

Проблемы пептидных вакцин

Reading time5 min
Views27K

В последнее время на рынок было выпущено большое количество вакцин от COVID-19, причём впервые массово применяются векторные и мРНК-вакцины. Часть людей опасается генноинженерных технологий (поверьте, вы их уже не раз использовали, например, в белковых субъединичных вакцинах от гриппа и/или гепатита B) и решают подождать выхода на рынок вакцин, основанных на более традиционных (с их точки зрения) технологиях, как, например, цельноубитых вакцин.

Отдельной строкой идут пептидные вакцины, которые успешно маскируются под традиционные (белковые, субъединичные рекомбинантные). Почему это не совсем так и почему эти вакцины теоретически работать могут, но пока что в этом есть обоснованные сомнения? Именно заявленные попытки создания пептидных вакцин побудили написать эту статью: см., например, пост на Habr «Почему об этой вакцине молчат?» о пептидной вакцине Винфрида Штёкера, но в гораздо большей степени – развернувшаяся полемика вокруг вакцины ЭпиВакКорона производства «Вектора».

Читать далее
Total votes 40: ↑40 and ↓0+40
Comments88

[Личный опыт] «Повзрослевшая Россия»: тонкости переезда в Канаду

Reading time17 min
Views65K

В июле 2020 года, в разгар уже опостылевшей всем пандемии, ValCanada получил статус резидента Канады и переехал с семьёй в Северную Америку.


Откровенно и искренне он поделился с нами особенностями страны, про которые мало говорят в инструкциях о релокации: как получить максимум баллов для ПМЖ, каким IT-специалистам легче найти работу, как законно сэкономить на съёмном жилье (но, возможно, заработать невроз), почему при переезде стоит одеваться теплее, и как обстоят дела с новомодным дайверсити.


Впереди лонгрид!




Читать дальше →
Total votes 39: ↑33 and ↓6+34
Comments128

Еще один подход к построению архитектуры на фронте

Reading time11 min
Views9.1K

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

В рамках статьи я постараюсь просто рассмотреть и дать ответы на следующие темы:

что такое архитектура и почему она должна быть чистая;

как написать архитектуру, которая основана на сервисах;

пример построения архитектуры для приложения заметок;

интеграция архитектуры с реактом.

Читать далее
Total votes 5: ↑4 and ↓1+6
Comments20

Фреймворк-независимое браузерное SPA

Reading time23 min
Views13K

Учитывая насколько hype-driven является разработка софта в наше время, можно быть уверенным в том что через несколько лет будут существовать новые модные фреймворки для фронтенд разработки. В момент когда фреймворк на базе которого построено приложение выходит из моды — вы вынуждены либо поддерживать устаревшую (legacy) кодовую базу либо стартовать процесс перевода приложения на новый фреймворк.

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

Данная статья является примером построения SPA с использованием высокоуровневых принципов дизайна архитектуры. При этом конкретные библиотеки и фреймворки выбираются для удовлетворения ответственностей, определённых желаемой архитектурой.

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments42

Домашний DPI, или как бороться с провайдером его же методами

Reading time16 min
Views240K

Долгое время я терпел ограничения РосКомНадзора и соответствующие действия провайдеров по различным ограничениям доступа к сайтам - но с определённого момента устал, и начал думать как бы сделать так, чтобы было и удобно, и быстро, и при этом с минимумом заморочек после настройки... Хочу оговориться, что цель анонимизации не ставилась.

Вообще, эта проблема имеет несколько решений... Но я решил бороться с провайдером их же методом.

...При помощи NGINX!
Total votes 179: ↑178 and ↓1+244
Comments187

Реализация архитектуры Redux на MobX. Часть 2: «Пример на MobX»

Reading time12 min
Views8.3K

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

Я много раз читал, как кто-то попробовал MobX, у него код получился запутанным с не контролируемыми изменениями, после чего он продолжил писать на Redux. Для MobX нет рекомендованной архитектуры. Но при использовании и соблюдении в MobX строгой и однообразной (имеется ввиду одинаковой в различных участках проекта) архитектуры, можно получить понятный код с контролируемыми изменениями в сколь угодно большом проекте. Я опишу один из вариантов, как этого добиться.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments55

5 HTML-трюков, о которых никто не говорит

Reading time5 min
Views28K

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

Несмотря на то что многие разработчики ежедневно используют HTML, они не пытаются оттачивать свой навык и поэтому не применяют некоторые из редко обсуждаемых фичей HTML. Специально к старту нового потока курса по веб-разработке, делимся материалом в котором приведены 5 тегов и атрибутов HTML, которые вам следует знать.

Читать далее
Total votes 36: ↑21 and ↓15+9
Comments17

Реализация архитектуры Redux на MobX. Часть 1: «Проблемные места Redux»

Reading time11 min
Views11K

Эта часть статьи будет об осмыслении составляющих Redux. Так ли они необходимы, что является их аналогом. Также будет предложена более удобная альтернатива хука useReducer.

На самом деле, я не буду воспроизводить Redux. Вместо этого, в следующей части будет описано, как спроектировать более удобную архитектуру с использованием MobX. Следующая часть в основном для тех, у кого проекты на MobX получались запутанными, с неконтролируемыми изменениями.

В этой части статьи я хочу показать, что:

— редьюсеры - это аналог обычных чистых функции для получения нового состояния.

селекторы - это аналоги обычных функций с мемоизацией, которые возвращают данные.

— dispatch + action + action creators - это аналог обычных вызовов функций, и разбиение на dispatch, action, action creators является зачастую ненужным и используются не к месту.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments30

Никогда такого не было и вот опять. Почему нужно использовать self-hosted VPN. Релиз Amnezia

Reading time11 min
Views157K
Вот и пришло время для релиза VPN-клиента, родившегося благодаря хакатону DemHack, и выращенного при поддержке РосКомСвободы, PrivacyAccelerator и Теплицы социальных технологий.

Спустя полгода с того момента, как идея была впервые озвучена, мы презентуем готовый продукт — бесплатный опенсорсный клиент для self-hosted VPN, с помощью которого вы сможете установить VPN на свой сервер в несколько кликов.

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

image
Читать дальше →
Total votes 93: ↑91 and ↓2+126
Comments168

Хорошо зарекомендовавший себя вариант повторного использования кода компонентов, малоизвестный в веб-разработке

Reading time18 min
Views4K

В этой статье я покажу, как для React-компонентов реализовать один из подходов на основе сущностей и их составляющих. Описываемый подход используется для решения той же проблемы, что HOC и Custom hooks – повторно использовать код между множеством однотипных объектов/функций и разбивать сложные объекты (такие как компоненты в веб-разработке) на более простые составляющие.

Даже если этот подход вам не интересен, как минимум вы увидите, как можно переделать структуру функциональных компоненты и компонентов-классов под свои нужды. Узнаете нестандартные приемы, которые можно использовать при разработке компонентов.
Те, кто пишет компоненты-классы, узнает, как повторно использовать код более эффективным способом, чем HOC, не создавая лишние компоненты-обертки.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments2

Техники повторного использования кода и разбиения сложных объектов на составные

Reading time19 min
Views12K

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

Будет рассказано о декораторах, стратегиях, Entity Component, Entity Component System, деревьях, State Machine, частично о хранении хуков в React.

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

Читать далее
Total votes 5: ↑3 and ↓2+7
Comments0

HowToCode — Адаптация системного подхода к разработке для React и TypeScript

Reading time27 min
Views9.2K

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

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

Кардинальным образом ситуация изменилась после того, как я прошел курс HowToCode.  В курсе описан системный и, как всё гениальное, простой и красивый подход к разработке, который сводит воедино анализ, проектирование, документацию, тестирование и разработку кода. Весь курс построен на использовании функциональной парадигмы и языка Scheme (диалекта Lisp), тем не менее, рекомендации вполне применимы и для других языков, а для JavaScript и TypeScript, к которым я постарался их адаптировать, так и вообще подходят отлично.

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments15

Цензура в интернете. Когда базовых мер недостаточно — I2P

Reading time8 min
Views32K

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

То, что изначально планировалось как небольшое дополнение к предыдущей статье с посылом "мы научились использовать прокси -- теперь добавим в их список шлюз i2p", выросло, словно собачка во время пути

Объём статьи не означает, что всё так сложно. Я подробно рассказал про несколько вариантов настройки. А какой выбрать -- решать вам

Поехали
Total votes 34: ↑32 and ↓2+42
Comments93

Изучаем английский с помощью дейт-симов. Романсим цифровых девушек и прокачиваем лексику

Reading time6 min
Views17K

Мы продолжаем исследовать интересные инструменты, которые помогают прокачивать английский язык. Сегодня это симуляторы свиданий.

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

У симуляторов свиданий есть пара крутых преимуществ перед остальными жанрами игр. С них и начнем.

Читать далее
Total votes 19: ↑18 and ↓1+23
Comments12

Information

Rating
Does not participate
Registered
Activity

Specialization

Frontend Developer, Application Developer
Senior