Pull to refresh
@zibotread⁠-⁠only

User

Send message

Очевидное, невероятное, корпоративное. Эпизод 1. Проблема воина в команде

Reading time16 min
Views7.2K

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

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

Об этом и поговорим
Total votes 14: ↑10 and ↓4+9
Comments20

Конфликты в проектах: не принимайте мою доброту за слабость

Reading time6 min
Views5.8K

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

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

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments9

Как и зачем делать доклады?

Reading time15 min
Views13K

Всем привет, меня зовут Рома Неволин и я много занимаюсь докладами. Готовлю доклады, выступаю с докладами, делаю доклады, ищу докладчиков, ищу темы для докладов, а еще постоянно отвечаю на вопросы про доклады. А их всегда много.

Откуда брать тему и будет ли мой доклад интересен хоть кому-нибудь — загадка. Как собрать кучу хаотичных знаний во что-то стройное тоже непонятно. А ведь с этим нужно еще и куда-то подаваться, да и вообще, на кой оно мне нужно?

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

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

Быстрая интеграция с 1С: Предприятие

Reading time9 min
Views45K
В данной статье я расскажу о наиболее простом, на мой взгляд, способе интеграции сторонних приложений с конфигурациями 1С. Статья будет интересна в первую очередь разработчикам, пишущим на .Net Core, PHP и Python.

Способов интеграции с 1С известно много, этому даже посвящена прекрасная статья от самой компании 1С. Из нее вы в частности узнаете, что 1С поддерживает механизмы web-сервисов, а значит мы можем реализовать свой собственный сервис на стороне 1С, и, как следствие, свою собственную ORM-библиотеку на стороне клиентского приложения. Об одной из таких и библиотек и пойдет речь далее.
Читать дальше →
Total votes 37: ↑26 and ↓11+15
Comments108

Разнообразие смерти: гастрономические предпочтения змей и эволюция их яда

Reading time9 min
Views7.1K


В мире людей существует немало страхов, некоторые их которых перерастают в самые настоящие фобии: арахнофобия (пауки), акрофобия (высота), аквафобия (вода), коулрофобия (клоуны), офидиофобия (змеи) и т.д. Многие люди, даже не имея офидиофобии, относятся к змеям с презрением и недоверием. Змей часто отожествляют с хитростью, подлостью, коварством и прочими малоприятными качествами, которые по иронии им совершенно неприсущи, в отличие от самих людей. С другой стороны змеи часто символизируют мудрость, бессмертие, знания. Одними из самых узнаваемых символов, в которых присутствует змея, являются сосуд Гигиеи (символ фармации) и посох Асклепия (символ медицины). Для многих самой примечательной особенностью некоторых змей является их яд, структура которого может быть невероятна. Ученые из Клемсонского университета (США) выяснили, что структура яда некоторых змей зависит от того, насколько эволюционно далека друг от друга добыча. Как гастрономические предпочтения змей влияют на их яд, чей яд сильнее, и как полученные знания можно применить на практике? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Total votes 15: ↑14 and ↓1+18
Comments1

Копнём поглубже: сравниваем популярные алгоритмы оптимизации с менее известными

Reading time7 min
Views12K


Привет, Хабр! Меня зовут Мария Белялова, и я занимаюсь data science в мобильном фоторедакторе Prequel.

Эта статья открывает наш цикл материалов со сравнением алгоритмов оптимизации для обучения нейросетей. Помимо классических методов, которые давно зарекомендовали себя, мы рассмотрим и менее известные методы, и совсем новые: например, алгоритм MADGRAD, разработанный в Facebook в этом году. В первой статье мы сравним поведение алгоритмов на тестовых функциях, во второй — посмотрим, как они ведут себя на игрушечной задаче по распознаванию цифр из датасета MNIST, а в третьей — проверим эти алгоритмы в бою на реальной задаче из продакшена.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments10

Почему стоит научиться «парсить» сайты, или как написать свой первый парсер на Python

Reading time3 min
Views192K

В этой статье я постараюсь понятно рассказать о парсинге данных и его нюансах.



image

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

Перейдем к этапам парсинга.

  • Поиск данных
  • Извлечение информации
  • Сохранение данных

И так, рассмотрим первый этап парсинга — Поиск данных.


Так как нужно парсить что-то полезное и интересное давайте попробуем спарсить информацию с сайта work.ua.
Для начала работы, установим 3 библиотеки Python.

pip install beautifulsoup4

Без цифры 4 вы ставите старый BS3, который работает только под Python(2.х).

pip install requests
pip install pandas


Теперь с помощью этих трех библиотек Python, можно проанализировать нашу веб-страницу.

Второй этап парсинга — Извлечение информации.


Попробуем получить структуру html-кода нашего сайта.
Давайте подключим наши новые библиотеки.

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd

И сделаем наш первый get-запрос.

URL_TEMPLATE = "https://www.work.ua/ru/jobs-odesa/?page=2"
r = requests.get(URL_TEMPLATE)
print(r.status_code)

Статус 200 состояния HTTP — означает, что мы получили положительный ответ от сервера. Прекрасно, теперь получим код странички.

print(r.text)

Получилось очень много, правда? Давайте попробуем получить названия вакансий на этой страничке. Для этого посмотрим в каком элементе html-кода хранится эта информация.

<h2 class="add-bottom-sm"><a href="/ru/jobs/3682040/" title="Комірник, вакансия от 5 ноября 2019">Комірник</a></h2>


У нас есть тег h2 с классом «add-bottom-sm», внутри которого содержится тег a. Отлично, теперь получим title элемента a.
Читать дальше →
Total votes 13: ↑1 and ↓12-11
Comments31

Эффективность — ваш враг

Reading time8 min
Views74K

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

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

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

Попав в офис (разумеется, заполненный дымом сигарет), вы немного удивлены, что он совсем не похож на людской муравейник. На самом деле, окружающие вас люди практически ничего не делают. Рядом с офисом вашего героя его секретарша отдыхает за своим столом. Назовём её Глория. Похоже, она совсем ничем не занята. Вы в течение получаса наблюдаете, как она читает, приводит в порядок свой стол и болтает с проходящими мимо секретаршами. Они тоже не выглядят занятыми. Озадаченный тем, что Тони тратит свои деньги на бездельников, вы решаете остаться ещё на несколько часов.
Читать дальше →
Total votes 91: ↑81 and ↓10+99
Comments72

Чему я научился, прожарив 200 лендингов за 12 месяцев

Reading time10 min
Views14K


200 стартапов


За последние двенадцать месяцев я прожарил лендинги (посадочные страницы проектов) 200 стартапов. Лендинги инди-проектов, лендинги сейлапов, финансируемых венчурным капиталом, и лендинги прибыльных корпораций, лендинги из различных отраслей и для разной аудиторий. В среднем 25 минут прожарки — это больше 3,5 полных дней прожарки страниц для увеличения конверсии.

Что такое прожарка


Каждая прожарка — это персонализированный 20-минутный видео-обзор лендинга, где я определял исправления, которые позволят превратить больше посетителей в клиентов.
Total votes 31: ↑21 and ↓10+16
Comments11

Шифровальщики продолжают наступать: уязвимость в VPN Fortigate привела к остановке двух фабрик из-за ransomware

Reading time4 min
Views12K

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

В сообщении Swisscom CSIRT указывалось, что в этом году киберпреступники организовали успешную атаку на ряд промышленных объектов Европы с использованием шифровальщика Cring. В нескольких случаях атака привела к временной остановке производственных процессов, в результате чего производство потерпело крупные убытки. Сейчас стали известны подробности атаки.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments28

Создаем интернет-магазин на Nuxt.js 2 пошаговое руководство Часть 1

Reading time27 min
Views85K


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


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


В этой статье я хочу поделиться как создать примитивный интернет-магазин:


  • Который будет быстро загружаться у пользователя.
  • Который полюбит Google (или любой другой поисковик) с точки зрения SEO.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments9

Как по спутниковым снимкам понять состояние растений на поле

Reading time3 min
Views8.9K

Чтобы фермер мог следить за своими полями при помощи смартфона, компания OneSoil обрабатывает терабайты спутниковых изображений и превращает их в удобные карты NDVI. Если по-простому, это такие разноцветные картинки, по которым можно судить о здоровье посевов. Это следующий шаг после того, как фермер нашёл свои поля с предсказанными нами границами на карте мира (про это было в одном из прошлых постов). 

Читать далее
Total votes 9: ↑7 and ↓2+10
Comments17

Проверяем безопасность приложений с помощью Drozer

Reading time4 min
Views3.4K


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


Drozer предустановлен в Kali Linux и других ОС для белого хакинга.


Возможности Drozer:


  1. Получение информации о пакете
  2. Определение поверхности атаки
  3. Запуск активностей
  4. Чтение от поставщиков содержимого
  5. Взаимодействие со службами
  6. Дополнительные опции

1. Получение информации о пакете


Мы можем получить пакеты, присутствующие на подключенных устройствах, а также информацию о любом установленном пакете.


To get list of all packages present in the device.
dz> run app.package.list

To search for a package name from the above list
dz> run app.package.list -f <your_string>

To get basic info about any selected package
dz> run app.package.info -a <package_name>

2. Определение поверхности атаки


Это та часть, с которой мы начинаем исследовать уязвимости. В первую очередь проверим количество экспортированных:


  • Активностей
  • Поставщиков содержимого
  • Служб
Читать дальше →
Total votes 4: ↑3 and ↓1+6
Comments2

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

Reading time7 min
Views49K

Дроп-домен (от английского, drop - брошенный) - домен, который когда-то существовал, но по какой-то причине его забросили (случайно, просто купили новый домен и не перевезли сайт с помощью 301 редиректа. Кто-то просто не видит смысла держать и оплачивать оба домена). Если уметь правильно работать с такими брошенными доменами - можно очень эффективно их использовать для буста своего сайта в поисковых системах (повышение позиций и как следствие - трафика на сайт).

Читать далее
Total votes 34: ↑13 and ↓21+10
Comments49

Интеграция CI/CD для нескольких сред с Jenkins и Fastlane. Часть 2

Reading time6 min
Views3.7K

В преддверии старта курса "iOS Developer. Basic" продолжаем публиковать серию полезных переводов, а также приглашаем записаться на бесплатный демо-урок по теме: "Result Type".

Внедрение технологий непрерывной интеграции (Continuous Integration - CI) и непрерывного развертывания (Continuous Delivery - CD) в процесс разработки - бесспорно единственный способ отслеживать актуальность изменений кода и определять ошибки интеграции на самых ранних этапах. Это также еще и путь к отлаженным билдам, практически сразу же доступным для тестирования и готовым к отправке в продакшн даже после значительных изменений кода.

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

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

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

Трехмерный движок в коде… ДНК

Reading time40 min
Views23K
UPD 29 ноября: Репозиторий с кодом ДНК выложен на GitHub.
github.com/pallada-92/dna-3d-engine

UPD 30 ноября:
В англоязычном твиттере заметили проект
Новость попала в топ-10 на HackerNews!






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

Ответ довольно неожиданный — lingua franca для моделирования сложных процессов в клетках является реакции вида
Эти реакции моделируются при помощи закона действующих масс, который одинаково работает и в химии, и в молекулярной биологии.

— Неужели при помощи этих примитивных реакций можно что-то программировать?
— Да, а то, что написано выше, вычисляет $B = \sqrt{A}$.

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

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

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

Для понимания статьи никаких предварительных знаний не требуется, необходимые сведения из школьной программы по биологии мы повторим в начале статьи. Также мы разберем типичные паттерны, которые использует эволюция для достижения сложного поведения в живых клетках.
Total votes 94: ↑94 and ↓0+94
Comments30

Теперь я не могу сделать даже маленький сайт

Reading time3 min
Views153K


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

Это был сайт про события моего родного города. На одной странице выводились все мероприятия на грядущую неделю.

Я сделал страничку с мероприятиями, и небольшую админку, где они редактировались. У меня была книжка по PHP, поэтому сайт я написал на PHP, подключил MySQL-базу, сверстал на HTML и CSS, и залил на виртуальный хостинг. Сайтом пользовались, а я усердно добавлял мероприятия каждое утро, пока не ушёл в армию, не оставив никого на поддержку. Так сайт и почил.

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

Я решил взяться за дело и стал думать.
Читать дальше →
Total votes 332: ↑301 and ↓31+339
Comments319

Как сделать CI на Github для современного фронтенда

Reading time14 min
Views12K

Совсем скоро, 6 и 18 ноября, у нас стартуют новые потоки курса по JavaScript и
курса «Профессия Веб-разработчик», специально к их старту делимся с вами полезным туториалом, как настроить Github Actions для реальных проектов в области фронтенда со множеством линтеров и тестированием UI, а также уведомлениями о рабочем процессе в Slack. Подробности и репозиторий под катом.
Приятного чтения!
Total votes 16: ↑14 and ↓2+19
Comments1

Веб-разработка с нуля: руководство для молодых команд по созданию инфраструктуры CI/CD и процесса разработки

Reading time12 min
Views33K

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


  • Проверка каждой ветки проходила локально. Приходилось откатывать базу от изменений с предыдущей проверки, билдить фронт. Когда несколько разработчиков вот-вот закончат работы и осталось проверить каждую по мелочи — это превращалось в ад;
  • Различались окружения на проде и между разработчиками, что приводило к ошибкам: “у меня всё работает”.

Внутренний перфекционист жаждал организовать всё правильно. Делюсь результатами поисков ответа на вопрос: «а как, собственно, “правильно”»?


Мы добились


  • Легкого и быстрого деплоя в production (ради эксперимента выводили каждый день две недели подряд);
  • Гарантию защищённости от ошибок из-за различий в окружении приложения;
  • Можем организовать эффективное взаимодействие с заказчиком:
    • демонстрировать каждую feature-ветку;
    • давать гостевой доступ для создания задач и наблюдения над ходом работ.

Данная статья будет полезна, если вы:


  • начинающая IT-компания или в первый раз столкнулись с работой в команде над большим проектом;
  • хотите обновить свой устаревший процесс разработки (workflow);
  • ищете лучшие практики и хотите посмотреть, как у других;
  • часто натыкаетесь на статьи про DevOps, CI/CD, облака и хотите, чтобы у вас одним нажатием кнопки создавались тестовые окружения, а очередное обновление прода не было рулеткой.

Под катом вы найдёте


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

Читать дальше →
Total votes 19: ↑18 and ↓1+28
Comments48

Я принес вам решение проблемы с исключениями в C#. Но вам не понравится

Reading time8 min
Views45K


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

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

Эти размышления меня измучили, и я систематизировал свои знания и идеи по обработке исключительных случаев.
Читать дальше →
Total votes 80: ↑57 and ↓23+51
Comments478

Information

Rating
Does not participate
Registered
Activity