Pull to refresh
110
0
Victor Shcherb @vics001

Разработчик OsmAnd

Send message
Все равно слабо верится, пока нет цифр. Если вы продаете то, что людям нужно, а люди не покупают это, а скачивают пиратские копии? И почему у вас выросли продажи от такой политики?
У людей появились деньги? У людей проснулась совесть? Вы загнали людей в тупик и они решили придется все-таки платить за ресурс? Что поменялось?

А может просто бизнес расширился :) хабраэффект или еще какой эффект.
Извините:
1) Невозможность найти ваш сервис как первоисточник
2) Нежелание платить такую стоимость за услугу
3) Неимение адекватного способа купить услугу
4) Желание воспользоваться частью услуги (например просто предпросмотр картинки или узнать про что фильм)
5) Принципиальный отказ от оплаты

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

2) Не возможность вмен
1) Не желание платить стоимость услуги
3)
Очень злободневный вопрос как я посмотрю :) Я полностью соглашусь, что есть такая часть населения, которая просто не имеет денег купить некоторый медийный продукт или считает ее завышенной или считает способ оплаты неприемлимый.

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

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

ИМХО, большинству бизнеса надо пересматривать маркетинг для этой части населения может и пиратов станет меньше: например давать смотреть фильм с рекламой (как на ТВ) или давать использовать что-то в некоммерческих целях. Хотя может пиратство это в крови?
У меня убунту падает из-за X-Freeze чаще всего, особенно при использовании Unity, а там говорят можете даже не открывать баги, пока точно не воспроизведете и в логах ничего особенного.
Ядро как раз-таки стабильно.
Боты кушают все, некоторые из них подбирают пароли и создают ботнеты, пользуясь принципом, что ненадежно защитили — ваши проблемы.
Вы так говорите, что все, что находится в интернете, должно передаваться только безопасным путем. А как быть с людьми, которые работают в небезопасной Wifi и кто-то начнет собирать пароли и индексировать, что находится внутри. Или при аутентификации открытым токеном, который передается в HTTP Property. А уникально сгенерированный ключ в запросе слабая, но все-таки защищенная ссылка.

Даже Гугл, который относится к безопасности очень ревностно, позволяет расшарить фотографии и документы только на основе ссылки.
Согласен с вами, но вы говорите об инфраструктуре программы 1С, а не языка. Если пользователям дать удобный интерфейс редактировать таблицы в БД и рассказать в какой таблице подредактировать, то он прекрасно будет справляться и даже полюбит эту функциональность, так как никого не надо будет звать.

Вершиной программирования для непрограммистов я все же считаю Excel, потому что людям не надо пользоваться дополнительными программами и не надо искать (!), где редактировать. Все прямо in place (WYSIWIG). К сожалению Excel зародился standalone программой, а если бы он изначально использовался как корпоративная база данных и база функций, то ничего бы другого и не надо было.
Что вы такое рассказываете :) Как быстро обновить можно базу данных? Представьте все ваши правила по расчету 1С бухгалтерии лежат в таблице базы данных: запустив один SQL Update вы можете за 1 секунду внести изменения, причем не останавливая работу БД.

Пролог по сути дела та же БД только там можно хранить не только факты, но и правила. Существуют такие запросы как assert/retract. На практике вы конечно можете столкнуться со скомпилированными предикатами в некоторых имплементациях, но если иметь эту функциональность в виду, то все будет тип топ.

Еще одно замечание: База Данных, Пролог, возможно 1С скрипт, более понятный инструмент для непрограммистов, чем языки общего назначения — C, Java, Basic.
if_then_else(Condition, Then, Else) :- Else.

А в чисто функциональном программировании можно определить boolean типы как функции (лямбда-выражения):
TRUE = .x.y x
FALSE = .x.y y
NOT = .x x FALSE TRUE

AND = .x.y x y FALSE
OR = .x.y x TRUE y

IF_THEN_ELSE = .cond.x.y cond x y
Вообще строго говоря в функциональном и логическом программировании нету if/else.
Для примера Пролог определение метапредиката if_then_else/3 без использования if (просто его нет в принципе нету :) ):
if_then_else(Condition, Then, Else) :- Condition, !, Then.
Согласен я ожидал увидеть растягивающийся шнур или безшнурный механизм, который при подключении отображается как USB drive на каждом из компьютеров, откуда можно читать и копировать.
Вторую часть я прокомментировать не могу, так как потерял суть обсуждения.
А вот первую вполне, так как хотел бы сделать это абсолютно понятным для всех даже далеких от математики.

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

Для использования для доказательства реальных утверждений в математике встречаются вполне конкретные сложности:
1. Обычно в математике встречаются теории с равенством, то есть используется отношение равенства
2. Даже в простейшая арифметика является теорией второго порядка (позволяет использовать кванторы для предикатов, для любого предиката и т.п.), потому что содержит математическую индукцию.
3. Формализация современной математики, то есть приведение все к букве закона математической логики, встречает сопротивление других математиков, которые считают, что излишняя формализация затрудняет понимание и останавливает прогресс математики. Ведь еще Гедель доказал, что любая теория должна постоянна пополняться аксиомами, наиболее правдивыми в реальности. В общем, для того, чтобы сформулировать теорему Мат Анализа, потребуется много работы и я еще не видел ни одного автоматического доказательства теоремы из Мат. Анализа.

Вот эта книга в принципе все рассказывает в подробностях:
Чень Ч., Ли Р. // Математическая логика и автоматическое доказательство теорем

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

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

Алгоритм действительно доказывает любую теорему, если доказательство существует. Технически берется утверждение, которое необходимо доказать и его отрицание добавляется в теорию (к начальным аксиомам). Если теория оказывается противоречивой, значит, противоречие будет найдено (это гарантирует метод резолюций) и значит теорема верна. Формально если проследить все резолюции дизъюнктов приведшие к противоречию, это и будет доказательство «от противного». Если утверждение не является теоремой, то вывод достаточно печален, доказать это может и не получится.

Определение предиката not через отсечение:
not(A) :- A, !, fail.
not(_).

Если бы отрицание было действительно логическим то в Прологе бы допускалась запись вида:
A;B;C :- D, E, F.
В принципе появление логического отрицания равносильно появлению логического Или.
Да это предикат пишет подряд все числ, но имелось в виду, чтобы числа выдавались бектрекингом и предикат мог использоваться для перебора чисел, в принципе правильный ответ уже написали.
range(X, Y) :- range(Xs, Y), X is Xs + 1.

% range(X, Y, Z), генерирует между Y и Z.
range(X, X, Z) :- X <= Z.
range(X, Y, Z) :- range(Xs, Y, Z), Xs < Z, X is Xs + 1.

Своеобразные циклы for и функциональные range на Прологе :)
Правильно!!!
Задача возникла как-то раз для того, чтобы перебирать последовательность чисел и интерес был в том, чтобы перебирать бесконечно. Так как нельзя складывать (в is) переменные то сначала это даже показалось невозможно, но решение есть.

% :- range(X, Y), Генерирует все числа X начиная с Y.
range(X, X).
Дело в том, что абстрактные математические числа — это вещь в себе. Но как число 4, 5, которое вполне конкретное для процессора, может сложиться с переменной? В общем числа это нечто неродное для Пролога, интересность задачи, что даже с неродным можно работать.
Ну так и что декларативного в PL/SQL? Обычные циклы, присваивания — императивный язык, такой же как Basic принципиально. Запросы SQL92 действительно декларативны.

Information

Rating
Does not participate
Location
Антильские о-ва
Date of birth
Registered
Activity