ANDREJ CORNEEV

О проекте

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

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

Я, Андрей Корнеев, средний во всех отношениях человек, то есть возраст средний, никаких особых достижений в жизни нет. Высшее образование, диссертации имеются, но этим сейчас никого не удивишь. Увлечения вполне себе средние: спорт, музыка, фото-видеосъемки и последующий монтаж, НЕ люблю пиво, вкусно поесть, путешествия, а также все, что у меня отнимает много времени, за исключением семьи - жене и дочери я готов отдать все, в том числе и столько времени, сколько им потребуется. Впрочем, они очень миленькие и очень умненькие, и, зная мое стремление объять необъятное, очень деликатны в отношении моего времени.

Но есть во мне одна - поверьте, только одна - тайная страсть, которая пылает со старших классов школы уж лет так 20, и никуда не собирается исчезать. Я упорно пытаюсь разобраться - сейчас самое время очень удивиться - в смысле жизни. Я копаюсь в этом непрерывно. Как и многие, начал с попыток найти в основных религиях хотя бы крохотные намеки на ответ. И, как многие, увидел масштабные, в некоторых фрагментах достаточно системные знания, но какое они имеют отношение к материальной модели моего мира, я так и не понял. Временами я все еще возвращаюсь к религиозным платформам, но все реже и реже.

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

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

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

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

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

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

У всех консультантов Проекта разные компетенции. Меня, например, пригласили в проект как человека, владеющего экосистемами языков JAVA и PYTHON. Но за последние четыре года я открыл для себя другие языки, например, Go, Rust, Javascript, Erlang, PHP, Ruby, Scala, Elixir, попробовал написать на них небольшие, но реальные проекты, в том числе и для Web, c использованием IDE от Jetbrains - раньше я жил в Eclipse - и различных систем сборки и публикации проектов.

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

Материалы в основном представляют собой ЗАМЕТКИ - короткие статьи преимущественно концептуального характера, ОТВЕТЫ - ответы на заданные вами вопросы, КНИГИ - короткие справки о книгах по программированию с моей оценкой их полезности, КАРКАСЫ - краткая информация о структуре стандартных решений и КОДЫ - примеры иллюстрирующих технологии программных кодов. Все эти материалы я намерен публиковать как по собственной инициативе, так и в порядке ответов на ваши вопросы.

Вообще говоря, спросить можно о чем угодно. Но ограничения времени таковы, что я едва ли смогу написать ответов более, чем на 1.5 - 2 страницы А4 в день. Я не против приводить какие-то рецепты на примере собственного кода или адекватного кода из Интернет, который я считаю правильным, но все же наиболее полезно спрашивать о целесообразности технологий, перехода на новые версии, выборе решений, правильном толковании терминов и понятий, возможности использования готовых решений. В таких случаях ответ размером даже в одну страницу может быть очень информативен и избавит от необходимости читать длинные статьи или покупать дорогие книги.

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

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

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

УДАЧИ!

Close

Мое рабочее место

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

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

Гигабитная сеть и Интернет ( хороший Интернет - стабильно в обе стороны поддерживается скорость ~ 90 Мбит/секунду ) обеспечиваются роутером ASUS RT-N16 со стандартной прошивкой. В сети в двух комнатах находятся: три NAS ( NS1 - THECUS N4200Pro, NS2 - Synology DS414Slim и NS4 - Synology DS414), NS3 - Сервер Dell PowerEdge T320, PC7 - компьютер для работы с графикой и видеомонтажа, PC8 - мой рабочий компьютер и PC6 - ноутбук для всех особ женского пола. Понятно, что для подключения всего этого есть еще пара коммутаторов ASUS GX-D1081 - по одному в каждой комнате. Wi-Fi тоже не забыт - на нем помимо бездны всякой мелочи висит принтер HP COLOR LaserJet Pro 200 M251n.

NS1 - на него приходят тестовые данные физических экспериментов и через него же отправляются построенные модели ( и то, и другое до 100Гб ). NAS уже довольно старый, но работает безупречно. Диски - 2 зеркала из 2Гб дисков. В начале его использования в ThecusOS были сделаны доработки, позволяющие достаточно эффективно получать и отправлять совсем немаленькие объемы данных без внешнего IP адреса. Решено все просто на основе постоянного опроса некоторого сервера с "белым" IP-адресом на предмет наличия новых данных на обработку и запросов на получение созданных моделей. Сервер включается и выключается по расписанию.

NS2 - маленький бесшумный сервер для дома. На нем семейный аудио-фото-видеоархив, видеомонтажное творчество и книги в электронном виде. Сервер включается при необходимости и автоматически выключается в 24:00.

NS3 - хороший сервер от компании DELL. используется как для основной работы, так и в иных целях, некоторые из которых соответствуют предмету блога. На нем работает гипервизор VMware ESXi 6 Free и соответственно решаемым задачам набор VM. По основной работе мне нужны VM, позволяющие развернуть достаточную для HADOOP среду - о ней я писать не буду, а для тематики блога нужны VM, в рамках которых можно в полной мере создать среду их реализации - об этом я писать буду достаточно обстоятельно. В качестве гостевых систем используются исключительно варианты на основе CentOS 7.2, хотя я посмотрел и на возможность использования CentOS Atomic-Host 7.20151101 в качестве среды для контейнеров Docker - все хорошо, но решающих аргументов для отказа от CentOS в минимальной конфигурации я не вижу.

NS4 - работает всегда, "виден" из Интернет, обеспечивает VPN для аудио-видео конференц-связи и решения иных задач, непосредственно связанных с моей работой в компании, а также на нем работает DNS-сервер. Штатная операционная система DSM 5.2 все это обеспечивает "из коробки" путем надлежащей настройки. Мне кажется это удобным.

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

Мой рабочий компьютер - PC8. Все очень традиционно... Был неплохой, но не позволяющий в полной мере использовать возможности виртуализации, компьютер. Уже больше года назад мне понравился корпус COOLER MASTER ELITE 130. Это предопределило все: CPU i7-4770, MB ASUS H81I-PLUS, VIDEO GEFORCE GTX-750, 2 x WD Red WD30EFRX 3 Тб.

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

Компьютеры PC6 - 8 работают под управлением Window 7 SP1 Enterprise. На Windows 10 мы пока не переходим. На NS3 работает VMware vSphere Hypervisor 6.0 Free - лицензии на полный vSphere у нас нет. Зато есть лицензия на VMWare Workstation 12.0. Поэтому на PC8 под WS и на NS3 под ESXi работает - не одновременно конечно - нужный для конкретной задачи набор VM под управлением CentOS - другие варианты Linux я не использую. Подробнее о ПО я планирую написать в отдельных заметках и в рамках каталога.

Что касается ИТ-библиотечки, она перевалила за сотню книг на 95% купленных в OZON.RU. И, хотя я не очень люблю читать книги в электронном виде, все же есть несколько сотен и таких книг. Я их скачал, как мне кажется, из легальных источников. Они все на английском - я им владею полностью - и очень помогли мне там, где литературы на русском языке нет. Многие книги я оцениваю достаточно высоко и поэтому решил все их представить в своем блоге.

А теперь две картинки, иллюстрирующие вышеизложенное.



Close

Каталог

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

Не хочу оценивать свои компетенции. Что-то я знаю хорошо, а что-то не очень... Что-то я использовал в реальных проектах, а что-то просто поизучал на примерах... Важно, что в рамках Проекта ко мне теперь обращаются не только в связи с Java или Python и их экосистемами.

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

Вначале я так и представлял себе результаты работы: временная шкала, на которой есть статьи о каждом предмете изучения за эти годы. Более того, я даже сделал соответствующий вариант движка на PHP+Laravel (Laravel потому, что блог использует Lumen) и приготовился к анализу архивных записей - у меня есть привычка протоколировать все свои действия. Но затем я столкнулся с необходимостью показать все связи между всеми предметами обучения, объединение их в логические группы, например, ЯЗЫК+ФРЕЙВОРК+СУБД+СИСТЕМА СБОРКИ+СИСТЕМА ПУБЛИКАЦИИ и так далее.

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

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

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

Создание такого каталога задача трудоемкая, то есть, как у нас принято выражаться, "длинная". Я рассчитываю решить ее в течение 2016-го года, стартуя с первых 10-ти программных продуктов, если так можно выразиться, а именно с языков программирования.

ЖДИТЕ! ИДЕТ ПЕРВИЧНОЕ НАПОЛНЕНИЕ КАТАЛОГА...

Close
Новости

Выбор платформы для реализации первого Интернет ресурса я считаю стратегическим решением, которое определит Ваше отношение к Интернет ресурсам в целом и позволит правильно оценить свой потенциал разработчика. Даже, если Вы великолепно владеете Java и/или Python, я настоятельно рекомендую Вам выбрать PHP и его экосистему в качестве языка реализации проекта - это не только самый быстрый путь освоения разработки и простых, и сложных проектов в Интернет, но и возможность освоить все основные технологии, которые при этом используются в, если так можно выразиться, "базовом" виде.

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

2016-10-01

Я искал везде, где только мог, даже под диваном и на шкафу, и так и не нашел его - оправданья тому, что я натворил... Сайт был сделан в начале августа, первая заметка опубликована 29 августа, а затем ПУСТОТА в целый месяц. Но ведь отпуск же... Но ведь море же... Но ведь месяц отпуска в Европе...

Увы, на оправданье это не тянет - ведь мы же 4Т. А это не только True Type Technology Team, но и Труд, Труд, Труд и еще раз Труд - везде и каждый день. Поэтому простите меня за допущенную паузу, я так больше не буду, честное слово. Простите вы, авторы 62 вопросов, простите вы, подсказавшие 17 тем для заметок, и вы, ждущие экспертные заключения на ваш программный код. Я действительно начинаю и, да поможет мне ТРУД!