[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]

 [ Скрыть форму ]
Имя
Не поднимать тред 
Тема
Сообщение
Капча Капча
Пароль
Файл
Вернуться к
  • Публикация сообщения означает согласие с условиями предоставления сервиса
  • В сообщениях можно использовать разметку wakabamark
  • На данной доске отображаются исходные имена файлов!
  • Разрешенные типы файлов: pdf, music, text, code, vector, image, archive, flash, video
  • Тред перестает подниматься после 500 сообщений.
  • Треды с числом ответов более 100 не могут быть удалены.
  • Старые треды перемещаются в архив после 40 страницы.

No.36161 Ответ [Открыть тред]
Файл: 125860969610249.jpg
Jpg, 39.86 KB, 300×100 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
125860969610249.jpg
Доска посвящена созданию программ и всему, что с ним связано. Для обсуждения готовых программ, железа, устройств есть доска >>/lor/

Простые реквесты для ньюфагов >>28288
Помощь начинающим >>44688 (новый)
Оффициальный™ Лунного Сахара тред >>43581

Языки программирования:
Haskell >>35693
Lisp >>29402
Assembler >>32929
C++ >>43511
Java >>46281
C# и .Net >>27510
Perl >>37854
Python >>46029
Доска посвящена созданию программ и всему, что с ним связано. Для обсуждения готовых программ, железа, устройств есть доска >>/lor/

Простые реквесты для ньюфагов >>28288
Помощь начинающим >>44688 (новый)
Оффициальный™ Лунного Сахара тред >>43581

Языки программирования:
Haskell >>35693
Lisp >>29402
Assembler >>32929
C++ >>43511
Java >>46281
C# и .Net >>27510
Perl >>37854
Python >>46029
PHP >>23225
JavaScript >>40541
Pascal/Delphi >>37645
Golang >>48143

Фреймворки и библиотеки:
Ruby on Rails >>31319
Qt >>31597

Инструменты:
Vim >>33881
Emacs >>36714
Системы контроля версий >>28005

Прочие технологии:
SQL >>29820

Информатика:
Стеганография >>35350

"Кафедра сайтостроя": тред тут в /s >>31137 и тред в /u >>u/104773
Game Development тред тут >>39943 "Кафедра гейм-девелопмента" в /u: >>u/60525
Сообщение слишком длинное. Полная версия. Post was modified last time at 2017-09-26 21:53:58


No.43511 Ответ [Открыть тред]
Файл: 599716131.png
Png, 77.78 KB, 317×372 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
599716131.png
Предыдущий тред: >>39226
372 posts are omitted, из них 36 с файлами. Развернуть тред.
>> No.48982 Ответ
>>48981
Так, а если мне не нужно совобождение памяти при выходе из зоны видимости , ели у мення на данную память ссылаются несколько указателей из программы, не означает ли это то что он при выходе из зоны видимости освободит память на который ссылается другой указатель и при обработке второго указателя у меня случится исключение или чего хуже доступ к какой либо иной информации?
>> No.48987 Ответ
>>48981
> Так какие минусы у использования uniqe-ptr везде?
Худший контроль lifetime'а. Оверхед. Некопируемость. Динамические библиотеки.
> По ссылке выше написано
На заборе тоже написано. Например, при простейшей реализации -> потребует вызова двух методов вместо одного: больше засирается стэк и удваивание операции. Правда, можно заинлайнить.
>> No.48989 Ответ
>>48982
Не слушай >>48987, он неадекват, как-то много тут их завелось.
Юзанье unique_ptr - хорошая практика, помогает избежать утечек памяти и обращений к уже удаленным объектам, трахоебенья с делитами при выходе из зоны видимости и пр.
Если возникает необходимость использовать shared_ptr, то, скорее всего, косяк в архитектуре программы. При шаред птрах становится нихрена не понятно кто владеет объектом~, и кого за него пиздить~.
weak_ptr - не встречал ни одного оправданного использования, на ум приходят только крайне специфические и костыльные варианты.

Насчет быстродействия - да, unique_ptr быть может чутка медленнее, вообще будет зависеть от компилятора и звезд на небе, и тормозить софтина будет точно не из-за них. Но если тебя это смущает, то нахер плюсы, переходи на асм, там такого точно не будет.
>> No.48990 Ответ
>>48989
48982кун
> Не слушай >>48987, он неадекват, как-то много тут их завелось.
чилл плиз

> Если возникает необходимость использовать shared_ptr, то, скорее всего, косяк в архитектуре программы.
я вообще не пользуюсь shared_ptr, я пользуюсь классическими указателями. Тут я спрашиваю чтобы выяснить зачем они собственно нужны кроме как для того чтобы лишний раз не писать free or delete.

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

ps:и вообще профессионально не занимаюсь программированием, для меня это скорее хобби, и поэтому особо практичность в разработке не интересует(хотя от лекции бы не отказался), а интересует принципы и механизмы как сделать чтобы работало хорошо, а не как сделать быстро чтобы работало нормально.
>> No.48991 Ответ
>>48990
> Тут я спрашиваю чтобы выяснить зачем они собственно нужны кроме как для того чтобы лишний раз не писать free or delete.
Ускорение разработки, уменьшение количества ошибок, лучший контроль памяти, etc.
>> No.48992 Ответ
>>48991
понято,сяп
>> No.49019 Ответ
>>48990
> Собственно я и так плюсами не пользуюсь, в основном С
Осторожно интересуюсь: а ты еще здесь?
>> No.49025 Ответ
>> No.49027 Ответ
>>49025
Посовету че-нить по Вин АПИ для чистой сишки, чтобы и почитать, и "скачать-бесплатно-без-смс-и-регистрации". И оптимальный конпелятор для 32-битных приложений, GCC под венду идет в пакете MinGW, а там интернет-инсталлятор, и он не хочет ставиться на 32-битные некромашины.
>> No.49029 Ответ
>>49027
> Посовету че-нить по Вин АПИ для чистой сишки, чтобы и почитать, и "скачать-бесплатно-без-смс-и-регистрации".
MSDN
> И оптимальный конпелятор для 32-битных приложений, GCC под венду идет в пакете MinGW, а там интернет-инсталлятор, и он не хочет ставиться на 32-битные некромашины.
https://mingw-w64.org/doku.php у меня нормально ставится и работает на 32-битной XP. Или у тебя там что-то древнее XP?


No.47927 Ответ [Открыть тред]
Файл: tumblr_oppvh6XMAq1w6k0rko1_540.gif
Gif, 231.52 KB, 540×304 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
tumblr_oppvh6XMAq1w6k0rko1_540.gif
Тред помощи начинающим свой долгий и тернистый путь в дебри программирования. А также необузданных оленей, код-мартышек, выбора ЯП и иных платиновых вещей.
Но в первую очередь всё-таки помощи новичкам. Всё, чтобы зашедший сюда в первый раз мог почувствовать себя как дома.
Главное - без фанатизма.

Предыдущий: >>46762
345 posts are omitted, из них 54 с файлами. Развернуть тред.
>> No.49007 Ответ
>>49006
Читал, да. Все равно достать не могу, то что хочу, нуллы и пиздец. Да и по-ходу, даже если бы и достал, то решение нужно другое. Как-то с капча-респонсом ебаться.
>> No.49008 Ответ
И вот такая херня, в $jpost имеет респонс, но в $reCaptcha сидит нулл. Снова.
$joomla_captcha = JFactory::getConfig()->get('captcha');
$jpost = JFactory::getApplication()->input->post;
var_export($jpost);
$reCaptcha = $jpost->get("g-recaptcha-response");
var_export($reCaptcha);
>> No.49009 Ответ
Короче, извиняюсь за многопостность. Проебал себе мозги сегодня весь день, но так ни до чего функционального толком не дошёл. Почти.
$a = $_POST[data];
foreach( $a as $arr) {
if((strpos($arr['name'], 'g-recaptcha-response')) !== false)
$reCaptcha = $arr['value'];
}
Вот здесь я забрал респонс капчи.
А далее применил по нагугленным решениям:
JPluginHelper::importPlugin('captcha');
$dispatcher = JEventDispatcher::getInstance();
$captcha_response = $dispatcher->trigger('onCheckAnswer', $reCaptcha);
varexport($captcharesponse);
Проблема в том, что я не понимаю, как работает диспетчер триггер, но я ещё почитаю со свежей головой завтра, потому что сегодня у меня уже шары в кучу. На выходе мы получаем массив с единственным элементом, и он равен false. В теории так должно быть если форма будет отправлена без подтверждения капчи, в таком случае респонс в самом верху останется пустым (и он таким реально становится) а триггер срабатывает и выдает фолс. Иначе - респонс заполнен, триггер что-то там делает и выдает трушное значение.
Но оно всегда фолс.
>> No.49010 Ответ
>>49009
Извини, я весь этот веб-дев только краешком задел, когда работу искал, но выглядит всё слишком сложно. То есть, я хочу сказать, сложнее, чем это должно быть. На моей текущей работе фронтендщик впилил рекапчу ещё до обеда. Может быть, конечно, проблема в джумле, но и в таком случае там должны быть уже нормальные плагины.
>> No.49012 Ответ
>>49010
Саму капчу я тоже за час нашел как приспособить и все проверки сделать. Это если ключи прописываются в пхп файл. А вот с джумлой, эти ключи нужно получать из неё, куда вводят их через интерфейс, и тут и начинаются злоебучие приключения. По началу я хотел именно эти ключи взять, и сделать по аналогии с простым внедрением капчи. Но потом я увидел что люди используют принципиально иной подход с джумлой, используя её внутренние объекты, что впринципе логичнее и правильнее, и вот, короче, ни к чему это не привело.
>> No.49015 Ответ
Анон. Как изучать дискретную математику, алгоритмы, структуры данных и паттерны? Вот я читаю книги, там всё понятно и прекрасно описано. После их прочтения я знаю материал, но бывает такое, что приходится и гуглить. Как их изучать нужно? Зазубривать или просто понимать?

В 70% вакансий C++ быдлокодера требуют знание базовых алгоритмов и структур данных. В геймдеве требуют знания линейной алгебры. В DS требуют знание дискретной математики, архитектуры ПК и знание об ОС. Что это всё значит? Какие знания им нужны и как это будет происходить? Мне просто страшно вспоминается сессия в моём пту, где ты приходишь и должен как ебучий робот пересказывать все конспекты, и попробуй одно слово пропустить и на пересдачу пойдёшь, гнида. Так вот, расскажите об этом вот всём.
>> No.49016 Ответ
>>49015
Про алгоритмы и структуры данных.

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

Это для работы инженером-программистом.

Для прохождения собеседования требования могут быть другие. Для работы веб-макакой -- тем более.
>> No.49018 Ответ
>>49015
> > Так вот, расскажите об этом вот всём.
Тебе нужно уметь решать поставленную задачу оптимальным образом. По времени, надежности, практичности.

1. Для этого тебе нужна набитая рука. Нужно владеть тем инструментом, который используешь. Чтобы циклы, классы, указатели, стандартные библиотеки, были твоими верными помощниками, а не трудностью и головной болью.
Сосредоточься на этом. Как минимум, можешь все это реализовать, что перечислил (патерны, алгоритмы и тд), на c++.

1.1 Знание базовых алгоритмов и структур данных - это общая фраза, открою тебе секрет.
Ну грубо говоря, хочешь на работу взять музыканта. Пишешь, знание нотной грамоты. Ну грубо говоря, тебе нужен продавец в музыкальном магазине. Пишешь, базовое знакомство с музыкой. Хочешь взять охранника - пишешь наличие сертификата, и знание боевого ушу.
Для программиста пишешь знание базовых алгоритмов и структур данных.
Если уж совсем простыми словами, что ты придешь на работу, и сможешь работать. Пусть и не сразу.

1.2 >>как ебучий робот пересказывать все конспекты, и попробуй одно слово пропустить и на пересдачу пойдёшь, гнида
Представь, что ты строишь себе дом. Тебе нужны строители.
Ты у них будешь молекулярно-химическую формулу бетона спрашивать?
>>49015
> > Так вот, расскажите об этом вот всём.
Тебе нужно уметь решать поставленную задачу оптимальным образом. По времени, надежности, практичности.

1. Для этого тебе нужна набитая рука. Нужно владеть тем инструментом, который используешь. Чтобы циклы, классы, указатели, стандартные библиотеки, были твоими верными помощниками, а не трудностью и головной болью.
Сосредоточься на этом. Как минимум, можешь все это реализовать, что перечислил (патерны, алгоритмы и тд), на c++.

1.1 Знание базовых алгоритмов и структур данных - это общая фраза, открою тебе секрет.
Ну грубо говоря, хочешь на работу взять музыканта. Пишешь, знание нотной грамоты. Ну грубо говоря, тебе нужен продавец в музыкальном магазине. Пишешь, базовое знакомство с музыкой. Хочешь взять охранника - пишешь наличие сертификата, и знание боевого ушу.
Для программиста пишешь знание базовых алгоритмов и структур данных.
Если уж совсем простыми словами, что ты придешь на работу, и сможешь работать. Пусть и не сразу.

1.2 >>как ебучий робот пересказывать все конспекты, и попробуй одно слово пропустить и на пересдачу пойдёшь, гнида
Представь, что ты строишь себе дом. Тебе нужны строители.
Ты у них будешь молекулярно-химическую формулу бетона спрашивать?
Нет, тебе нужен тот, кто будет строить тебе дом. И ты в первую очередь будешь тестировать, а сможет ли он тебе этот дом построить?
Если он кое-как кирпичи кладет, то это 10 тысяч.
Если кладет хорошо и ровно, то это 15 тысяч.
Если сможет искуссные узоры гравировать на кирпичах, еще и проводку тебе сделает, еще и забор золотистой краской под позолоту покрасит, еще и быстро, еще и материал тебе подберет, еще и купит, еще и не кинет, то это уже 50 тысяч.
А если сможет погонять другими строителями, и проконтролирует, что они доделают твой дом до конца, не бросят все на половине пути, то это уже 75 тысяч.

От тебя сейчас максимум ожидают, что ты сможешь более-менее кирпичи положить под чужие указания.
А на собеседовании проверят, сможешь ли ты их поднять, во-первых, не устанешь ли ты через 10 минут таскания, в-третьих, понимаешь ли ты, куда ты и зачем пришел, что ты будешь кирпичи таскать и получать за это деньги, в четвертых, подходишь ли ты более-менее коллективу, в-пятых, обсудят дополнительные вопросы.
Сообщение слишком длинное. Полная версия.
>> No.49020 Ответ
>>49016
>>49018
Спасибо, аноны! А то я прямо сейчас сижу и мучаю себя, что не могу запомнить формулировку методов решений из дискретмата, хотя сами по себе они легки и понятны, но формулируются сложновато. Буду читать, извлекать из этого смысл (= понимать прочитанное) и практиковаться. Вы мне обучение сделали легче в сотни раз, ещё раз спасибо вам.
>> No.49026 Ответ
>>49012
Если кому интересно, короче, вопрос с капчей отчасти решил.
Проблема в функции самого плагина:
https://issues.joomla.org/tracker/joomla-cms/7921
И судя по всему с 2015 года это так и не было решено.
Там аргумент передаваемый функции никак не задействован в ней самой, кроме того что ему по дефолту присваивается нулл. Чувак добавил проверку, что если аргумент не пустой, то он и будет респонсом. Все вроде как просто, понятно и логично, не понимаю почему в плагине это до сих пор не поправлено.
Вариант с правкой этой функции - рабочий, но не тот, что необходим в моем случае, потому что это все слетит при обнове, а задача была запилить не для конкретного сайта, а универсальный модуль который будет работать в любом случае.
Второй вариант который мне приходит в голову, это попытаться вытащить те самые "кишки" и сделать стандартную проверку капчи. Причем со второй частью этого варианта нет никаких проблем, а вот с вытаскиванием - наверное это все таки невозможно. Такие дела.


No.48984 Ответ [Открыть тред]
Файл: omega.png
Png, 7.18 KB, 400×400 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
omega.png
Привет. Это тред для пиара pfpmd: http://pfpmd7dd5ijt4add2sfi4djsaij4u3ebvnwvyvuj6aeipe2f5llptkid.onion/
pfpmd - это тесно сплетенные в одно целое анонимный чат и текстовые борды. Тематика: computer science, математика, программирование, технологии, криптоанархизм, софт и т.п.

pfpmd существует с 2015 года. Изначально он был попыткой воскресить один ресурс, который назывался лолкс, но теперь это в прошлом. Населен небольшим количеством людей и имеет низкую активность, что и хотелось бы изменить. Из-за того, что pfpmd это tor hidden service, периодически туда заходят люди ищущие цп, гуро и т.п., но, ничего не найдя, быстро уходят. pfpmd не модерируется, бан невозможен, как и цензура. Логотипом pfpmd является символ Ω, в честь Chaitin omega number https://en.wikipedia.org/wiki/Chaitin%27s_constant

Фичи pfpmd:
-Борды не фиксированы, в форме создания поста можно указать имя новой борды и она будет создана динамически в момент создания поста.
-Можно менять описание борды, это может делать любой пользователь сколько угодно раз;
-На странице с чатом по дефолту отображаются сообщение не только из чата, но и со всех борд. Это поведение можно изменить в настройках.
-На станице чана отображаются треды со всех борд (у нас это было еще до нульчана). Но можно отобразить только треды какой-то одной борды, просто перейдя по ссылке этой борды.
-Картинки отображатся с некоторых ресурсов, например, imgur, twitter. Также показываются превьюшки видео с youtube и некоторых имиджборд. Список будет пополняться в будущем.
Привет. Это тред для пиара pfpmd: http://pfpmd7dd5ijt4add2sfi4djsaij4u3ebvnwvyvuj6aeipe2f5llptkid.onion/
pfpmd - это тесно сплетенные в одно целое анонимный чат и текстовые борды. Тематика: computer science, математика, программирование, технологии, криптоанархизм, софт и т.п.

pfpmd существует с 2015 года. Изначально он был попыткой воскресить один ресурс, который назывался лолкс, но теперь это в прошлом. Населен небольшим количеством людей и имеет низкую активность, что и хотелось бы изменить. Из-за того, что pfpmd это tor hidden service, периодически туда заходят люди ищущие цп, гуро и т.п., но, ничего не найдя, быстро уходят. pfpmd не модерируется, бан невозможен, как и цензура. Логотипом pfpmd является символ Ω, в честь Chaitin omega number https://en.wikipedia.org/wiki/Chaitin%27s_constant

Фичи pfpmd:
-Борды не фиксированы, в форме создания поста можно указать имя новой борды и она будет создана динамически в момент создания поста.
-Можно менять описание борды, это может делать любой пользователь сколько угодно раз;
-На странице с чатом по дефолту отображаются сообщение не только из чата, но и со всех борд. Это поведение можно изменить в настройках.
-На станице чана отображаются треды со всех борд (у нас это было еще до нульчана). Но можно отобразить только треды какой-то одной борды, просто перейдя по ссылке этой борды.
-Картинки отображатся с некоторых ресурсов, например, imgur, twitter. Также показываются превьюшки видео с youtube и некоторых имиджборд. Список будет пополняться в будущем.
-Текстовое поле ввода чата поддерживает подобие командной строки. Есть команды для создания тредов, ответа в тред, изменения описания борды.
-Можно скрыть отображение всех сообщений с кириллицей.
-Поддерживается форматирование блоков кода. Подсветка синтаксиса реализована через highlight.js и выключена по дефолту, но ее можно влючить в настройках.
-Поддерживается форматирование математических формул через KaTeX. Но эта фича тоже выключена по дефолту.
-Есть страница с логами всех сообщений (включая борды) в обратном по дате порядке.

Основные принципы:
-Максимальное облегчение сервера, весь (кроме статического) html генерится на клиенте, сервер отправляет клиенту только сырые данные;
-Минимум зависимостей у клиентского кода. Всё, за исключение подсветки синтаксиса и математических формул, реализовано на голом javascript, без использования всяких jquery, vue.js и прочих фреймворков. Исходный код KaTeX и highlightjs подгружается только когда фичи включены в настройках.
-Отсутствие цензуры.

Планы развития:
-Децентрализация на уровне серверов. Будет множество инстансов pfpmd, которые синхронизируются между собой. Юзер сможет подключаться к любому из серверов, сможет поднять свой.
-Сделать клиентское приложение с консольным интерфейсом и веб интерфейсом. Чтобы юзер мог без запуска торбраузера заходить на pfpmd или вообще без гуйни, а также чтобы иметь свою локальную базу сообщений, по которой можно делать поиск и что угодно.
-Допилить дизайн.

Следующим постом будет FAQ. Но, в любом случае, я буду отвечать в тред.
Сообщение слишком длинное. Полная версия.
>> No.48985 Ответ
FAQ
> По ссылке пустая страница без сообщений. Ничего не работает?
Надо включить js для pfpmd в настройках noscript. Исходный код не обфусцирован.

> А что если вайпер все завайпает или даже уронит сервер?
Ничего страшного, есть бэкапы, переподнимем, если что.

> Я не могу терпеть спам. Почему бы не чистить говно?
1. У меня нет на это времени. 2. Понятие спама у каждого свое. 3. Будущее клиентское приложение должно будет поддерживать пользовательские фильтры, каждый сам себе будет модератор. 4. Это нарушает один из основных принципов.

> Есть ссылка в клирнете?
Нету, pfpmd доступен только через тор.

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

> А что если вайпер все завайпает или даже уронит сервер?
Ничего страшного, есть бэкапы, переподнимем, если что.

> Я не могу терпеть спам. Почему бы не чистить говно?
1. У меня нет на это времени. 2. Понятие спама у каждого свое. 3. Будущее клиентское приложение должно будет поддерживать пользовательские фильтры, каждый сам себе будет модератор. 4. Это нарушает один из основных принципов.

> Есть ссылка в клирнете?
Нету, pfpmd доступен только через тор.

> Что означает pfpmd?
Ничего, это просто первые пять символом рандомного хостнейма, который сгенерил тор.

> Что за лолкс?
https://lurkmore.to/%D0%9B%D0%BE%D0%BB%D0%BA%D1%81
Сообщение слишком длинное. Полная версия.
>> No.48986 Ответ
Файл: 1464748799129979470_1.gif
Gif, 8812.08 KB, 291×291 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1464748799129979470_1.gif
> pfpmd - это тесно сплетенные в одно целое анонимный чат и текстовые борды
> У меня нет на это времени
>> No.48988 Ответ
>>48986
Есть логи и тред со всеми сообщениями из чата. Можно раз в день на все ответить и дальше заниматься своими делами, например.
>> No.49023 Ответ
Оп, тематика заинтересовала, но я нихуя не понял. Есть гайд для самых маленьких? Захожу, вижу бессмысленный чат,вижу кучу по-видимому зашифрованной херни в разделе Chan. Как всем этим пользоваться?
>> No.49024 Ответ
>>49023
> Есть гайд для самых маленьких?
В chat - собственно чат. Если перейти в chan, то там будут треды со всех разделов с тремя последними ответами. У каждого треда там есть ссылка в борду, если по ней перейти, то отобразятся только треды этой борды. Ну, короче, очевидно же.
В чате отображаются сообщения со всех разделов. Когда тред не из чата, справа будет, например, /pr/123/ на зеленом фоне, т.е. имя борды и номер треда этого сообщения. Также это ссылки в эту борду и тред соответственно. Алсо, можно применить фильтр для скрытия сообщений не из чата.
У чата есть своя борда, которая называется /cht/ и в ней единственный тред, где отображаются сообщения всего чата (только чата).
Есть еще логи вообще всех сообщений, которые отображаются в обратном порядке, по 200 сообщений на страницу. Там тоже можно применить фильтр и оставить только сообщения чата.
Также есть фильтр кириллицы и много других фич, смотри ОП. И будет еще больше фильтров в будущем.
> Захожу, вижу бессмысленный чат
Побочный эффект отсутствия модерации и цензуры.
> вижу кучу по-видимому зашифрованной херни в разделе Chan
Это недавний вайп, мусор из /dev/random.
> Как всем этим пользоваться?
Просто пишешь, что тебя интересует на обозначенную тематику. В борды, в чат, куда угодно.


No.48832 Ответ [Открыть тред]
Файл: pg087.png
Png, 23.35 KB, 475×349
edit Find source with google Find source with iqdb
pg087.png
Файл: pg072.png
Png, 56.58 KB, 515×709
edit Find source with google Find source with iqdb
pg072.png
Файл: 14686072547160.png
Png, 44.08 KB, 1024×450
edit Find source with google Find source with iqdb
14686072547160.png

Как понять ООП? Я просто вот не понимаю, зачем это нужно. Безотносительно языка программирования

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

Вот допустим есть public private protected модификаторы доступа т.е. ограничения на то, откуда какой метод можно вызывать. public можно вызывать отовсюду, private только для методов из числа public, а protected ... protected становится private при наследовании, притом наследований может быть 3 вида - тоже public, private, protected... Зачем всё это? Чем это лучше просто кучи функций, которые могут просто вызывать другие функции и работать с какими-то структурами?

Или вот методы, методы это функции, которые привязаны к конкретной структуре, но что если мне нужны методы, которые связывают два разных класса? Например это может код, переводящий из вектора в растровую картинку. Этот код должен быть методом класса для растровой или векторной картинки?
15 posts are omitted, из них -1 с файлами. Развернуть тред.
>> No.48915 Ответ
>>48853
> Для реализации ООП-подхода. В пределе все есть объект какого-то класса.
Этот ООП подход не работает в чистом виде. Я уже приводил пример с растровой и векторной картинкой. Если надо сделать код, переводящий вектор в растр, этот код нельзя отнести ни к методу векторной, ни к методу растровой картинки. Это должен быть некий ОБЩИЙ метод для двух структур данных, который имеет доступ к внутренностями (деталям реализации) и того и другого класса (структуры).
> Придумай другой тип доступа, кроме public, protected и private. Не неймспейсики, а именно тип доступа к классу, про который известно только то, что есть еще и другие классы, и что от него можно наследоваться.
Я уже придумал в своем описании, про разделения на слои доступа. Что из слоя 1 можно вызывать код и получать доступ к данным из слоя 1 и слоя 2, из слоя 2 можно вызывать код и получать доступ к данным из слоя 2 и слоя 3 и так далее. Это тебе не подходит?

Или опять таки идея с векторной и растровой картинкой, можно ввести особый модификатор доступа, и если я объявляю с этим модификатором доступа некую функцию, то она имеет доступ к внутренностям и для векторной, и для растровой картинки.
> Значит, ты не умеешь программировать в ООП. Гугли, как делать интерфейсы.
Я умею делать интерфейсы, но к ООП это прямого отношения не имеет. Интерфейсы и до ООП успешно делали.
> Мне плевать, как там внутри все устроено, какой размер кластера и т.д. Я хочу создать файл в 1 байт и сохранить его на диск. Ты будешь лихорадочно искать подходящую функцию, вручную создавать буфер и наполнять его нулями? Это жопорукость.
>>48853
> Для реализации ООП-подхода. В пределе все есть объект какого-то класса.
Этот ООП подход не работает в чистом виде. Я уже приводил пример с растровой и векторной картинкой. Если надо сделать код, переводящий вектор в растр, этот код нельзя отнести ни к методу векторной, ни к методу растровой картинки. Это должен быть некий ОБЩИЙ метод для двух структур данных, который имеет доступ к внутренностями (деталям реализации) и того и другого класса (структуры).
> Придумай другой тип доступа, кроме public, protected и private. Не неймспейсики, а именно тип доступа к классу, про который известно только то, что есть еще и другие классы, и что от него можно наследоваться.
Я уже придумал в своем описании, про разделения на слои доступа. Что из слоя 1 можно вызывать код и получать доступ к данным из слоя 1 и слоя 2, из слоя 2 можно вызывать код и получать доступ к данным из слоя 2 и слоя 3 и так далее. Это тебе не подходит?

Или опять таки идея с векторной и растровой картинкой, можно ввести особый модификатор доступа, и если я объявляю с этим модификатором доступа некую функцию, то она имеет доступ к внутренностям и для векторной, и для растровой картинки.
> Значит, ты не умеешь программировать в ООП. Гугли, как делать интерфейсы.
Я умею делать интерфейсы, но к ООП это прямого отношения не имеет. Интерфейсы и до ООП успешно делали.
> Мне плевать, как там внутри все устроено, какой размер кластера и т.д. Я хочу создать файл в 1 байт и сохранить его на диск. Ты будешь лихорадочно искать подходящую функцию, вручную создавать буфер и наполнять его нулями? Это жопорукость.
А где я писал что я буду что-то лихорадочно искать и что-то вручную создавать?
> Интересно, как ты ее реализуешь на голом С. Без указателей на void.
Меня указатели на void не пугают
> Все пишется кусками минимум в 1 байт, лол.
Байты бывают и 7-битными. И вообще, что если я хочу не 1 байт, а всего лишь 1 бит записать, и при этом физический интерфейс флеш-памяти мне позволяет адресовать даже отдельные биты?
Сообщение слишком длинное. Полная версия.
>> No.48916 Ответ
>>48863
> Тебе не за чем. А если бы ты кодил хотя бы вдвоем, то быстро бы понял, что некоторые вещи другой человек видеть, наследовать и тд не должен.
Вдвоем я уже кодил, описанных проблем не испытывал. Можно просто договориться об особом нейминге, если это вдруг становится проблемой. Или static функции в отдельном файле.
>> No.48918 Ответ
>>48915
> Если надо сделать код, переводящий вектор в растр, этот код нельзя отнести ни к методу векторной, ни к методу растровой картинки. Это должен быть некий ОБЩИЙ метод для двух структур данных, который имеет доступ к внутренностями (деталям реализации) и того и другого класса (структуры).
Лолнет, ты предлагаешь говнокод. Должен быть либо конструктор, либо статик метод from(), принимающий аргументом объект-исходник. И конечно же архитектурно там будут использоваться только public методв исходника и никаких, упаси боже, деталей реализации.
> Я уже придумал в своем описании, про разделения на слои доступа. Что из слоя 1 можно вызывать код и получать доступ к данным из слоя 1 и слоя 2, из слоя 2 можно вызывать код и получать доступ к данным из слоя 2 и слоя 3 и так далее. Это тебе не подходит?
Звучит странно. Если ты хочешь замутить охуенный N-уровневый контроль привилегий (мсье знает толк), то для этого требуется больше одного класса, это целая подсистема получается.
> Или опять таки идея с векторной и растровой картинкой, можно ввести особый модификатор доступа, и если я объявляю с этим модификатором доступа некую функцию, то она имеет доступ к внутренностям и для векторной, и для растровой картинки.
Bad design. Или даже ugly.
> Я умею делать интерфейсы, но к ООП это прямого отношения не имеет. Интерфейсы и до ООП успешно делали.
Лолнет, интерфейсы - суть ООП. То, что кто-то костылил это раньше доступными средствами... ну так и лямбды частично костылили через функторы.
> А где я писал что я буду что-то лихорадочно искать и что-то вручную создавать?
>>48915
> Если надо сделать код, переводящий вектор в растр, этот код нельзя отнести ни к методу векторной, ни к методу растровой картинки. Это должен быть некий ОБЩИЙ метод для двух структур данных, который имеет доступ к внутренностями (деталям реализации) и того и другого класса (структуры).
Лолнет, ты предлагаешь говнокод. Должен быть либо конструктор, либо статик метод from(), принимающий аргументом объект-исходник. И конечно же архитектурно там будут использоваться только public методв исходника и никаких, упаси боже, деталей реализации.
> Я уже придумал в своем описании, про разделения на слои доступа. Что из слоя 1 можно вызывать код и получать доступ к данным из слоя 1 и слоя 2, из слоя 2 можно вызывать код и получать доступ к данным из слоя 2 и слоя 3 и так далее. Это тебе не подходит?
Звучит странно. Если ты хочешь замутить охуенный N-уровневый контроль привилегий (мсье знает толк), то для этого требуется больше одного класса, это целая подсистема получается.
> Или опять таки идея с векторной и растровой картинкой, можно ввести особый модификатор доступа, и если я объявляю с этим модификатором доступа некую функцию, то она имеет доступ к внутренностям и для векторной, и для растровой картинки.
Bad design. Или даже ugly.
> Я умею делать интерфейсы, но к ООП это прямого отношения не имеет. Интерфейсы и до ООП успешно делали.
Лолнет, интерфейсы - суть ООП. То, что кто-то костылил это раньше доступными средствами... ну так и лямбды частично костылили через функторы.
> А где я писал что я буду что-то лихорадочно искать и что-то вручную создавать?
А куда ты денешься без ООП? В итоге так и будет какая-нибудь срань типа iowrite8, iowrite16, iowrite32.
> Меня указатели на void не пугают
Да можно вообще макросы MAX(a, b) ((a > b) ? a : b) использовать. Почему это небезопасно и не один нежопорукий программист так не делает, интересно.
> Байты бывают и 7-битными. И вообще, что если я хочу не 1 байт, а всего лишь 1 бит записать, и при этом физический интерфейс флеш-памяти мне позволяет адресовать даже отдельные биты?
А еще можно three-state использовать и вообще дрочить вприсядку. Приложению плевать, и все грязные делишки твоей железяки должны быть инкапсулированы внутрь, а снаружи предоставлять только общий, оперирующий общепринятыми вещами (типа 8 битных байтов) интерфейс.
Сообщение слишком длинное. Полная версия.
>> No.48919 Ответ
Предлагаю заставить ОПа выучить жабу.
>> No.48925 Ответ
Файл: 1530364206116.png
Png, 0.99 KB, 300×20 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1530364206116.png
>>48919
Или написать большой и серьезный проект на чистом C. При этом мониторить качество кода и наказывать за косяки.
>> No.48937 Ответ
Может ли быть полноценное ООП без friend классов?
>> No.48940 Ответ
>>48937
Нет, конечно. Ведь пророк наш Алан Кей ничего не говорил про friend-классы.
PS. Ищи не Истину в Идеях, а Инструмент.
>> No.48978 Ответ
Файл: 1528302888273.jpg
Jpg, 293.45 KB, 1500×1954 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1528302888273.jpg
Чтобы понять ООП надо писать код который его требует.

Вот я например долго не понимал паттерна Factory. Нахуя он нужен? А когда встречал его в чужом коде непонимал как люди такой то код надумывают.

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

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

Я все еще плохо владею абстракциями, но я верю что втянусь по мере работы. Не верю что книги тут сильно помогут, я их много в свое время перечитал и мало что с этого осело в памяти. Я вот сейчас думаю перечитать Clean Code и думаю что взгляну на нее совершенно другими глазами.
>> No.49021 Ответ
>>48978
> Чтобы понять ООП надо писать код который его требует.
Какой именно код его требует? Есть вообще в природе код, который без ООП написать невозможно?
И где конкретно кончается ООП и начинается не-ООП? Если в чистом Си писать функции, которые принимают указатели на структуры и что-то с ними делают, ну там аллоцируют память, меняют какие-то значения полей структур, это уже ООП или еще нет?
Или вот если просто использовать классы, но не использовать наследования и полиморфизмов, это ООП?
>> No.49022 Ответ
>>49021
> > Какой именно код его требует?
Тот, который его требует.
В общем виде эта задача не решается. Но так или иначе иногда удобно использовать ООП. Когда - сердце подскажет.

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


No.48143 Ответ [Открыть тред]
Файл: 14737788001931.png
Png, 31.18 KB, 400×296 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
14737788001931.png
Почему до сих пор нет треда, посвящённому божественному языку Go или Golang?

Поделюсь своими ссылочками
http://golang-book.ru/
Очень хорошая книга, отлично подходит для начинающих, приводится подробное разъяснение основ
https://www.dropbox.com/s/pe7v02epirzzpat/intro_in_golang.7z?dl=1
То же, но в pdf формате

https://www.youtube.com/playlist?list=PLBOo6DBmP5V9CAXxxl6EZxZpMmT_4ZOca
Канал на ютубе. К сожалению порекомендовать его не могу, потому что много воды, то что можно я бы даже сказал нужно уместить в одно видео, растягивается на несколько

https://golangshow.com/
Подкаст по Golang

Реквестирую больше литературы, желательно на русском
Почему до сих пор нет треда, посвящённому божественному языку Go или Golang?

Поделюсь своими ссылочками
http://golang-book.ru/
Очень хорошая книга, отлично подходит для начинающих, приводится подробное разъяснение основ
https://www.dropbox.com/s/pe7v02epirzzpat/intro_in_golang.7z?dl=1
То же, но в pdf формате

https://www.youtube.com/playlist?list=PLBOo6DBmP5V9CAXxxl6EZxZpMmT_4ZOca
Канал на ютубе. К сожалению порекомендовать его не могу, потому что много воды, то что можно я бы даже сказал нужно уместить в одно видео, растягивается на несколько

https://golangshow.com/
Подкаст по Golang

Реквестирую больше литературы, желательно на русском
Если кто-то решится писать свои уроки- то совсем хорошо

postScriptum сам я изучаю golang с нуля, то есть вообще ни с какими языками программирования до этого дела не имел
Сообщение слишком длинное. Полная версия.
>> No.48144 Ответ
https://golang.org/doc/faq
Большой FaQ по Golang с официального сайта
>> No.48145 Ответ
И ещё очень интересно узнать, есть ли аноны, которые пишут на нём? Если такие будут- отпишитесь
>> No.48146 Ответ
>>48143
Вроде же был на доброчане тред про гоу, я там даже что-то писал, лет несколько назад.

>>48145
Гоферов вроде тут вроде было полтора человека. Сам я веб-макак на пхп+жс. Гоу как и некоторые другие ЯП изучаю до уровня хеллоу-ворлда со скуки.

Задавай свои ответы.
>> No.48152 Ответ
Файл: 21321321.jpg
Jpg, 39.07 KB, 641×301 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
21321321.jpg
Поспособствуйте с установкой Ebiten на windows
https://hajimehoshi.github.io/ebiten/#projects-with-ebiten

Через командную строку- выдаёт пикрил
Сражу скажу что в программировании я практически ноль
>> No.48153 Ответ
>>48152
Тут три варианта.
1) https://github.com/hajimehoshi/ebiten/wiki/Windows Compilation requires a C compiler like GCC to compile third party libraries used by Ebiten. You would need C compiler like MinGW or TDM GCC on Windows. TDM GCC is much easier than others so far.
2) Поставить линукс в виртуалку.
3) Поставить линукс в дуалбут.
>> No.48154 Ответ
>>48153
Спасибо. Первый вариант помог
>> No.48590 Ответ
>>48145
Увидел тред и решил вместо унылого написания очередного скриптика на питоне вкатиться в го. И я прозрел - он шикарен.
>> No.48997 Ответ
>>48590
кажется, тред скорее мертв,чем жив
а так я занимаюсь коммерческой разработкой на голанге, могу подсказать, если что-то нужно
>> No.49001 Ответ
Файл: 0UfebEHWhsAa6CyTc...
Jpg, 81.46 KB, 640×913
edit Find source with google Find source with iqdb
0UfebEHWhsAa6CyTcxXnHzSnVdaw3x2TRFJjdT_-CGw.jpg
Файл: qGxliQk3J5iaw-vTQ...
Png, 419.09 KB, 722×609
edit Find source with google Find source with iqdb
qGxliQk3J5iaw-vTQeqM9CCj2O94TT-_-3LyWqg24TY.png

Можно мемов накинуть
>> No.49017 Ответ
>>49001
> generics
Да ну, зачем? Всегда же можно нагенерить копипасты при помощи `go generate`.


No.46281 Ответ [Открыть тред]
Файл: main-qimg-2a7cef12cc63002b267d248611c76e58.png
Png, 782.27 KB, 572×861 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
main-qimg-2a7cef12cc63002b267d248611c76e58.png
И мы продолжаем ликвидацию безграмотности, неспешные беседы и яростные дискуссии вокруг яваскрипта.

Предыдущий тред: >>40541
136 posts are omitted, из них 19 с файлами. Развернуть тред.
>> No.48898 Ответ
Файл: 14274344617810.jpg
Jpg, 50.45 KB, 660×440
edit Find source with google Find source with iqdb
14274344617810.jpg
Файл: ооооооооооооооооо...
Png, 13.45 KB, 675×349
edit Find source with google Find source with iqdb
ооооооооооооооооооооооооооооооооо.png

>> No.48926 Ответ
.bind, .apply/.call

Насколько я понял байнд просто привязывает контекст, возвращая обёртку, а апплай и колл вызывают функцию немедленно с передачей контекстапо крайней мере так утверждает мозила. Но. У Кантора код, в котором он ставит функцию апплаем на таймаут сарбатывает по таймеру, а у меня - немедленно. Есть какие-то вещи, которые неочевидны и должны быть сохранены от профанов?
>> No.48935 Ответ
Файл: BlXl1EAHVSg.jpg
Jpg, 91.68 KB, 604×585 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
BlXl1EAHVSg.jpg
>>48926
Что неочевидного в apply? Причем тут таймаут? Таймаут просто вызывает функцию. Если ты хочешь вызывать функцию с заданным контекстом, то используй apply и передавай в него контекст. Если ты хочешь вызывать функцию без передачи контекста, то можешь работать с функцией с уже ранее заданным контекстом с помощью bind

https://gist.github.com/nanodesu88/1bc42da7ffd5782dd3f0a82d854c3ff1

>>48894
>>48879
Скобки много где используются, это же Си-синтаксис. Ты похоже не понял что такое функции и как они работают. Функции - это не список каких то данных. Функция вызывается, работает и возвращает результат

https://gist.github.com/nanodesu88/30739fe3da3e93ed8b372b4b5b53a5b6
>> No.48938 Ответ
Файл: 1298203382184.jpg
Jpg, 44.06 KB, 600×600 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1298203382184.jpg
>> No.48939 Ответ
Кстати, что с интерпретатором бледной луны?
В лисе вот это
function sayMyName ({
firstName = 'Zell',
lastName = 'Liew'
} = {}) {
console.log(firstName + ' ' + lastName);
} работает нормально, а луна утверждает SyntaxError: missing : after property id
>> No.49002 Ответ
Вы тут живые?
>> No.49003 Ответ
>>48939
function sayMyName({firstName, lastName} = {firstName: 'Zell', lastName: 'Liew'})
>> No.49004 Ответ
>>49002
Ну ячеловек, учащий жавоскрипт устал и на пару недель взял перерыв. А что?
>> No.49013 Ответ
>>49004
Просто проверяю вас.
>> No.49014 Ответ
Файл: De8HhOqWAAEfuVf.jpg_large.jpg
Jpg, 119.74 KB, 640×797 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
De8HhOqWAAEfuVf.jpg_large.jpg


No.33881 Ответ [Открыть тред]
Файл: vim-shortcuts-dar...
Png, 116.56 KB, 2560×1600
edit Find source with google Find source with iqdb
vim-shortcuts-dark_2560x1600.png
Файл: vim_cheat_sheet_f...
Png, 1791.61 KB, 3301×2550
edit Find source with google Find source with iqdb
vim_cheat_sheet_for_programmers_print.png

Обещал про Vim написать. Ну вот собсна и написал.

Итак. Для начала поговорим о том, кому он не нужен. Ненужен он в самую первую очередь тем, кто не умеет в слепую десятипальцевую печать. Для таких людей vim буде каторгой. Посему данной категории людей советую либо забить на это дело, либо начать развивать слепую печать. Благо навык полезный. Можно гуглить например очевидную stamina и т.д. Вторая категория людей, которым не нужен сабж, это фанаты emacs по очевидным причинам. Кроме того не очень желательно изучать для виндопользователей. Ибо может быть черевато переходом на linux в конечном итоге, лол.

Ну а теперь собсна о vim и о том, что он из себя представляет. Если кратко, то это текстовый редактор, оптимизированный под слепую печать. Т.е. в нём можно делать всё не снимая рук с клавиатуры. Ну а ещё он мощный, расширяемый, бла-бла-бла.

Ок. Где взять? Для линупсов достаточно установить из пакетного менеджера очевидный пакет под именем vim sudo apt-install vim для бубунты, а остальные и сами разберутся. Для винды можно пользовать ссылочку ftp://ftp.vim.org/pub/vim/pc/gvim74.exe

Скачали, запустили. Ну и? Где вся няшнота то?
Объясняю только самые основы:
  • выход без сохранения точнее закрытие файла при помощи :q!
  • есть несколько режимов работы. Основные: "нормальный", редактирование, командный, выделение.
  • передвижение по файлу при помощи клавиш h j k l это соответственно влево, вниз, вверх, вправо.
  • для собсна редактирования можно нажать например i
Далее находим vimtutor и проходим его. Он ответит на остальные вопросы. Для линупсов vimtutor ru в консольке. Для винды должно быть гхдетоу в районе меню пуск. Хотя шут его знает. Потом изучаем и печатаем на бумажку или ставим в качестве обойки воон те картинки, что в комплекте с постом идут.
Обещал про Vim написать. Ну вот собсна и написал.

Итак. Для начала поговорим о том, кому он не нужен. Ненужен он в самую первую очередь тем, кто не умеет в слепую десятипальцевую печать. Для таких людей vim буде каторгой. Посему данной категории людей советую либо забить на это дело, либо начать развивать слепую печать. Благо навык полезный. Можно гуглить например очевидную stamina и т.д. Вторая категория людей, которым не нужен сабж, это фанаты emacs по очевидным причинам. Кроме того не очень желательно изучать для виндопользователей. Ибо может быть черевато переходом на linux в конечном итоге, лол.

Ну а теперь собсна о vim и о том, что он из себя представляет. Если кратко, то это текстовый редактор, оптимизированный под слепую печать. Т.е. в нём можно делать всё не снимая рук с клавиатуры. Ну а ещё он мощный, расширяемый, бла-бла-бла.

Ок. Где взять? Для линупсов достаточно установить из пакетного менеджера очевидный пакет под именем vim sudo apt-install vim для бубунты, а остальные и сами разберутся. Для винды можно пользовать ссылочку ftp://ftp.vim.org/pub/vim/pc/gvim74.exe

Скачали, запустили. Ну и? Где вся няшнота то?
Объясняю только самые основы:
  • выход без сохранения точнее закрытие файла при помощи :q!
  • есть несколько режимов работы. Основные: "нормальный", редактирование, командный, выделение.
  • передвижение по файлу при помощи клавиш h j k l это соответственно влево, вниз, вверх, вправо.
  • для собсна редактирования можно нажать например i
Далее находим vimtutor и проходим его. Он ответит на остальные вопросы. Для линупсов vimtutor ru в консольке. Для винды должно быть гхдетоу в районе меню пуск. Хотя шут его знает. Потом изучаем и печатаем на бумажку или ставим в качестве обойки воон те картинки, что в комплекте с постом идут.

Это было сверхкраткое введение. А теперь мы будем обмазыватся плугинками и всячески допиливать редактор до удобоваримого состояния. Для начала открываем .vimrc или _vimrc (для венды). Это конфигурационный файлег. Да, да, господа виндузятники. Ни каких окошечек с настроечками. Только хардкор.
По поводу настроечек рекомендую загуглить самомуа лучше почитать маны. Примеры: http://dimio.org/cgi-bin/bps/hlghtsrc/sourcehl.cgi?d=conf&s=vimrc&l=vim http://pastebin.com/jy4a3pE5 http://pastebin.com/paPWQ5fE http://pastebin.com/V3GdD38s Тысячи их.

Однако мы переходим к самому интересному. Доведём до ума сабж при помощи плугинок. Ибо без них vim уныл. Для начала нужно установить пакетный менеджер. Рекомендую либо Vundle либо NeoBundle. Думаю сами сможете загуглить их. К ним идут инструкции. Тож сами читнёте.

Самые полезниньки плагины можно найти там http://vim.wikia.com/wiki/Use_Vim_like_an_IDE

Отдельно упомяну следующие:
NERDTree добавляет древо файлов.
bufexplorer даёт удобную навигацию по буферам.
Вот кстати о буферах, окнах и табах в виме. Вот открыли вы один файлег, а потом, не закрывая первый, открыли второй. Можно потом переключаться между этими файлами. А можно их в одном окне одновременно открыть. Подробнее об том читнуть в справке или например в http://habrahabr.ru/post/28572/ http://habrahabr.ru/post/102373/
Vim Powerline раскрашивает статусную строку.
ColorSamplerPack набор тем оформления.

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

Можно ещё читнуть напоследок http://habrahabr.ru/post/176187/

Ну пока всё. Спрашивайте свои ответы. Ато может я чего забыл ненароком.
Сообщение слишком длинное. Полная версия. 209 posts are omitted, из них 40 с файлами. Развернуть тред.
>> No.48845 Ответ
Файл: proxy.duckduckgo.com.jpeg
Jpeg, 92.20 KB, 1200×644 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
proxy.duckduckgo.com.jpeg
Использовать стрелочки для навигации в режиме вставки/замены? Если нет, то как быть? Выходить в нормальный режим, перемещать курсор и входить обратно в нужный?
>> No.48846 Ответ
>>48845
Второе. У вима мильйон комбинаций для всяких перемещений, так что выйдет быстрее, чем дрочить стрелочки.
Но сразу не получится, конечно.
>> No.48848 Ответ
>>48846
Понял. Стрелочки отключил.
>> No.48854 Ответ
>>48848
Я, когда вимом пользовался, вообще выработал у себя привычку любой законченный кусок ввода на автомате завершать нажатием на Esc (конечно, Esc надо перебиндить поближе для этого).

> Стрелочки отключил.
А это зря, наверное. Как будешь перемещаться по командной строке вима (которая по ':') и по её истории? Вим в этом смысле неконсистентен -- перемещаться в командной строке теми же командами, что и в основном окне редактора, невозможно, это тебе не емакс. Придётся либо к стрелочкам тянуться, либо искать специальные комбинации в help'е.
>> No.48972 Ответ
>>48854
> конечно, Esc надо перебиндить поближе для этого
^[
> Придётся либо к стрелочкам тянуться, либо искать специальные комбинации в help'е.
Напомню, что стрелки вызывают команду с таким же началом, когда ты ввёл её часть:
: nor
жмёшь стрелку
: norm I//
При этом она может и не быть предыдущей. И отказываться от этого удобства не хочется.
^p/^n — просто предыдущая/следующая.
>> No.48973 Ответ
Файл: 1280px-KB_Terminal_ADM3A.svg.png
Png, 36.72 KB, 1280×414 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1280px-KB_Terminal_ADM3A.svg.png
>>48972
> ^[
Как известно, vi был разработан имея в виду такую раскладку. И не имея в виду нажатия "аккордов". Поэтому перебиндить всё-таки лучше.
> жмёшь стрелку
> И отказываться от этого удобства не хочется.
Вот за эту неконсистентность я vim и не люблю (в vi такой проблемы прсто не было, в силу его убогости). Потому что, научившись печатать слепым десятипалцевым способом, желание тянуться к стрелочкам пропадает напрочь. А как без них удобно манипулировать командной строкой -- непонятно.
>> No.48974 Ответ
>>48973
> перебиндить всё-таки лучше
Уговорил. Но на что? Капслок, который часто рекомендуют в разных гайдах, удобно нажимать — но я его использую, это удобнее, чем после слова делать ``bgUe``.
Может, на таб? Получится как на схеме этой клавитуры от терминала.
Отступать можно на ^T/^D, но задействовать мизинец и указательный одной руки неудобно — лучше ^I. Которым я и в консоли пользуюсь. Наряду с ^M, что позволяет забиндить на Enter, но это уже не так удобно, потому что дальше капслока.
> желание тянуться к стрелочкам пропадает напрочь
У меня пропало желание тянуться вообще везде за пределами алфавитного блока, и больше идей нет.
>> No.48975 Ответ
>>48974
> У меня пропало желание тянуться вообще везде за пределами алфавитного блока, и больше идей нет.
Увлекательное путешествие в страну розовых пони^W^W ортолинейных клавиатур с удобными модификаторами под большими пальцами ждёт тебя. Смотри ErgoDox или Kinesis Advantage, например. А с ними, кстати, уже и Emacs не страшен.
>> No.48976 Ответ
>>48975
Всегда стремали такие йоба-клавиатуры. Потом на обычной небось как калека.
Так что только ANSI, только хардкор!
мимо
>> No.48977 Ответ
>>48976
> Потом на обычной небось как калека.
Ну калекой-то на обычной клаве можно и так стать.

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


No.37854 Ответ [Открыть тред]
Файл: aadhhaaeo.jpg
Jpg, 15.55 KB, 300×300 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
aadhhaaeo.jpg
Не нашел перлотреда.
Листал пиратбей и наткнулся на книжку "Beginning Perl". Стоит ли читать?
Спрашиваю, потому что давно уже ничего не кодил, с линукса перелез на шинду, многое уже подзабыл.
107 posts are omitted, из них 6 с файлами. Развернуть тред.
>> No.48956 Ответ
>>48955
спасибонепоняла.жпг

Окей. В главном потоке я создаю new Coro::Semaphore(2). Вызываю на нём down. Что происходит:
а) если у меня нет других потоков?
б) если далее один асинх?
в) если далее два асинха?
>> No.48957 Ответ
>>48956
Уменьшается значение, лол. Оно вообще напрямую не привязано к потокам.
Просто в самих потоках ты можешь реализовать логику, учитывающую/изменяющую его, и таким образом управлять выполнением.
>> No.48959 Ответ
>>48957
Спасибо, теперь немного понятнее.

И тем не менее, а как запустить этих потоков сразу несколько? Когда я пишу async{ ... }, ничего не происходит же.

И примеры такой логики всё-таки хотелось бы. Там что-то сложнее какого-нибудь `cede if !$sem->try`?
>> No.48961 Ответ
>>48959
> И тем не менее, а как запустить этих потоков сразу несколько?
Никак, это кооперативная многозадачность, надо вручную передавать контекст.
> Когда я пишу async{ ... }, ничего не происходит же.
Становится в очередь.

Почитай документацию, штоле.
https://metacpan.org/pod/distribution/Coro/Coro/Intro.pod
https://metacpan.org/pod/Coro
>> No.48962 Ответ
>>48961
Я читал это всё, и про очередь, и про ручную передачу контекста, о чём уже и писал >>48954 здесь. Может, плохо написал, нет таланта, да.
Речь именно об одновременном запуске нескольких потоков и необходимости семафоров для этой цели (иначе наличие возможности установки им значения больше двух я объяснить не могу).

> Никак
Прям вот совсем никак? Может, придумали способ, пусть даже странноватый. Других либ для мультитрединга нет, их в перле всего две и вторая делает то же самое, только хуже, насколько мне известно.
Давай только без толстоты типа ./proga.pl &
>> No.48963 Ответ
>>48962
Всякие более-менее современные я не особо знаю, тащемта. Но как минимум искаробочный threads. https://perldoc.perl.org/perlthrtut.html
А что за задача у тебя?
>> No.48964 Ответ
>>48963
> Но как минимум искаробочный threads
Ну вот про него я и говорил — либо он, либо Коро. И под тредами в перле обычно понимается Коро, нативные же треды использовать не рекомендуют. Они умеют то, о чём я говорил выше?

> А что за задача у тебя?
Писать вайпилки и набигать на капчу в 9000 потоков, как у пистуха было!!1
Шутка.
Но в каждой шутке есть доля правды: суть того, что я хочу, чем-то похожа. Уточнять не буду пока, потому что пока сделано ничего. Впрочем, помощь мне ещё наверняка будет нужна, а перлотредов больше и нет нигде особо. На стаковерфлоу не хочу.

Знаю, что есть модуль Coro::LWP, где что-то похожее вроде как уже сделано, но мне не интересно LWP, я хочу именно libcurl и придётся писать свои велосипеды.
>> No.48967 Ответ
>>48964
> нативные же треды использовать не рекомендуют. Они умеют то, о чём я говорил выше?
Не рекомендуют по причине тяжеловесности. Умеют.

> но мне не интересно LWP, я хочу именно libcurl и придётся писать свои велосипеды.
А какая разница? Суть одна и та же.
Многопоточный хттп я делал на AnyEvent::HTTP, это неблокирующие реквесты + коллбеки, результат неплохой.
>> No.48970 Ответ
>>48967
> Суть одна и та же.
В смысле?
Не помню весь список полезных фичей кёрла, отсутствующих у LWP, но одну довольно важную называю сходу — он умеет в socks5 с проксированием днс. LWP этого не умеет, и если мне нужно будет, чтобы всё работало через тор и работало наверняка, придётся помещать это в обёрнутый в тор контейнер/vm и запускать оттуда.
Или ты о чём?

> AnyEvent
Совсем забыл про это, да.
Можешь сказать, что ещё ты использовал?

Про треды - спасибо, буду иметь в виду.
>> No.48971 Ответ
>>48970
> Или ты о чём?
О либах для хттп. Как-то не случалось найти отсутствие фич, хотя при модульности LWP туда всяко можно вклиниться и докостылять. Потом HTTP::Tiny добавили в core и можно вообще обойтись без жирного LWP, для большинства задач его достаточно.

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


No.28005 Ответ [Открыть тред]
Файл: git.jpg
Jpg, 80.27 KB, 750×600 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
git.jpg
Собственно вопрос про гит например.

Есть некоторая удаленная репа, до которой имеем ssh-доступ. Когда я пушаю в нее с локальной, то запускается скрипт .git/hooks/post-receive, в котором там что-нибудь делается с проектом (чистится кэш, компилируются шаблоны, запускаются миграции и прочая херота).
#!/bin/sh
GIT_WORK_TREE=.. git checkout -f
echo "Something pushed to server. Yay!"
../scripts/update.sh
# например
Возможно ли запускать на удаленном сервере этот мой update.sh не один раз на пуш, а на каждый коммит (даже на те коммиты, которые во вмерженых в основную ветку бранчах)?
64 posts are omitted, из них 10 с файлами. Развернуть тред.
>> No.47844 Ответ
>>47843
Я пользовался и гитом и ртутью, они плюс-минус одинаковы по функционалу. Божественности в ртути не увидел.
>> No.47845 Ответ
>>47844
Говорят, она быстрее. Какой по величине репа была на ртути? Маленькая или большая?
>> No.47847 Ответ
>>47845
Небольшая репа на ртути. Около сотни коммитов, емнип. С огромными репами под гиг размером приходилось работать, не сказать что прями пиздос медленно становится.
>> No.47848 Ответ
Можно ли сделать так, чтобы git не запоминал логин и пароль на github. Сбрасываю на работе всякие маленькие фрагменты кода на свой гитхаб, не хотелось бы светить там свои данные.
Обычно все наоборот хотят эту фичу. Почитал вот здесь:
https://git-scm.com/docs/gitcredentials
https://git-scm.com/docs/git-credential-store
http://support.beanstalkapp.com/article/856-how-do-i-make-git-remember-my-credentials
Включить просто, да и по умолчанию она включена, а вот как отключить - не понятно.
>> No.47849 Ответ
>>47848
Есть два способа склонировать репу: по протоколу https или по git.
В первом случае в файле .git/config в разделе [remote "origin"] будет строка вида url = https://github.com/юзернаме/репонаме и доступ на запись к этой репе будет по логину и паролю, которые будут всегда спрашиваться.
Во втором случае будет url = git@github.com:юзернаме/репонаме.git и для доступа нужно будет залить в настройках гитхаб-акка публичную часть rsa-ключа, пароль спрашиваться не будет.

Так что сделай до этого своего проекта доступ по https, а для всех остальных по git.
>> No.48011 Ответ
Кто-нибудь юзал CVSNT? Расскажите о разграничении прав доступа в папке репозитория или киньте ссылкой по администрированию.
>> No.48025 Ответ
>>48011
http://circe.univ-fcomte.fr/Docs/CVS/cvs.html — кинул.
> note that users must have write access to the CVSROOT/val-tags file
Если этого не сделать, клиент просто подвиснет.
>> No.48075 Ответ
fossil отличнейшая vcs.
>> No.48968 Ответ
Файл: New-Mind-Map.jpg
Jpg, 64.98 KB, 1434×710 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
New-Mind-Map.jpg
Здравствуй, медленно/s/.
Использую в проекте alembic для миграций. Само собой решил добавить миграции в проект, но не все.
Хочу чтобы в dev ветке были все миграции базы, со всеми экспериментами и промежуточными вариантами, а в master ветке были только миграции, необходимые для переката с прошлого релиза, а миграции dev ветки туда не попадали.
Как это можно сделать правильнее?

Капча пытается что-то подсказать: момента настала версий сдвинулась
>> No.48969 Ответ
>>48968
> добавить миграции в git
fix


No.48777 Ответ [Открыть тред]
Файл: Leezonka.jpg
Jpg, 593.57 KB, 1920×1080 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Leezonka.jpg
Кое-как выучил Python по книге Мэтиза и разобрался с ООП по статьям из сети. Недавно начал читать книгу по алгоритмам и параллельно почитывать "C++. Базовый курс". Так же пытаюсь разобраться с Lua и фреймворком LÖVE2D, получается пока что не очень, скорее всего придётся читать книгу по Lua, чтобы лучше вникнуть.
Но знаете что? Я не написал ещё ни одной программы, ни одной. Я писал различные формулы и недокалькуляторы в консоли, заливал фон синим цветом в LÖVE и всё.
Я не понимаю что делать дальше. Продолжать читать книги по языкам, алгоритмам и CS или же идти что-то писать? Помогите, аноны.
24 posts are omitted, из них 5 с файлами. Развернуть тред.
>> No.48946 Ответ
>>48944
У меня мозг от любой тех.литературы кипит. Мне проще сразу погружаться по книгам, которые описывают C++11, стандартную библиотеку и основы ООП.

>>48945
Чтобы работать за 300 долларов в месяц и говорить какие веб-девы тупые, очевидно ведь.
>> No.48947 Ответ
>>48946
> и основы ООП
коза.ебись(онегин);
>> No.48948 Ответ
>>48947
А в скобках что такое? Это мы записываем метод ебись класса коза, а аргумент просто так? Пытаюсь в нём найти какое-то скрытое послание.
А вообще, под основами я имел ввиду именнно синтаксис для определённого языка, а то в этом вашем пистоне я до сих пор в стане от этого ООП-синтаксиса, благо разобрался быстро, хоть и болезненно. По ООП, полагаю, лучше книги почитать, которые заточены именно под эту тему и не берут какой-то язык в качестве среды для показа этого объектного говна. Скорее всего я неправ, так как хуй с горы.
>> No.48949 Ответ
Файл: 15055769674640.jpg
Jpg, 54.64 KB, 604×454 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
15055769674640.jpg
>>48948
Долбоёб? Нахуя читать книги про ООП, если ООП - простейшая парадигма. Попробуй применить объекты реального мира и сразу всё станет понятно. какой объект, какие свойства есть у объекта, что может делать объект.
>> No.48950 Ответ
>>48948
Автор комментария хотел сказать, что коза ебет онегина.
>> No.48951 Ответ
Файл: IMG_20180130_164334.jpg
Jpg, 85.69 KB, 447×526 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
IMG_20180130_164334.jpg
>>48950
Нет девочка. Онегин меняет внутреннее состояние козы.
>> No.48952 Ответ
>>48951
Нет ты.

Из названия функции это не понятно.
Стоит переименовать в
коза.сношается_бай(онегин);
В случае с
коза.ебись(онегин);
более очевидно, что коза ебет онегина.

Не прошел ревью твой код

Ну или надо было объявление класса козы выкатывать, из него бы было понятно, что онегин - константный, а метод - нет.
>> No.48953 Ответ
>>48949
И чего мне с этого? На примерах из реального мира всё действительно просто, а в этом вашем коде эту ебатню нужно реализовать, ещё и грамотно реализовать. Иначе если оно не будет эффективно в моей программе, то зачем мне вообще её применять? Я в связи с этим и не сую ООП в свои недопроекты, потому что он там нахуй не нужен, а писать с ООП ради ООП это говно какое-то. Как только перейду черту, когда буду писать на 1000+ строк, тогда буду применять ООП. Ну или когда наконец начну хоть что-то писать на плюсах, но пока что я их только учить пытаюсь.
>> No.48958 Ответ
>>48953
> а писать с ООП ради ООП это говно какое-то
Как раз таки так и нужно делать. Ты можешь написать один и тот же функционал разными подходами. Можешь подсовывать аргументом функцию обработчик, а можешь подсовывать объект который умеет обрабатывать
>> No.48960 Ответ
>>48953
> писать с ООП ради ООП это говно какое-то
Нет. Так и стоит делать. Ты можешь реализовать какой либо функционал подсовывая функцию обработки или подсовывая объект который умеет обрабатывать. ООП - это один из подходов к решению задачи, а не инструмент решения каких-то конкретных задач


[0] [1] [2] [3] [4] [5] ... [50] [51] [52]
Пароль:

[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]