Search
Write a publication
Pull to refresh
23
0
Михаил @RMV1983

User

Send message

Наследственность за пределами генетики

Reading time18 min
Views28K

Вы передаёте своим детям не только содержимое вашего генетического кода




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

Классическая генетика проводит фундаментальное различие между "генотипом" (то есть, совокупностью генов, переносимых индивидуумом, которые он может передать потомкам) и "фенотипом" (временным состоянием тела, несущим отпечаток своего окружения и полученного опыта, чьи особенности не передадутся потомкам). Предполагается, что лишь генетически предопределённые свойства могут наследоваться – то есть, передаваться потомкам – поскольку наследование проходит исключительно через передачу генов. Однако было показано, что, в нарушение дихотомии генотип/фенотип, линии генетически идентичных животных и растений могут испытывать изменчивость наследования и реагировать на естественный отбор.
Читать дальше →

Перенос веб-приложения с чистого JavaScript на Vue.js

Reading time25 min
Views27K
Vue.js — это фреймворк, предназначенный для разработки веб-приложений. Он имеет систему реактивности, которая позволяет разработчику моделировать состояние приложения и управлять им. В результате, когда данные меняются, это автоматически отражается на пользовательском интерфейсе, при этом разработчику не нужно обращаться к DOM. Если вы создаёте приложения, пользуясь чистым JavaScript или jQuery, это значит, что вам приходится явно обращаться к элементам DOM и обновлять их для того, чтобы отразить в интерфейсе изменения состояния приложения, например, вывести на веб-страницу какие-то данные.


Читать дальше →

Ненужные HTTP-заголовки

Reading time7 min
Views44K
Заголовки HTTP важны для контроля, как кэш и браузеры обрабатывают ваш контент. Но многие из них используются неправильно или бессмысленно, затрачивая лишние ресурсы в критический момент загрузки страницы, и они могут работать не так, как вы думаете. В серии статей о лучших практиках сначала рассмотрим ненужные заголовки.

Большинство разработчиков знают о важных и нужных HTTP-заголовках. Самые известные — Content-Type и Content-Length, это почти универсальные хедеры. Но в последнее время для повышения безопасности начали использоваться заголовки вроде Content-Security-Policy и Strict-Transport-Security, а для повышения производительности — Link rel=preload. Несмотря на широкую поддержку в браузерах, лишь немногие их используют.

В то же время есть много чрезвычайно популярных заголовков, которые вообще не новые и не очень полезные. Мы можем это доказать с помощью HTTP Archive, проекта под управлением Google и спонсируемого Fastly, который каждый месяц при помощи WebPageTest скачивает 500 000 сайтов и выкладывает результаты в BigQuery.
Читать дальше →

Редактор еженедельных расписаний

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

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

Напишу, обо что обычно спотыкаются и как это решить, решу задачку о закрашивании полоски, а затем приведу примеры простого бэкенда на node/sequelize и закончу несложным фронтендом на vue/vuex/vuetify/nuxt, где можно будет все это потаскать мышкой и посмотреть, как работает.

Коды выложены на github, развернуто здесь.


Читать дальше →

Математика, которой я пользуюсь

Reading time8 min
Views22K


Недавно на одном онлайн-форуме был задан вопрос: насколько востребована математика в условиях работы реального программиста, как часто он пользуется ей и каким ее областями? И вот мой ответ.

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

Далее, я часто занимаюсь анализом трудоемкости алгоритмов. Размеры наборов данных, подвергаемые обработке в наши дни, просто колоссальны. В 2010 году на конференции Techonomy Эрик Шмидт сказал, что объем данных, создаваемых сегодня человечеством всего за два дня, равен объему всех существовавших в мире данных по состоянию на 2003 год. Мне важно уметь обрабатывать большие сегменты этих объемов и извлекать из них пользу. И в этом смысле понимание пространственно-временной сложности операций, применяемых нами к данным есть ключ к определению того, возможны ли те или иные вычисления в принципе. В отличие от более традиционных видов O-анализа или тета-анализа постоянные множители в таких масштабах оказывают существенное влияние: множитель 2 не меняет асимптотическую временную сложность алгоритма, но потребует увеличения количества процессоров с 10 тыс. до 20 тыс., и такая разница в потреблении ресурсов будет ощутима. В результате вычисления становятся более изощренными. Примеры: могу ли я взять некое линейное вычисление и снизить его в силе до логарифмического? Можно ли снизить потребление памяти в три раза? И так далее.
Читать дальше →

Миф о предпочтительном стиле обучения

Reading time5 min
Views14K

Популярная теория о том, что некоторые лучше обучаются визуально или аудиально, развенчивается




В начале 90-х новозеландец Нил Флеминг решил разобраться с тем, что занимало его во время наблюдений за классами в качестве школьного инспектора. Он наблюдал за 9000 разными классами и заметил, что лишь некоторые учителя были способны достучаться абсолютно до всех своих учеников. Что они делали по-другому?

Флеминг в итоге пришёл к вопросу о том, какой способ предоставления информации нравится людям. К примеру, если вы спрашиваете, как куда-то пройти, предпочтёте ли вы, чтобы вам рассказали об этом, или нарисовали карту?

Сегодня 16 подобных вопросов составляют опросник VARK, разработанный Флемингом для определения «стиля обучения» человека. VARK, что расшифровывается, как «визуальный, слуховой, текстовый и кинестетический», сортирует студентов на тех, что лучше обучаются визуально, через услышанную информацию, посредством чтения или через «кинестетический» опыт. («Гораздо позже я узнал, что vark по-голландски значит „свинья, — писал Флеминг, — и не смог зарегистрировать сайт vark.com, поскольку зоомагазин из Пенсильвании использовал его для продажи трубкозубов!“ [aardvark, или земляная свинья / прим. перев.]).
Читать дальше →

Знакомимся с хакерспейсом Нижнего Новгорода — CADR. Часть 1

Reading time6 min
Views8K


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

В Нижнем Новгороде живет хакерспейс CADR, и основатель Артём Попцов согласился ответить на наши вопросы — рассказать про историю создания, развитие и проекты своего клуба.

Как пришла идея создать хакспейс, и как это происходило?

Рождение идеи


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

Цель была поставлена следующая: создать некоммерческое место для технического творчества со своей «гиковской» атмосферой, набором инструментов, управляемое сообществом, участие в котором будет либо бесплатно, либо за минимальную оплату.
Читать дальше →

Так ли плох XMPP, как его малюют? Каким Jabber стал сегодня

Reading time6 min
Views88K


Часто при обсуждении мессенджеров, при упоминании XMPP можно услышать слова:
Привет из двухтысячных! Неужели кто-то еще пользуется устаревшим протоколом? В XMPP до сих пор нет доставки файлов, сообщений, синхронизации, красивых клиентов?

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

В этой статье мы рассмотрим для чего создавался XMPP, обсудим в комментариях причины снижения его популярности и каким Jabber стал сегодня

Предыстория


В двухтысячных годах у большинства интернет-гигантов были развернуты XMPP сервера. С одного сервера можно было написать на другой и вот уже казалось, если технологию немного доделать появится e-mail 2.0, универсальный мессенджер для всего Интернета, но тут что-то пошло не так.
Читать дальше →

15 когнитивных искажений

Reading time9 min
Views185K
Люди сталкиваются с большим объёмом информации, часть из которой достоверна, а часть освещает интересующую область односторонне, а иногда и сознательно искажённо.

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



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

Так, галочка «по умолчанию согласен» позволила увеличить количество согласных на донорство до 86% в Швеции, тогда как в Дании, где при получении прав нужно самостоятельно ставить согласие, т. е. принимать осознанный выбор, количество согласных на донорство 4%.
Читать дальше →

Файловый сервер SAMBA на базе Linux CentOS 7

Reading time9 min
Views144K


Привет Хабр!
После активности шифровальщика Petya 27.06.2017, я отключил SMB1 он же CIFS, и получил производственное оборудование и сетевые МФУ которые не умеют работать на «новых» версиях SMB протокола.

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

Под катом находится пошаговая инструкция по установке и настройке файлового сервера SAMBA на базе CentOS 7:

— Анонимный доступ
— Аутентификация и авторизация
— Интеграция с Active Directory
Читать дальше →

Обзор возможностей инструмента Adobe Captivate

Reading time2 min
Views15K
Adobe Captivate — это программа для создания и редактирования интерактивных обучающих курсов, с возможностью демонстрации ПО, записи видео-уроков, создания симуляций программ, разработки проверочных тестов и тд.

Курс, сгенерированный на Adobe Captivate, можно выгружать в разных форматах. В своей работе я чаще всего использую форматы: *.html, *.exe и scroom 1.2 для загрузки курсов в систему Moodle и на иные платформы типа eFront.

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

Для создания симуляций программ, Captivate позволяет использовать правую и левую кнопку мыши и нажатия клавиш, что очень удобно при обучении пользователей, без допуска оных к «боевому» стенду. Для демонстраций программ возможна запись в реальном времени. Созданные с помощью Captivate скринкасты занимают намного меньше места, чем полноценные записи с экрана.
Читать дальше →

Почти полное руководство по flexbox (без самих flexbox)

Reading time3 min
Views63K
image

К сожалению, не у всех есть браузер/устройство, поддерживающие flexbox. Это руководство в виде шпаргалки, в котором предлагаются альтернативы обратной совместимости для свойств flexbox.

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

Читать всю статью

Ubuntu. Русификация консоли в 2016 году

Reading time14 min
Views83K
Для меня было некоторым откровением узнать, что в 2016 году, в одном из крупных дистрибутивов GNU/Linux существуют проблемы с локализацией. А точнее, с локализацией текстовой консоли. Кто пользуется текстовой консолью в 2016 году? Не надо забывать, что есть множество дистрибутивов, базирующихся на Ubuntu и не все из них используют графическое окружение. Назову два примера: Ubuntu Server и Clonezilla.

Выглядит проблема так:



И присутствует в текущем релизе Ubuntu 15.10 и в бета-версии Ubuntu 16.04. Тем, кому интересно узнать причины проблемы и как можно её решить — прошу под хабракат.
Читать дальше →

Настройка sendmail для отправки почты через gmail.com

Reading time2 min
Views62K
Долго искал внятное объяснение как заставить локальный sendmail, установленный на компьютере во внутренней сети, отправлять почту во внешний мир. В качестве relay был выбран smtp.gmail.com.

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

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

StartCOM: Certificate Transparency, бесплатные* EV SSL сертификаты

Reading time2 min
Views14K
* (сама проверка до уровня EV остается платной)



Либерализация глобальной инфраструктуры PKI не прошла мимо шестого по величине удостоверяющего центра StartCOM, любимого многими за «нетрадиционную» ценовую политику.
Читать дальше →

Как сделать многослойную Parallax иллюстрацию на CSS & JavaScript

Reading time5 min
Views57K
image
Рисунок используемый для parallax эффекта. Автор Patryk Zabielski

Привет друзья, я покажу вам как создать простою многослойную иллюстрацию с глубиной, которая переходит к контенту. Мы будем использовать метод, в котором необходим только css и чистый JS(coffeescript) (Никаких jQuery!).

Этот урок для начинающих, с начальным знанием JS и CSS, так что я буду объяснять большинство вещей и ссылаться на внешние источники.

Финальное демо
Читать дальше →

LTSP: Терминальный сервер на Linux

Reading time11 min
Views194K


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


LTSP — Это терминальное решение на Linux.
Говоря "терминальное", я в первую очередь имею в виду не подключение к удаленному рабочему столу как в Windows. Я подразумеваю гораздо более гибкую и продвинутую систему доставки ПО, конфигов, домашенего каталога, да и самой операционной системы на клиентские рабочие станции с вашего терминального сервера.


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


У LTSP есть несколько режимов работы:


  • тонкий клиент
  • толстый клиент
Читать дальше →

Сколько десятичных знаков числа пи использует НАСА

Reading time3 min
Views51K


На этой неделе мы получили от одного из подписчиков Facebook вопрос, сколько знаков после запятой математической константы пи (π) учёные и инженеры НАСА используют в вычислениях.
Читать дальше →

Простые опыты с ребенком дома

Reading time8 min
Views82K

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

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

Крутой шаринг страниц в соцсети с помощью Open Graph

Reading time2 min
Views94K
Решил собрать в одной статье короткий рецепт приготовления страницы, которая круто шарится во все основные соцсети. Тем, кто вообще не в теме, придётся сначала прочитать про Open Graph protocol.
Читать дальше →

Information

Rating
5,623-rd
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity

Specialization

Specialist
Project management
Python
Linux
English
FullStack