Pull to refresh
0
0
Александр Полищук @aldaFy

Full stack developer

Send message

Подробный обзор работы и жизни в Ванкувере (Британская Колумбия, Канада)

Level of difficultyEasy
Reading time46 min
Views30K

Здравствуйте, меня зовут Александр Зеленин, и я программист. В 2020 году получил приглашение от AWS Cloudfront переехать в Ванкувер, Канаду.


В этой статье я рассмотрю все ключевые темы проживания в Ванкувере (Британская Колумбия, Канада): от вакансий и интервью до получения резидентства.


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


Значительная часть касается Ванкувера в Британской Колумбии. Я посещал другие города и провинции как турист, поэтому не могу написать о жизни там, хотя по рассказам друзей в целом ситуация везде очень похожа (за исключением климата).

Как там, в Ванкувере?
Total votes 131: ↑127 and ↓4+123
Comments147

Как перенести на TypeScript большую кодовую базу React UI-компонентов

Reading time12 min
Views13K

Привет! Меня зовут Иван Греков, я работаю UI-разработчиком в frontend-команде Badoo. Главные задачи нашей команды — создание новых и поддержка существующих пользовательских интерфейсов для сайтов и приложений Badoo и Bumble. 

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

Читать далее
Total votes 39: ↑38 and ↓1+37
Comments15

Защита проекта VBA в MS Excel

Reading time5 min
Views33K
Всем привет! Я обычный пользователь MS Excel. Не являющийся профессиональным программистом, но накопивший достаточно опыта, для установки и обхода защиты проектов VBA.

Дисклеймер:

В данной статье рассмотрены виды защиты проектов VBA, от несанкционированного доступа. Их сильные и слабые стороны – ранжирование.

Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.

Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты. 

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


Главная панель Надстройки Macro Tools VBA
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments8

Обновление версий PostgreSQL, или Как не уронить базу при update?

Reading time16 min
Views40K
Мы решили поделиться памяткой (чеклистом) нашей команды по обновлению PostgreSQL. В ней мы взяли за основу фичи, представленные в релизе официальной документации PostgreSQL, провели анализ на предмет нарушения совместимости и кому стоит обратить внимание на обновленную функциональность.

Читать дальше →
Total votes 72: ↑61 and ↓11+50
Comments19

Собеседование наоборот: вопросы соискателя к компании

Reading time6 min
Views75K
Всем привет! Хочу очередной раз поднять тему про найм. Только я собираюсь поговорить об этом с точки зрения кандидата, а не работодателя. Ведь собеседование, вопреки многим стереотипам, процесс двусторонний — вопросы может задавать не только интервьюер, но и сам соискатель. За прошлый год я провёл порядочное количество собеседований, и абсолютное большинство кандидатов огорчило меня отсутствием вопросов о компании, всего 5 человек стали меня расспрашивать о работе.

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

image
Читать дальше →
Total votes 137: ↑131 and ↓6+125
Comments130

PyTrace — Time Travel Debugger для Python

Reading time2 min
Views6.9K
Мне часто приходится сталкиваться с отладкой.

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

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

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

Возможно ли лучше понимать запутанный код? А что, если мы сможем понимать такой код, быстрее чем тот, кто его написал?

Встречайте,

PyTrace — это трейсер с возможностями Time-Travel Debugging-а

image
Total votes 29: ↑29 and ↓0+29
Comments14

PostgreSQL Antipatterns: насколько глубока кроличья нора? пробежимся по иерархии

Reading time6 min
Views8K
В сложных ERP-системах многие сущности имеют иерархическую природу, когда однородные объекты выстраиваются в дерево отношений «предок — потомок» — это и организационная структура предприятия (все эти филиалы, отделы и рабочие группы), и каталог товаров, и участки работ, и география точек продаж,…



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

Существует много способов хранения такого дерева в СУБД, но мы сегодня остановимся только на одном варианте:

CREATE TABLE hier(
  id
    integer
      PRIMARY KEY
, pid
    integer
      REFERENCES hier
, data
    json
);

CREATE INDEX ON hier(pid); -- не забываем, что FK не подразумевает автосоздание индекса, в отличие от PK

И пока вы всматриваетесь в глубину иерархии, она терпеливо ждет, насколько же [не]эффективными окажутся ваши «наивные» способы работы с такой структурой.


Давайте разберем типовые возникающие задачи, их реализацию на SQL и попробуем улучшить их производительность.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments20

Безопасность REST API от А до ПИ

Reading time17 min
Views119K

Введение


Умение реализовать грамотное REST API — полезный навык в наше время, т.к. все больше сервисов предоставляют свои возможности с помощью API. Но разработка REST API не ограничивается реализацией HTTP запросов в определенном стиле и формированием ответов в соответствии со спецификацией. Задача обеспечения безопасности REST API не так очевидна, как, например, обеспечение безопасности баз данных, но ее необходимость не менее важна.
В настоящее время многие онлайн системы с помощью API передают приватные данные пользователей, такие как медицинские или финансовые. Текущая же ситуация с безопасностью в веб-приложениях весьма печальна: по данным Comnews порядка 70% содержат кри­тичес­кие уязвимости. Поэтому всем, кто участвует в проектировании, реализации и тестировании онлайн систем, важно иметь общую картину по существующим угрозам и способам обеспечения безопасности как всей системы, так и используемого REST API.

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

image
Читать дальше →
Total votes 52: ↑52 and ↓0+52
Comments22

5 интересных JavaScript-находок, сделанных в исходном коде Vue

Reading time5 min
Views17K
Чтение исходного кода известных фреймворков может хорошо помочь программисту в улучшении его профессиональных навыков. Автор статьи, перевод которой мы сегодня публикуем, недавно анализировал код vue2.x. Он нашёл в этом коде некоторые интересные JavaScript-идеи, которыми решил поделиться со всеми желающими.


Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments32

Знай сложности алгоритмов

Reading time2 min
Views988K
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Total votes 312: ↑296 and ↓16+280
Comments99

10 отличных Github репозиториев для разработчиков (часть 2)

Reading time4 min
Views16K

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



Как и в прошлом случае, перевод будет довольно вольным: я опустил предисловие и эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, поехали.
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments5

PostgreSQL: Серверное программирование на «человеческом» языке (PL/Perl, PL/Python, PL/v8)

Reading time25 min
Views19K
Postgres знаменит своей расширяемостью, что относится и к поддержке процедурных языков (PL). Никто не может похвастаться языком списком языков такой длины, а потенциально этот список и вовсе не ограничен: для того, чтобы подключить язык к серверу, не требуется сверхусилий. Можно даже придумать собственный язык и сделать его серверным процедурным языком. Переделок в СУБД это не потребует. Как и многое другое, такая расширяемость была заложена с самого начала в архитектуру Postgres.

Можно и иногда нужно писать PL-языки под задачи. А еще лучше, если кто-то напишет такой фреймворк для написания языков, чтобы можно было писать не на C, а выбрать более комфортный для разработчика языков язык. Как с FDW, которые можно писать на Python.

Эта статья написана на основе ряда докладов и мастер-классов по этой теме, делавшихся автором на конференциях PgConf.Russia 2019, PgConf.Russia 2018 и DevConf 2017.

Речь пойдет не об экзотике, а о самых распространённых процедурных языках PL/Perl, PL/Python и PL/V8 (то есть JavaScript) и сравнении их возможностей с PL/pgSQL.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments5

Дорога в ад JavaScript-зависимостей

Reading time8 min
Views26K
Каждый JavaScript-проект начинается с благих намерений, заключающихся в том, что его создатели обещают себе не использовать слишком много NPM-пакетов в ходе его разработки. Но даже если разработчики прилагают немалые усилия к тому, чтобы сдержать это обещание, NPM-пакеты постепенно проникают в их проекты. Размер файла package.json со временем растёт. А с package-lock.json после установки зависимостей происходит настоящий ужас, выражающийся в добавлениях и удалениях пакетов, особенно заметных при очередном PR…



«Всё нормально», — говорит тимлид. Остальные члены команды согласно кивают. А что ещё делать-то? Нам всем хорошо от того, что экосистема JavaScript жива и здорова. Нам не надо каждый раз изобретать колесо и пытаться решать задачи, уже решённые сообществом опенсорса.

Предположим, вы собираетесь сделать блог и хотите воспользоваться Gatsby.js. Попытайтесь добавить этот генератор сайтов в зависимости своего проекта. А теперь — принимайте поздравления. Только что в вашем проекте оказалось 19000 дополнительных зависимостей. Это нормально? Насколько сложным может стать дерево JavaScript-зависимостей? Как дерево зависимостей превращается в ад? Давайте с этим разберёмся.
Читать дальше →
Total votes 54: ↑50 and ↓4+46
Comments53

56 проектов на Python с открытым исходным кодом

Reading time13 min
Views98K
image

1. Flask


Это микро-фреймворк, написанный на Python. Он не имеет валидаций для форм и уровня абстракции базы данных, но позволяет вам использовать сторонние библиотеки для общих функций. И именно поэтому это микро-фреймворк. Flask предназначен для простого и быстрого создания приложений, а также является масштабируемым и легким. Он основан на проектах Werkzeug и Jinja2. Вы можете узнать больше о нем в последней статье DataFlair о Python Flask.

2. Keras


Keras — нейросетевая библиотека с открытым исходным кодом, написанная на Python. Она удобна для пользователя, модульная и расширяемая, а так же может работать поверх TensorFlow, Theano, PlaidML или Microsoft Cognitive Toolkit (CNTK). В Keras есть все: шаблоны, целевые и передаточные функции, оптимизаторы и многое другое. Он также поддерживает сверточные и рекуррентные нейронные сети.

Работа над последним проектом с открытым исходным кодом на основе Keras — Классификация рака молочной железы.
Читать дальше →
Total votes 37: ↑30 and ↓7+23
Comments21

Tоп-10: лучшие доклады HolyJS 2019 Piter

Reading time5 min
Views9.1K


Этой весной прошла HolyJS 2019 Piter — большая конференция для JavaScript-разработчиков. Вместе с программным комитетом конференции мы составили для вас список лучших докладов, посвящённых следующим темам:


  • Алгоритмы на графах;
  • Протокол Chrome DevTools и Puppeteer;
  • Статические типизаторы;
  • CI/CD;
  • Миграции: с Backbone на Polymer, с Polymer на Angular.js;
  • Большие данные на Node.js в serverless-архитектуре;
  • SEO с точки зрения разработчиков Google Search;
  • GraphQL;
  • Продвижение опенсорс-проектов.

Под катом всё это структурировано следующим образом:


  • Видеоролик на YouTube;
  • Страница доклада с полным описанием на сайте конференции;
  • Ссылка на слайды или специальный сайт доклада (если они есть).

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

Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments0

Я провел сто собеседований, отказал сотне людей — и только потом научился собеседовать

Reading time7 min
Views113K
image

Не желал бы я вам попасть ко мне на собеседование года два назад. Я провел их около сотни, и за все время взял может человек четырех. Не знаю почему, но эйчары считали, что это круто. Слава строгого интервьюера шла впереди меня. Знакомые звали меня собеседовать для чужих команд, и даже для чужих компаний, о которых вы слышите каждый день. И везде — не проходил никто.
Читать дальше →
Total votes 253: ↑228 and ↓25+203
Comments431

Применение машинного обучения и Data Science в промышленности

Reading time22 min
Views67K
Хабр, привет. Перевел пост, который идёт строго (!) в закладки и передаётся коллегам. Он со списком блокнотов и библиотек ML и Data Science для разных отраслей промышленности. Все коды на Python, и размещены на GitHub. Они будут полезны как для расширения кругозора, так и для запуска своего интересного стартапа.

image

Отмечу, что если среди читателей есть желающие помочь, и добавить в любую из подотраслей подходящий проект, пожалуйста, свяжитесь со мной. Я их добавлю в список. Итак, давайте начнём изучение списка.
Читать дальше →
Total votes 77: ↑71 and ↓6+65
Comments13

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity