Как стать автором
Обновить
3
0
Vitaly Kiselev @st411ar

web dev

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

Оценка параметров старения с помощью носимой электроники. Лекция в Яндексе

Время на прочтение14 мин
Количество просмотров11K
Носимые устройства сейчас в моде, но используются в основном для фитнеса и спорта. Как найти им другое применение? Что они могут рассказать о нашем здоровье и продолжительности жизни? А главное — как оценивать поступающие с них данные? Руководитель направления mHealth R&D в компании Gero Тимофей Пырков прочитал отличную лекцию, посвящённую локомоторной активности человека.


Под катом — расшифровка и большинство слайдов.

Всего голосов 36: ↑34 и ↓2+32
Комментарии6

Самодельный эмулятор дисковода для Amiga

Время на прочтение8 мин
Количество просмотров11K
У многих сохранились дома компьютеры Amiga. Но вот дискеты к ним сохранились не у всех. Эту проблему можно решить, собрав эмулятор дисковода. О том, как сделать самому такой эмулятор дисковода для Amiga я и расскажу в этой статье.
Всего голосов 35: ↑34 и ↓1+33
Комментарии47

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

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


Статей о том, что совсем скоро придут башковитые роботы и всех поработят бесконечное множество. Под катом еще одна заметка. Предлагаем вам ознакомиться с переводом выступления Нейтана Суареса, посвящённого определению целей систем искусственного интеллекта в соответствии с задачами оператора. На этот доклад автора вдохновила статья «Настройка искусственного интеллекта: в чем сложность и с чего начать», которая является основой для исследований в сфере настройки искусственного интеллекта.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии51

Диалектика нейронного машинного перевода

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

Статья по мотивам выступления на конференции РИФ+КИБ 2017.

Neural Machine Translation: почему только сейчас?


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

Тем не менее, вот динамика популярности в поиске запросов про нейронные сети вообще и про нейронный машинный перевод в частности:

image

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

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

Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии28

Эволюционные стратегии как масштабируемая альтернатива обучению с подкреплением

Время на прочтение6 мин
Количество просмотров11K
Изложение статьи от том, что давно известные эволюционные стратегии оптимизации могут превзойти алгоритмы обучения с подкреплением.
Преимущества эволюционных стратегий:

  • Простота реализации
  • Не требуется обратного распространения
  • Легко масштабируется в распределенной среде вычислений
  • Малое число гиперпараметров.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии14

Изучаем Retrofit 2

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


В мире Android разработки существует множество интересных библиотек, и сегодня мы рассмотрим детище компании SquareRetrofit. Что же это за зверь такой? Retrofit (согласно официальному сайту) — типобезопасный HTTP-клиент для Android и Java. Он является незаменимым инструментом для работы с API в клиент-серверных приложениях. Каких-то лет 5 назад Android-разработчикам для работы с сетью приходилось воротить горы кода с обратными вызовами, AsyncTask'ами и прочими «низкоуровневыми» вещами. И компания Square выпустила такую замечательную библиотеку — Retrofit.

В сети Интернет мне не удалось найти внятных туториалов по второй версии бибилиотеки, поэтому сегодня мы будем разбираться с ней на примере приложения, получающего посты с bash.im
Заходи, если интересно
Всего голосов 19: ↑15 и ↓4+11
Комментарии6

Укрощаем UEFI SecureBoot

Время на прочтение11 мин
Количество просмотров175K
Данные обещания надо выполнять, тем более, если они сделаны сначала в заключительной части опуса о безопасности UEFI, а потом повторены со сцены ZeroNights 2015, поэтому сегодня поговорим о том, как заставить UEFI SecureBoot работать не на благо Microsoft, как это чаще всего настроено по умолчанию, а на благо нас с вами.
Если вам интересно, как сгенерировать свои собственные ключи для SecureBoot, как установить их вместо стандартных (или вместе с ними), как подписать ваш любимый EFI-загрузчик, как запретить загрузку неподписанного или подписанного чужими ключами кода, как выглядит интерфейс для настройки SecureBoot у AMI, Insyde и Phoenix и почему это, по большому счету, совершенно не важно — добро пожаловать под кат, но опасайтесь большого количества картинок и длинных консольных команд.
Войти в клетку
Всего голосов 45: ↑45 и ↓0+45
Комментарии52

Используем Secure Boot в Linux на всю катушку

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


Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы, то есть защиту от буткитов и атак типа Evil Maid. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются.


Более подробно о Secure Boot можно узнать из цикла статей от CodeRush.



Чтобы Secure Boot обеспечивал безопасность, подписываемые приложения должны соблюдать некоторый «кодекс чести»: не иметь в себе лазеек для неограниченного доступа к системе и параметрам Secure Boot, а также требовать того же от загружаемых ими приложений. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению. Такую угрозу представляют загрузчик shim, подписываемый Microsoft, и загружаемый им GRUB.


Чтобы от этого защититься, мы установим Ubuntu с шифрованием всего диска на базе LUKS и LVM, защитим initramfs от изменений, объединив его с ядром в одно UEFI-приложение, и подпишем его собственными ключами.

Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии28

Немного реверс-инжиниринга USB flash на контроллере SK6211

Время на прочтение7 мин
Количество просмотров33K
Недавно, обсуждая нюансы работы USB flash на данном ресурсе, столкнулся с тем, что основная масса технически грамотных людей в силу отсутствия литературы не имеет представления об основных принципах работы NAND контроллеров, в связи с чем появляется масса далеких от реальности заявлений об особенностях оптимизации микропрограмм устройств, либо делаются неверные выводы о причинах выхода из строя самих устройств.

Дабы немного развеять иллюзии, попробуем методами реверс-инжиниринга проанализировать алгоритмы работы NAND контроллера производства SKYMEDI SK6211 на примере готового изделия в виде USB flash 8Gb, выпущенной компанией Kingston.


рис. 1
Читать дальше →
Всего голосов 56: ↑54 и ↓2+52
Комментарии41

КВН: Купил — включил — не работает. О чём нельзя забывать при апгрейде памяти в компьютере

Время на прочтение10 мин
Количество просмотров129K
Привет, Гиктаймс! Модернизация оперативной памяти — самый элементарный вид апгрейда в ПК, но лишь до тех пор, пока вам везёт, и вы не наткнулись на одну из многочисленных несовместимостей железа. Рассказываем, в каких случаях набор крутой оперативной памяти не «заведётся» на старом ПК, почему на некоторых платформах нарастить ОЗУ можно только с помощью «избранных» модулей и предупреждаем о других характерных причудах железа.

Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии158

«Кривой» сервер весь ЦОД портит! Что следует помнить при выборе серверной памяти

Время на прочтение7 мин
Количество просмотров11K
Привет, Гиктаймс! Неспециалисты сегодня уверены, что дата-центры — это такие «заповедники могучих серверов», в которых вычислительные машины отличаются от домашних ПК только производительностью и некоторыми шильдиками/разъёмами. А раз так, то и апгрейд серверных компьютеров, выходит, задача заурядная? В реальности дела обстоят совсем иначе, и сегодня мы расскажем, насколько много нюансов приходится учитывать даже при выборе оперативной памяти для дата-центров.

Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии13

Основные законы создания команд разработчиков

Время на прочтение9 мин
Количество просмотров71K
В EDISON часто обращаются инженеры, желающие добавить сотрудников в команду. Хочется «по-быстрому склепать задачку», воспользовавшись десятком дополнительных разработчиков. Работает ли подобный подход? К сожалению, не всегда. В программировании, как в физике, есть законы.


Собрать толковую команду — настоящее искусство
Читать дальше →
Всего голосов 60: ↑43 и ↓17+26
Комментарии17

Дональд Кнут о первых шагах в программировании: Как я провел лето с компьютером, а не с девушками (19,20,21,22/97)

Время на прочтение11 мин
Количество просмотров16K
«Суть в том, что это руководство по эксплуатации IBM Model 650 было довольно глупым. Оно и подтолкнуло меня к программированию.»

image


Как я заинтересовался компьютерами? У меня была стипендия на обучение в Кейсовском Технологическом институте, но она покрывала не полную стоимость обучения, а только лишь часть, и поэтому мне пришлось устроиться на работу на неполный рабочий день. У моих родителей не было денег, и я пошел работать в Департамент статистики. Одной из моих обязанностей было управление сортировальной машиной, механической машиной IBM для сортировки перфокарт, и это было довольно увлекательно. Нужно было взять перфокарты и поместить в машину, которая направляла их по разным карманам, затем достать перфокарты в определенном порядке и после проверить результаты и начертить графики. Так что, я чертил графики для Департамента статистики.
Всего голосов 21: ↑19 и ↓2+17
Комментарии6
Инновационный город под Казанью появился лишь пять лет назад, но уже успел обрасти сплетнями и противоречиями. Свободная экономическая зона, крутое IT-образование по западным программам, доступная инфраструктура и большие возможности для IT-развития и бизнеса. Университет, где не тратят время впустую. Все это звучит как сказка или сюжет фантастического кино. Искать подвох мы будем в самом Университете Иннополиса во время очного отбора для абитуриентов.
Читать далее
Всего голосов 30: ↑26 и ↓4+22
Комментарии32

Алгоритмы поиска в строке

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

Постановка задачи поиска в строке


Часто приходится сталкиваться со специфическим поиском, так называемым поиском строки (поиском в строке). Пусть есть некоторый текст Т и слово (или образ) W. Необходимо найти первое вхождение этого слова в указанном тексте. Это действие типично для любых систем обработки текстов. (Элементы массивов Т и W – символы некоторого конечного алфавита – например, {0, 1}, или {a, …, z}, или {а, …, я}.)

Наиболее типичным приложением такой задачи является документальный поиск: задан фонд документов, состоящих из последовательности библиографических ссылок, каждая ссылка сопровождается «дескриптором», указывающим тему соответствующей ссылки. Надо найти некоторые ключевые слова, встречающиеся среди дескрипторов. Мог бы иметь место, например, запрос «Программирование» и «Java». Такой запрос можно трактовать следующим образом: существуют ли статьи, обладающие дескрипторами «Программирование» и «Java».

Поиск строки формально определяется следующим образом. Пусть задан массив Т из N элементов и массив W из M элементов, причем 0<M≤N. Поиск строки обнаруживает первое вхождение W в Т, результатом будем считать индекс i, указывающий на первое с начала строки (с начала массива Т) совпадение с образом (словом).
Пример. Требуется найти все вхождения образца W = abaa в текст T=abcabaabcabca.

Образец входит в текст только один раз, со сдвигом S=3, индекс i=4.
Читать дальше →
Всего голосов 86: ↑66 и ↓20+46
Комментарии38

Wi-Fi сети: проникновение и защита. 1) Матчасть

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


Синоптики предсказывают, что к 2016 году наступит второй ледниковый период трафик в беспроводных сетях на 10% превзойдёт трафик в проводном Ethernet. При этом от года в год частных точек доступа становится примерно на 20% больше.

При таком тренде не может не радовать то, что 80% владельцев сетей не меняют пароли доступа по умолчанию. В их число входят и сети компаний.

Этим циклом статей я хочу собрать воедино описания существующих технологии защит, их проблемы и способы обхода, таким образом, что в конце читатель сам сможет сказать, как сделать свою сеть непробиваемой, и даже наглядно продемонстрировать проблемы на примере незадачливого соседа (do not try this at home, kids). Практическая сторона взлома будет освещена с помощью Kali Linux (бывший Backtrack 5) в следующих частях.

Статья по мере написания выросла с 5 страниц до 40, поэтому я решил разбить её на части. Этот цикл — не просто инструкция, как нужно и не нужно делать, а подробное объяснение причин для этого. Ну, а кто хочет инструкций — они такие:
Используйте WPA2-PSK-CCMP с паролем от 12 символов a-z (2000+ лет перебора на ATI-кластере). Измените имя сети по умолчанию на нечто уникальное (защита от rainbow-таблиц). Отключите WPS (достаточно перебрать 10000 комбинаций PIN). Не полагайтесь на MAC-фильтрацию и скрытие SSID.

Оглавление:
1) Матчасть
2) Kali. Скрытие SSID. MAC-фильтрация. WPS
3) WPA. OpenCL/CUDA. Статистика подбора
Как работают WEP, WPA и WPS
Всего голосов 185: ↑176 и ↓9+167
Комментарии76

«Компьютер как устройство для общения» или о том, каким виделось будущее Интернета в 1968

Время на прочтение13 мин
Количество просмотров12K
13 апреля 2017 года ушёл из жизни Роберт Уильям Тейлор, один из пионеров Интернета, руководитель команд, которые внесли большой вклад в развитие персонального компьютера и другие связанные с ним технологии. В конце 1960-х годов Боб Тейлор убедил Министерство обороны США разработать сеть ARPAnet, ставшую предшественником Интернета. Совместно с Джозефом Ликлайдером Тейлор написал легендарное эссе «Компьютер как коммуникационное устройство» (The Computer as a Communication Device), опубликованное в апреле 1968 года. Сегодня, спустя 49 лет, мы хотели бы обсудить концептуальную часть этого эссе, в которой решается проблема эффективности общения. Давайте вспомним для каких именно целей выдающиеся IT-новаторы хотели создать то, что стало Интернетом.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии8

Эксперименты с malloc и нейронными сетями

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


Больше года назад, когда я работал антиспамщиком в Mail.Ru Group, на меня накатило, и я написал про эксперименты с malloc. В то время я в свое удовольствие помогал проводить семинары по АКОСу на ФИВТе МФТИ, и шла тема про аллокацию памяти. Тема большая и очень интересная, при этом охватывает как низкий уровень ядра, так и вполне себе алгоритмоемкие структуры. Во всех учебниках написано, что одна из основных проблем динамического распределения памяти — это ее непредсказуемость. Как говорится, знал бы прикуп — жил бы в Сочи. Если бы оракул заранее рассказал весь план по которому будет выделяться и освобождаться память, то можно было составить оптимальную стратегию, минимизирующую фрагментацию кучи, пиковое потребление памяти и т.д. Отсюда пошла возня с ручными аллокаторами. В процессе раздумий я натолкнулся на отсутствие инструментов логирования malloc() и free(). Пришлось их написать! Как раз про это была статья (а ещe я изучал macOS). Были запланированы две части, однако жизнь круто повернулась и стало не до malloc(). Итак, пора восстановить справедливость и реализовать обещанное: ударить глубоким обучением по предсказанию работы с кучей.


Внутри:


  • Совершенствуем libtracemalloc, перехватчик malloc().
  • Строим LSTM на Keras — глубокую рекуррентную сеть.
  • Обучаем модель на примере работы реального приложения (vcmi/vcmi — а вы думали, причем здесь Heroes III?).
  • Удивляемся неожиданно хорошим результатам.
  • Фантазируем про практическое применение технологии.
  • Исходники.

Интересно? Добро пожаловать под кат.


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

Разработка шахматной программы

Время на прочтение10 мин
Количество просмотров76K
Было ли вам когда-либо интересно написать свою шахматную программу? Настраивать и развивать её, проверять её на знакомых любителях шахмат и радоваться её победам. Но как написать такую программу? Об этом я и расскажу в этой статье.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии26

Решение линейных диофантовых уравнений с любым числом неизвестных

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

Здравствуйте, уважаемые читатели! Продолжаю серию дилетантских статей о математике.


Сегодня предлагаю поразмышлять над некоторой интересной математической задачкой.
А именно, давайте-ка для разминки решим следующее линейной уравнение:

$5a+8b+3c+2d = 17$


«Чего сложного?» — спросите вы. Действительно, лишь одно уравнение и целых четыре неизвестных. Следовательно, три переменных есть свободные, а последняя зависит от оных. Так давайте выразим скорее! Например, через переменную $a$, тогда множество решений следующее:

$ \begin{cases}\displaystyle{ a= \frac{17-8b-3c-2d}{5}\\ b,c,d\in\mathbb{R} } \end{cases} $


где $\mathbb{R}$ — множество любых действительных чисел.

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

Вспомним про линейные уравнения с целыми коэффициентами и целыми корнями, которые, собственно, являются разновидностью диофантовых уравнений. Конкретно — наложим на наше уравнение соответствующие ограничение на целочисленность коэффициентов и корней. Коэффициенты при неизвестных у нас и так целые ($5; 8; 3; 2; 17$), а вот сами неизвестные необходимо ограничить следующим:

$ a,b,c,d \in \mathbb{Z} $


где $\mathbb{Z}$ — множество целых чисел.

Теперь решение, полученное в начале статьи, «не проканает», так как мы рискуем получить $a$ как рациональное (дробное) число. Так как же решить это уравнение исключительно в целых числах?

Заинтересовавшихся решением данной задачи прошу под кат.
Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии11
12 ...
31

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность