Pull to refresh
4
Karma
0
Rating

Пользователь

Ученые определили, какие географические особенности Марса можно использовать в качестве защиты от космических лучей

Reading time 2 min
Views 1.7K
Popular science

Марсианские холмы могут служить укрытием от космического излучения — к такому выводу пришли ученые Научно-технического университета Китая, проанализировав данные марсохода «Кьюриосити». 

Читать далее
Total votes 16: ↑16 and ↓0 +16
Comments 0

Неожиданная полнота по Тьюрингу повсюду

Reading time 13 min
Views 51K
Information Security *Computer hardware Artificial Intelligence Desktop PC's CPU
Translation
Каталог программных конструкций, языков и API, которые неожиданно являются полными по Тьюрингу; последствия этого для безопасности и надёжности. Приложение: сколько компьютеров в вашем компьютере?

Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp. — Десятое правило Гринспена

Полнота по Тьюрингу (Turing-completeness, TC) — это свойство системы при некотором простом представлении ввода и вывода реализовать любую вычислимую функцию.

Тьюринг-полнота — фундаментальное понятие в информатике. Она помогает ответить на многие ключевые вопросы, например, почему невозможно создание идеальной антивирусной программы. Но в то же время она является поразительно распространённым явлением. Казалось бы, компьютерной системе трудно достичь такой универсальности, чтобы выполнять любую программу, но получается наоборот: трудно написать полезную систему, которая немедленно не обратится в полную по Тьюрингу. Оказывается, что даже небольшой контроль над входными данными и преобразованием их в результат, как правило, позволяет создать тьюринг-полную систему. Это может быть забавным, полезным (хотя обычно нет), вредным или чрезвычайно небезопасным и настоящим подарком для хакера (см. о «теоретико-языковой безопасности», которая изучает методы взлома «странных машин»1). Удивительные примеры такого поведения напоминают нам о том, что полнота по Тьюрингу таится повсюду, а защитить систему чрезвычайно сложно.
Читать дальше →
Total votes 54: ↑53 and ↓1 +52
Comments 15

ДНК глазами программиста

Reading time 15 min
Views 81K
Popular science Biotechnologies
От переводчика: Так как я не являюсь биологом, возможны неточности в переводе терминов (и не только :). Оригинал находится здесь.

Если ты – молоток, то во всём увидишь гвоздь


Это всего лишь размышления программиста о ДНК. Я не являюсь молекулярным генетиком.

Исходный код


Находится здесь. Это не шутка. Исходники можно просмотреть с использованием замечательного набора скриптов Perl под названием "Ensembl". Геном человека занимает приблизительно 3 гигабайта, которые можно сократить до 750 мегабайт, если отбросить шелуху. Немного печалит, что это всего лишь 2.8 браузеров Mozilla Firefox.

ДНК похожа скорее не на исходники на языке C, а на байт-код для виртуальной машины под названием «ядро клетки». Крайне сомнительно, что существуют исходники, которые можно скомпилировать в этот байт-код: то, что мы видим, – это всё, что у нас есть.
Читать дальше →
Total votes 115: ↑114 and ↓1 +113
Comments 308

Уильям Коли — родоначальник иммунотерапии рака

Reading time 8 min
Views 15K
Popular science Health
image

Родоначальником иммунотерапии рака ныне признают Уильяма Коли (William B. Coley, 1862-1936), который в 1891 году впервые внедрил стрептококковые бактерии в организм пациента с неоперабельной формой рака. В течение последующих 40 лет он вводил бактериологические препараты более чем 1000 больным. В дальнейшем, эти препараты были названы вакциной (или токсином) Коли. Коли и другие врачи, применявшие его метод, сообщали об отличных результатах, в особенности при лечении пациентов с саркомой костей и мягких тканей.

Однако методика Коли не получила при его жизни широкого распространения и не была введена во врачебную практику, несмотря на все усилия и предоставленные доказательства. И вот только теперь, когда научные исследования вновь привели к возрождению интереса к иммунотерапии, заслуги Коли перед медициной были признаны.
Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 11

Как и зачем создавать NginX-модуль — теория, практика, профит

Reading time 18 min
Views 15K
Конференции Олега Бунина (Онтико) corporate blog High performance *Website development *Programming *System Programming *


Василий Сошников (Mail.Ru)


Сегодня я вам расскажу о том, как создавать nginx-модули и, что самое главное, попытаюсь ответить, зачем это надо делать. Это надо далеко не всегда, но есть определенный круг задач, который можно решить на стороне nginx.
Total votes 25: ↑23 and ↓2 +21
Comments 2

Третья волна блокчейн-решений несет с собой технологию CATs

Reading time 8 min
Views 8K
Waves corporate blog Crowdsourcing Finance in IT Cryptocurrencies
В декабрьском материале «Как выглядит успех альткойна» мы обещали опубликовать пост, в котором принцип работы специальных токенов приложений — Custom Application Tokens (CATs) — описан более подробно. В этой статье речь пойдет именно об этой технологии, позволяющей любому бизнесу выпустить собственную внутреннюю цифровую валюту на блокчейне для оплаты товаров и услуг в рамках своего проекта.

image

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

Близится третья волна развития блокчейн-решений, заставляющая обратить внимание на технологию CATs. Но для того чтобы лучше понимать тенденции сегодняшнего дня, стоит начать с предыстории.
Читать дальше →
Total votes 15: ↑12 and ↓3 +9
Comments 5

Лямбда-исчисление на JavaScript

Reading time 8 min
Views 52K
Abnormal programming *JavaScript *Functional Programming *
Привет! В этой статье я хочу в очередной раз взглянуть на лямбда-исчисление. Теоретическую сторону вопроса на хабре обсуждали уже множество раз, поэтому взглянем на то, как лямбда-исчисление может выглядеть на практике, например, на языке JavaScript (чтобы примеры можно было выполнять прямо в браузере).

Итак, основная идея: всё есть функция. Поэтому мы ограничим себя очень узким кругом возможностей языка: любое выражение будет либо анонимной функцией с одним аргументом (x => expr), либо вызовом функции (f (x)). То есть весь код будет выглядеть похожим образом:

id = x => x
double = f => x => f (f (x))

Поскольку результатом работы функций будут другие функции, нам понадобится способ интерпретировать результат. Это единственное место, в котором пригодятся нетривиальные возможности JavaScript.
Читать дальше →
Total votes 38: ↑31 and ↓7 +24
Comments 53

Сервер приложений на pl/pgsql

Reading time 23 min
Views 9.8K
PG Day'17 Russia corporate blog Website development *PostgreSQL *SQL *
Артем Макаров, руководитель отдела IT компании «Проект 111», на одном из прошлых PG Day рассказал, как бизнес может решиться на такое решение как постройку собственной ERP-системы на Postgres и application-сервер на хранимых процедурах. Какие из этого последовали плохие, хорошие стороны. Стоит отметить, что Артем никогда не был настоящим программистом, хотя и писал довольно много кода. Скорее его можно назвать анти-менеджер и евангелист, и лоббист для бизнеса IT-решений. Поэтому в его докладе взгляд не только со стороны технического специалиста, но и менеджера.
Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Comments 31

Трудные уроки: пять лет с Node.js

Reading time 11 min
Views 34K
Website development *JavaScript *Designing and refactoring *Node.JS *Web services testing *
Translation
После пяти лет работы с Node.js я многое понял. Я уже делился некоторыми историями, но в этот раз хочу рассказать о том, какие знания дались труднее всего. Баги, проблемы, сюрпризы и уроки, которые вы можете использовать в собственных проектах!

Базовые концепции


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

Классы


Когда я только начал работать с Node.js, то написал скрапер. Очень быстро я понял, что если ничего не предпринять, то он будет осуществлять много запросов параллельно. Одно это стало важным открытием. Но поскольку я ещё не полностью усвоил мощь экосистемы, то сел и написал собственный ограничитель параллелизма. Он работал и проверял, что в каждый момент времени активны не более N запросов одновременно.
Читать дальше →
Total votes 33: ↑27 and ↓6 +21
Comments 8

К чёрту мотивацию, вам нужна дисциплина

Reading time 4 min
Views 104K
GTD *
Translation
Если вы желаете что-то сделать, то есть два способа этого достичь.

Первый, более распространённый и в значительной мере неправильный вариант — попытаться мотивировать себя.

Второй, весьма непопулярный, но абсолютно правильный выбор — воспитание дисциплины.

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

В чём же разница?
Читать дальше →
Total votes 62: ↑53 and ↓9 +44
Comments 63

Своя криптовалюта на ethereum

Reading time 4 min
Views 89K
Cryptography *Payment systems *Programming *


Общая рыночная капитализация глобального рынка криптовалют за последний год выросла с $6 млрд (в январе 2016 года) до $28 млрд (на текущий момент). С начала 2017 года рынок криптовалют вырос примерно в полтора раза. На биржах торгуются уже больше сотни разных криптовалют. Крупные организации объединяются в консорциумы, чтобы выпускать свою валюту. Даже государства делают свои национальные криптовалюты. Технологии блокчейна дошли до такого уровня, что уже почти любой может запустить свою криптовалюту, чем мы в этой статье и займемся. Легче всего создать свои монеты на смарт контрактах на базе ethereum.

Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Comments 36

Не находите ли вы неудачной кнопку перехода на страницу номер 100?

Reading time 1 min
Views 19K
Web design *Working with icons *Interfaces *Usability *Accessibility *
Поговорим про интерфейсы и про то, что видим на этой ленте статей, прокрутив её вниз, до пагинатора.



Конечно, очевидно, что после кнопки с номером «8», ведущей на страницу номер 8 по стрелке, похожей на стрелку возле слова «Туда» должна идти кнопка, ведущая на страницу с номером 9.

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

Поможем доказать это.

1. Почему вредно после кнопки «8» ставить кнопку со стрелкой, похожей на стрелку «туда», но ведущую не туда?

К примеру, вот очень похожая…

Total votes 86: ↑70 and ↓16 +54
Comments 67

Топ инструментов разработки для PostgreSQL

Reading time 6 min
Views 163K
PG Day'17 Russia corporate blog Website development *PostgreSQL *SQL *

Конференция PG Day Russia растет и масштабируется: этим летом мы готовим для вас доклады и тренинги по всем наиболее популярным базам данных, а также по администрированию и хранению данных. в рамках подготовки мы запустили корпоративный блог, где планируем делиться ценной информацией о происходящем в мире баз данных. Первый пост посвящен инструментам разработки для PostgreSQL, его автор varanio будет рад ответить на ваши вопросы и комментарии!


Я поспрашивал различных людей, имеющих отношение к PostgreSQL, что они используют в реальной жизни для разработки приложений, использующих PG.


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


Если вашего инструмента нет в списке, или у вас просто есть что сказать, добро пожаловать в комментарии.


Итак, вот неформальный топ и субъективное описание.

Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Comments 73

Судьба пятого взаимодействия в физике висит на волоске

Reading time 17 min
Views 30K
Popular science Physics
Translation
image

«Смотрите-ка, мистер Галилео всё правильно рассчитал». Это заключение было основано не на самом аккуратном эксперименте, но он был одним из самых зрелищных – поскольку проходил на Луне.

В 1971 году космонавт миссии Apollo 15 Дэвид Скот уронил пёрышко и молоток с одной высоты и обнаружил, что они одновременно достигли лунной поверхности. Ускорение, придаваемое гравитацией, не зависит от состава или массы тела, как и предполагал Галилей в своём (апокрифическом) эксперименте с Пизанской башней.

Или всё-таки зависит? Перенесёмся на первую страницу The New York Times в январь 1986 года: "Намёки на пятую силу во Вселенной меняют открытия Галилея". В газете описывалась научная работа из уважаемого журнала Physical Review Letters, проделанная физиком Эфрэймом Фишбахом и его коллегами. В ней приводились доказательства того, что ускорение, придаваемое гравитацией, зависит от химического состава рассматриваемого объекта. Получалось, что гравитация оказалась не такой, как мы думали: на её действие, по словам авторов, влияет то, что репортёр The New York Times Джон Нобл Уилфорд назвал «пятым взаимодействием», добавив его к четырём уже известным нам силам.
Total votes 34: ↑28 and ↓6 +22
Comments 30

Разработан скрипт для кражи ПИН-кода через браузер смартфона

Reading time 3 min
Views 20K
Gadgets Smartphones Artificial Intelligence

Различные способы ввода влияют на углы наклона, но нейросеть распознаёт ПИН-код в любом случае после сбора данных скриптом

Как известно, в любом смартфоне установлено множество датчиков — GPS, свет, датчики ориентации, движения и ещё около 20 сенсоров — все они непрерывно выдают данные, чтобы смартфон мог взаимодействовать с окружающим физическим миром. У разработчиков есть несколько способов доступа к информации с этих сенсоров, в том числе через мобильный браузер, согласно официальным Javascript API.

Именно этот способ открывает широкое поле возможностей для удалённого взлома. Например, специалисты из Школы информатики при Университете Ньюкасла разработали скрипт PINlogger.js, с помощью которого через браузер можно определять, какие кнопки нажимает пользователь на экранной клавиатуре. Скрипт считывает информацию с сенсоров наклона мобильного устройства при каждом нажатии. Удивительно, но в некоторых браузерах (Safari) запущенный в браузере скрипт продолжает собирать данные даже с залоченного экрана. Аналогично он работает, если на соседней вкладке вы набираете пароль в онлайн-банкинге, не закрыв предыдущую вкладку.
Читать дальше →
Total votes 28: ↑26 and ↓2 +24
Comments 20

Коктейль Яманаки продлил жизнь мышам на 50%

Reading time 4 min
Views 32K
Popular science Biotechnologies Health


Это фото LAKI 4F мышей с факторами Яманаки при приеме доксициклина и без, а также долгоживущие WT мыши с доксициклином (антибиотик) и факторами Яманаки. Смотрите на кривую изгиба позвоночника.

LAKI — это быстростареющие мыши с мутацией в lamin A (LMNA). Долгоживущие мыши ставится тот же опыт, но им сейчас только 12 месяцев поэтому с средним сроком жизни в 3 года и максимальным на сегодня 5 лет результаты ожидать можно в 2018-2019 годах.

Сама статья в Cell. Для тех, у кого нет доступа — пользуйтесь sci-hub.io — пиратские научные статьи.

Опыт был проведен в институте Салка в Ла Холле, Южная Калифорния испанцем Бальмонте.
Все началось в 2006 году, когда японец Яманаки открыл 24 фактора (сейчас основные только 4 OSKM, с помощью которых и был проведен опыт) де-дифференциации или плюрипотентности клеток по обращению клеток, например кожи, обратно в стволовые клетки.

Затем, в 2013 году немец Хорватс нашел 353 эпигенитических маркера старения человека, по которым с точностью в 1.5 года определялся хронологический возраст человека. Для стволовых клеток этот возраст равнялся 0.
Total votes 31: ↑27 and ↓4 +23
Comments 32

Примеры реальных патчей в PostgreSQL: часть 3 из N

Reading time 5 min
Views 7.6K
Postgres Professional corporate blog PostgreSQL *C *
Tutorial

Сегодня я хотел бы вновь рассказать о некоторых патчах, принятых за последнее время в PostgreSQL (а также утилиту pg_filedump). Аналогичные статьи, опубликованные на Хабре ранее, набрали достаточно много плюсиков, что заставляет думать, что они представляют для кого-то интерес. Если вы пропустили предыдущие статьи, вот они — раз, два, три. Несмотря на то, что рассмотренные патчи были написаны мной, не стоит забывать о вкладе людей, которые их ревьювили и тестировали. Проделанная этими людьми работа зачастую оказывается больше и сложнее работы самого автора. Особо активное участие в разработке рассмотренных пачтей приняли Федор Сигаев, Robert Haas, Tom Lane, Дмитрий Иванов, Григорий Смолкин, Andres Freund, Анастасия Лубенникова и Tels.

Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Comments 21

От моноидов к алгебрам де Моргана. Строим абстракции на Haskell

Reading time 14 min
Views 12K
Haskell *Mathematics *Functional Programming *
Sandbox

Что общего у нормального распределения, конечных автоматов, хеш-таблиц, произвольных предикатов, строк, выпуклых оболочек, афинных преобразований, файлов конфигураций и стилей CSS? А что объединяет целые числа, типы в Haskell, произвольные графы, альтернативные функторы, матрицы, регулярные выражения и статистические выборки? Наконец, можно ли как-то связать между собой булеву алгебру, электрические цепи, прямоугольные таблицы, теплоизоляцию труб или зданий и изображения на плоскости? На эти вопросы есть два важных ответа: 1) со всеми этими объектами работают программисты, 2) эти объекты имеют сходную алгебраическую структуру: первые являются моноидами, вторые — полукольцами, третьи — алгебрами де Моргана.

Читать дальше →
Total votes 35: ↑34 and ↓1 +33
Comments 12

Вы знаете, что такое трансдьюсеры

Reading time 6 min
Views 43K
JavaScript *Functional Programming *

Трансдьюсеры были анонсированы еще в далеком 2014, с тех пор по ним было написано немалое количество статей (раз, два), но ни после одной статьи я не мог сказать, что понимаю трансдьюсеры кристально ясно. После каждой статьи у меня возникало ощущение, что я приблизительно понимаю что-то сложное, но оно все равно оставалось сложным. А потом однажды в голове что-то щелкнуло: "я ведь уже видел этот паттерн, только он назывался иначе!"

Читать дальше →
Total votes 59: ↑55 and ↓4 +51
Comments 98

Information

Rating
Does not participate
Registered
Activity