Pull to refresh
4
0
Alexey Korobko @akorobko

Software Engineer

Send message

Почему старения можно избежать: отрывок из книги «Взламывая код старения»

Reading time12 min
Views35K

Огромное разнообразие типов старения у растений и животных намекает на возможность контроля над этим процессом


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

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


Подёнки умирают быстро и внезапно в конце их репродуктивного цикла

Продолжительность жизни разнится от мафусаиловой до генетических камикадзе, умирающих к весеннему полудню. Стрекозы живут четыре месяца, взрослые подёнки – полчаса. Мы живём около 70 лет, а меристема гинкго может быть возрастом в миллионы лет. Такое разнообразие впечатляет ещё больше, если вспомнить, что генетическая основа старения общая у множества существ, от дрожжей до китов. Но каким-то образом одинаковые генетические механизмы, унаследованные от общих предков на заре жизни, были изменены для создания очень разных продолжительностей жизни, от часов (дрожжи) до тысяч лет (секвойи и тополя осинообразного).

Сильно различается не только продолжительность жизни, но и схема увядания в этот период. Старение может происходить постепенно в течение всей жизни (ящерицы, птицы), или организм может вообще не стареть десятилетиями, а затем внезапно умирать (цикады, столетник).
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments52

Как отслеживать новости в мире C++

Reading time4 min
Views18K
Стараясь непрерывно пополнять свои знания о С++ я определил для себя несколько каналов получения информации, на которых можно сконцентрироваться. Они, возможно, могут быть применимы и к другим областям знаний, но я попробую сфокусироваться на С++. Давайте я расскажу о них чуть подробнее.

  1. Вдумчивое чтение — чтение фундаментальных книг, структурированных и информативных. Это требует длительной концентрации, причём нельзя читать в состоянии усталости, поскольку вы попросту уснёте и ничего не запомните. Если у вас ещё нет электронной читалки — обязательно купите.
  2. Лёгкое чтение — чтение менее серьёзной литературы вроде книг о мотивации, продуктивности, Soft Skills. Всё это зря недооценивается некоторыми программистами. Эти книги не требуют большой концентрации внимания. Да, это совершенно не о языке С++, но это о том, как вообще что-то делать и всё-таки сделать. Хорошо читается перед сном.
  3. Подкасты — хорошо идут, когда нужно переключиться с чего-то одного на другое, или во время шоппинга. Помогают взглянуть на что-то неожиданное. Тренируют умение слушать и понимать услышанное, что может быть полезным умением (например, для участия в совещаниях). Если английский язык для вас не родной — вы можете услышать как произносятся термины и имена. Я рекомендую послушать CppCast или Software Engineering Radio — я был приятно удивлён широким охватом их тем. Первый эпизод вышел в 2006-ом году, подкаст наполовину состоит из истории программной инженерии и наполовину из теории (паттерны, проблемы, решения и т.д.)
  4. Видео и лекцииCppCon, CppNow, Meeting C++, ACCU Conference для начала. Там просто ошеломляющее количество интересных докладов. В отличии от подкастов это требует визуального внимания и концентрации, но и выучить в результате можно больше. Я думаю просмотр 2-5 видео в неделю вполне достижимо.
    Совет: увеличивайте скорость аудио/видео — мозг быстро привыкает к этой скорости и вы сможете услышать больше за меньшее время.
  5. Обсуждения, форумы, твиттер — этот канал обмена информацией требует меньше всего концентрации. Вы можете быстренько просмотреть дискуссии, ленту твиттера в поисках чего-то интересного — просто убивая время. Если что-то нашлось — можно добавить это в список для чтения позже. Чем это всё полезно — огромным разнообразием людей, мнений, подходов, задач и решений. Хороший способ разогнать свой мозг весьма случайной информацией.

    Вот, например, мой список Core C++ чтобы следить за значимыми в мире С++ разработчиками. А ещё есть несколько страниц и групп в Facebook и неплохие обзоры от Jens Weller.

    Для дискуссий о С++ есть раздел на Реддите (прим. переводчика: а ещё есть хаб на Хабрахабре). Ну и, конечно, группы комитета по стандартизации C++
  6. Блоги и статьи — обычно занимает 5-10 минут чтобы прочитать среднюю статью. Если встречается более глубокая статья — можно пометить её для чтения «когда я буду сконцентрирован». По моим наблюдениям выходит 5-10 хороших статей в неделю и не так сложно прочесть их все.

Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments7

Обработка древовидных структур и унифицированное AST

Reading time11 min
Views18K

Предыдущая статья серии была посвящена теории парсинга исходников с использованием ANTLR и Roslyn. В ней было отмечено, что процесс сигнатурного анализа кода в нашем проекте PT Application Inspector разбит на следующие этапы:


  1. парсинг в зависимое от языка представление (abstract syntax tree, AST);
  2. преобразование AST в независимый от языка унифицированный формат (Unified AST, UAST);
  3. непосредственное сопоставление с шаблонами, описанными на DSL.

Данная статья посвящена второму этапу, а именно: обработке AST с помощью стратегий Visitor и Listener, преобразованию AST в унифицированный формат, упрощению AST, а также алгоритму сопоставления древовидных структур.



Содержание


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

4xiDraw: самодельный перьевой плоттер на Arduino

Reading time1 min
Views42K


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

И пользователь по имени Мигель Санчес (Miguel Sanchez) решил сделать плоттер самостоятельно. В качестве управляющей платформы он выбрал Arduino Uno. В системе также использованы шаговые двигатели NEMA 17 и вспомогательный сервопривод для поднятия и опускания ручки.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments35

На что смотрит свёрточная нейросеть, когда видит наготу

Reading time7 min
Views69K


На прошлой неделе в компании Clarifai мы формально анонсировали нашу модель распознавания непристойного контента (NSFW, Not Safe for Work).

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



Автоматическое выявление обнажённых фотографий было центральной проблемой компьютерного зрения на протяжении более двух десятилетий, и из-за своей богатой истории и чётко поставленной задачи она стала отличным примером того, как развивалась технология. Я использую проблему детектирования непристойности для пояснения, как обучение современных свёрточных сетей отличается от исследований, проводившихся в прошлом.
Читать дальше →
Total votes 75: ↑60 and ↓15+45
Comments96

Лица технологий. Обзор стиля презентаций крупнейших технологических компаний

Reading time6 min
Views26K
image

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

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

Читать дальше →
Total votes 16: ↑11 and ↓5+6
Comments10

VR Sex: что было до Pornhub

Reading time4 min
Views38K
Недавняя новость о том, что крупнейший ресурс для взрослых — PornHub — добавил категорию VR, была воспринята в сети положительно, но с некоторым удивлением, и я подозреваю, что многим просто не приходило в голову раньше, что VR контент для взрослых давно существует, из него извлекают коммерческую выгоду, а в производство вовлечены крупнейшие студии. Не исключаю, что это никому и не интересно. Однако, под катом короткая история о VR18+.



Осторожно. Внутри есть картинки с пометкой 18+
Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments28

Сеть обменной сортировки со слиянием Бэтчера

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

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

Квинтовый круг: Говорим о музыке простыми словами

Reading time3 min
Views128K


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

Впервые квартово-квинтовый круг был описан в книге «Идея грамматики мусикийской» от 1679 года русско-украинского композитора Николая Дилецкого.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments60

Прогнозирование

Reading time10 min
Views5.6K
Я уже писал, зачем нужно такое прогнозирование — Создание искусственного интеллекта.
Здесь же я буду описывать только алгоритм прогнозирования, без лишней лирики.

Рассматривать буду прогнозирование последовательности байтов или же текста UTF-8. Прогнозирование последовательности дробных чисел — графиков — во многом подобно, только нужно значения сравнивать не на равенство, а на принадлежность окрестностям.

Пусть будет поток байтов (или скажем текст UTF-8) — входящие прогнозируемые данные. Поступающие данные сохраняем во множество сохраненной истории. Каждое очередное поступающее значение учитываем в структуре для накопления статистики:
struct Stat {
	uint value; // прогнозируемое значение
	uint count; // количество прошедших таких значений

	// функция index используется шаблонным классом Index - ключ для rb-дерева
	static uint index(const Stat& s) { return s.value; }

	Ptrn* owner;

	double probability() const { return (double)count/(double)owner->sum_count_of_stat; }
};

// шаблонный класс Index это rb-дерево,
//  первый параметр шаблона — тип значения по которому происходит сортировка,
//  второй, это класс сохраняемых значений в узлах. Этот класс должен содержать
//  функцию index.

struct Ptrn {
	// узел, подсчитывающий, какое распределение вероятностей будет
	// следовать за значением value
	uint value;

	Index<uint,Stat> index_of_stat; // распределение вероятностей
	uint sum_count_of_stat;
	
	// путем добавления к текущему value еще влево
	//   будут образовываться паттерны
	Index<uint,Ptrn> index_of_prev;
	static uint index(const Ptrn& s) { return s.value; }

	Ptrn* owner; // owner->index_of_prev->find(value) == this,
	                     // для root этот owner равен nullptr
};

Ptrn root;

Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments14

MediaTek LinkIt Smart 7688 – платформа для IoT и систем автоматизации

Reading time5 min
Views17K
Развитие сегментов IoT и домашней автоматизации сегодня сдерживается, в частности, отсутствием доступных исполнительных устройств и датчиков. Для рынка DIY это в определенном смысле компенсируется наличием разнообразных платформ на базе микроконтроллеров и микропроцессоров, которые стоят относительно недорого. Так что если вы не готовы использовать «коробочное» решение и любите разрабатывать собственные проекты, можно без труда подобрать подходящий вариант.

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

В конце прошлого года компания выпустила две новые модели — LinkIt Smart 7688 и LinkIt Smart 7688 Duo, которые существенно быстрее, дешевле и компактнее, но имеют меньше встроенных контроллеров. Как и предшественник, они были разработаны совместно с Seeed.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments23

Анонсирована ARM64 плата для разработчиков (и фана) за 40$ Odroid-C2 на Amlogic S905

Reading time5 min
Views22K

Добрый день, уважаемые читатели!


Странно, что пока еще не появилось короткой новости об этом, поэтому возьмусь написать. На прошлой неделе компания Hardkernel, знакомая в основном производством dev-плат на базе процессоров arm разных производителей (в основном Samsung Exynos и Amlogic, но была у них и плата полный аналог RPi более маленького формата, которой им крепко прижали выпуск), анонсировала выход новой платы Odroid-C2 на базе 64-битного процессора ARM S905 от Amlogic.

image

Не смотря на то, что на официальном сайте про новую плату пока еще ничего не сказано, вся информация о ней уже доступна. Да и то, что плата разработана и отлажена, и находится в полшаге от производства совершенно очевидно. Как и то, что предзаказы открытые на начало марта через месяц уже начнут доставляться. Поэтому без промедления
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments96

Электродвигатели: какие они бывают

Reading time23 min
Views335K


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

В этой статье будет небольшой обзор по разным типам электродвигателей с фотографиями и примерами применений. Почему в пылесос ставятся одни двигатели, а в вентилятор вытяжки другие? Какие двигатели стоят в сегвее? А какие двигают поезд метро?

Каждый электродвигатель обладает некоторыми отличительными свойствами, которые обуславливают его область применения, в которой он наиболее выгоден. Синхронные, асинхронные, постоянного тока, коллекторные, бесколлекторные, вентильно-индукторные, шаговые… Почему бы, как в случае с двигателями внутреннего сгорания, не изобрести пару типов, довести их до совершенства и ставить их и только их во все применения? Давайте пройдемся по всем типам электродвигателей, а в конце обсудим, зачем же их столько и какой двигатель «самый лучший».
Читать дальше →
Total votes 101: ↑101 and ↓0+101
Comments179

Развитие видеокарт в 2000-х годах

Reading time10 min
Views64K
Продолжая историю развития видеокарт из предыдущей — статьи, видеоадаптеры 2000-х годов.

VSA-100 и новое поколение Voodoo




Чипсет VSA-100 (Voodoo Scalable Architecture — масштабируемая архитектура Voodoo) был выпущен компанией 3dfx в июне 2000 года. Первой видеокартой, использовавшей данный чип (VSA-100х2) стала Voodoo5 5500. Изготовленная по 250-нм техпроцессу, с 14 миллионами транзисторов. Объем памяти SDRAM доходил до 64 Мб, с 128-битной шиной. Частота графического процессора и памяти составляла 166 МГц. Впервые в видеокартах Voodoo поддерживался 32-битный цвет в 3D, а также текстуры с высоким разрешением 2048x2048 точек. Для сжатия применялись алгоритмы FXT1 и DXTC. Особенностью Voodoo5 5500 была высокая производительность при использовании сглаживания.

Видеокарта выпускалась с разными интерфейсами, такими, как AGP, PCI и т.д. Также была доступна версия под Macintosh, имеющая два разъема (DVI и VGA).

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

Кинематика дельта-робота

Reading time8 min
Views49K
Дельта-робот


В далёком 2009 году я загорелся идеей постройки собственного промышленного робота, который мог бы делать что-то полезное (а именно — сортировать мелкие детали на конвейере). Сразу скажу, что робота я построил (результат вы видите на заглавном фото), а заодно, в качестве побочного продукта, написал небольшую статью о кинематике дельта-роботов на форуме TrossenRobotics — американского продавца наборов из деталей для роботов. Они как раз проводили в то время какой-то конкурс для авторов. Конкурс я, разумеется, не выиграл, но статья на английском осталась. Несколько раз я порывался перевести её на родной язык, однако завершить начатое удалось только сейчас.

Если вы хотите построить свою модель дельта-робота, или просто разобраться, как можно вывести кинематические формулы для этого типа роботов (не выходя при этом за рамки школьной программы по алгебре и геометрии) — добро пожаловать под кат. Для тех, кто не очень любит теорию, в конце статьи приведены примеры готового кода на языке C.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments10

Книга «Любовь и математика. Сердце скрытой реальности»

Reading time11 min
Views9.3K
Всем привет! У нас на складе появился второй тираж книги «Любовь и математика. Сердце скрытой реальности», которая была издана совместно с фондом «Династия» Обзор книги уже был на Хабре. Здесь мы опубликуем главу из книги «Покорение вершины»

image «Моя цель не в том, чтобы вас чему-то научить. Я хочу дать вам возможность почувствовать, что существует целый мир, который от нас старательно скрывается, — мир математики. Это портал в неизведанную реальность, ключ к пониманию глубинных тайн Вселенной и нас самих. Математика не единственный портал, есть и другие. Но в некотором смысле он самый очевидный. И именно поэтому он так закамуфлирован, как будто бы на нем прибита доска с надписью: «Вам сюда не надо». А на самом деле надо. И когда мы входим в него, мы вспоминаем, кто мы: не маленькие винтики большой машины, не одинокие души, прозябающие на отшибе Вселенной. Мы — Творцы этого мира, способные дарить друг другу красоту и любовь». — Эдуард Френкель.

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

Почему некоторые ноты гармонично звучат вместе

Reading time4 min
Views45K


Вы никогда не задумывались, почему некоторые ноты больше подходят друг другу, чем другие? Как связаны между собой частоты их волн? Почему ноты одной тональности звучат «хорошо»? Почему «хорошо» звучат ноты в составе аккорда?
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments65

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 2

Reading time8 min
Views23K


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

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

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 1

Reading time9 min
Views98K


Нечеткий поиск строк является весьма дорогостоящей в смысле вычислительных ресурсов задачей, особенно если вам необходима высокая точность получаемых результатов. В статье описан алгоритм нечеткого поиска в словаре, который обеспечивает высокую скорость поиска при сохранении 100% точности и сравнительно низком потреблении памяти. Именно автомат Левенштейна позволил разработчикам Lucene повысить скорость нечеткого поиска на два порядка
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments7

350+ полезных ресурсов, книг и инструментов для работы с Docker

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

Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments8
1
23 ...

Information

Rating
Does not participate
Location
Seattle, Washington, США
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
Git
Linux
OOP
Java
C++
C#
.NET Core
AWS
Windows Azure
.NET