Pull to refresh
60
0
Руслан Еникеев @irriss

User

Send message

Безопасность приложений, или Как внедрить security в заказную разработку. Личный опыт AGIMA

Reading time7 min
Views2.5K
Digital-агентства все больше внимания уделяют безопасности инфраструктуры, в которой ведется разработка, а также начинают смотреть в сторону обеспечения безопасности приложений. Вы наверняка читали про разновидность и критичность уязвимостей, инструменты и методы обеспечения ИБ. Но как игнорирование или обеспечение безопасности приложений влияет на сам процесс заказной разработки?

Что в статье:

Мы не будем в сотый раз повторять, почему так важна безопасность, какие существуют уязвимости или как Red Team побеждает Blue Team в очередной схватке. Это короткая история о том, почему мы добавили security к заказной разработке и как мы это сделали.
Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments0

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

Reading time13 min
Views38K
image
Россия далеко не на первом месте в мире, но первая по количеству исследований в своем макрорегионе

Любое лекарство сегодня, прежде чем попасть к пациенту, проходит длинный ряд клинических испытаний. Нужно доказать, что оно способно решать определенную проблему со здоровьем, причем делать это эффективнее и, желательно, безопаснее предшественников.
Читать дальше →
Total votes 78: ↑76 and ↓2+74
Comments49

Таинственный противник: нечеткие заимствования

Reading time10 min
Views6.1K

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


Сегодня мы расскажем о нашем новом детективе специального назначения по имени Нечеткий Поиск, а также о его первом столкновении с нечеткими заимствованиями.


С вами детективное агентство Антиплагиат, приготовьтесь к Делу о Таинственном Противнике



Начать расследование
Total votes 17: ↑15 and ↓2+13
Comments50

Как UX-писатель помогает улучшить продукт

Reading time10 min
Views11K
В сентябре прошлого года я завершил свой первый большой проект с интерфейсными текстами. Мне и раньше доводилось помогать коллегам-дизайнерам с формулировками, но обычно это были точечные изменения: придумать термин или фразу, сократить предложение, объяснить что-то простым языком. Здесь же я отредактировал тексты на 100+ экранах. Думаю, это хороший повод для статьи.

Предупрежу сразу: я не буду рассказывать, какие тексты нужны в заголовках и на кнопках — в интернете этого достаточно.

Эта статья — о UX-писательстве, организации работы и сложностях, с которыми мне пришлось столкнуться.



Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments14

Галерея лучших блокнотов по ML и Data Science

Reading time3 min
Views33K
Привет, читатель.

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи. Представляю пост который идёт строго (!) в закладки и передаётся коллегам. Он с подборкой примечательных файлов формата Jupyter Notebook по Machine Learning, Data Science и другим сферам, связанным с анализом данных. Эти блокноты Jupyter, будут наиболее полезны специалистам по анализу данных — как обучающимся новичкам, так и практикующим профи.

image

Итак, приступим.

Вводные курсы в Jupyter Notebook


Читать дальше →
Total votes 41: ↑34 and ↓7+27
Comments7

Зачем нам UML? Или как сохранить себе нервы и время

Reading time5 min
Views269K
Многие программисты, столкнувшись со сложной задачей, пренебрегают этапом проектирования, ссылаясь на то, что проектирование — это потеря времени, и в данном случае оно будет мне только мешать.


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

Программисты, не использующие UML, делятся на несколько групп:

  • начну писать код, а в процессе пойму, что да как;
  • почитаю форумы, хабр, medium, stack overflow, книгу, записи на стенах, знаки свыше…;
  • поспрашиваю у коллег, может, кто-то знает, как решить подобную задачу;
  • начну рисовать квадратики и схематично покажу, какое видение задачи сформировалось у меня в сознании.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments67

10 фич для ускорения анализа данных в Python

Reading time5 min
Views21K

Источник

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


1. Профилирование Pandas Dataframe


Профилирование помогает лучше понять наши данные, и пакет Pandas Profiling создан как раз для этого. Библиотека даст возможность просто и быстро выполнить разведочный анализ Pandas Dataframe. Обычно в таких случаях в качестве первого шага используются функции df.describe() и df.info(), но они сообщают мало и плохо справляются с большими наборами данных. Одна строка кода с использованием Pandas Profiling, напротив, выведет много информации в интерактивном HTML-отчете.


Вот что вычисляется для заданного набора данных:


Статистика выводимая Pandas Profiling.

Установка


pip install pandas-profiling
или
conda install -c anaconda pandas-profiling

Использование


Давайте используем набор данных о пассажирах Титаника, чтобы продемонстрировать возможности профайлера.

Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments6

Перенос десктопных приложений на .NET Core

Reading time5 min
Views23K
С тех пор, как я начала работать с сообществом над переносом десктопных приложений с .NET Framework на .NET Core, я заметила, что существует «два лагеря»: представители одного хотят очень простой и короткий список инструкций для переноса своих приложений на .NET Core, в то время как представители другого предпочитают более принципиальный подход с большим количеством исходной информации. Вместо того, чтобы писать документ по типу «швейцарского армейского ножа», мы собираемся опубликовать два сообщения в блоге, по одному для каждого «лагеря»:

  • Данный пост — простой случай. Он ориентирован на простые инструкции и небольшие приложения и рассматривает самый простой способ переноса приложения на .NET Core.
  • Позднее мы опубликуем еще один пост для более сложных случаев. В нем основное внимание будет уделено нетривиальным приложениям, таким как WPF-приложение с зависимостями от WCF и сторонних UI-пакетов.

Если вы предпочитаете смотреть видео, а не читать, то вот видео, где я делаю все, что описано ниже.

Total votes 15: ↑13 and ↓2+11
Comments20

Знакомство с Python для камрадов, переросших «язык A vs. язык B» и другие предрассудки

Reading time17 min
Views42K

Для всех хабравчан, у которых возникло ощущение дежавю: Написать этот пост меня побудили статья "Введение в Python" и комментарии к ней. К сожалению, качество этого "введения" кхм… не будем о грустном. Но ещё грустнее было наблюдать склоки в комментариях, из разряда "C++ быстрее Python", "Rust ещё быстрее C++", "Python не нужен" и т.д. Удивительно, что не вспомнили Ruby!


Как сказал Бьярн Страуструп,


«Есть всего два типа языков программирования: те, на которые люди всё время ругаются, и те, которые никто не использует».

Добро пожаловать под кат всем, кто хотел бы познакомиться с Python, не опускаясь при этом до грязных ругательств!

Читать дальше →
Total votes 88: ↑83 and ↓5+78
Comments146

Возможности Python 3, достойные того, чтобы ими пользовались

Reading time5 min
Views44K
Многие программисты начали переходить со второй версии Python на третью из-за того, что уже довольно скоро поддержка Python 2 будет прекращена. Автор статьи, перевод которой мы публикуем, отмечает, что основной объём Python 3-кода, который ему доводилось видеть, выглядит как код со скобками, написанный на Python 2. По его словам, он и сам грешит чем-то подобным. Здесь он приводит примеры некоторых замечательных возможностей, доступных лишь тем, кто пользуется Python 3. Он надеется, что эти возможности облегчат жизнь тем, кто о них узнает.



Все примеры, приведённые в этом материале, написаны с использованием Python 3.7. В описании каждой возможности имеются сведения о минимальной версии Python, необходимой для её применения.
Читать дальше →
Total votes 77: ↑76 and ↓1+75
Comments82

Как сделать из сайта приложение и выложить его в Google Play за несколько часов. Часть 2/2: Trusted Web Activity

Reading time5 min
Views56K
image

В первой части мы превратили наш сайт в Progressive Web App. Там же было сказано, что совсем недавно, 6 февраля 2019 года, Google предоставили простую возможность выкладывать PWA в Google Play при помощи Trusted Web Activity. Всё, что нужно сделать, это написать небольшую обёртку под Android, которую можно будет выложить в Google Play. Когда пользователь скачает такое приложение-обёртку, оно просто будет открывать наше PWA внутри Chrome. Конечно же, интерфейс Chrome будет спрятан и всё будет выглядеть красиво.

Если вы, как и я, никогда не писали приложений под Android, то дальнейшее вам тоже должно показаться чередой магических манипуляций. Но к чему только не прибегнешь, чтобы выложить своё приложение. Поехали!
Читать дальше →
Total votes 40: ↑40 and ↓0+40
Comments16

Iodide: интерактивный научный редактор от Mozilla

Reading time12 min
Views16K

Изучение аттрактора Лоренца, а затем редактирование кода в Iodide

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

Но на сегодняшний день очень немногие научные инструменты используют полный коммуникационный потенциал современных браузеров. Результаты дата-майнинга не очень удобно просматривать в браузере. Поэтому сегодня Mozilla представляет Iodide — экспериментальный инструмент, который помогает учёным составлять красивые интерактивные документы с использованием веб-технологий, всё в рамках итеративного рабочего процесса, который многим знаком.
Total votes 77: ↑77 and ↓0+77
Comments20

20 игр, чтобы научить ребёнка программированию

Reading time5 min
Views302K
Привет Хабр! Меня зовут Оксана Селендеева. Я считаю, что лучше начинать программировать с юного возраста — 4-5 лет, потому что кодинг активно развивает у детей когнитивные функции мозга, и это впоследствии помогает им отлично усваивать точные науки. А попробовать себя в программированию можно через обучающие игры. Мы с преподавателями школы программирования для детей CODDY составили такую подборку.

Для дошкольников


Box Island — мобильная 3D-игра, которая обучает основам кодирования через увлекательное приключение. Игроки путешествуют по острову Box и помогают персонажу собирать звезды, разбросанные по пустыне. Через игровой квест дети изучают основы алгоритмов, последовательностей, циклов и условных выражений, а ещё игра развивает алгоритмическое мышление и распознавание образов.
Total votes 59: ↑53 and ↓6+47
Comments91

Можно ли считать статистику при малом количестве данных?

Reading time6 min
Views14K
В целом ответ – да. Особенно, когда есть мозги и знание теоремы Байеса.

Напомню, что среднее и дисперсию можно считать только, если у вас имеется определенное количества событий. В старых методичках СССР РТМ (руководящий технический материал) говорилось, что чтобы считать среднее и дисперсию необходимо 29 измерений. Сейчас в ВУЗах немного округлили и используют число 30 измерений. С чем это связано – вопрос философский. Почему я не могу просто взять и посчитать среднее, если у меня есть 5 измерений? По идее ничто не мешает, только среднее получается нестабильным. После еще одного измерения и пересчета оно может сильно измениться и полагаться на него можно начиная где-то с 30 измерений. Но и после 31го измерения оно тоже пошатнется, только уже не так заметно. Плюс добавляется проблема, что и среднее можно считать по разному и получать разные значения. То есть из большой выборки можно выбрать первые 30 и посчитать среднее, потом выбрать другие 30 и тд … и получить много средних, которые тоже можно усреднять. Истинное среднее бывает недостижимо на практике, так как всегда имеем конечное количество измерений. В таком случае среднее является статистической величиной со своим средним и дисперсией. То есть измеряя среднее на практике мы имеем в виду «предположительное среднее», которое может быть близко к идеальному теоретическом значению.

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

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments49

Пакуем приложения ASP.NET Core с помощью Docker

Reading time11 min
Views109K

Приложения ASP.NET Core по-настоящему кросс-платформенны и могут запускаться в «никсах», а соответственно, и в Docker. Посмотрим, как их можно упаковать, чтобы развертывать на Linux и использовать в связке с Nginx. Подробности под катом!


Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments6

Бессерверный REST API «на коленке за 5 минут»

Reading time8 min
Views20K
Привет, Хабр! Сегодня продолжим разговор о возможностях, которые предоставляет нам Amazon Web Services и о том, как эти возможности использовать в решении прикладных задач.

На простом примере рассмотрим создание буквально за несколько минут собственного бессерверного автомасштабируемого REST API с разбором кейса — получения списка для ресурса.

Интересно? Тогда заходим под кат!


(Источник)
Читать дальше →
Total votes 35: ↑29 and ↓6+23
Comments26

Работа с фрилансерами по договору подряда «по всем правилам», или чем грозит компании оформление отношений с внештатными исполнителями

Reading time6 min
Views29K
Приветствуем всех читателей нашего блога! В нашей первой статье мы поговорим об особенностях оформления отношений с независимыми внештатными подрядчиками-фрилансерами в РФ.

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

Фрилансер и дистанционный/надомный работник: важные отличия

Достаточно часто юридический статус фрилансера рассматривается как некая вариация трудовых отношений, хотя такая классификация неверна. Некоторые понимают под определением «фрилансер» дистанционных (удалённых) и надомных работников. Однако между ними существуют важные отличия:

— фрилансер может одновременно выполнять работы и оказывать услуги для неограниченного числа заказчиков, в то время как дистанционные и надомные работники могут осуществлять те же самые действия только для ограниченного числа работодателей, и то при условии, что каждый работодатель выражает своё согласие с «параллельным» трудоустройством своего работника. Сама возможность получения такого согласия от работодателей является относительной редкостью;

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

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



Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments29

Как прочитать патент за одну минуту

Reading time3 min
Views39K
Допустим, кто-то подал на вас в суд за нарушение патента. Вам нужно выяснить, насколько все плохо. Или, например, ваш начальник дал вам поручение проверить, нарушает ли кто-либо патент, который вы когда-то получили. А вы совершенно ничего про это не помните, потому что в среднем на патентную экспертизу уходит около четырех лет и к тому времени, когда случится что-то интересное, вы обо всем этом благополучно забудете.

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

На полную оценку патента может уйти несколько часов или даже дней. Если времени у вас мало, вот неприлично быстрый способ выяснить, что представляет собой патент, меньше чем за одну минуту.
Читать дальше →
Total votes 85: ↑78 and ↓7+71
Comments18

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

Reading time4 min
Views2.8K
image
На протяжении порядка ста лет Патентное ведомство и Верховный Суд США посредством прецедентов борются и запрещают патентование абстрактных идей, природных явлений, математических алгоритмов как таковых. Тем не менее, потенциальные патентообладатели изо всех сил пытаются обмануть патентное ведомство и суды всех инстанций, стараясь не попасть в «запрещенные» категории, особенно в наше время с софтверными решениями, которые не являются материальными и очень легко могут быть отнесены к абстрактным идеям или программам.
Читать дальше →
Total votes 13: ↑5 and ↓8-3
Comments9

Освоение Vuex — с нуля до героя

Reading time7 min
Views156K

Привет, Хабр! представляю вашему вниманию перевод статьи «Mastering Vuex — Zero to Hero» автора Sanath Kumar.


Официальная документация Vuex определяет его как паттерн управления состоянием + библиотека для приложений Vue.js. Но что это значит? Что такое паттерн управления состоянием?


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


Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments22

Information

Rating
Does not participate
Location
Сингапур
Registered
Activity