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

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

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

Как подготовиться к собеседованию в Google и не пройти его. Дважды

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


Заголовок статьи звучит как epic fail, но на самом деле все не так однозначно. Да и в общем и целом эта история закончилась весьма позитивно, хоть и не в Google. Но это уже тема для другой статьи. В этой же статье я расскажу о трех вещах: каким образом проходил мой процесс подготовки, каким образом проходили интервью в Google и почему же на мой взгляд все не так однозначно, как может показаться.
Кому интересно, прошу под кат.
Всего голосов 178: ↑174 и ↓4+170
Комментарии457

15 советов по работе с Github

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

Я 10 лет разрабатываю ПО, участвовал в нескольких open source-проектах и в многочисленных не-open source-проектах, работал в больших и малых командах, и везде мы использовали Github в качестве репозитория версионирования.

За это время я перепробовал разные рабочие процессы, и хочу поделиться советами, как построить эффективный и прагматичный рабочий процесс по созданию и сопровождению качественного ПО, который можно применять в любом проекте.
Читать дальше →
Всего голосов 56: ↑51 и ↓5+46
Комментарии25

Математика, которой я пользуюсь

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


Недавно на одном онлайн-форуме был задан вопрос: насколько востребована математика в условиях работы реального программиста, как часто он пользуется ей и каким ее областями? И вот мой ответ.

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

Далее, я часто занимаюсь анализом трудоемкости алгоритмов. Размеры наборов данных, подвергаемые обработке в наши дни, просто колоссальны. В 2010 году на конференции Techonomy Эрик Шмидт сказал, что объем данных, создаваемых сегодня человечеством всего за два дня, равен объему всех существовавших в мире данных по состоянию на 2003 год. Мне важно уметь обрабатывать большие сегменты этих объемов и извлекать из них пользу. И в этом смысле понимание пространственно-временной сложности операций, применяемых нами к данным есть ключ к определению того, возможны ли те или иные вычисления в принципе. В отличие от более традиционных видов O-анализа или тета-анализа постоянные множители в таких масштабах оказывают существенное влияние: множитель 2 не меняет асимптотическую временную сложность алгоритма, но потребует увеличения количества процессоров с 10 тыс. до 20 тыс., и такая разница в потреблении ресурсов будет ощутима. В результате вычисления становятся более изощренными. Примеры: могу ли я взять некое линейное вычисление и снизить его в силе до логарифмического? Можно ли снизить потребление памяти в три раза? И так далее.
Читать дальше →
Всего голосов 41: ↑33 и ↓8+25
Комментарии20

Протестировать всё: как прошёл Heisenbug 2018 Piter

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


Если попытаться описать прошедший Heisenbug одним словом, это будет «разнообразие». Спикеры из гигантских компаний и из юных стартапов, темы от тестирования мобильных игр до тестирования блокчейна, доклады с кучей кода и совершенно без кода; наконец, были вообще не доклады, а сессии «birds of a feather».

Наверное, лучший способ рассказывать о таком событии — не пытаться найти «общий знаменатель», а привести несколько разных примеров того, о чём можно было услышать на прошедшей конференции. Что мы и сделали под катом.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии1

Классические алгоритмы и структуры данных на JavaScript

Время на прочтение2 мин
Количество просмотров93K
Привет Всем! Я недавно запустил на GitHub проект JavaScript Algorithms and Data Structures, который содержит примеры классических алгоритмов и структур данных написанных на JavaScript с объяснениями, примерами и ссылками для дальнейшего изучения (в частности на соответствующие YouTube видео).

Основная задача проекта — помочь программистам в изучении и применении алгоритмов и сделать это на JavaScript-е.
Читать дальше →
Всего голосов 76: ↑71 и ↓5+66
Комментарии31

Блокчейн. Когда его стоит применять?

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

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

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

По своей сути блокчейн схож с паттерном CQRS, в основе которого лежит event sourcing. Если максимально упростить, и там и там есть только поддержка insertов, если говорить терминами баз данных. Update и delete для сущностей не поддерживаются. И если в системах построенных по CQRS никто не мешает удалить или обновить событие из журнала, то в блокчейн это невозможно из-за целостности всего журнала.

Отсюда вытекает первое и основное требование к системам, в которых стоит применять блокчейн — это априори недоверие пользователей системы друг к другу. Т.е по умолчанию каждый участник считается лжецом, который может скомпрометировать данные. По сути, блокчейн — это способ защиты от мошенничества в информационных системах. Не было бы “мошенников” в нашем мире, не было бы необходимости в блокчейне.

Ключевым свойством технологии blockchain, которое отличает ее от традиционной технологии баз данных, является общедоступная проверка, которая обеспечивается целостностью и прозрачностью.
Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии4

Задачи с собеседований (front-end)

Время на прочтение18 мин
Количество просмотров328K
Так получилось, что за свою карьеру front-end разработчика, я побывала на многих собеседованиях. Тема прохождения интервью не теряет своей актуальности, а в комментариях, когда речь заходит о собеседованиях, начинают ломаться копья. Хочу тоже внести свой вклад и поделиться накопившейся коллекцией вопросов. Прошу.

image
Читать дальше →
Всего голосов 74: ↑58 и ↓16+42
Комментарии230

С чего начать поиск работы за рубежом

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


Если вы давно задумаетесь о том, чтобы попробовать найти работу за рубежом, то заглядывайте под кат. В данной статье я постарался собрать ключевые моменты связанные с поиском работы, основанные на личном опыте.
Читать дальше →
Всего голосов 56: ↑51 и ↓5+46
Комментарии88

Интерфейсы: как сообщать пользователю, если «Упс, что-то пошло не так»

Время на прочтение17 мин
Количество просмотров52K
Здесь вы не увидите ни строчки кода. Мы поговорим об обычных людях — о наших пользователях, точнее о том, как сообщать им, если в системе возникла какая-то непредвиденная ситуация.


В основе статьи доклад Антонины Хисаметдиновой с Heisenbug 2017 Moscow, которая занимается проектировкой пользовательских интерфейсов в компании Собака Павлова.

Кроме того, на Медиуме есть цикл статей «Руководство по проектированию ошибок». Цикл еще не дописан до конца, но дает более полную и цельную картину по теме статьи.
Всего голосов 55: ↑52 и ↓3+49
Комментарии11

Осторожнее с копипастом: фингерпринтинг текста непечатаемыми символами

Время на прочтение4 мин
Количество просмотров60K
Не хотите читать? Посмотрите демо.

Символы нулевой ширины — это непечатаемые управляющие символы, которые не отображаются большинством приложений. Н​апример, в э​то пред​ложение я вст​авил де​сять про​​белов н​улевой ширины, вы эт​о замет​или? (Подсказка: вставьте предложение в Diff Checker, чтобы увидеть местоположение символов!). Эти символы можно использовать как уникальные «отпечатки» текста для идентификации пользователей.


Безусловно, он может здесь быть. И вы никогда не догадаетесь

Зачем?


Ну, изначальная причина не слишком интересна. Несколько лет назад я с командой участвовали в соревнованиях по различным видеоиграм. У команды была приватная страничка для важных объявлений, среди прочего. Но в итоге эти объявления стали репостить в других местах, с издевательствами над командой, раскрывая конфиденциальную информацию и командную тактику.
Читать дальше →
Всего голосов 101: ↑101 и ↓0+101
Комментарии106

Материалы открытого курса OpenDataScience и Mail.Ru Group по машинному обучению и новый запуск

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

Недавно OpenDataScience и Mail.Ru Group провели открытый курс машинного обучения. В прошлом анонсе много сказано о курсе. В этой статье мы поделимся материалами курса, а также объявим новый запуск.



UPD: теперь курс — на английском языке под брендом mlcourse.ai со статьями на Medium, а материалами — на Kaggle (Dataset) и на GitHub.


Кому не терпится: новый запуск курса — 1 февраля, регистрация не нужна, но чтоб мы вас запомнили и отдельно пригласили, заполните форму. Курс состоит из серии статей на Хабре (Первичный анализ данных с Pandas — первая из них), дополняющих их лекций на YouTube-канале, воспроизводимых материалов (Jupyter notebooks в github-репозитории курса), домашних заданий, соревнований Kaggle Inclass, тьюториалов и индивидуальных проектов по анализу данных. Главные новости будут в группе ВКонтакте, а жизнь во время курса будет теплиться в Slack OpenDataScience (вступить) в канале #mlcourse_ai.

Всего голосов 80: ↑79 и ↓1+78
Комментарии24

Курс молодого бойца PostgreSQL

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


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →
Всего голосов 79: ↑77 и ↓2+75
Комментарии59

Поиск взаимосвязей на примере Нефть-Рубль

Время на прочтение2 мин
Количество просмотров136K
Одна из базовых задач анализа данных — поиск взаимосвязи двух величин. Здесь я хочу показать пример поиска связи между ценой нефти и курсом рубля.

image

Во-первых надо определить, имеет ли вообще задача смысл. Почему нефть и рубль должны/могут быть взаимосвязаны? Вкратце, модель такая: экспортёры продают нефть за доллары, а затем продают доллары, чтобы получить рубли для расчётов внутри страны. Механизм крайне упрощён, надо учитывать объёмы добычи-продажи, что эскортируют не только нефть, не всегда экспортёры продают доллары, на курс валют влияет ЦБ интервенциями и т.д. И тем не менее, будем считать, что модель более-менее рабочая, то есть, что существуют фундаментальные причины для взаимосвязи цены нефти и курса рубля.
Читать дальше →
Всего голосов 90: ↑80 и ↓10+70
Комментарии87

Постигаем интегралы с помощью Maple

Время на прочтение3 мин
Количество просмотров56K
Познакомившись с магией систем компьютерной алгебры, я провела несколько вечеров в странных и на первый взгляд бессмысленных занятиях — перерешивая вузовские задачки по алгебре, математическому анализу, дифференциальным уравнениям… Просто потому, что было интересно — найдется ли такое уравнение, которое не смогут решить ни Maple, ни Maxima? В моем арсенале были эти две системы, и со всеми проблемами они справлялись «на ура». Это вовсе не означает, что всё решалось мгновенно и без применения математических знаний. Некоторые задачи требовали особых подходов, многочисленных преобразований и замен переменных. Так что, с противниками компьютерной алгебры можно поспорить — при правильном применении она нисколько не расслабляет мозг, а наоборот — развивает логическое (и прочее) мышление.

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


Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии52

Графы для самых маленьких: Dijkstra или как я не ходил на собеседование в Twitter

Время на прочтение6 мин
Количество просмотров106K
Не так давно наткнулся на статью о том, как Michael Kozakov не смог решить алгоритмическую задачу на собеседовании в Twitter. Решение этой задачи — почти в чистом виде один из самых стандартных алгоритмов на графах, а именно, алгоритм Дейкстры.
В этой статье я постараюсь рассказать алгоритм Дейкстры на примере решения этой задачи в несколько усложненном виде. Всех, кому интересно, прошу под кат.
Читать дальше →
Всего голосов 67: ↑56 и ↓11+45
Комментарии16

10 гаджетов для путешественников

Время на прочтение3 мин
Количество просмотров30K
Все привыкли к технологиям у себя дома и на работе, но специальные гаджеты для путешественников часто всё еще остаются непознанной областью даже для тех, кто туризм и активный отдых очень любит. Пусть они вовсе и не обязательны, но могут очень упростить жизнь.

Etón Axis



Eton Axis — прекрасный и, что немаловажно, небольшой (162 x 168 x 54 мм) 3-в-1 гаджет для выживания, включающий в себя светодиодный фонарик, радио и зарядное устройство. Если батарея в устройстве разрядилась, используя ручку как генератор, за минуту кручения вы получите еще 15 минут работы. Самое приятное — встроенный USB-порт, с помощью которого легко поделиться зарядом Eton Axis с любым другим вашим гаджетом.

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

GimBall — летающий робот, который отскакивает от стен как мяч

Время на прочтение2 мин
Количество просмотров26K
Прошлым летом учёные из лаборатории интеллектуальных систем Федеральной политехнической школы Лозанны продемонстрировали прототип летающего робота, который не боится падений и столкновений с препятствиями. Суть идеи — робота окружает лёгкий каркас из углеродного волокна, который защищает его от повреждений, а после падений робот переворачивается в рабочее положение с помощью упругих ног.

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


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

Открытия «охотника за экзопланетами» — телескопа «Кеплер»

Время на прочтение2 мин
Количество просмотров69K
image

Кеплер — космический телескоп NASA, предназначенный специально для поиска экзопланет: изучить структуру других планетарных систем, определить количество планет, пригодных для жизни, исследовать свойства их звезд. Космический аппарат был запущен 6 марта 2009 года, а в мае 2013 года телескоп вышел из строя, находясь на гелиоцентрической орбите (заклинило два из четырех маховиков). Миссия стоила NASA около $600 млн.

За четыре года Кеплер открыл 2740 кандидатов на звание экзопланет, из которых на сегодняшний день подтверждено около ста. Некоторые из планет — очень интересные экземпляры.
Читать дальше →
Всего голосов 73: ↑69 и ↓4+65
Комментарии54

Температура цвета

Время на прочтение10 мин
Количество просмотров375K
image
По нашим психологическим ощущениям цвета бывают тёплыми и горячими, бывают холодными и очень холодными. На самом деле все цвета горячие, очень горячие, ведь у каждого цвета есть своя температура и она очень высокая.
Читать дальше →
Всего голосов 192: ↑174 и ↓18+156
Комментарии65

Запуск ракеты Stiga

Время на прочтение1 мин
Количество просмотров37K
Видео запуска ракеты Stiga частной аэрокосмической компании Armadillo Aerospace. Ракета поднялась на высоту 41 км, после чего успешно произвела раскрытие парашюта и приземление без повреждений, готовая к следующим запускам.



Компания была основана Джоном Кармаком, который увлекается в настоящее время созданием космических аппаратов и участием в конкурсах по их запуску. К сожалению, из-за недостатка финансирования, компания практически полностью свернула свою деятельность.
Всего голосов 48: ↑42 и ↓6+36
Комментарии49
1
23 ...

Информация

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