Во-первых, большая часть Android является свободной; и наличие таких проектов как CyanogenMod не позволяет в этом сомневаться.
Во-вторых, я считаю, что большая открытость (по сравнению с iOS) во многом поспособствовала стремительному росту популярности Android.
В-третьих, за исключением Microsoft и в какой-то степени Apple с их фантастическими финансовыми (и не только) ресурсами, никому за последние лет двадцать не удалось сделать закрытый браузер достаточно популярным. И я считаю, что не удастся, потому что веб — это среда, где нужна поддержка разработчиков, тех самых гиков, которым не все равно, свободная лицензия или нет.
Ну и на самом деле, есть основания считать Android и Chrome не свободным ПО. Ок, сделайте Vivaldi несвобоным в том же самом смысле (Chromium vs Chrome, Android vs AOSP). А то получится как в прошлый раз, когда пользователи остались у разбитого корыта. Была бы у Opera свободная лицензия, Vivaldi даже не пришлось бы писать [с нуля].
1. Что значит «Тем более, если имеются платные приложения». Если нет платных, то можно не публиковать?
2. Что будет происходить с тем, кто не опубликует?
3. Где будет отображаться адрес?
1. Что скажут специалисты по безопасности про CDN?
2. Может нужно сделать модификацию тега script с проверкой контрольной суммы? Что-то вроде <script src="http://..." hash="sha1:aab1c3...">
Спасибо. То есть git-shell внутри себя использует bash? Или это no-interactive-login так себя ведет?
Вообще было бы интересно узнать, что именно происходит при выполнении данной команды. Мне не очевидно, как аргумент ssh становится переменной окружения.
Если решение использует O(log(n)) по памяти, то можно просто завести переменную, в которой хранить встречался элемент или нет и каждый раз делать seen ^= 1<<a[i] и при сбросе бита выводить сообщение, что такой элемент был. По сути это то же самое, что массив.
Ок, вопрос, как будет вести себя алгоритм, если в массиве много хороших циклов вида:
2, 3, ..., k, 1?
Ведь мы должны как-нибудь переходить к следующему циклу, но при этом мы никак не можем отметить, что элементы 2, 3, 4… k мы уже посмотрели.
При всем уважении, кажется, что разумнее помогать OSM; хотя бы потому, что эти данные можно потом использовать в любых целях, чего нельзя сказать о картографических данных, которые принадлежат Google.
А никто не знает, как в андроид версии facebook отключить уведомления о входящих чатах? А то как-то совсем глупо получается: ты видишь входящее сообщение, но не можешь на него ответить.
А я видел. Например, anki под win32.
Отладка была мучительной, потому что внутри assert происходил какой-то побочный эффект.
Итого, проверять assert'ом нужно только то, что не должно происходить в программе никогда. Неправильные аргументы функции нужно проверять if'ом с вызовом исключения в случае необходимости.
Во-вторых, я считаю, что большая открытость (по сравнению с iOS) во многом поспособствовала стремительному росту популярности Android.
В-третьих, за исключением Microsoft и в какой-то степени Apple с их фантастическими финансовыми (и не только) ресурсами, никому за последние лет двадцать не удалось сделать закрытый браузер достаточно популярным. И я считаю, что не удастся, потому что веб — это среда, где нужна поддержка разработчиков, тех самых гиков, которым не все равно, свободная лицензия или нет.
Ну и на самом деле, есть основания считать Android и Chrome не свободным ПО. Ок, сделайте Vivaldi несвобоным в том же самом смысле (Chromium vs Chrome, Android vs AOSP). А то получится как в прошлый раз, когда пользователи остались у разбитого корыта. Была бы у Opera свободная лицензия, Vivaldi даже не пришлось бы писать [с нуля].
2. Что будет происходить с тем, кто не опубликует?
3. Где будет отображаться адрес?
2. Может нужно сделать модификацию тега script с проверкой контрольной суммы? Что-то вроде
<script src="http://..." hash="sha1:aab1c3...">
Вообще было бы интересно узнать, что именно происходит при выполнении данной команды. Мне не очевидно, как аргумент ssh становится переменной окружения.
Или там пропущено что-то вроде -o SendEnv=XXX?
Ок, вопрос, как будет вести себя алгоритм, если в массиве много хороших циклов вида:
2, 3, ..., k, 1?
Ведь мы должны как-нибудь переходить к следующему циклу, но при этом мы никак не можем отметить, что элементы 2, 3, 4… k мы уже посмотрели.
Отладка была мучительной, потому что внутри assert происходил какой-то побочный эффект.
Итого, проверять assert'ом нужно только то, что не должно происходить в программе никогда. Неправильные аргументы функции нужно проверять if'ом с вызовом исключения в случае необходимости.