Как стать автором
Обновить

Комментарии 182

Нехило кто-то горит. Видать, пишет идеальный код?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Программа может сама исправить ошибку. Даже если нет компонента системы, который ты не можешь интегрировать в свой модуль (например directx) Что тебе стоит выдать сообщение пользователю «у вас не найден директикс, открыть страницу майкрософт с которой его можно скачать?»
Лучше будет если ты его сам скачаешь и установишь, спросив у пользователя разрешение на это. Но зная криворукость кодеров и тупорылость админов сайтов, которые запросто могут переложить контент куда угодно просто потому что зачесалась левая пятка у менеджера…
НЛО прилетело и опубликовало эту надпись здесь
Ну извини, 5 лет в геймдеве, сейчас по компьютерному зрению — не профессионал.
Ты статью просто не понял, суть. Ее надо целиком воспринимать: инсталляция забирает время у пользователя. Значит ее не должно быть.
НЛО прилетело и опубликовало эту надпись здесь
на Mac OS X ее практически и нет ни у кого.
— открыть .dmg-архив (у эстетов — .zip, некоторые другие эстеты на открытие .dmg обычным способом подвешивают показ EULA с кнопками но редко)
— перетащить приложение в папку Applications (обычно в архиве сразу ярлычок). Некоторые приложения сами предлагают себя переместить если не правильно расположен
— запустить. если приложение подписано Developer ID (затраты разработчика — 99 USD в год и немного времени при сборке) то все запустится. Иначе надо ПКМ+Открыть первой раз и пользователя спросят а точно ли он хочет запустить то что скачано из интернета. Ну или можно отключить gatekeeper
то что названо выше «приложением» — на самом деле App Bundle (отображаемый в Finder как файл но реально это каталог в котором содержится все необходимое для работы приложения). Один из недостатков — не-системные библиотеки дублируются в каждом приложении которое их использует. Если надо обновления то либо ручками просить пользователя скачать либо встраивать библиотеку для обновлений вроде Sparkle либо… идти в Mac App Store (если оно нас устраивает)

Есть редкие приложения которые ставятся не так но из того что встречалось это например:
— Все подряд виртуальные машины (видимо потому что ставить драйвера)
— MS Office (видимо потому что MS считает себя особо умными), LibreOffice вполне ставится по той схеме с копированием что выше.
— Драйвер сканера старый — эти вообще требовали все закрыть и перезагрузить машину

после установки приложение может попросить установить некоторые компоненты если реально надо (iStat Menus например)

если использовать Mac App Store то разумеется — нажать одну кнопку но там далеко не все приложения вообще могут быть.

Установка обновления системы, включая мажорные — жмем установить, идем пить кофе, в некоторых случаях — много кофе. иногда после переустановки вводим заново Apple ID. Разумеется ОДИН раз идем пить кофе

Linux'ы:
почти всегда — apt-get install /yum install и идем пить кофе. в некоторых редких случаях потом отвечаем на вопросы. Да, установка. почти полностью автоматическая.
вот если пакета нет в репозитории дистрибутива то начинаются танцы с бубнами. ну и консоль.

сейчас разрабатывается система 'snap-пакетов' — которая по сути позволяет реализовать схему Mac OS X с просто перетаскиванием. При этом приложение будет еще и работать на любом дистрибутиве что это поддерживает (вот с точки зрения разработчика пакетов… не все так просто).

Система, которую делали «для людей».
Но в итоге компьютеры с этой системой стали элитными, а не массовыми.
НЛО прилетело и опубликовало эту надпись здесь
Ага, а когда приложение засирает половину файловой системы — то начинаем плакать и ругать разработчика.
Linux

Если вы не осилили ПМ эстет, то есть AppImage. Вот пожалуйста, подход «1 клик и готово». Но нормальные ПМ (emerge/guix/nix) всё равно лучше благодаря возможности оверрайда пакета с нужными патчами. Аминь.
Можно ли давать объектам короткие имена?
  • можно ТОЛЬКО в рамках словаря допустимых сокращений. Иногда любителей имен вида "a", "c", "o" — хочется придушить.

на самом деле есть простое правило — чем короче область видимости переменной, тем короче можно делать ее имя
В ранних версиях языка Рефал имя переменной могло быть только из одной буквы. И вполне серьезные программы на нем писались…
Правда область видимости переменной там редко превышает 2-3 строки.
Насколько я помню, переменных(в общепринятом смысле) в РЕФАЛе нет.
Как и в Hashell, Erlang и большенстве других фунциональных языков.
Тем не менее, практически все называют их так. Может это неправильно и вызывает недопонимание при общении с нефункциональными программистами, но более удачного термина (простого и понятного) я не знаю.
На поиск этой функции я потратил минут 20. Простая задача: разбить строку по разделителям. Простая задача должна решаться максимально просто
Пусть умирают неподготовленные http://www.cplusplus.com/reference/cstring/strtok/
дак strtok не решает проблемы. Все равно нужно писать обертку, которая раскидает части строки в вектор.
К тому же, если я правильно понимаю её работу, она может сломаться при многопоточности.
Есть потокобезопасный strtok_r аналог.
Несколько раз слышал и читал, что, возможно, strtok — самая ужасная часть стандарта C, которую точно не стоит использовать, программируя на C++. Особенно работая с vector и string
А сколько людей умерло из-за того, что мы с вами прочитали эту статью? Как посчитать? И кто их убил: автор, переводчик, оба (и сколько в процентах вина каждого в таком случае)? :)
Не было никакого переводчика.
И статья задумана скорее как средство предотвращения хотя бы малой части убийств.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Главная причина такого положения — избыток свободы в действиях программиста. Компиляторы позволяют программистам такое, что невольно задумаешься над аналогом «суда офицерской чести», но для кодеров.

Нет в информационном мире сопромата. Нет гравитации. Только время ещё имеет значение. Но, как говорил один мой друг: «если мой код у тебя тормозит — просто купи себе новый процессор».

Плюс, бизнес своими, кхм, странными требованиями, проводит такой дикий отрицательный отбор в индустрии, что даже эволюция уже не действует, выживает любой кадавр.
Я считаю что виновато неправильное «обезьянье» восприятие реальности. Человек подсознательно считает что больше — лучше. Больше объем, больше бесполезных модулей, больше время установки — ого, эта программа очень большая, над ней трудилась по крайней мере сотня человек. Они безусловно победят в кулачном бою ту горстку программистов, что написала такую же программу, но маленькую. Вот так думает обезьяна.
В итоге мы имеем windows, который отжирает несколько ГИГАБАЙТ оперативной памяти при старте.
Но посмотри внимательно на экран, что ты видишь? Должно ли это забирать гигабайт оперативной памяти? Для сравнение — буфер экрана, большой объект, займет порядка 10 мегабайт. Я вчера разжал по необходимости небольшое видео в память и оно заняло всего два гигабайта.
Но посмотри внимательно на экран, что ты видишь? Должно ли это забирать гигабайт оперативной памяти?

Замечательно. Раз вы определяете потребность в памяти по тому, что видно на экране, то система, в принципе не работающая с экраном, по-вашему не должна занимать памяти вовсе.
Не знаю сколько одно должно занимать памяти, но Windows реально тормозит. На работе был компьютер с Windows 7, которая, даже свежеустановленная, работала так себе. Почтовик разворачивался потихоньку себя отрисовывая и т.д. Но вдруг у меня появилась возможность установить на этот же компьютер Linux. Это было просто преображение компьютера. Даже с эффектами Compiz компьютер работал просто очень шустро. Ну а почта… да, это был IBM Lotus, открывалась просто влёт. Фактически, для офисного применения скромный компьютер на Core2Duo с 2 гигабайтами оперативки оказывается может очень быстро работать. И, что самое хороше из подмеченного мной на домашнем компьютере, скорость работы системы под Linux не деградирует со временем, даже с учётом того, что почти никогда не делаю дефрагментацию. А на Windows дефрагментация немного помогает, но не позволяет достичь той же скорости работы, что была после установки системы.
Проблему выжирания памяти пытался узнать в https://geektimes.ru/post/279510/ (хотя в далёких бородатых это считалось нормой «не мешайте семёре работать»). Оказалось, что всякая телеметрия в лице щемящихся обновления со (сторонних) серверов упорно лезет даже при выключенном апдейте. Проблема решилась изменением политик файрвола. Тормоза могут остаться от PATA (IDE).
Странная история. Но вполне может быть, что тормозит не семерка, а драйвера под ваше железо. У меня есть такая проблема с ХР — тормоза с подключенным dual monitor. Берешь окошко, выносишь его на внешний монитор и все — приплыли, само приложение работает раз в 5 медленнее. Вносишь обратно — все ок. При этом с другими ноутами той же марки проблем нет.
«На работе был компютер» это не показатель тормознутости windows.
Отрисовка окошек выполняется определенными схемами (directX, например), и если на компе на работе недоставили адекватные драйвера, то тормозить будет более чем. Зато если поставили, UI на Windows работает ГОРАЗДО быстрее UI на Линуксе.

Люди, которые в 2016 году на Wшn7 ускоряют работу обычной рабочей станции дефрагментацией — IMHO очень плохо разбираются в настройках
Ну дома на ноутбуке родная Windows 8.1 была. Даже переустанавливал с форматированием винта (благо ключик зашит в BIOS). Сначала сносно работает, но после установки танков и стим начинает медленно деградировать. В это же время на этом же железе со второго винта Linux работает всегда с предсказуемой скоростью. Когда SSD поставил, совсем Linux реактивно стал. А вот Windows 10 так себе. Игры в Linux не смог проверить на скорость, т.к. симликн сделал на HDD для папки Steam. Но всё равно те же самые игры быстрее запускаются в Linux, но из-за драйверов бывает хуже работают.
Зато если поставили, UI на Windows работает ГОРАЗДО быстрее UI на Линуксе.

Что в вашем понимнии «UI на Линуксе»? Если говно, которое по ошибке назвали GNOME, или Plasma, то тогда очевидно оно будет поттормаживать из-за тысяч эффектов и теней с прозрачностями. i3 — запускается мгновенно, не течёт и не тормозит.
Зато если поставили, UI на Windows работает ГОРАЗДО быстрее UI на Линуксе.

И какой это вы UI тестировали?

НЛО прилетело и опубликовало эту надпись здесь
над аналогом «суда офицерской чести», но для кодеров.

Это называется code review

Зачем я это прочитал?(2мин) s_o_v_a: Возможно вы убили уже пару человек, остановитесь!
Замечание, не относящееся к содержанию статьи: было бы неплохо вставки кода отформатировать для читабельности.
А они были отформатированы. Джонни с Хабра постарался…
Исправил. Не заметил сначала иконку карандаш в квадрате, означающую «редактировать». Например рядом иконка портфельчика, отличающаяся только яркостью чуть-чуть и она ничего не делает. Джонни сделал прекрасную замену всем понятного слова «редактировать» на красивую иконку, «чтобы не как у всех».

Давно считаю Хабр отхожим местом :)
Если мне не изменяет память, то есть кнопка «Предпросмотр», при помощи которой можно проверить, что статья выглядит как надо.
В «предпросмотре» статья выглядела именно так как я ее и набрал — с правильными отступами везде. Я все проверил. Публикация же сожрала табуляцию в коде.
Не надо писать в отхожие места.
Цените своё время.
Код самописного профайлера — восхитительный пример того, как его разработчик совершает геноциды.
Уями можно и столб покрыть, а толку. Покажи как надо, Джон.
А мне статья понравилась. Не понимаю, за что человека заминусовали, многие вещи как минимум заслуживают внимание, причем гораздо большего, нежели дискуссии на тему «табы vs пробелы».
Вот с чем не согласен:
01) Если давать короткие имена вида «а1», «а2», то потом очень сложно находить нужные места поиском.
Например, часто требуется подкорректировать все места, где встречается какой-то определенный объект.
02) Комментировать нужно. Но преимущественно те места, в которых у другого разработчика могут возникнуть трудности с пониманием, а что именно ты пытался сделать. Порой в чужом коде очень сложно понять, для чего именно тот или иной кусок кода.
> 01) Если давать короткие имена вида «а1», «а2», то потом очень сложно находить нужные места поиском.

А никто и не говорил, что такое нужно применять в большом объёме кода, где ещё и искать надо будет. А вот в 20 строчном методе использование таких сокращий однозначно плюс.
Не понимаю, за что человека заминусовали

Мне кажется, что человека заминусовали не за статью, а за его комментарии.
НЛО прилетело и опубликовало эту надпись здесь
>Можно ли давать объектам короткие имена
>НУЖНО.
Рака яичек автору. Я посмотрю, сколько времени вы потратите на выяснение того, что такое e, c и чем они, блеать, отличаются.

>неймспейсы
>Приводила ли ошибка к чему-то серьезному?
Очень плохой вопрос. Вот из-за таких «ракеты и падают». Не приводило, не приводило, но потом привело.
Может вы еще из тех, кто пишет using namespace std;?

>Код профайлера
>f_time, f_min, f_max, f_average…
Вы же нам, блеать, только что сами сказали, что префиксы — это мусор. И вообще, глядя на этот код хочется посоветовать автору отказаться от написания статей на хабр, а то не дай бог какие-нибудь неокрепшие умы воспримут вас всерьез…
«Я посмотрю, сколько времени вы потратите на выяснение того, что такое e, c и чем они, блеать, отличаются.»

«В пределах области видимости пол-экрана — экран, короткое имя будет благом для всех.»

Пару секунд? К тому же он, насколько я понял, говорит о стандартных переменных. Например об интовых итераторах (i, j, k), вспомогательных чарах и строках (c, ch, s).
Нет не пару секунд. За пару секунд вы в лучшем случае выясните тип переменной, но не ее семантику. Вот в примере профайлера обе переменные, c и e имеют тип Event. И что?
Вот расскажите мне, для чего в его коде (profiler.h) нужна переменная c?
Я потратил пару минут, чтобы сделать вывод о ней и авторе в результате.
Согласен, переменную c надо перенести на место ее использования. Тогда будет легче понять что c — сам event, а е — ссылка на event.

Ругайте, материте мой код, тем самым вы только сделаете его лучше.
Слишком много, что можно исправить.
Например, сюда бы лучше подошел std::map, а не std::set.
for по итераторам лучше заменить на range-based for.
f_summ у вас за время своей жизни претерпевает сразу несколько метаморфоз: сначала она содержит секунды, потом милисекунды, потом милисекунды-помноженные-на-коэффициент-чтобы-перевести-в-проценты-ненужная-ручная-оптимизация-которая-только-запутывает-читающего. Для каждой её семантики следовало бы завести свою const (кроме аккумулятора) переменную с понятным именем. А на одну сотую я бы ее вообще не множил. Потому что объяснить вы это кратко не сможете. Лучше домножить на сто в месте вывода.
range-based for отклоняется как бесполезная модификация.
Выложил исправленный вариант.
>бесполезная модификация
Ой, всё! Я вам больше ничего советовать не буду.
Не ведь это библиотечный код, а c++11 не везде есть.
можно примеры, где его нет?
Какое-то устройство, где SDK не обновляется. Например, терминалы сбора данных CipherLab
Некоторые сертифицированные дистрибутивы, например, ОС МСВС. Можно пользоваться только встроенными средствами разработки, а там gcc 4.1.3
Замечание принято, действительно можно без префиксов.

Рака вам взаимно.
Что-то в этом есть. Тому, кто придумал на этом экране сортировать элементы слева направо, а не сверху вниз, вполне можно посвятить:

Скриншот панели управления

Зато там работает, как и везде в проводнике, быстрый поиск.
Вводишь первые символы искомого элемента и он выделяется, осталось только нажать enter.
Проще всего забыть про существование Панели Управления, и пользоваться поиском в стартовом меню: «WinKey => [start typing]»
Это который может уйти искать в интернет, если я промахнусь или недопечатаю? Нет, спасибо, мне такого дерьма не надо.
Это отключается одним кликом в настройке поиска.
Ну, вот лень мне разбираться. Зачем менять старый работающий порядок на что-то новое, что надо заново изучать почти с нуля? Без крайней необходимости точно не полезу в какие то там настройки поиска и\или эксплорера, дай бог знать ещё, куда прикрутили.
> Зачем менять старый работающий порядок на что-то новое

Потому что новый удобнее и экономит кучу времени — не нужно искать панель управления в меню, не нужно вспоминать, в каком же пункте панели спрятана нужная настройка, не нужно искать этот нужный пункт в панели управления. Достаточно вбить на старте имя нужной настройки.

> дай бог знать ещё, куда прикрутили

Прямо в меню Старт/Поиск и прикрутили, в режиме поиска там шестерёнка появляется.

Даже если не отключать web results, винда лезет в интернет только за подсказками автодополнения поиска, а не за собственно результатами.
Вы уже установили продукт от M$, следовательно, любите иногда обмазаться дерьмом.
Поделитесь своей мудростью — что там надо ставить на десктоп домашний, если не продукт от МС?
Я не утверждаю, что не нужно ставить что-то кроме продукта от M$. Более того, использование любой альтернативы подразумевает под собой многие проблемы. И всё-таки, для нормального, обычного человека на десктоп гораздо лучше подойдёт OS X, а для гика/программиста — Linux.
OSX внезапно требует недешовой техники ( у меня проц АМД, т.е. надо комп менять ).
Linux получше, пользуюсь часто. Но для меня большой минус — нет толковых IDE под C#, сейчас вот Rider тихонько начинает быть удобным разве что.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Попробую объяснить. Смысл был в запоминании под виндой результата вызова QueryPerformanceFrequency()
Затем, почитав про то что таймер может менять частоту и прыгать (в том числе и назад на некоторых глючных системах!), сделал два вызова последовательно.
Функция упростит понимание, в принципе можно исправить.
НЛО прилетело и опубликовало эту надпись здесь
static QWORD freq = QueryPerformanceFrequency();

Упс, нет, так не работает.
Это майкрософтовское придется завернуть во враппер.

У меня же получается один класс вместо двух функций. Я выбираю пикачу!
НЛО прилетело и опубликовало эту надпись здесь
Вот так вот не работает.

static LARGE_INTEGER freq;
QueryPerformanceFrequency(&freq);

Вернее работает, но не совсем как хотелось бы.
Затем, почитав про то что таймер может менять частоту и прыгать (в том числе и назад на некоторых глючных системах!), сделал два вызова последовательно.
Вам бы почитать документацию. QueryPerformanceFrequency() спроектирована так, чтобы давать постоянное, а не плавающее значение. Я даже более скажу, это значение один раз инициализируется во время загрузки ОС. Поэтому вызывать её больше одного раза в приложении нет смысла.
Советую сходить в msdn
Оно работает не то что с плавающей частотой, оно работает даже когда на разных процессорах разная частота.
The frequency of the performance counter is fixed at system boot and is consistent across all processors so you only need to query the frequency from QueryPerformanceFrequency as the application initializes, and then cache the result.

Is QPC accuracy affected by processor frequency changes caused by power management or Turbo Boost technology?
No. If the processor has an invariant TSC, the QPC is not affected by these sort of changes. If the processor doesn't have an invariant TSC, QPC will revert to a platform hardware timer that won't be affected by processor frequency changes or Turbo Boost technology.

Ну и если у вас процессор с «плавающей» частотой, то не поленитесь, вызовете QueryPerformanceFrequency и посмотрите на число, Джонни. Там не будет ничего общего с реальной частотой процессора, как и QueryPerformanceCounter не будет возвращать тики процессора, а будет возвращать тики таймера.
Тссс… не разрушайте человеку его уютный мир велосипедостроения.
Люди которые пишут что значение на некоторых системах может меняться видимо не существуют. Один ты умный, умеешь читать документацию.

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

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

А что если все дураки с хабра — просто бабские фейки.

Хм, да вы еще и сексист, я смотрю.

Назови мне 5 баб, которые что-то новое создали в области компьютерного зрения.
Назови мне 5 баб, которые выпустили инди игры.
Хоть одну бабу, которая создала физический движок.
Ладно, слишком сложно. Хоть половину такой бабы. Хоть четверть! Половинку жопы?
Что мешает? Вся информация открыта, можешь — бери и делай.
Чувствую что сейчас польется инфа что надо было в машинки играть в детстве, вот тогда…

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

Там внизу еще и ПГМнутый нарисовался, про грехи вещает :D

ХАБР!.. ХАБР! ХАБР!
Как лай больной собаки.
Аллах подери, тут такое же болото как и в убогих социальных сетях, куча зомбей которые верят в равенство, демократию и баб ученых.
Жесть жестяная.


«Ну, не верю я, что черномазый на пианино может играть!» (С)

Я и говорю — сексист. Вся информация открыта, а найти лень.


Anthropy, Anna
Houlden, Sophie
Khandaker, Mitu
Love, Christine
Short, Emily


Продолжать?


И еще, извините, не могу удержаться: Маргарет Хэмилтон. Инди-игр, правда, не выпускала...

Можно ли давать объектам короткие имена
НУЖНО.
argument a1

Я, конечно, не настоящий сварщик, но по-моему old_dir, current_dir, new_dir даже в пределах пол-экрана читаются гораздо легче, чем dir1, dir2, dir3. Или например label, time понятнее чем просто l, t. ИМХО короткие имена нужны только для общепринятых названий счётчиков: for i, j in ...

Никто не говорит о шифровании имен. У вас три директории, совершенно очевидно что читателю надо дать понять чем они отличаются.

Примеры с label и time
label l
time t
В пределах пяти строк где имя используется 10 раз в громоздких конструкциях.
В пределах пяти строк где имя используется 10 раз в громоздких конструкциях.

Тем более, если используются в громоздких конструкциях. Громоздкую конструкцию, наполненную a, b, dd, n1, глазами с первого раза очень трудно распарсить. Сравним чиатемость:


set -e
label="$2"
dbname="$3"
time="$(date +%Y-%m-%d-%H-%M-%S)"
dir="$backup_dir/$label-$time"
log="$log_dir/backup-$label-$time.log"
mkdir "$dir"; cd $dir
foobar-dump --db="$s" --do-not-eat-much-memory --include-important-data --fuckup-everything=no --comment="$label" &> "$log" 

и


set -e
l="$2"
s="$3"
t="$(date +%Y-%m-%d-%H-%M-%S)"
d="$backup_dir/$l-$t"
o="$log_dir/backup-$l-$t.log"
mkdir "$d"; cd $d
foobar-dump -D "$s" -m -E -X no -c "$l" &> "$o" 
Смысл мне писать, если вы не читаете или не понимаете мой ответ. Я даже пример дал.
Монолог дурного бабуина…
А вы интересный собеседник…
А что если через месяц добавят в функцию еще пару строк, через 3 месяца еще пару строк, а через год функция уже на три экрана, а переменные в ней все еще короткие?
Вы экономите место на винчестере?

вместо i лучше counter
вместо t лучше tempTime
и т.д.
НЛО прилетело и опубликовало эту надпись здесь
А если к тому моменту, как будет три экрана, вы уже смените 4 работы, а тут будет работать человек, которому придется потратить пару часов, чтобы выяснить, что такое i и что его можно безболезненно поменять, потому что оно похоже на l, на t и еще десяток однобуквенных переменных?
Плюс время затраченное на разрастание до трех экранов всегда сопровождалось замедленным разбирательством что такое i?
Много спорных моментов, и автор местами излишне категоричен, но вступление гениально же.
Мне кажется, эффективнее не приводить к микросекундам каждый замер, а считать всё в тиках счётчика производительности.
А конвертировать уже при выводе сумм/средних.
Каждый раз подобные статьи, которые, казалось бы, учат хорошему стилю, вызывают у меня отторжение. И с каждой такой статьёй всё усиливается желание послать подальше все правила, гайдлайны, соглашения и просто писать код так, как хочется.

Пожалуйста, хватит.
Большинство преступлений против человечества совершено идеалистами — не спеши в их ряды
В статье многое правильно, зря чела заминусовали. Но вот если следовать этому пути, то дорога на корпоративный уровень (где все деньги) закрыта. Потому что там формальное следование код-стайлу важнее смысла и пользы
Совет. Не стоит на хабре писать про то «каким должен быть идеальный код», просто потому-что теперь большинство обитателей хабра это школота, которым не интересен идеальный код, для которых
<html>
<body>
<? echo "<p>$hello<br>$world</p>"; ?>
</body>
</html>

предел их возможностей и потолок навыков.
о! заминусовали =)
правда глаза режет? =)
> большинство обитателей хабра это школота, которым не интересен идеальный код
Чтож вы тогда в нашем отстойнике забыли?
Как работает демократия и всяческие общественные голосования можете посмотреть на примере нашего правительства.
И хабра )
На закрытую тусу кто-то врывается и говорит, что тут все лохи, а потом удивляется, что он тут кого-то обидел. По вашему, реакция на таких неадекватных выскочек должна быть другой? Я считаю, это вполне ожидаемая реакция.

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

Поэтому, возможно тот, кто врывается в тусу и говорит, что тут лози — МОЖЕТ БЫТЬ и прав(нужно объяснить свою т.з.), но минусов отхватить в любом случае.

И да, s_o_v_a, вы меня убиваете!
Хм… а я вам говорил что уже лет 10 считаю хабр отхожим местом? Вы тут возможно друг с другом все милые и пушистые, потому что боитесь отхватить минусов (плохой костыль).
Но что толку, если вы все равно ведете себя как обезьяны или как бабы: при любом удобном поводе верещите что вы крутые, а доказать вам это совершенно нечем :)
Я минусов не боюсь, потому что в этом курятнике мне делать нечего.
Статью хотелось где-нибудь опубликовать для эксперимента, выбрал хабр за беленький интерфейс :)

Кстати, даже геймдев.ру с его «проэктами» адекватнее чем хабр.

Чтобы не быть голословным:
Пример выше — человек мне пишет: метасообщение «твой код — говно» (завуалировано ставит себя выше меня и больше ему ничего не нужно).
Ему ставят 10 плюсов.
Я ему: покажи как делаешь ты (мой интерес чисто технического плана, обезьянья ерунда меня не интересует).
Мне ставят 10 минусов.

Это система сделанная идиотами для идиотов и остаться здесь могут только идиоты. Вот почему уровень материалов катастрофически низок. Когда я случайно натыкаюсь в поисковике на статью с хабра по какой-то тематике, я автоматически снижаю уровень доверия к материалу в несколько раз. Давняя привычка. Рунет и так полон убогими компиляциями студентов, а хабр с его системой «надрочи рейтинг», «пустим только после поклона» — механизм привлечения убогих компиляций и школоты.
Впрочем, возможно это их хлеб…

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

И прошу вас, доказывать мне что-то бесполезно. Мое мнение основано на множестве фактов, многолетних наблюдениях. В том числе и как приняли вполне здравые размышления о современном программировании.

Тут кто-то написал: «заминусовали за комментарии». Нет, человек, ты еще не все понял.
Моим первым комментариям ставили минусы именно за статью. Этакая месть студентов, Джонни. Не могут люди воспринимать информацию адекватно, примеряют на себя, злятся, выплескивают злость в единственной доступной им форме. Ну а в дальнейшем еще более обозлились, когда увидели что вся эта их ересь с минусами бесполезна.

Я надеюсь все объяснил, по обезьяньей тематике мне больше сказать нечего.
По коду — welcome.
Хм… ну попробую на твоём языке:

Чувак, ну всё же банально — не общайся на своём, обезьяньем, языке, и тебя будут понимать! Тут не стадо бабуинов, как ты привык, тут думать надо, что пишешь!

Плаксик, не плач, ну смотри вот комментарий:
>>Код самописного профайлера — восхитительный пример того, как его разработчик совершает геноциды.

у него 10 плюсов… почему? Потому что: велосипеды всех достали (знаешь сколько профайлеров создано?), потому что почти в каждом велосипеде наломана куча дров. По твоим есть немало вопросов в комментариях.

А вот твой комментарий:
>> Уями можно и столб покрыть, а толку. Покажи как надо, Джон.

у него 12 минусов, знаешь почему? https://habrahabr.ru/info/help/rules/ Вот список того, чего на ресурсе делать не следует: «Оскорблять других пользователей, не следить за эмоциями.», «Постоянно использовать смайлики, коверкать слова, игнорировать правила русского языка»
А ещё потому, что аллегория ну совсем не соответствует фразе «покажи как делаешь ты». Обычное быкование из подворотни.

PS пожалуйста, не публикуйтесь здесь больше, я не хочу читать статьи школьников, у которых пригорело. А вы именно на этот уровень своей статьей (и ещё ниже своими комментариями) метите.
Ну тут я с Вами не соглашусь. Я вот например опубликовал статью, даже инвайт за нее получил, и тут же набежала школота, которая без всяких аргументов и вообще каких-либо более-менее адекватных объяснений просто заминусовала статью, за что я теперь отхабренный. Где в этой ситуации адекватное поведение?
Адекватное поведение в том, чтобы: а) не обращать внимание на карму и б) никогда не писать заметок на хабр.

Джоэл и Джефф немного подумали над политикой ачивок на StackOverflow: там у контрибьюторов производная всегда положительна, каких бы ультра-взглядов ты ни придерживался. Тут все сделано через жёлудь: «элитный» клуб для несостоявшейся малышни бальзаковского возраста и неспособных овладеть английским языком, все серьезные авторы давно ничего не пишут, только «восторженная молодежь» (за что им искреннее спасибо, кстати).

заминусовала статью, за что я теперь отхабренный.

Вообще-то, за заминусованную статью нельзя стать отхабренным.

Почитал сейчас вашу статью. Полезного в ней нет, поэтому, чтобы такая статья взлетела — её должно быть интересно читать. С этим вы не справились. Поэтому минусы на статью — адекватное поведение, имхо.
Пока публика здесь будет считать, что минусы за вложенный труд (вне зависимости от результата) — адекватное поведение, гадюшник останется гадюшником, к сожалению.

Человек же ясно пишет: «опубликовал статью, даже инвайт за нее получил, […] просто заминусовали статью, за что я теперь отхабренный». Сиречь, пришли люди, которые сами пока от горшка два вершка, и наставили минусов в карму (сужу по «отхабренному»), — что полностью подавило любое желание (да и возможность) хоть что-то писать еще.

Если вам кажется это моделью адекватного мира, у меня для вас плохие новости: когда-нибудь вы сами столкнетесь с тем, что выполните какую-либо волонтерскую задачу хуже, чем могли бы. На то может быть миллион причин. А вас, к примеру, забанят. Потому что «IMHO минусы — это адекватное поведение».

Поэтому вот прямо сейчас я описываю процесс создания «быстрых таблиц» на хуках в Riak’е, но вы лично вряд ли ее прочитаете (хотя, в принципе, мне было бы не впадлу перевести ее на русский и опубликовать) — именно потому, что мне нафиг не вперлось мнение гуру теоретического высера.

Не нужно думать, что я обижен на местную публику, или типа того, вовсе нет. Я плюнул, завел еще аккаунт. Когда-нибудь его снова сольют за то, например, что я недолюбливаю golang. Делов-то — заведу еще один. Для резюме, ссылок и приятных бесед у меня есть учетка на SO.

Такие дела.

Следуя вашей логике можно решить, что минусы вообще не нужны, потому что минусы — это не адекватно.
На самом деле вы их не так понимаете. Минусы тут нужны не для того, чтобы обидеть автора, а чтобы производить фильтрацию интересного контента от не интересного. По плюсам и минусам автор может понять понравилась данная статья сообществу или нет.
Если вы такой нежненький, и боитесь минусов — то у вас есть два выбора. Либо не выходить на сцену писать, либо подготавливать материал очень тщательно.
Скажите, вы читали статью McLotos-а? Я не нахожу его статью качественной. Хотя я сам минусов ему не ставил — я прекрасно понимаю почему его статья в минусе.
Если вам кажется это моделью адекватного мира, у меня для вас плохие новости: когда-нибудь вы сами столкнетесь с тем, что выполните какую-либо волонтерскую задачу хуже, чем могли бы. На то может быть миллион причин. А вас, к примеру, забанят. Потому что «IMHO минусы — это адекватное поведение».
Если меня как вы описали забанят — я постараюсь сделать выводы. Мне саморегулирующаяся модель нравится, потому что мне не надо копаться в куче мусорного контента, который начнут тут генерить, если запретить минусы.

Когда-нибудь его снова сольют за то, например, что я недолюбливаю golang.
Недолюбливать вы можете что угодно, и тут за это не сливают. А сливают за то, что начинаете навязывать свое мнение другим, либо разводите холивар.
Вы здесь зарегистрированы с 2012 года, а я с 2006 https://habrahabr.ru/users/matiouchkine/

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

> Недолюбливать вы можете что угодно, и тут за это не сливают.
Да ну? Ну расскажите это моим предыдущим пятнадцати виртуалам.

И еще, вам, полагаю, сто́ит отучиться разговаривать менторским тоном. Это выглядит, как минимум, странно, учитывая сопутствующие факторы.

Которая [карма] как раз влияет на возможность публикации

Да не особо она влияет на возможность публикации, будем честными. Ограничение на "раз в неделю" — это такие мелочи.

Видите ли, вопрос ведь не столько в «подождать пару дней», сколько в «а оно мне надо?».

Если мне ясно дают понять, что в коллективе меня видеть не хотят, я в этот коллектив не хожу. Более того, я считаю это нормальным естественным для разумного человека поведением.

Я хожу в комментарии, выбирая людей, которым мне интересно что-то сказать. Если в середине такой беседы налетает шквал неадекватов — я перерегистрируюсь. Не скажу, что это добавляет удобства к пользованию сервисом, но в моем случае это оправдано: я лично испытываю нехватку профессионального общения на русском языке. Что тут делают оставшиеся три с половиной профессионала, которые могут по-русски обсудить что угодно на работе — для меня загадка.

Замечу также, что я активно пишу всякие заметки под CC, активно участвую во всякой открытой разработке и так далее. Я бы с удовольствием контрибьютил и сюда, да я так и делал, впрочем, пока мне не сказали: «нам тут нужно „приятно“, а не „полезно“». Ну ок.

Видите ли, вопрос ведь не столько в «подождать пару дней», сколько в «а оно мне надо?».

Ну так если не надо, то… и не надо. Зачем себя мучать-то?


Если мне ясно дают понять, что в коллективе меня видеть не хотят, я в этот коллектив не хожу. Более того, я считаю это нормальным естественным для разумного человека поведением.

Мне, в общем-то, кажется, что смысл кармы именно в этом.

> Ну так если не надо, то… и не надо. Зачем себя мучать-то?
А никто себя и не мучает. Вы появились в середине треда, который начался с того, что я объяснил, что не так в консерватории. Ad hominem аргументы тут (как и везде) абсолютно неуместны.

> Мне, в общем-то, кажется, что смысл кармы именно в этом.
Я слышал, что есть люди, которые считают, что большинство всегда право. И им, наверное, здесь очень комфортно. И это прекрасно.

Есть и другие, и их статьи собирают исключительно плюсы, много плюсов, но большинство их вышвыривает, потому что им не нравится какая-нибудь очередная хипстотня и они не стесняются об этом говорить. Все проливают соус на скатерть, но здесь созданы все условия для того, чтобы именно заметившие пролитие соуса были в выигрыше.

Если вас это устраивает — это замечательно. Но если сравнить список авторов с каким-нибудь 2008 годом, вы увидите, что профессионалы разбежались. Полагаю, именно потому, что с большинством они не всегда согласны, а подчиняться всем безумным правилам этого ресурса — может только очень забитый человек.

Ad hominem аргументы тут (как и везде) абсолютно неуместны.

Аргумент ad hominem — это немножко другое, не подменяйте.


Понимаете, есть один маленький, очень странный нюанс во всей этой аргументации: чтобы поставить минус в карму, нужно чтобы в собственной карме было достаточно плюсов. А плюсы — это тоже следствие реакции некоего общества. Так что да, местная динамика и правда так устроена, что есть поощряемое и непоощряемое поведение… и мне кажется, что это нормально для общества.

Зависит от того, какие цели преследует общество.

Если цель — теплая, уютная, ламповая и плюшевая атмосфера — безусловно.

Если же на профессиональном ресурсе вам почему-то небезразлично качество статей — то все иначе. Иногда имеет смысл потерпеть. Подумайте, что тут стало бы с каким-нибудь Эйнштейном или, тем паче, Торвальдсом? То-то.

Если же на профессиональном ресурсе вам почему-то небезразлично качество статей — то все иначе. Иногда имеет смысл потерпеть.

Я вот в этом не уверен. Когда мне нужны статьи без атмосферы — весь интернет к моим услугам, сейчас площадок для собственного высказывания бесконечное множество, я RSS перестал успевать прочитывать.


Подумайте, что тут стало бы с каким-нибудь Эйнштейном или, тем паче, Торвальдсом?

Это бы их остановило?

В чем вы не уверены? Там дихотомия :)

Вы расписываетесь в том, что пришли за атмосферой. Я же не говорю, что это плохо, или, там, неправильно, простите. Наоборот.

> Это бы их остановило?
Их бы заминусовали по самое незабалуйся.

В чем вы не уверены? Там дихотомия

В том, что если небезразлично качество статей, надо потерпеть. Собственно, я считаю, что это ложная дихотомия.


Их бы заминусовали по самое незабалуйся.

Их бы это остановило?

> я считаю, что это ложная дихотомия
Вы утверждаете, что грубиян никогда ни при каких условиях не способен написать блестящую научную работу? Ландау заливисто хохочет.

>> Их бы заминусовали по самое незабалуйся.
> Их бы это остановило?
Понятия не имею. Но количество полезной информации от них точно бы уменьшило.
Вы утверждаете, что грубиян никогда ни при каких условиях не способен написать блестящую научную работу?

Я считаю, что в этом случае мне достаточно его работы, и можно обойтись без общения.

Энштейна с его ОТО поносили во всём научном сообществе достаточно продолжительное время… Куда там хабру с холиворами до тех проблем, с которыми он столкнулся…
НЛО прилетело и опубликовало эту надпись здесь
знаете, что первым делом прилетает, когда кому-то указываешь на логические ошибки в том, что человек говорит?

Знаю. И что?

НЛО прилетело и опубликовало эту надпись здесь
Большинству нравится, когда большинству не перечат :)

Вот и имеем то, что имеем, и удивляемся, отчего бы это. Резкие вещи слышать неприятно, но зачастую весьма полезно. Мятные «совершенно согласен» очень ласкают эго, но предотвращают развитие.

Не всем людям это одинаково очевидно, к сожалению.

НЛО прилетело и опубликовало эту надпись здесь
так же кармой по 9 единиц на обоих ресурсах (которую, как понимаю, заработал на хабре одной статьей с 6 комментами под ней).

Вообще, так работать не должно, разве что кто-то от большой любви, прочитав статью здесь, пошел плюсануть в двух местах.

НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь
Проблема только в том, что уж очень много в последнее время здесь появилось дурачков, или прикидывающихся таковыми, которые, получая негативный отклик на свои грубые, хамские по форме высказывания, начинают прикрываться тем, что их будто бы поносят «по политическим мотивам». Нет, друг, это ты к людям относишься, как к говну, и за это тебя поносят. А не за то, что ты ломаешь чьи-то стереотипы или ломаешь чей-то привычный мир.
НЛО прилетело и опубликовало эту надпись здесь
Или я лично вам когда-то дорогу перешел и не помню?

А при чем здесь вы? Я разве сказал, что речь о вас? Ваш комментарий был с рассуждениями «в общем» вида «а знаете, за что минусят?». Я отметил другую интересную тенденцию.

А заминусили в основном не за политику

Мое «по политическим мотивам» написано именно так — в кавычках. Так, на всякий случай, если вы не обратили внимание.

Зато ваш комментарий прям идеальный образец вашей терпимости и того, что вы лично к другим относитесь не как к говну, да-да

Да, мой комментарий вполне нейтрален. Нет, я лично не отношусь к другим как к говну.
НЛО прилетело и опубликовало эту надпись здесь
Это обращение к тому условному человеку, действия которого я критикую, а не к вам. Заметьте — я описываю конкретные действия, которые подвергаю критике, совершаемые условным человеком, и потом обращаюсь к нему, условному. Вы не совершаете эти критикуемые действия? Тогда это обращение не к вам.
Это обычная фигура речи. Представьте себе фразу вида «Мда, идешь ты так по улице, никого не трогаешь, тут раз и окатывают тебя из лужи». Здесь слово «ты» не применяется по отношению к собеседнику, это лишь фигура речи, способ ее разнообразить. Точно так же, как если мы говорим «идешь по улице до конца, поворачиваешь налево, там подходишь к киоску...». Все описывается в настоящем времени, хотя в настоящее время второй человек никуда не идет и не поворачивает, а вовсе стоит и слушает собеседника.

Например, не писать в них «ТЫ» в ответе другому человеку, если Вы пишете не о нем.
Это не был ответ в полном смысле слова, это реплика после ваших слов на заданную ими тему. Поскольку мы общаемся в виде текстовых сообщений, единственный способ показать, что это реплика после и на заданную кем-то тему — офомить ее в виде ответа.
Если мне ясно дают понять, что в коллективе меня видеть не хотят, я в этот коллектив не хожу. Более того, я считаю это нормальным естественным для разумного человека поведением.
Но почему же вы аж 15 раз заводили виртуалов? Судя по комменту выше. Это разумно?
Следующую строчку не судьба прочитать?

Я хожу в комментарии. Но я больше не пишу статьи. Комментарий — общение с живым человеком. Статья — с коллективом. Я не знаю, как еще проще объяснить.

Вы ошиблись адресом. Комментарии — почти такое же общение с коллективом, разница только в объёме собираемой аудитории.
Ошибаетесь. Комментарии — это так же общение с коллективом, потому что их читают все. Общение с человеком — это когда вы ему в личку пишете.
Так вот, отрицательная карма никак не влияет на общение с человеком. С человеком тут можно общаться даже с read-only аккаунта, у которого кармы вообще нет.
Во-первых, императивы тут не очень уместны. Вы (и два комментатора вокруг) странно трактуете понятие «общение». Вот я вам ответил, а им — нет, с вами я общаюсь, а на них — класть хотел с прибором. То, что каждый волен прочитать мою реплику и что-то ответить не делает из такого сорта переписки — общение.

Во-вторых, если вам, по какой-то причине, непонятен термин «общение», я за него не держусь. Давайте назовем это «сепулька». Так вот: в комментариях мне иногда интересно, а статьи я на русском писать больше не стану. Так понятнее?
Да понял я вас. У вас своя точка зрения, у меня своя. Не вижу в этом ничего плохого. Предлагаю на этом и закончить. ;)
Комментарий — общение с живым человеком

Вы перепутали с личной почтой.
Да и статьи из серии «я нашел перевод статьи о том как изобрели круглое колесо» тоже порядком поднадоели, хочется если не чего-то нового, то хотя бы какой-то свежий взгляд, коего на хабре последнее время стало совсем мало, сейчас в основном либо переводы либо просто наглое копирование текста с каменных скрижалей, которое выдается за «мои вчерашние размышления».
А когда пишешь что-то реальное, то к этому начинают придираться.
Во первых это ты на своем языке.
Во вторых, конструктива в твоем посте ноль, очередная макака.
Так что по коду хотел сказать? Меня интересуют замеры, позволяющие с легкостью делать алгоритмическую оптимизацию под разными системами: windows, linux, android, ios. В моем профайлере меньше 200 строк кода и он позволяет все это делать не напрягаясь, хоть на удаленном устройстве. Это мой основной инструмент оптимизации.
Предложи мне «не велосипед», делающий все то же самое, но лучше.

Макаки, вы мне надоели. Как можно быть такими тупыми и агрессивными.
Не стоит писать про то, каким должен быть идеальный код, потому что «идеальный» — крайне субъективное понятие. И посты вида «Я считаю именно этот код красивым, а ваше понятие о красоте неправильно» минусуются за дело. Особенно если эти посты написаны в таком брызжущем слюной стиле.

Мне вот, например, на код с префиксами смотреть приятнее, чем без них. Мне тоже создать пост, который префиксы хвалит?
> Замечание: ограничение на имена файлов 8.3 снято более 20 лет назад.

Замечание: ограничение на имена файлов 8.3 **появилось** чуть более 30 лет назад и было снято более 20 лет назад. Нормальные люди, впрочем, этого ограничения вовсе не заметили, потому что оно появлялось и исчезало только в нишевой ОС для бухгалтеров.

По-моему пример с программистом Джоном некорректен. Как можно складывать затраченное время разных людей (пользователей) и помещать всё это в одну событийную линию?.. Тогда программа должна быть написана минимум 427.8 лет назад. Разные потоки данных проходящие параллельно нельзя складывать. Тоже самое что сложить время выполнения разных потоков программы в один и сказать, что это время выполнения всей программы…
НЛО прилетело и опубликовало эту надпись здесь
Но если это время они сидели на работе, то за это время в итоге заплатят именно деньги за указанное время.

Речь идёт, всё таки, не о деньгах, «убитых программистом Джоном», а о времени…
НЛО прилетело и опубликовало эту надпись здесь
Автор молодец

namespace std вообще надо бы сделать включенным по умолчанию, стандартная библиотека на то и стандартная.
Понятно что пока оно не так, старый код с конкурирующими именами где-то еще есть. Но зачем в таком стиле писать новый код.
Старый код можно изолировать с течением времени в отдельные модули с отдельными настройками namespace (спрятать за опции препроцессора или компилятора).
Но, может быть, раньше чем все это случится, придет новый более удобный высокопроизводительный язык.
Очень зацепила агрессивность автора (далее Джонни). По этому отпишу
1. Джони, скольких людей ты убыл, опубликовав эту статью?
Если анализировать мир с подобным подходом, то получится следующее:
каждый день на тебя смотрят люди и тратят свое время. Пусть будет 50 человек по 30 секунд (условно, начиная с 20ти летнего возраста).
Получается 1500 секунд в день. Пусть, условно, это будет продолжаться еще 30 лет. Получаем 4562 часа, делим на 16 (кстати, ты спишь по 8 часов, Джонни, тебе повезло). Итого, Джонни, ты потратил 285 человеко-дней. Скольких ты убил?

Каждый день ты тормозишь других людей, глобализацию никто не отменял. Скольких ты убил?
А сколько времени потратила на тебя твоя мама? Ты убиваешь свою маму! Подумай об этом, Джонни.

С такой логикой рассуждений — мы убиваем жизнь вокруг нас, которая в свою очередь убивает нас. Спасибо кеп. Действительно отличная жизненная позициция. Следующий раз когда тебя будут медленно обслуживать в Маке скажи менеджеру, что они тебя убивают (я буду смеяться вместе с ними)

2.
Ну извини, 5 лет в геймдеве, сейчас по компьютерному зрению — не профессионал.

Извени, но когда я вижу подобное, мне хочется в очередной раз блевануть (первый раз — во время прочтения коментов, в первую очередь твоих). Нифига себе у тебя мнение о себе. 5 лет опыта уже проффесионал? В плюсах? Пройдя через гейм дев?
Как правило профессиналы так не кичаться. И уж точно не лажают, обсырая определенные подходы и выкладывая файл который содержит подходы которые они обсырают. Согласись, Джонни, звучит глупо

Геймдев геймдеву рознь. И багов там очень много. И можно 5 лет фиксить баги и словить звезду. 5 лет опыта -теперь я бог, синьйор и могу все обсырать как захочу. А все остальные ничего не понимают.
5 лет в геймдеве тоже ни о чем не говорит. Потому что есть очень много сфер и технологий, которые геймдев не затрагивает. Так что извольте не претендовать на истинность с 5тью годами в геймдеве.

Комьютерное зрение… пойми, Джони, это словосочетание никого уже не пугает лет 5.
И снова таки, компьютерное зрение компьютерному зрению рознь. Прикручивать openCv к апликушке на андроиде и разрабатывать алгоритмы дополненой реальности это две разные вещи. Первое не впечатляет, а второе не претендует на определяющую часть девелоперской темы.

Так что следующий раз, Джонни, не убивай людей своими статьями. А лучше запусти машину (с помощью уже готового решения) обучать нейронную сеть (с уже подобранными параметрами) и молись, что в этот раз ты разметил свой датасет лучше, чем в прошлый…

P.s.
Ни в коем случае не хотел обидеть людей занимающихся геймдевом и комп. зрением. Плюсую всем, каждому свое.
Просто Джонни зацепил своим профессионализмом.
«Извени»

Картина маслом.
Бывает, не бери близко к сердцу
А затем я упростил эту функцию, без ущерба ликвидировав дублирование: split

Вы в курсе, что ваша функция не всегда работает правильно (==«убивает»)?

Объявление функции допускает использование произвольной строки в качестве delimiters:
void split(const string& s, std::vector<string>& result, const string& delimiters = " ");

Например, если я сделаю вызов:
split("aSaSSaSSSa", result, "SS")
то результат будет:
"a", "a", "a", "a"
вместо ожидаемого:
"aSa", "a", "Sa"

Если выложил в интернет — удали.
Если удалил — сделал добро людям.

Сделайте доброе дело: удалите ваш код из этой сатьи, пока кто-либо его не скопировал.
Или хотя бы поправьте и протестируйте перед выкладыванием (да еще с претензией «у меня лучше, чем в Boost»).
Глубоко копнули. Не поспоришь!
В принципе, произвольная строка может задавать набор разделителей. т.е. «AB» — не разделитель AB, а разделители «A» и «B».
В случае с SS как цельным разделителем в части aSSSa возикает неоднозначность: разбиения «a», «Sa» и «aS», «a» — верные, если у нас нет дополнительных ограничений.
Да, если строку считать набором одиночных символов, каждый из которых считается отдельным валидным разделителем, то функция работает правильно. Но если так не считать, то она ошибочна.

В любом случае, очевидно нарушение автором своих же правил:
Комментарии
Если вы пишете понятный код с разумными именами, то комментировать вам практически нечего. Только места с неочевидными вещами, хаки. Лучше потратьте энергию на короткое описание что же все таки делает этот модуль.
Только места с неочевидными вещами
Это зависит от того, что считать очевидным.
Я не программирую на С++, поэтому мне было неочевидно, что
s.substr(a, b - a)
действует правильно, когда a или b (на самом деле только b?) равно string::npos, пока я не осознал, что string::npos — не минус один (несмотря на
static const size_t npos = -1;
), а наоборот — самое большое число.
int i;
char c;
byte b;
string s;
vector v;
pointer p;
argument a1;


Вы там что курили?
Да, вот я тоже, кстати, сразу же заметил; должно же быть консистентно:

argument a;


:)
> Средний мужчина живет 64 года, значит Джон убил примерно 6 целых 68 сотых человека.
Продолжим логику в том же духе: Джон своим кодом ускорил выполнение кода на 15 минут. Значит Джон родил* примерно 6 целых 68 сотых человека. Поздравляем Джона! Теперь он многодетный отец и мать в одном лице! Если каждый так сделает, то население Земли увеличится на 600 млн человек, а количество многодетных отцов станет 25% Земли!

*родил — по аналогии, ведь в статье говорится «убил»

/sarcasm off: просто в статье приводится неверное сравнение, про сохранение времени людей. Сохранив 15минут людям, этот человек не прожил бы дольше, а скорее всего просто занялся бы другим простым делом — включил телевизор, налил чаю или выпил пива, посмотрел котиков итд. Но уж точно не логично говорить про *убил* столько-то людей, ведь в моём пример выше — сохранив им это время, людей больше бы не родилось.
НЛО прилетело и опубликовало эту надпись здесь
если уж есть БОГ с одной стороны, то должен быть кто-то с другой? :-)
НЛО прилетело и опубликовало эту надпись здесь
«Плохой код убивает, хороший код воскрешает»?
Отличное название под следующую подобную статью!
Самый страшный грех — это гордыня!
НЛО прилетело и опубликовало эту надпись здесь
Я думаю, он пришёл с тостера, там очень похожий персонаж обитает: Rou1997.
А чем хабр так уж прямо отличается от какого-нибудь reddit’а? Элитарностью?

НЛО прилетело и опубликовало эту надпись здесь
Историю про Джона уже видел в соц сетях и считаю логику про убийство людей крайне дефективной. Особенно не нравится идея распространения этой, простите за выражение, туфты, и построение на ней каких-то умозаключений и производство выводов.
По теме:
Крайне не согласен с
int i;
char c;
byte b;
string s;
vector v;
pointer p;
argument a1;

Короткие имена ужасны! Читаемость кода обычно снижается, так как некоторые сокращают по принципу: «ну, я же понимаю».
Возьми в проект огромный boost, занимающий несколько гигабайт места на SSD диске

ну во-первых про несколько гб это сильное преувеличение. Ыо-вторых велосипедостроение это плохо, а ведь действительно написал один костыл — избежал буста, в след. раз: «А вроде буст и не нужен же сейчас, двайте еще велосипед запилим» и так много раз — код сложнее и костыльнее. В-третьих открой для себя уже bcp. В-четвертых regex — часть stl уже давно.
int i;
char c;
byte b;
string s;
vector v;
pointer p;
argument a1;


Как-то я работал над таким проектом, где у объектов были такие именна в функции с парочкой вложенных циклов и ифов. Структура кода не сказать, что была бы сложная, но когда доходишь глазами до нижнего уровня уже забываешь что таакое «i», приходиться возвращаться в начало, а там забываешь откуда ты перешел. Внятное имя решило бы эту проблему.
А нужно лишь придерживаться следовать Codestyle для языка на котором вы пишете.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории