Я думаю, что большинство читателей не имеют проблемы со зрением, но задумываются, что случится, если зрение откажет. Здесь должна быть картинка, но я её не вижу, поэтому интересующихся, как кодить, не глядя на экран, прошу под кат.
Software Engineer
Математические обозначения: Прошлое и будущее
42 мин
58KПеревод

Перевод поста Стивена Вольфрама (Stephen Wolfram) "Mathematical Notation: Past and Future (2000)".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации
Содержание
Резюме
Введение
История
Компьютеры
Будущее
Примечания
— Эмпирические законы для математических обозначений
— Печатные обозначения против экранных
— Письменные обозначения
— Шрифты и символы
— Поиск математических формул
— Невизуальные обозначения
— Доказательства
— Отбор символов
— Частотное распределение символов
— Части речи в математической нотации
Стенограмма речи, представленной на секции «MathML и математика в сети» первой Международной Конференции MathML в 2000-м году.
Резюме
Большинство математических обозначений существуют уже более пятисот лет. Я рассмотрю, как они разрабатывались, что было в античные и средневековые времена, какие обозначения вводили Лейбниц, Эйлер, Пеано и другие, как они получили распространение в 19 и 20 веках. Будет рассмотрен вопрос о схожести математических обозначений с тем, что объединяет обычные человеческие языки. Я расскажу об основных принципах, которые были обнаружены для обычных человеческих языков, какие из них применяются в математических обозначениях и какие нет.
Согласно историческим тенденциям, математическая нотация, как и естественный язык, могла бы оказаться невероятно сложной для понимания компьютером. Но за последние пять лет мы внедрили в Mathematica возможности к пониманию чего-то очень близкого к стандартной математической нотации. Я расскажу о ключевых идеях, которые сделали это возможным, а также о тех особенностях в математических обозначениях, которые мы попутно обнаружили.
Большие математические выражения — в отличии от фрагментов обычного текста — часто представляют собой результаты вычислений и создаются автоматически. Я расскажу об обработке подобных выражений и о том, что мы предприняли для того, чтобы сделать их более понятными для людей.
Традиционная математическая нотация представляет математические объекты, а не математические процессы. Я расскажу о попытках разработать нотацию для алгоритмов, об опыте реализации этого в APL, Mathematica, в программах для автоматических доказательств и других системах.
Обычный язык состоит их строк текста; математическая нотация часто также содержит двумерные структуры. Будет обсуждён вопрос о применении в математической нотации более общих структур и как они соотносятся с пределом познавательных возможностей людей.
Сфера приложения конкретного естественного языка обычно ограничивает сферу мышления тех, кто его использует. Я рассмотрю то, как традиционная математическая нотация ограничивает возможности математики, а также то, на что могут быть похожи обобщения математики.
+50
Главный вопрос программирования, рефакторинга и всего такого
3 мин
47K
Я написал маленькую электронную книгу в которой рассматриваю вопросы как сделать код лучше. Книга ориентирована на Си/Си++ программистов, но будет интересна и разработчикам, использующих другие языки. Формат книги не подходит для моего любимого Хабра, но мне интересно получить обратную связь и обсудить мысли, изложенные в статье. Поэтому я решил разместить здесь только анонс, а с самой статьей можно познакомиться здесь. И приглашаю в комментарии для обсуждения.
+40
Три мысли для любителей Android по мотивам I/O 2015
4 мин
19KВ данной статье я хочу поделиться с сообществом тремя мыслями по мотивам Google I/O 2015, которые, на мой взгляд, могут быть очень полезными для всех любителей Android в этом году.


+9
Почему от 3D болит голова / Часть 7: Сдвиг во времени между ракурсами
19 мин
11KS3D: No pain IS gain

Сегодня речь пойдет о проблеме, которая почему-то очень редко упоминается, но при этом регулярно встречается в фильмах — примерно в 10 раз чаще перепутанных ракурсов — сдвиге во времени между ракурсами. Искать эту проблему — весьма нетривиальная задача с точки зрения компьютерного зрения. Однако в итоге нами был создан алгоритм, который позволяет обнаружить сдвиг с точностью до 0,1 кадра. В результате было найдено более 500 проблемных сцен в 27 фильмах из 105 проанализированных. Самые большие сдвиги — на 1–2 кадра, наименьшие — на 0,1 кадра. Интересно, что сдвиг во времени — один из самых болезненных артефактов после перепутанных ракурсов. Почему такое происходит, как выглядит, сильно ли заметно и можно ли исправить, будет рассказано дальше.
+21
ГМО. Группе ученых не удалось доказать вред ГМ-пищи. Разбор исследования дилетантом и комментарии специалистов
13 мин
71K
Я вижу, что сообществу интересна тема генетически модифицированной пищи. Были интересные публикации, которые оказались для меня полезны, но до сих пор здесь не публиковали разбор какого-то конкретного исследования. Я не специалист, не имею специального образования, но интересуюсь темой и постараюсь рассказать об одной нашумевшей работе по исследованию ГМО.
+108
Сравнение 24-битного и 16-битного звука: результаты аудиотеста
2 мин
185KБлогер Archimago немало сил потратил, чтобы ответить на вопрос: какое качество звука человек способен определять на слух? В рамках одного из его последних аудиотестов респондентов просят вслепую различить звуки с динамическим диапазоном 24 бит и 16 бит. Каждый из них скачивал несколько пар 24-битных файлов, один из которых претерпел конверсию 24-16-24 бита, то есть на практике был 16-битным файлом. Их просили определить разницу.
В тесте приняли участие 140 добровольцев (138 мужчин и 2 женщины: честная демографическая картина для аудиофилов). Средний возраст респондентов: 44 года.
Согласно анкетам, более 20% респондентов назвались музыкантами и звукоинженерами, поэтому можно сравнить результаты среди «профессионалов» и любителей, с учётом статистической погрешности.
Стоимость аудиоаппаратуры у участников опроса чаще всего лежит в диапазоне от $1000 до $3000.
В тесте приняли участие 140 добровольцев (138 мужчин и 2 женщины: честная демографическая картина для аудиофилов). Средний возраст респондентов: 44 года.
Согласно анкетам, более 20% респондентов назвались музыкантами и звукоинженерами, поэтому можно сравнить результаты среди «профессионалов» и любителей, с учётом статистической погрешности.
Стоимость аудиоаппаратуры у участников опроса чаще всего лежит в диапазоне от $1000 до $3000.
+49
Можно ли верить коду в редакторе? bi-directional текст
2 мин
23Kdef maps():
print "maps maps maps"
def spam():
print "Erasing everything..."
print "done."
Вы знаете, что если очень долго смотреть на следующую строку, то там останутся только три слова «spam»?
s = "spam" ,spam ,"spam"
s[1]()
Действительно, первая строка очень необычная. В целом, в результате этого кода будет выполнена зловредная функция spam.
Посмотреть на ideone. (Для тех кто не знает: там внизу есть вывод выполнившейся программы)
+40
Ёжик во фрактальном тумане
5 мин
48KЭта статья — последняя из серии моих хабрастатей о фракталах. В хабрастатье «Рисуем картинки с помощью кривой Гильберта» рассказывалось о котёнке по имени Гав, в хабрастатье «Кош на комплексной плоскости» — о перетекании фракталами в горизонт, в хабрастатье «Ночь фракталов» — об алгоритме времени убегания. В этой статье пойдёт речь о ёжике в тумане и, конечно же, о коте.


+109
Легкозапоминаемый шорткат к кэшу гугла
1 мин
12KПолучив 404 на одном из форумов, я потратил своё время и решил поберечь впредь чужое.
saved.website
У меня всё.
UPD: Добавился и Яндекс.
saved.website
У меня всё.
UPD: Добавился и Яндекс.
+74
Почему я люблю Qt и вы все тоже должны его любить
5 мин
281K
После суток жизни поста я начал замечать утечку кармы, так что заранее прошу прощение за возможно недопустимый стиль изложения в статье и субъективизм
Привет, Хабрахабр!
Последнее время я не мог не обратить внимание на популярность темы Qt на хабрике, но тем не менее, в комментах продолжают встречаться люди, которые говорят откровенно лживые и непонятные вещи. Этим постом я хотел развеять малость заблуждений о Qt и рассказать, почему же ты должен пересесть со своих Java/Obj-C/.NET на мягкий и пушистый Qt.
Под катом будет много впечатлений, субъективностей и моих скромных мнений на счет самого замечательного фреймворка для разработки приложений. Впрочем, я постараюсь добавить интересностей, чтобы моя статья приобрела хоть какой-то техническополезный смысл. Надеюсь, получится занимательное чтиво и вам понравится.
Ну, что, поехали?
+22
Так ли прост строковый оператор +
6 мин
24KВведение
Строковый тип данных является одним из фундаментальных типов, наряду с числовыми (int, long, double) и логическим (bool). Тяжело себе представить хоть, сколько либо полезную программу, не использующую данный тип.
На платформе .NET строковый тип представлен в виде неизменяемого класса String. Кроме того, он является сильно интегрированным в общеязыковую среду CLR, а так же имеет поддержку со стороны компилятора языка C#.
В этой статье я бы хотел поговорить о конкатенации, операции, которая выполняется над строками так же часто, как операция сложения над числами. Казалось бы, о чем тут можно говорить, ведь все мы знаем о строковом операторе +, но как оказалось, есть у него свои тонкости.
+40
Горизонтальное масштабирование небольших Web-приложений на Java (вопросы собеседований)
4 мин
36KТуториал
Эта тема была поднята в ходе нескольких (3+) собеседований который я прошёл за последние полтора месяца — в разных вариациях но примерно об одном. Казалось бы, известные вещи — но собрав все ответы и объяснения какие я давал (и кое-что что нашёл позже в гугле), решил сохранить их не у себя в гугл-драйве, а написать краткий обзор.
Речь шла о небольших и типовых приложениях Enterprise / Web на Java, каких пишется множество (ну такие, на 10-100 тысяч клиентов, миллион посещений и т.п.). Пусть это будет обобщённый диалог в виде вопросов и ответов.
В: Допустим, у вас есть приложение (самое обычное — JSP, Spring, Hibernate например) развернутое на томкате (Apache Tomcat) и вы однажды замечаете что сервер с томкатом загружен на 80% в среднем. Что делать?
Речь шла о небольших и типовых приложениях Enterprise / Web на Java, каких пишется множество (ну такие, на 10-100 тысяч клиентов, миллион посещений и т.п.). Пусть это будет обобщённый диалог в виде вопросов и ответов.
В: Допустим, у вас есть приложение (самое обычное — JSP, Spring, Hibernate например) развернутое на томкате (Apache Tomcat) и вы однажды замечаете что сервер с томкатом загружен на 80% в среднем. Что делать?
+35
Синхронизация в Android приложениях. Часть первая
6 мин
63KТуториал

На дворе 2014 год, доля Android JellyBean перевалила за 60%, появились новые тренды в дизайне. В общем, случилось много всего интересного. Но синхронизация данных с сервером осталось неотъемлемой частью большинства приложений. Существует много способов реализации ее в приложении. Android предоставляет нам SyncAdapter Framework, который позволяет автоматизировать и координировать этот процесс и предоставляет множество плюшек в довесок.
Account
Для начала нам потребуется собственный аккаунт на устройстве. Сначала, я думаю, стоит ответить на вопрос, зачем? Действительно, зачем?
Краткое резюме преимуществ:
- Поддержка фоновых механизмов вроде SyncAdapter
- Стандартизация способа авторизации
- Поддержка различных токенов (прав доступа)
- Шаринг аккаунта с разграничением привилегий (возможность использовать один аккаунт для различных приложений, как это делает Google)
Шаги для получения плюшек:
1) Создание Authenticator'а
2) Создание Activity для логина
3) Создание сервиса для общения с нашим аккаунтом
+50
Экономим память: Picasso vs UniversalImageLoader
5 мин
18KПривет, Android-разработчики!
Я думаю, каждый из нас сталкивается с загрузкой изображений по URL. Самый простой способ решения этой задачи: использовать готовую стороннюю библиотеку. Как правило, одним из таких готовых решений оказывается Universal Image Loader (UIL), Picasso. Когда я спрашиваю у разработчика, почему он выбрал ту или иную библиотеку, то, как правило, получаю разные ответы. Например, «у Picasso/UIL нет проблем с memory leaks», или «Square делают только правильные вещи», или просто «Да вот использую UIL, работает – и хорошо».
Так вот, мне стало интересно: какая из этих 2-х библиотек оптимально использует память? Я использую UIL и имею проблему с OutOfMemory на старых устройствах. Возможно, Picasso это лекарство?
Так появилась идея этого benchmark-а.
Я думаю, каждый из нас сталкивается с загрузкой изображений по URL. Самый простой способ решения этой задачи: использовать готовую стороннюю библиотеку. Как правило, одним из таких готовых решений оказывается Universal Image Loader (UIL), Picasso. Когда я спрашиваю у разработчика, почему он выбрал ту или иную библиотеку, то, как правило, получаю разные ответы. Например, «у Picasso/UIL нет проблем с memory leaks», или «Square делают только правильные вещи», или просто «Да вот использую UIL, работает – и хорошо».
Так вот, мне стало интересно: какая из этих 2-х библиотек оптимально использует память? Я использую UIL и имею проблему с OutOfMemory на старых устройствах. Возможно, Picasso это лекарство?
Так появилась идея этого benchmark-а.
+20
Применение преобразования Пуассона для бесшовного наложения изображений
2 мин
37KВ задачах машинного зрения и автоматизированной обработки изображений зачастую встречается задача бесшовного наложения изображений. Для наглядности, сразу приведу пример.


+66
Просто о make
6 мин
492KМеня всегда привлекал минимализм. Идея о том, что одна вещь должна выполнять одну функцию, но при этом выполнять ее как можно лучше, вылилась в создание UNIX. И хотя UNIX давно уже нельзя назвать простой системой, да и минимализм в ней узреть не так то просто, ее можно считать наглядным примером количество- качественной трансформации множества простых и понятных вещей в одну весьма непростую и не прозрачную. В своем развитии make прошел примерно такой же путь: простота и ясность, с ростом масштабов, превратилась в жуткого монстра (вспомните свои ощущения, когда впервые открыли мэйкфайл).
Мое упорное игнорирование make в течении долгого времени, было обусловлено удобством используемых IDE, и нежеланием разбираться в этом 'пережитке прошлого' (по сути — ленью). Однако, все эти надоедливые кнопочки, менюшки ит.п. атрибуты всевозможных студий, заставили меня искать альтернативу тому методу работы, который я практиковал до сих пор. Нет, я не стал гуру make, но полученных мною знаний вполне достаточно для моих небольших проектов. Данная статья предназначена для тех, кто так же как и я еще совсем недавно, желают вырваться из уютного оконного рабства в аскетичный, но свободный мир шелла.
Мое упорное игнорирование make в течении долгого времени, было обусловлено удобством используемых IDE, и нежеланием разбираться в этом 'пережитке прошлого' (по сути — ленью). Однако, все эти надоедливые кнопочки, менюшки ит.п. атрибуты всевозможных студий, заставили меня искать альтернативу тому методу работы, который я практиковал до сих пор. Нет, я не стал гуру make, но полученных мною знаний вполне достаточно для моих небольших проектов. Данная статья предназначена для тех, кто так же как и я еще совсем недавно, желают вырваться из уютного оконного рабства в аскетичный, но свободный мир шелла.
+92
Восстановление открытых файлов но удаленных c файловой системы linux
2 мин
34KВсех с прошедшим новым годом!
В этой заметке я бы хотел поделиться как можно восстановить открытый файл в linux.
Зашел человек на канал посвященный debian в jabber и сказал что взломали его jabber-bot и выполнили команду:
так как это было выполнено не под рутом, особых проблем быть не должно, но конфигурационные файлы бота удалены. Бот остался запущен и задача была восстановить открытые им файлы и попробовать максимально быстро поднять всё с теми же настройками.
В этой заметке я бы хотел поделиться как можно восстановить открытый файл в linux.
Предыстория
Зашел человек на канал посвященный debian в jabber и сказал что взломали его jabber-bot и выполнили команду:
$ rm -rf /*
так как это было выполнено не под рутом, особых проблем быть не должно, но конфигурационные файлы бота удалены. Бот остался запущен и задача была восстановить открытые им файлы и попробовать максимально быстро поднять всё с теми же настройками.
+50
Производящие функции — туда и обратно
9 мин
107K«Производящая функция является устройством, отчасти напоминающим мешок. Вместо того чтобы нести отдельно много предметов, что могло бы оказаться затруднительным, мы собираем их вместе, и тогда нам нужно нести лишь один предмет — мешок».
Д. Пойа
Математика делится на два мира — дискретный и непрерывный. В реальном мире есть место и для того и для другого, и часто к изучению одного явления можно подойти с разных сторон. В этой статье мы рассмотрим метод решения задач с помощью производящих функций — мостика ведущего из дискретного мира в непрерывный, и наоборот.
Идея производящих функций достаточно проста: сопоставим некоторой последовательности <g0, g1, g2, ..., gn> — дискретному объекту, степенной ряд g0 + g1z + g2z2 +… + gnzn +… — объект непрерывный, тем самым мы подключаем к решению задачи целый арсенал средств математического анализа. Обычно говорят, последовательность генерируется, порождается производящей функцией. Важно понимать, что это символьная конструкция, то есть вместо символа z может быть любой объект, для которого определены операции сложения и умножения.
Д. Пойа
Введение
Математика делится на два мира — дискретный и непрерывный. В реальном мире есть место и для того и для другого, и часто к изучению одного явления можно подойти с разных сторон. В этой статье мы рассмотрим метод решения задач с помощью производящих функций — мостика ведущего из дискретного мира в непрерывный, и наоборот.
Идея производящих функций достаточно проста: сопоставим некоторой последовательности <g0, g1, g2, ..., gn> — дискретному объекту, степенной ряд g0 + g1z + g2z2 +… + gnzn +… — объект непрерывный, тем самым мы подключаем к решению задачи целый арсенал средств математического анализа. Обычно говорят, последовательность генерируется, порождается производящей функцией. Важно понимать, что это символьная конструкция, то есть вместо символа z может быть любой объект, для которого определены операции сложения и умножения.
+67
Техника для проверки подлинности денег
17 мин
313K
Много веков, с самого времени изобретения денег, идет противостояние эмитентов валют и фальшивомонетчиков. Первые используют все более изощренные способы защиты, а вторые находят способы их подделывать. Современные банкноты имеют настолько сложные защитные признаки, что проверка их невозможна без специальных технических средств. Кроме того, зачастую требуется обеспечить проверку подлинности вообще без участия человека, например, в платежных терминалах, или в банках при автоматизированной обработке больших объемов наличности.
Рассмотрим подробно, как защищены современные валюты, как происходит проверка подлинности (валидация) и что за аппаратура для этого применяется.
+360
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность