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

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

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

Easy English с левой задней ноги

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров6.6K

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

Меня зовут Дмитрий и я многократный чемпион по бесплодным попыткам освоить английский язык. Гениальные Д.Петров, С.Дружбинский и десятки талантливых блогеров — не приблизили меня к мечте. Замечательные Duolingo, Memrise, Anki и прочие, помогающие миллионам учащихся — на мне обломались. Два репетитора вернули деньги и рыдая, умоляли больше не приходить. На запрос «таблетка для английского — быстро, недорого и желательно во сне» Google до сих пор недоуменно пожимает плечами.

В конце концов мне пришлось признать, что «God helps those who help themselves», и, собрав в кулак свою лень и немного VSC, я за сравнительно небольшой срок закрыл этот гештальт, ну или почти закрыл.

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

Под катом много скриншотов и незримое «IMHO» перед каждым утвердительным предложением. Скриншоты взяты из моей программы «5 фраз» — предлагаю закрыть глаза на самопиар, а сосредоточиться на подходах.

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

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Уровень сложностиСредний
Время на прочтение45 мин
Количество просмотров136K

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

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

Читать далее
Всего голосов 506: ↑498 и ↓8+490
Комментарии351

Как стать VPN провайдером за один вечер

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров59K

Рассказываю о своём опыте использования Xray (с протоколом VLESS-Reality) - одного из лучших решений для преодоления интернет-цензуры на сегодняшний день. Я потратил много времени на то, чтобы разобраться с ним - теперь вам достаточно одного вечера, чтобы поднять свой сервер на несколько десятков пользователей, c xray на борту!

скрипт ex.sh для простой настройки и установки; есть поддержка Docker

легко добавлять пользователей; клиентские конфиги в форме url-ссылок

правильные конфиги: скрытность + удобство

трафик популярных российских сайтов идёт напрямую, a не через сервер

для xray есть приложения под все популярные ОС - делюсь инструкциями

только https, нет udp; торренты через сервер блокируются по возможности

мой проект на гитхабе: easy-xray

Интересны детали? Добро пожаловать под кат
Всего голосов 71: ↑70 и ↓1+69
Комментарии142

Скрытые возможности элемента <input>

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров17K

Элемент <input> в HTML самый интересный.

Большинство его собратьев вне зависимости от своих атрибутов ведут себя одинаково. При этом атрибут type элемента <input> может принимать 22 разных значения, которые не только меняют его поведение, но и влияют на внешний вид (зачастую в ущерб стилистике).

Элемент <input> отвечает за всё, начиная с текстового ввода и чекбоксов, заканчивая переключателями и кнопкой для сброса всех полей в форме. В этой статье я опишу не только различные типы <input>, но и сопутствующие атрибуты, о которых вы могли не знать, и которые делают этот элемент более удобным и применимым в различных ситуациях. Приступим!
Читать дальше →
Всего голосов 103: ↑102 и ↓1+101
Комментарии22

Налоговый и валютный резидент РФ —последствия приобретения и утраты статусов — полный FAQ с примерами

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

Друзья, всех приветствую и предлагаю ознакомиться, как мне кажется с довольно полным FAQ по теме налогового и валютного резиденства РФ. По ходу материала есть некоторые примеры, а внизу вопросы & ответы.

Читать далее
Всего голосов 51: ↑46 и ↓5+41
Комментарии47

Приручаем многопоточность в Node.js (часть 4/5: координатор против синхронного кода)

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

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

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

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

Читать далее
Всего голосов 17: ↑15 и ↓2+13
Комментарии12

Как c помощью Аналитики набрать миллионы подписчиков на Youtube

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

«Никто ничего не знает»  - знаменитая цитата Уильяма Голдмана, сказанная в 80х. Имелась ввиду неспособность Голивудских продюсеров предугадывать успех или провал фильма в прокате. Сам Голдман - дважды обладатель Оскара и один из самых великих сценаристов в истории кинематографа. Короче, ему можно верить. 

С тех пор прошло 40 лет. Появился интернет. В Интернете появилось видео. Однако, в отличие от фильма в кинотеатрах, успех ролика в интернете можно предугадать с большой вероятностью. 

Особенно, успех ролика на Ютуб. 

Почти каждый автор YouTube канала знает, что такое YouTube Аналитика. Но многие не умеют ей пользоваться. Или не хотят. 

Читать далее
Всего голосов 40: ↑31 и ↓9+22
Комментарии16

Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации

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

Интро: почему я написал эту статью


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



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


Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.


Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии12

Разработчик в стране Serverless: готовим чемоданчик serverless разработчика (Часть 5 Заключительная)

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

В предыдущих частях я сделал приложения, которое работает с БД, GitHub API. Все компоненты разворачиваются при помощи AWS SAM. Можно запускать реализованные функции локально. Все функции собраны воедино в одно API:

Первые шаги. Первая лямбда (Часть 1)

Разворачиваем БД (Часть 2)

Как подружиться с БД (Часть 3)

Создаем REST API (Часть 4)

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

Уже изучено достаточно много, чтобы начинать собирать свой чемоданчик must have инструментов для serverless разработки. В этой части я соберу свой чемоданчик, а вы оставляйте в комментариях свои, будет интересно.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии22

Из таксиста в дата саентисты (перекатиться в 37 лет). Часть 2

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

Часть 1. 4 месяца борьбы за место DS джуна

ТАКСИ

- "А у вас тоже свой бизнес, а такси так, для души?" - пошутил пассажир на заднем сидении.

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

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

- "Нет, к счастью, никакого бизнеса у меня нет."

На самом деле, историй из прошлого про бизнес у меня более, чем достаточно. Но это закрытая страница. Мог бы завести разговор, что не так давно решил рискнуть и начал учиться Data Science. Но не стал. За время поездки я вряд ли объясню обычному человеку, что значат эти два слова. Да, честно говоря, тогда и сам еще не до конца понимал.

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

Читать далее
Всего голосов 16: ↑13 и ↓3+10
Комментарии20

Как найти удаленную работу в зарубежной компании. 10 шагов

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


Каждый год Оксфордский словарь английского языка выбирает «Слово года». Но в 2020-м что-то пошло не так. Издательство Оксфордского университета описало 2020-й как «год, который лишил нас дара речи», и сказало, что к нему невозможно подобрать правильное слово.


Но на наш взгляд, такое слово всё-таки есть. С прошлого марта в мире резко возросло использование слова «удаленно». Большинство предприятий отошли от традиционной модели офисной работы и стали пытаться организовать труд сотрудников из дома. Для разработчиков из СНГ это прекрасная возможность начать работу в лучших мировых компаниях. Зарплаты за рубежом выше, а возможностей сейчас стало больше, чем когда-либо прежде.


Мы постоянно исследуем рынок. Публикуем сотни вакансий ежедневно. И сейчас 40% выручки получаем от иностранных компаний, которые в основном нанимают программистов для удаленной работы.


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

Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии16

Липкие сессии для самых маленьких [Часть 1]

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

Липкие сессии (Sticky-session) — это особый вид балансировки нагрузки, при которой трафик поступает на один определенный сервер группы. Как правило, перед группой серверов находится балансировщик нагрузки (Nginx, HAProxy), который и устанавливает правила распределения трафика на доступные сервера.

В первой части цикла мы посмотрим как создавать липкие сессии с помощью Nginx. Во второй же части разберем создание подобной балансировки средствами Kubernetes.

Вляпаться
Всего голосов 29: ↑29 и ↓0+29
Комментарии10

С чего начать изучение Flutter в 2021 году

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

Как и многие мобильные разработчики, мы с нетерпением ждали презентации Flutter и теперь хотим поделиться с читателями Хабра переводом статьи Tadas Petra о том, как можно выстроить свое обучение, если вы хотите познакомиться с Flutter и кроссплатформенными приложениями в 2021 году. Кстати, мы подключились к созданию курса Flutter, и об этом тоже расскажем в конце статьи. Приглашаем прочитать или посмотреть видеоверсию!

2021 год обещает быть очень важным для Flutter. Комьюнити разработчиков продолжает стремительно расти, а 3 марта 2021 года состоялась презентация Flutter Engage. Это делает потенциал Flutter поистине огромным.

Однако, чем более популярным становится фреймворк, тем больше людей хотят его “пощупать” и иногда не знают, с чего же, собственно, начать? В данной статье автор постарался создать roadmap и описать несколько ресурсов, которые могут быть полезны для вас. 

Читать далее
Всего голосов 16: ↑11 и ↓5+6
Комментарии2

Монорепо: typescpript & workspaces npm. Настройка и публикация в npm

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

Существуют разные способы создания монорепозитория в node.js, есть разные библиотеки для этих целей: yarn workspaces, lerna и так далее. Но сегодня я хочу коротко рассказать о монорепозитории на typescript, используя только npm.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии3

Как мы ржавели. История внедрения и обучения

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

Все говорили – переходи на rust! Начинай пользоваться самым-самым языком, который самый любимый язык на stackoverflow и всё такое.

Я тяжело вздохнул и огляделся. Ну опять двадцать-пять. Ладно, давайте разбираться, как правильно покрывать всё ржавчиной.

Профессионально я программирую уже 17 лет. В далёкие-предалёкие времена я начал изучать программирование с x86 Assembly. Такой жестокий подход к изучению компьютера дал мне глубокое понимание того как работает процессор и что делают другие языки программирования. Учить новые языки для меня никогда не было проблемой. Я их просто учил. C, C++, шарпы, ГО, тысячи разных скриптов и фреймворков. Чего уж там, ещё один язык, можно и выучить.

Ага.

Только вот не с этой ржавой развалюхой. Я просидел две недели над официальным руководством, пялился в VSCode и не мог выдавить из себя больше чем fn main() {}. Ну какого же чёрта? Я просто закрыл глаза, открыл руководство на рандомной странице и начал его читать. И прикол в том, что я понял о чём там говориться. И тут до меня дошло… Руководство написано наизнанку. Начало и конец ничуть не лучше чем в Мементо Кристофера Нолана. Они как-то умудрились запутать в общем-то нормальное руководство. После этого всё пошло получше.

Ржавые шестерёнки заскрипели и начали крутиться. Программа пошла-поехала. Если хотите знать как я внедрил rust в продакшин, как я ему научился и что из этого вышло – добро пожаловать под кат. Реальные люди, коммиты, примеры и никаких todo-list и хеллоу-ворлдов.

Ржаветь так ржаветь.
Всего голосов 142: ↑138 и ↓4+134
Комментарии315

Тариф «100к+», или как вельми зело огорчить спамера

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

Уже не впервые сталкиваюсь, что читатели Хабра не все поголовно умеют правильно бороться со спамом. И я не про SpamAssasin, «Ктозвонил» и прочие приложения для фильтрации информационного мусора, а про несложную, но весьма доставляющую всем сторонам процесса подачу жалобы в ФАС.

Давайте расскажу, как буквально за 15 минут не отрываясь от любимого компьютера подключить спамеру задораздирающий тариф линейки «Административный»: «Административный 100к», «Административный 150к» и вплоть до «Административный 500к» – как повезет.
Читать дальше →
Всего голосов 272: ↑268 и ↓4+264
Комментарии259

Опыт использования MobX в большом приложении

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


Всем привет!


Меня зовут Сергей, я работаю в команде разработки приложений контроля качества Tinkoff.
Поделюсь опытом нашей команды в использовании библиотеки Mobx и расскажу о деталях работы с ней в связке с React. В этой статье не будет описания базовых концепций. Я расскажу о вещах, которые мы отметили для себя за время разработки и считаем полезными для всех, кто решил использовать Mobx в своем проекте.


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

Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии38

Тренируемся дома: отжимания по программе Пола Уэйда

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

image


Представляю программу Тюремных Тренировок Пола Уэйда. Начнём с серии классических упражнений со своим весом для верхней части тела — отжиманиям.


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


Серия сосредоточена на цепочке из 10 последовательных упражнений. Когда освоите одно упражнение, то перейдёте к следующему и так далее…
Мы называем базовые упражнения как «10 уровней», и достигнув 10 уровня, вы станете сильнейшим настолько, насколько это возможно для человека в этих движениях. По этой причине, последняя ступень именуется «уровнем мастера». Вам станет понятнее, как это работает, если дополнительно ознакомитесь с книгой Тренировочная Зона (Издательство Питер).

Читать дальше →
Всего голосов 157: ↑137 и ↓20+117
Комментарии198

Typescript: Объединение типов в глубину

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

Пошаговое руководство о том, как в TypeScript написать такой generic-тип, который рекурсивно объединяет произвольные вложенные key-value структуры данных. Это может оказаться несколько более сложной задачей, чем вы думаете.

Подробнее
Всего голосов 13: ↑13 и ↓0+13
Комментарии28

Odyssey roadmap: что ещё мы хотим от пулера соединений. Андрей Бородин (2019)

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


В докладе Андрей Бородин расскажет, как они учли опыт масштабирования PgBouncer при проектировании пулера соединений Odyssey, как выкатывали его в production. Кроме того, обсудим какие функции пулера хотелось бы видеть в новых версиях: нам важно не только закрывать свои потребности, но развивать сообщество пользователей Одиссея.

Всего голосов 18: ↑17 и ↓1+16
Комментарии9

Информация

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