Я говорил не о том, что решение написать форум на ассемблере это плохо, а о том, что вы раскрываете потенциал ассемблера в области, в которой раскрыть его в полной мере невозможно. Под областью я имею ввиду не веб, а контентные сайты, где нет обработки текстов, вычислений, математики. Возможно, хотя, это получится тот же десктоп, только на сервере.
Используя рекламную площадь комментария, попрошу совета. Как проще всего зайти в ассемблер на уровне «оптимизация некоторых функций» программисту, который кроме программирования на си микроконтроллера, работал только с высокоуровневыми языками?
Я сравнил написание asm с ruby кодом без фреймворков, потому что в задачах слепить тексты с базы данных в HTML они почти равные — все преимущество скушает бд. Я смотрю например в лог выполнения запроса в Rails, довольно таки большом фреймворке с кучей магии, динамических методов, и стектрейсе на 50 вызовов — запрос в БД занимает больше времени, чем работа этой махины.
В то же время, на задаче кластеризации данных от датчиков, которые поступают непрерывным потоком, руби берет 30 секунд на порцию. На python и tensorflow/или аналог должно отработать в разы быстрее. Вы бы з хорошим знанием ассемблера код под конкретную задачу разогнали бы до нескольких секунд. А это задача, которая начальный по цене хостинг грузит 100% почти треть времени (причём это ограниченная по объёме выборка данных). Я вижу, как решения, которые работают быстрее, могут принести реальную пользу. Но зачем, кроме фана, нужен ассемблер в задаче, где нет никаких вычислений, я все же не понимаю.
Как ни крути, на любом уровне работа с бд и шаблонизатором убьёт все выигранное преимущество, зато в чистых независимых вычислениях на нагружённом сервере может иметь смысл. Конечно, при наличии клиента/пользователей, готовых оплатить пиршество человеческой мысли (и тогда можно даже позавидовать автору).
Мне кажется, несколькими годами раньше на Хабре товарищ написал программу, которая слушала порт и отвечала на некий перечень запросов. Это позволит пропустить стадию модуля к apache/nginx, хотя и оставит на сладкое работу в режиме «одна программа на процессор», вместо ненужной и дорогой прослойки ОС. Это явно не история «держать тысячи клиентов на дешёвом хостинге», но нет предела совершенству.
Если написать в сообществе программистов, что вы собрались писать форум на ассемблере, чтобы он работал на дешевом хостинге, есть довольной большой шанс, что вам придёт несколько небольших пожертвований. Но с поточными расценками на хостинг даже небольших пожертвований хватит, чтобы этот хостинг держал пару десятков тысяч уникальных посетителей в день год или больше.
Если серьёзно, вы играете на поле, где ваш подход имеет немного смысла — достать 100 кусков текста с бд, отформатировать и отослать клиенту. Это работа базы даных, шаблонизатора, веб-сервера, и немного прослойки вроде вашего кода. Я на rake напишу такой код в обход фреймворков и он заработает на очень плохом хостинге, хотя и проиграет пару мс вашему варианту.
Но. Если вы бекенд, допустим, Призмы, если вы считаете в реальном времени кластеризацию данных от клиента, если вы строите маршрут алгоритмом, который не зависит или слабо зависит от БД, если вам надо посчитать уникальный набор чисел, которые идентифицируют человека на фото относительно пред-рассчитанного базиса, и вообще найти человека на фото — вы сможете обойти конкурентов всерьёз. Не знаю, насколько вы обойдёте tensorflow который на c + python, но это имеет на порядок больше смысла, чем собирать тексты с бд в единый кусок HTML.
С другой стороны, если представить вариант подсветки этой строчки, возникнет вполне резонный вопрос «строчек 17, зелёных 16, красная одна, почему же в отчёте числа меньше, и куда вы подевали строку, я подсчитал вручную, вы врете, везде обман, уйду от вас». Согласен, что текущий вариант наименее конфликтен.
Искренне жаль людей, которые убили столько времени на этот сериал (включительно со мной). Три серии второго сезона подряд исключительно галлюцинации и вымысел психически больного человека, то есть никаких компьютеров или хакинга, только переживания детства, отец, психическая болезнь отца, и вот этот весь зоопарк. Так и не понял, зачем рассказ о больном человеке назвали откровением о работе хакера.
Спасибо за статью. Вопрос: в отчете покрытия не учтено проверку условия в методе walk_permitted, хотя чтобы добраться до выбора, нужно ведь отработать if. Это особенность работы или баг?
Где можно смотреть статьи от людей, на которых я подписался, и только от них? На главной очень много подмешано «релевантного» контента, который у меня нет времени читать, а где мои подписки, я найти не могу.
Я не совсем понял, где в «продакшн» разработке в Xcode есть место результатам в режиме реального времени. Playground это песочница для изучение синтаксиса, ну пусть еще черновик отдельной функции и её отладка. Но в разработке приложений я не заметил никаких результатов в реальном времени. Или я не понял, что имеет в виду автор?
Какое счастье, что мои родители христиане, а не последователи Аллаха. По крайней мере в православной вере никто даже представить не может, чтобы за выход с религии наказывать. Это лычный разговор самодостаточного творения Божьего с создателем. Понимаете? Это дело исключительно их двоих. Им не приходится сооружать загоны для скота, и убывать всех, кто попытается сбежать. Если ты счёл нужным уйти с православия — это твоё дело, это твой личный выбор, и это твоя ответственность. И никто не имеет права оспаривать решение создания Божьего, а может только молиться за него, и ждать его возвращения, как блудного сына.
Вас не смущает, что подавляющее большинство владельцев баров уже решили за посетителей, какое меню они желают увидеть, какого цвета стулья, потолок и бар, и даже в какой посуде подается заказанное?
и вам приходится вынести часть его кода в отдельный метод и ваш класс/модуль переполняется методами, которые относятся к одному единственному методу и нигде более не используется
и
Особенно неприятно, когда эти вспомогательные функции состоят из одной строки
это не примеры, а заглавная часть статьи, теория, так сказать. Именно к «одной строки», и «к единственному методу» у меня был вопрос. Может лямбда выглядит и более опрятно, но одна строка, которая используется один раз, причем она не делает независимую операцию (getAuthorId может состоять с одной строки, но операция определенно самостоятельная, впрочем, как и публичная), не имеет на мой взгляд смысла. А многократное использование — это совсем другое дело :)
Не совсем понятно, зачем одну строчку кода, которая используется один раз, выносить в лямбда. Если это независимая операция, значит место ей в методе. Если она работает только в контексте другого метода, почему не просто строчка кода, которая возвращает результат в переменную? Я делал как вы, лямбда, нужные только в пределах метода, но они использовались по несколько раз.
Однажды вы повзрослеете, и поймете одну простую вещь. Все права, за исключением права силы, даны человеку государством. Право на собственность, право на социальную помощь, право избирать и быть избранным, право на медицинскую помощь, и право на жизнь — все они обеспечиваются государством. Вне государства есть только одно право — право диктовать условия тем, кто слабее тебя, и подчиняться тем, кто сильнее. Если ты сильный — можешь взять землю, и охранять ее — вот тебе и право на собственность. Если в твои края наведается банда сильнее — что же, извини, нет у тебя больше собственности. Если ты сильный, вы можете себе обеспечить и защиту, и приватную собственность, и право быть избранным главарем местной банды, и право избирать туда других. А все эти удивительной наивности речи о том, что государство, оказывается, подавляет права человека — это детство, розовощекое и умилительное. Государство может не обеспечивать привычный в других государствах уровень прав — не додавать некие права, это да. Но подавлять права оно не может — не можно подавлять то, чего без тебя вообще не существует.
И вже отсюда идет другое простое пояснение плачу ребенка в коментах выше:
Вашего согласия участвовать в этой иерархии никто не спрашивает. Напротив, за неподчинение к вам будет применено насилие, вплоть до вашего убийства
Если вы вне государства, у вас нет права на жизнь, на самоопределение, на собственную землю и т.д. Есть вы, и есть государство. Все права остались там, в середине государства. А вас их нет. Потому государства с вами может общаться единственным оставшимся способом — силой. А теперь вопрос — кто сильнее, государство или вы? Оно, конечно, может вас не трогать физически, обнести вашу территорию прозрачным стеклом, и водит туристов как в зоопарк, смотрите, какой умилительной дикарь живет, как он выращивает бобы, смотрите, смотрите, дети, какой замечательной чудик. Но все равно вашу участь решает оно — на правах сильного.
Вот и вся сказочка, нравится она мне или вам, или нет. А биткойны, которые работают через сети провайдеров, которые зарегистрированные в государственном реестре и платят налоги ему же — это такая soft сказка для soft революционеров — ограниченная прозрачным стеклом территория, где позволяют мило порезвиться. Не более того.
До мечты поколения девяностых — волшебный бинокль дополнительной реальности, который покажет твою одноклассницу, пардон, в первозданном виде, осталось совсем немного.
Используя рекламную площадь комментария, попрошу совета. Как проще всего зайти в ассемблер на уровне «оптимизация некоторых функций» программисту, который кроме программирования на си микроконтроллера, работал только с высокоуровневыми языками?
В то же время, на задаче кластеризации данных от датчиков, которые поступают непрерывным потоком, руби берет 30 секунд на порцию. На python и tensorflow/или аналог должно отработать в разы быстрее. Вы бы з хорошим знанием ассемблера код под конкретную задачу разогнали бы до нескольких секунд. А это задача, которая начальный по цене хостинг грузит 100% почти треть времени (причём это ограниченная по объёме выборка данных). Я вижу, как решения, которые работают быстрее, могут принести реальную пользу. Но зачем, кроме фана, нужен ассемблер в задаче, где нет никаких вычислений, я все же не понимаю.
Если серьёзно, вы играете на поле, где ваш подход имеет немного смысла — достать 100 кусков текста с бд, отформатировать и отослать клиенту. Это работа базы даных, шаблонизатора, веб-сервера, и немного прослойки вроде вашего кода. Я на rake напишу такой код в обход фреймворков и он заработает на очень плохом хостинге, хотя и проиграет пару мс вашему варианту.
Но. Если вы бекенд, допустим, Призмы, если вы считаете в реальном времени кластеризацию данных от клиента, если вы строите маршрут алгоритмом, который не зависит или слабо зависит от БД, если вам надо посчитать уникальный набор чисел, которые идентифицируют человека на фото относительно пред-рассчитанного базиса, и вообще найти человека на фото — вы сможете обойти конкурентов всерьёз. Не знаю, насколько вы обойдёте tensorflow который на c + python, но это имеет на порядок больше смысла, чем собирать тексты с бд в единый кусок HTML.
Вы имеете ввиду playgrounds?
и
это не примеры, а заглавная часть статьи, теория, так сказать. Именно к «одной строки», и «к единственному методу» у меня был вопрос. Может лямбда выглядит и более опрятно, но одна строка, которая используется один раз, причем она не делает независимую операцию (getAuthorId может состоять с одной строки, но операция определенно самостоятельная, впрочем, как и публичная), не имеет на мой взгляд смысла. А многократное использование — это совсем другое дело :)
Однажды вы повзрослеете, и поймете одну простую вещь. Все права, за исключением права силы, даны человеку государством. Право на собственность, право на социальную помощь, право избирать и быть избранным, право на медицинскую помощь, и право на жизнь — все они обеспечиваются государством. Вне государства есть только одно право — право диктовать условия тем, кто слабее тебя, и подчиняться тем, кто сильнее. Если ты сильный — можешь взять землю, и охранять ее — вот тебе и право на собственность. Если в твои края наведается банда сильнее — что же, извини, нет у тебя больше собственности. Если ты сильный, вы можете себе обеспечить и защиту, и приватную собственность, и право быть избранным главарем местной банды, и право избирать туда других. А все эти удивительной наивности речи о том, что государство, оказывается, подавляет права человека — это детство, розовощекое и умилительное. Государство может не обеспечивать привычный в других государствах уровень прав — не додавать некие права, это да. Но подавлять права оно не может — не можно подавлять то, чего без тебя вообще не существует.
И вже отсюда идет другое простое пояснение плачу ребенка в коментах выше:
Если вы вне государства, у вас нет права на жизнь, на самоопределение, на собственную землю и т.д. Есть вы, и есть государство. Все права остались там, в середине государства. А вас их нет. Потому государства с вами может общаться единственным оставшимся способом — силой. А теперь вопрос — кто сильнее, государство или вы? Оно, конечно, может вас не трогать физически, обнести вашу территорию прозрачным стеклом, и водит туристов как в зоопарк, смотрите, какой умилительной дикарь живет, как он выращивает бобы, смотрите, смотрите, дети, какой замечательной чудик. Но все равно вашу участь решает оно — на правах сильного.
Вот и вся сказочка, нравится она мне или вам, или нет. А биткойны, которые работают через сети провайдеров, которые зарегистрированные в государственном реестре и платят налоги ему же — это такая soft сказка для soft революционеров — ограниченная прозрачным стеклом территория, где позволяют мило порезвиться. Не более того.