Pull to refresh
0
0

User

Send message

Структуры данных: бинарные деревья. Часть 1

Reading time6 min
Views367K

Интро



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

В своих статьях я буду приводить примеры кода сразу на двух языках: на Java и на Haskell. Благодаря этому можно будет сравнить императивный и функциональный стили программирования и увидить плюсы и минусы того и другого.

Начать я решил с бинарных деревьев поиска, так как это достаточно базовая, но в то же время интересная штука, у которой к тому же существует большое количество модификаций и вариаций, а так же применений на практике.
Читать дальше →
Total votes 110: ↑101 and ↓9+92
Comments53

Go vs Python. Виталий Левченко

Reading time15 min
Views56K

Предлагаю ознакомиться с расшифровкой доклада Виталия Левченко Go vs Python


Go — волшебное слово, решение всех проблем продакшна разом и одновременно негодная технология без эксепшнов. Истина посередине, поэтому поговорим о конкретных примерах:


  • asyncio vs горутины;
  • производительность узких мест;
  • лаконичность vs простота кода;
  • порог входа;
  • тулинг и паттерны поиска проблем и оптимизации производительности;
  • обслуживание в продакшне.

Читать дальше →
Total votes 51: ↑34 and ↓17+17
Comments39

Когда принцип «к чёрту всё, бери и делай!» не работает: заметки прокрастинатора

Reading time8 min
Views29K
Осторожно, этот текст написан настоящим прокрастинатором. Желание написать статью на тему борьбы с прокрастинацией появилось у меня летом 2019 года, приступила к работе в ноябре и думала, что выпущу статью к концу декабря — как раз когда все подводят итоги и планируют начать новую жизнь. Сегодня 17 февраля 2020, и у меня еще не готов последний абзац. Тем не менее в этой статье я расскажу, что все-таки помогло мне выкарабкаться из пучины «я сделаю это завтра/в выходные/в понедельник…» и закончить работу.


Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments46

Web Scraping

Reading time4 min
Views42K

Введение


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


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


print('Part 1. Get started')

Инструменты


  • Язык программирования и соответствующие библиотеки
    Конечно, без него никуда. В нашем случае будет использован Python. Данный язык является довольно сильным инструментом для написания скраперов, если уметь правильно пользоваться им и его библиотеками: requests, bs4, json, lxml, re.
  • Инструменты разработчика
    Каждый современный браузер имеет данную утилиту. Лично мне удобно пользоваться Google Chrome или Firefox. Если вы пользуетесь другим браузерами, рекомендую попробовать один из вышеперечисленных. Здесь нам понадобятся практически все инструменты: elements, console, network, application, debuger.
  • Современная IDE
    Здесь выбор остаётся за вами, единственное, что хотелось бы посоветовать — наличие компилятора, debuger'a и статического анализатора в вашей среде разработке. Я отдаю своё предпочтение PyCharm от JetBrains.
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments23

Евгений Варавва, разработчик в Google. Как описать Google в 5 словах

Reading time14 min
Views16K

Можно ли описать Google в нескольких словах? Компанию, в которой сотни подразделений, порой настолько экспериментальных, что вплотную приближаются к научной фантастике. Компанию, в которой работают сотни тысяч человек по всему миру.


Наверное, Google — для каждого свой. Для каждого наблюдателя — сотрудника, независимого разработчика и админа, конкурента, просто человека интересующегося IT-тематикой, пользователя в сети, вбивающего в адресную строку браузера google.com.


Я познакомился c Евгением Вараввой, разработчиком широкого профиля в Google (Сан-Франциско), на Слёрме SRE — он там вовсю с удовольствием запутывал участников задачками, неожиданными багами и проблемами учебного проекта.


А после, когда начали расставлять столы, усталые участники прощаться друг с другом, сотрудники Слёрма убирали провода, роутеры и сетевые удлинители, я пригласил Евгения поговорить — каким он видит Google. Изнутри. И изменилась ли его ощущение и точка зрения за десяток лет работы в компании.


Что получилось — читайте…



Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments9

Понимание итераторов в Python

Reading time8 min
Views134K

Python — особенный язык в плане итераций и их реализации, в этой статье мы подробно разберём устройство итерируемых объектов и пресловутого цикла for.


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


1. Использование генератора дважды


>>> numbers = [1,2,3,4,5]

>>> squared_numbers = (number**2 for number in numbers)

>>> list(squared_numbers)
[1, 4, 9, 16, 25]

>>> list(squared_numbers)
[]

Как мы видим в этом примере, использование переменной squared_numbers дважды, дало ожидаемый результат в первом случае, и, для людей незнакомых с Python в достаточной мере, неожиданный результат во втором.


2. Проверка вхождения элемента в генератор


Возьмём всё те же переменные:


>>> numbers = [1,2,3,4,5]
>>> squared_numbers = (number**2 for number in numbers)

А теперь, дважды проверим, входит ли элемент в последовательность:


>>> 4 in squared_numbers
True
>>> 4 in squared_numbers
False
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments20

Коронавирус Novel nCOV/2019-nCoV/NCP/COVID19: Прогнозы, Статистика, Новости[Часть 1, ред.03.02

Reading time43 min
Views177K
Тут только первая часть статьи с новыми новостями. (Изменение 8.03.2021)
Создание собственного сайта провалилось. Большинству не интересен коронавирус.
Из принципа буду продолжать менять только новости и таблицу.
Прошло больше года с написания этой статьи. Итог:: Мои надежды не оправдались.
Полная версия без обновлений новостей тут
Не обновляемая английская версия: тут

Независимые от меня обстоятельства повлияли на текущую ситуацию, мои извинения

Перейти сразу к новостям

Многие люди не выполняют рекомендаций.Все пошло по «тяжелому сценарию». У систем здравоохранения есть куда увеличивать количество коек, врачей:
Качество: Высокое
1уровень: Инфекционные койки. 10-20% ## Инфекционисты

Качество: Среднее
2уровень: Перепрофилирование больниц 30-60% ## Любые врачи. Возвращают врачей пенсионного возраста.

Качество: Удовлетворительное
3 уровень Частные клиники и военные госпитали 10-20% ## все врачи даже без опыта, снятие из институтов. Военврачи.

Качество: Низкое
4 уровень: Временные больницы 10-20% (Обычно отправлять больных в более легкой форме.Более тяжелые будут в больницах) ## Быстро обученный персонал. (Будут давать более простые задачи, разгрузка врачей от пары задач). Альт. вариант армия для выполнения части задач.

Китай было:2 из 4 /4 из 4 (временные больницы)Италия: Врачи: по 3 из 4.
Качество: Абсолютное (Не бойтесь 5lvl. придумал я, до этого не дойдет)Сарказм: 5 ур.: Больницы не понадобятся.Подробно Dr. Morty.
Статистикshorturl.at/pEY09

Читать дальше →
Total votes 80: ↑64 and ↓16+48
Comments101

Зарплаты в ИТ в первом полугодии 2019 года: по данным калькулятора зарплат «Моего круга»

Reading time5 min
Views191K


Публикуем отчет по зарплатам в ИТ-индустрии на 1-е полугодие 2019. Отчёт построен по данным калькулятора зарплат «Моего круга»: в котором за данный период было собрано более 7000 зарплат. 

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

Данные, представленные в нашем текущем отчёте, а также любые другие, каждый желающий может получить самостоятельно с помощью калькулятора зарплат «Моего круга». Если вам нравится информация, которую мы получаем с помощью калькулятора, и если вы хотите внести свой вклад в формирование более прозрачного рынка труда в ИТ, приглашаем поделиться своей текущей зарплатой, данные о которой мы используем в нашем следующем годовом отчёте.

Сервис зарплат запущен на «Моем круге» в конце 2017 с целью регулярного мониторинга зарплат в ИТ-индустрии. Зарплаты оставляют сами специалисты, мы их собираем и предоставляем всем в открытый доступ в агрегированной и анонимной форме.
Читать дальше →
Total votes 106: ↑101 and ↓5+96
Comments311

Starlink — дело крупное

Reading time27 min
Views58K


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


Starlink — план SpaceX раздавать интернет через десятки тысяч спутников — главная тема в посвященной космосу прессе. Еженедельно выходят статьи о последних достижениях. Если в общем-то схема ясная, да ознакомившись с отчетами в Федеральной комиссии связи, хорошо мотивированный человек (скажем, ваш покорный слуга) может накопать очень много деталей. Тем не менее с этой новой технологией по-прежнему связано много заблуждений, даже у просвещенных обозревателей. Нередко попадаются статьи, в которых Starlink сравнивают с OneWeb и Kuiper (среди прочих) так, будто они конкурируют на равных. Другие авторы, явно озабоченные благом планеты, вопиют о космическом мусоре, космическом праве, стандартах и безопасности астрономии. Надеюсь, что дочитав эту — довольно длинную — статью, читатель лучше поймет и проникнется идеей Starlink.

Total votes 115: ↑106 and ↓9+97
Comments205

Вышла книга «Олимпиадное программирование»

Reading time6 min
Views20K
В издательстве “ДМК Пресс” вышла книга “Олимпиадное программирование” с подзаголовком “Изучение и улучшение алгоритмов на соревнованиях”. Она стала глотком свежего воздуха для всех, кто интересуется, готовит и готовится к участию, или только планирует в будущем, в таком интеллектуальном виде деятельности, как различные мероприятия спортивного программирования. В России с ними знакомы недостаточно.

Российское издание книги “Guide to Competitive Programming” (издательство Springer International Publishing AG)вышло при поддержке Центра развития ИТ-образования МФТИ и его руководителя Алексея Малеева, Mail.Ru Group, а также проекта Moscow Workshops ICPC.


Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments17

Круг замкнулся. Как митапы помогли мне найти работу мечты

Reading time6 min
Views17K
4 года назад я с коллегой поехала на свой первый митап. Начальник не отпустил пораньше, поэтому нам пришлось доработать свои регламентированные часы и мчать на такси до места проведения митапа. Мы, как опоздавшие школьники, тихо пробрались на свободные места в самом конце зала и принялись слушать. Это был офис Wrike. Могла ли я тогда представить, что буду работать в этом самом месте? Определенно нет. Думала ли я вообще о смене работы? Тем более нет.

image
pitercss_meetup №24. 11 сентября 2018 в офисе Selectel, фотография Натальи Майстренко

Читать дальше →
Total votes 51: ↑40 and ↓11+29
Comments31

Обыскать 314 км² за 10 часов — финальное сражение инженеров-поисковиков против леса

Reading time15 min
Views38K


Представьте задачу — в лесу пропали два человека. Один из них еще подвижен, другой лежит на месте и не может пошевелиться. Известна точка, где их видели последний раз. Радиус поиска вокруг нее — 10 километров. Получается территория площадью 314 км2. У вас есть десять часов на поиск с помощью новейших технологий.

Услышав условие в первый раз, я подумал: «пфф, подержите мое пиво». Но потом увидел, как передовые решения спотыкаются обо все, что возможно и невозможно учесть. Летом я писал, как около 20 инженерных команд пытались решить задачу в десятки раз проще, но делали это на пределе возможностей, и только четыре команды справились. Лес оказался территорией скрытых подвохов, где современные технологии бессильны.

Тогда это был лишь полуфинал конкурса «Одиссея», организованного благотворительным фондом «Система» — цель которого придумать, как модернизировать поиск пропавших в дикой природе людей. В начале октября в Вологодской области прошел его финал. Четыре команды столкнулись с той самой задачей. Я отправился на место, чтобы понаблюдать за одним из конкурсных дней. И в этот раз ехал с мыслью, что задача — нерешаемая. Но я никак не ждал увидеть «Настоящий детектив» для любителей DIY-электроники.
Total votes 108: ↑107 and ↓1+106
Comments248

Новое решение парадокса Ферми (почему мы одиноки во Вселенной)

Reading time4 min
Views64K
Недавно мне пришло в голову совершенно новое решение Парадокса Ферми. Я не буду пересказывать то, что вы можете прочитать в Вики.



Перейду к сути. Для решения проблемы нам понадобятся несколько ингредиентов.
Читать дальше →
Total votes 79: ↑63 and ↓16+47
Comments499

Как я провела лето ВКонтакте

Reading time7 min
Views18K

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



Читать дальше →
Total votes 51: ↑28 and ↓23+5
Comments34

Не бойтесь пробовать, или Как я стала программистом в возрасте далеко за 18

Reading time5 min
Views68K
Когда вы слышите словосочетание «младший разработчик», то наверняка представляете молодого парня на последних курсах вуза или недавнего выпускника — но уж никак не 30-летнюю женщину с маленьким ребёнком, которая до этого несколько лет преподавала в вузе и от разработки была так же далека, как Майя Плисецкая от тяжёлой атлетики. Только ленивый не задавал мне вопросы: «Почему ушла с позиции доцента на младшего разработчика?», «А как ты училась программировать?», «Как искала работу?», «С чего вдруг ты вообще решила стать программистом?» и т.д. и т.п.

Вот на них я и попытаюсь ответить в этом посте.


Читать дальше →
Total votes 136: ↑116 and ↓20+96
Comments111

Как зеленый джуниор в IT попал

Reading time9 min
Views9.9K

Зачем вообще эта статья, для кого и что дает читателю


Для тех, кто не хочет читать много,

краткий ответ
Для тех, кто только думает о смене профессии или уже в пути.
Моя статья дает мотивации.

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

Именно эти причины побудили меня написать данную статью.

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

И вот сейчас я уже практически middle в компании — резиденте Сколково.

А начиналось все еще немного раньше, примерно в феврале 2018…. Даже, пожалуй, еще раньше, летом 2017.
Читать дальше →
Total votes 36: ↑23 and ↓13+10
Comments16

Композитор с долгой кратковременной памятью

Reading time14 min
Views6.9K

Автоматическое сочинение музыки



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

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

Как это работает


Композитор обучает нейросеть с долгой кратковременной памятью (Long short-term memory, LSTM). LSTM-сети хорошо подходят для предсказания того, «что встретится дальше» в последовательностях данных. Подробнее о LSTM можно прочитать здесь.


LSTM-сеть получает различные последовательности нот (в данном случае это одноканальные файлы midi). После достаточного обучения она получает возможность создавать музыку, схожую с обучающими материалами.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments21

Литература на выходные: легкое чтение для технарей

Reading time4 min
Views29K
Летом мы публиковали подборку книг, в которой не было справочников или руководств по алгоритмам. Она состояла из литературы для чтения в свободное время — для расширения кругозора. В качестве продолжения мы подобрали научную фантастику, книги о технологическом будущем человечества и другие издания, написанные специалистами для специалистов.

Total votes 34: ↑31 and ↓3+28
Comments10

Information

Rating
Does not participate
Registered
Activity