[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.44363 Reply [Full thread]
File: Безымянный.png
Png, 7.03 KB, 502×399 - Click the image to expand
edit Find source with google Find source with iqdb
Безымянный.png
Привет, доброанон.
Посоветуй юному бакалавру, с помощью каких технологи (и, возможно, сервисов) можно организовать такую систему.

На рабочем сервере (ноутбуке с Win 7) я запускаю гипотетическое серверное приложение, позволяющее авторизованным пользователям работать с БД через клиентское приложение, которое может быть запущено, например, у них дома.

Возможно ли это без фиксированного ip?

А ещё стоит учесть, что какие-либо сервисы с абонентской платой (даже небольшой) нецелесообразны из экономических соображений.
48 posts are omitted, 6 of them with files. Expand thread.
>> No.44516 Reply
>>44515
> age это число
А если interval?
>> No.44517 Reply
>>44516
Если это очевидно, то так и ставить age. Вообще по поводу имён следует поступать так: чем больше область действия переменной, тем длиннее должно быть имя. По этому нет ничего плохого в именах типа n, i, j, tmp и прочих. Обычно их тип и назначение абсолютно очевидны из контекста или вообще не так уж и важны. С другой стороны для всяких глобальных и долгоживущих имён лучше придумать что либо более осмысленное.
>> No.44518 Reply
>>44515
Как имена переменных должны говорить о конкретных классах или пользовательских типах? Кроме числа, строки и булевого больше нет типов, что ли? Кроме того названия переменных не помогают при стат. анализе. Age - это упрощённый пример, далёкий от реальности.
>> No.44519 Reply
>>44518
Приведи пример.
>> No.44530 Reply
>>44363
PHP и MYSQL уже советовали?
1. Клиентское приложение будет работать на любой ОС, где стоит браузер.
2. Фиксированный IP нужен только для сервера
3. Никто не зависит от роутеров.
4. МАСШТАБИРУЕМОСТЬ (до сотни одновременных подключений выдержит точно)
5. Можно запустить даже на самом нищеброд-сервере
>> No.44531 Reply
>>44395
> на JS и захотел развидеть
Взглянул один раз на JS и захотел использовать постоянно
>> No.44532 Reply
ОП репортирует.
Всё оказалось совсем нелепо.
Похоже, сервер вообще не нужен.
Получается совсем простенькое приложение.
Надеюсь, в ВУЗе предложат какие-нибудь дополнения, чтобы потянуло на диплом.

Ещё раз спасибо всем.
>> No.44533 Reply
>>44532
Без сервера на диплом в 2016 году оно не потянет.
>> No.44535 Reply
>>44533
Так говорят каждый год, а в итоге принимают что принесут.
>> No.44536 Reply
>>44533
Какая, нафиг, разница? Сложность программы от этого вообще никак не зависит. Можно подумать, разворачивание апача - это уже дипломная работа. Может ещё по установке виндовса или по пылесосингу пыли на материнке дипломные писать?


No.44166 Reply [Full thread]
File: london-lua512.png
Png, 64.68 KB, 512×512 - Click the image to expand
edit Find source with google Find source with iqdb
london-lua512.png
Здравствуй, доброанон. Была у меня в детстве мечта: создать свою игру. Тогда я себе это представлял слабо и туманно, в мыслях всё было просто и за недельку. Сейчас я вспомнил об этом (месяца 2-3 назад) и открыл для себя что без яп получится разве что чуть менее чем ничего. Хочется всё таки осуществить мечту, какой бы глупой она не казалась и я полез искать уроки по LUA. Но оказалось всё не так просто, десу. Термины и примеры хлынули мне в мозг сразу без описания синтаксиса и азов и что то я совсем загрустил, но не сдался.Подскажи мне, добрый кодер, с чего и где начать изучать LUA потихоньку и с подробным описанием? Какие именно статьи пригодятся для написания игровой логики с сайта lua.ru ? Что нужно знать о LUA что бы не утонуть в бесконечно непонятных новичку примеров? Познать азы желаю, так сказать. Буду бесконечно благодарен за помощь в этом нелёгком, пока, для меня деле.
20 posts are omitted, 3 of them with files. Expand thread.
>> No.44195 Reply
File: talking_captcha.png
Png, 0.99 KB, 300×20 - Click the image to expand
edit Find source with google Find source with iqdb
talking_captcha.png
>>44193
> А джависты и шарписты пишут using/try-with-resources просто так, для красоты, а не потому, что GC хер знает когда дёрнет финализатор.
Они так пишут только по той причине, что у них неудачная модель обработки ошибок и исключительных ситуаций. На сколько я помню, мы говорили о golang.
А так собсна GC для того и нужно, чтоб не беспокоиться о том, когда именно вызываются финализаторы/деструкоры.
>> No.44196 Reply
File: 7jzymx.jpg
Jpg, 36.69 KB, 512×384 - Click the image to expand
edit Find source with google Find source with iqdb
7jzymx.jpg
>>44171
> порог вхождения и кривая обучения
> C++ один из самых сложных ЯП из всех существующих.
> Если учить с нуля его, то это будет сложнее чем к хачкелю подобраться.
Прошел си, плюсы, осемблеры x86 как первые языки. Не могу понять ни хачкель, ни лисп дальше пары глав.
>> No.44197 Reply
File: 1448128188107.png
Png, 0.83 KB, 300×20 - Click the image to expand
edit Find source with google Find source with iqdb
1448128188107.png
>>44196
Просто ты уже слишком стар.
>> No.44198 Reply
>>44197
15h. Просто я немного глупенький.
>> No.44199 Reply
File: asuka15.jpg
Jpg, 19.57 KB, 410×453 - Click the image to expand
edit Find source with google Find source with iqdb
asuka15.jpg
>>44196
> Прошел
На каком уровне сложности прошёл? Easy (говнолабы и говнокурсачи) или impossible (продакшен с кучей разнообразных платформ)? :3

Для крестов принцип easy to learn, hard to master актуален как никогда... Первое время вроде бы всё просто, не понимаешь чего это дядьки говорят, что язык сложный. А потом начинаешь юзать его на практике и собирать заботливо разложенные подводные грабли. Десятками, без шуток. Начинается депрессия, многие на этом этапе сваливают на более высокоуровневые языки. А многие из тех, кто всё-таки остался, навсегда запираются в каком-то знакомом и более-менее зачищенном от граблей подмножестве крестов и очень болезненно реагируют на всё, что за его пределами. Людей, которые прошли кресты, очень мало.

И если сейчас такие слова как alignment, pointer aliasing, heap corruption, implementation defined, undefined behavior, one definition rule, precompiled header не вызывают боли в сердце - у тебя всё ещё впереди... И заметь, я нигде даже не упоминал о шаблонной магии.

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

мимокрестоблядь-со-стажем
>> No.44200 Reply
>>44199
> На каком уровне сложности прошёл? Easy (говнолабы и говнокурсачи)
Нахуй тогда нуен универ, если всё - говно? Окончил 11 классов, купил военник и пошёл читать книжки с доками. Я должен сказать, 6 лет - это дохуища времени, чтобы бездарно проёбывать его.
>> No.44201 Reply
>>44200
Практика показывает, что студенческий код пригоден только чтобы сдать и выбросить (если студент, конечно, не подрабатывал где-то, где ему ревью устраивали).

Так что насчёт проёбанных 6 лет я бы согласился, но в универе всё же куче других вещей можно научиться, поэтому не впустую. Ну и сейчас можно 6 лет не тянуть, а уйти через 4 бакалавром.
>> No.44305 Reply
>>44200
По секрету скажу, что не во всех универах лабы и курсачи --- говно. Просто люди с годными лабами и курсачами тут, видимо, не сидят.
>> No.44528 Reply
File: logo.png
Png, 10.23 KB, 373×290 - Click the image to expand
edit Find source with google Find source with iqdb
logo.png
Оставлю здесь на всякий случай
>> No.44601 Reply
http://tylerneylon.com/a/learn-lua/
Если более-меннее знаешь английский то осилишь, зная только это уже много чего можно сделать. А если использовать love2d, то можно достойную игру запилить.


No.44121 Reply [Full thread]
Собираюсь изучать 2 языка программирования. Последовательно или параллельно (сразу два) - хз, как получится.
Выбрал "C" в качестве основного ЯП, а вот в качестве запаски хочу использовать либо C#, либо Python.
Цели, которые я ставлю для дополнительного ЯП:
1) Крайне желательна мультплатформенность Знаю только, что и питон, и шарп мультиплатформенны, но насчёт подробностей хз
2) Написание лёгких GUI программ (пока на Windows, но позже может появиться желание\потребность писать на другой ОС, для этого и нужна мультплат-ность).
3) Написание скриптовых программ.
12 posts are omitted. Expand thread.
>> No.44141 Reply
>>44121
Питон под все три пункта. Шарп не проходит по пунктам 2 и 3.
>> No.44144 Reply
>>44138
Вот этого бро поддерживаю неистово.
>> No.44147 Reply
File: 1318496420280.jpg
Jpg, 160.89 KB, 720×540 - Click the image to expand
edit Find source with google Find source with iqdb
1318496420280.jpg
>>44138
> Дело во фреймворках, пакетных менеджерах, IDE, стат. анализе, автоматических оптимизаторах, дебаггерах, криптовщиках, генераторах документации, сниферов кода, тулз для continuous integration, тулз для тестов, инструментов для REPL и многого другого.
А теперь посмотри на те цели, что ставит оп, и скажи: ты правда считаешь, что ему для его целей понадобится или хотя бы будет сколь-нибудь полезен хоть один из упомянутых тобой инструментов? А потом иди обратно в свой индус-триальный угол и пожуй добра.
>> No.44161 Reply
>>44138
Если тебе нужен фреймворк, то ты учишь фреймворк и под него подтачиваешь знания языка. Это всегда так. Любой крупный фреймворк оборачивает чуть ли не все части стандартной библиотеки и заставляет писать практически только в рамках предусмотренных авторами фреймворка парадигм.
Пакетные менеджеры в упомянутых языках присутствуют прямо встроенные, а не прикрученные в форме внешних костылей, причем со встроенной поддержкой всяких вкусностей плана прямой загрузки из гита, это тебе не богомерзкий NuGet: http://doc.crates.io/guide.html, https://golang.org/cmd/go/#hdr-Remote_import_paths
Дебаггер в обоих случаях проверенный gdb, потому что языки компилируемые.
Генераторы документации, запуск тестов и все такое там тоже присутствует.
Стат. анализом в обоих случаях занимаются компиляторы, которые стараются предотвратить очевидные ошибки.

Ну, и так далее. Это все-таки свежие языки, которые разрабатывались когда все эти вещи уже были в ходу, поэтому они учитывали преимущества от их использования.
>> No.44162 Reply
>>44161
Я не вижу где в гоу указывается версия либы, например если в гите внезапно что-то поломают в самом крайнем коммите, то ты соснешь.
>> No.44163 Reply
>>44162
В этом случае вендоринг — это рекомендуемая практика: https://golang.org/s/go15vendor.
И это, в принципе, правильно, потому что если автор приложения знает, что его приложение ломается с последней версией либы, то он сломает и, например, сборку приложения на генте, где вместо go get для управления зависимостями используется portage.
>> No.44241 Reply
>>44141
> We've also released scripting APIs that enable you to build and run C# as a script. The scripting APIs are available on GitHub.
https://www.visualstudio.com/en-us/news/vs2015-update1-vs.aspx
>> No.44408 Reply
File: 14128382857148.jpg
Jpg, 31.36 KB, 400×359 - Click the image to expand
edit Find source with google Find source with iqdb
14128382857148.jpg
>>44241
> build and run C# as a script.
> build
> script
>> No.44409 Reply
>>44408
Не script, а as script.
>> No.44451 Reply
>>44409
А какая разница?


No.44030 Reply [Full thread]
File: Install+gentoo_908c58_4993192.png
Png, 231.90 KB, 640×510 - Click the image to expand
edit Find source with google Find source with iqdb
Install+gentoo_908c58_4993192.png
Посмотрев доску по диагонали, я не нашёл ничего, посвящённого bash-скриптингу, посему быть. Спокойно, господа инженеры, сиё я осуществляю исключительно в целях самообразования и без малейшего шкурного интереса, а только лишь искреннего трудолюбия и развития ради, поэтому не переживайте по поводу существования более эффективных скриптовых языков. Здесь я, человек, который категорически отказывается связывать свою специальность или профессию с информационными технологиями, добродушный фритард-гуманитарий, буду просить помощи в написании одного проекта, на который я решился. Также приглашаю всех неравнодушных на беседу в этот bash-тред, и рекомендую эту требующую упорства настольную книгу:
http://www.tldp.org/LDP/abs/html/
http://www.tldp.org/LDP/abs/abs-guide.pdf

Итак, проект огромен, я неопытен, а значит, вопросов у меня будет много; но не всё сразу. Вот, первый, на ночь глядя:

Мой скрипт работает посредством вызова функций - множество отдельных мелких функций запрашивают от пользователя данные пошагово и интерактивно, и возвращают переменные одной большой громадной функции (как я понимаю, в настоящих языках программирования её называют main(), я прав?). Как грамотно реализовать навигацию по функциям? Т.е. если исполняется в таком порядке:
F()
{
f1
f2
...
fn-1
fn
}
Посмотрев доску по диагонали, я не нашёл ничего, посвящённого bash-скриптингу, посему быть. Спокойно, господа инженеры, сиё я осуществляю исключительно в целях самообразования и без малейшего шкурного интереса, а только лишь искреннего трудолюбия и развития ради, поэтому не переживайте по поводу существования более эффективных скриптовых языков. Здесь я, человек, который категорически отказывается связывать свою специальность или профессию с информационными технологиями, добродушный фритард-гуманитарий, буду просить помощи в написании одного проекта, на который я решился. Также приглашаю всех неравнодушных на беседу в этот bash-тред, и рекомендую эту требующую упорства настольную книгу:
http://www.tldp.org/LDP/abs/html/
http://www.tldp.org/LDP/abs/abs-guide.pdf

Итак, проект огромен, я неопытен, а значит, вопросов у меня будет много; но не всё сразу. Вот, первый, на ночь глядя:

Мой скрипт работает посредством вызова функций - множество отдельных мелких функций запрашивают от пользователя данные пошагово и интерактивно, и возвращают переменные одной большой громадной функции (как я понимаю, в настоящих языках программирования её называют main(), я прав?). Как грамотно реализовать навигацию по функциям? Т.е. если исполняется в таком порядке:
F()
{
f1
f2
...
fn-1
fn
}
и интерпретатор сейчас, скажем, исполняет подфункцию f3(), то как заставить его исполнить подфункцию f2() -- скачок назад, но так, чтобы по завершению f2() снова следовало исполнение f3()?
Comment is too long. Full version. 26 posts are omitted, 2 of them with files. Expand thread.
>> No.45132 Reply
>> No.45133 Reply
А как написать такое:
FILE=./test.txt

for LINE in $FILE               ## Перебираем строки в файле
     if ( $LINE[1:2::] == "##") ## Если первые два символа это "##" ...
         $LINE >> $FILE.new     ## ...то копируем её в новый файл...
     else
         LINE="## $LINE"        ## ...или комментируем строку..
         $LINE >> $FILE.new     ## ...и копируем закомментированную строку в новый файл.

rm $FILE                        ## Делаем вид...
mv $FILE.new $FILE              ## ...что это - тот же самый файл.
Я имею в виду обработка строк, вот это всё.
>> No.45134 Reply
>>45133
echo $LINE >>
А вообще, это лучше делать в перле. Например, твой пример.
perl -pi -e 's/^(?!##)/##/' test.txt
>> No.45158 Reply
>>45133
grep -v "^##" $file > $file.new
Для собственных переменных, кстати, рекомендуется использовать прописные символы.
>> No.45163 Reply
Не обращай на >>45158 внимания. Я твоего вопроса не понял.
Тут awk имеет место использовать. Например так:
awk '{ if ($0 ~ /^##/) print $0; else print "## " $0 }'
>> No.45236 Reply
Доброны, хочу начать вести блог. Решил писать генератор статических страничек для блога на баше(чтобы не тащить всякие руби/хаскели на сервер).
Кто-то хочет заняться этим со мной?
Одному скучно. Я взамен готов тоже помогать.
>> No.45237 Reply
>>45236
На баше слишком топорно и уныло, я конечно понимаю что русский мужик топором может срубить избу, телегу, мебель, ложки и даже блох из бороды вычесывать, но все же. Возьми лучше питухон, он во всех дистрах изкоробки.
>> No.45254 Reply
>>45236
> генератор статических страничек
Дык его можно и на своей машине запускать, зачем тащить его на сервер?
>> No.45415 Reply
>>45158
> Для собственных переменных, кстати, рекомендуется использовать прописные символы.

ORLY? Кем? Мне казалось, что уже лет десять модно использовать строчные.
>> No.45435 Reply
>>45415
Ты совершенно прав, я перепутал прописные, с заглавными, со строчными.


No.43581 Reply [Full thread]
File: -.jpg
Jpg, 125.61 KB, 700×500 - Click the image to expand
edit Find source with google Find source with iqdb
-.jpg
Новый традиционный тред Доброчана, в котором мы будем постить каждый раз, когда заходим в /s/ дабы поделиться своими хоббипроектами, поговорить о смежных с программингом вопросах, поспорить на тему X vs Y, пообсуждать синтаксический сахар разных ЯП. Как обычно можно постить и в другие моменты, обсуждать разные темы. Всё во имя того, чтобы зашедший code monkey не чувствовал себя одиноким. Каждому зашедшему по чашечке скумы за мой счёт.

Предыдущий тред: >>40630
328 posts are omitted, 34 of them with files. Expand thread.
>> No.48374 Reply
File: 1355315146509.png
Png, 0.50 KB, 10×10 - Click the image to expand
edit Find source with google Find source with iqdb
1355315146509.png
>>48373
Взлольнул тут.
>> No.49192 Reply
File: -.png
Png, 319.85 KB, 2518×1024 - Click the image to expand
edit Find source with google Find source with iqdb
-.png
Если резюмировать, то будет как-то так. Что-то походящее на рф но в области /s/.
Хотел написать длинно, но решил, что бессмысленно.
В итоге: с детства (житое в 90е) благодаря отцу имея ZX Spectrum мечтал пилить игори.
Первую книгу по программированию и, собственно, возможность программировать обрел в 2003 году, когда учился в 10м классе. Был комп и по совету знакомого отцу программиста купили мне Лафоре (ООП в C++).
Пока учился в школе и ВУЗе (на программера) мечтал и стремился прогать игори - изучил DirectX (9й на тот момент) и в большей степени OpenGL (до уровня шейдеров) изучал движок Ogre, колупал простенький HGE, по возможности, но время требовалось на учебу и подработки.
После ВУЗа (армейки не было - пороки сердца). Устроился на работу - после чего наступила полоса беспамятства и тотального въебывания, базы данных, нескончаемые ETL, скрипты, окошечные набивалки для операторов. И всё. Ни желания, ни сил у меня не было ворошить свой мозг еще после работы, а время шло.
Сейчас я осознаю, что знания устарели - сейчас никто не будет писать игру с полностью своим движком - думаю закидают говном просто. Тем более DX весьма обновился, OpenGL пододвинулся для Vulkan - да и в этом нет уже смысла, когда везде это либо Unreal Engine либо Unity - даже для простых ДВУМЕРНЫХ ИГОР КАРЛ!
Госп-ди Б-же мой! Я вижу, что теперь я биомусор, т.к. я не знаю, за что мне взяться и есть ли в этом какой смысл. Требования у игроков очень высоки и мне за ними не поспеть. Алсо идея инди-игр (созданых малой группой разработчиков) теперь очернена ебаными корпорациями, когда какой-нибудь EA имеет игру на стиме с тэгом ИНДИ блядь.
Какого чертова черта? И что мне делать, если желание пилить игори есть даже в 30 лет, но знания устарели?
>> No.49197 Reply
>>49192
> Тем более DX весьма обновился, OpenGL пододвинулся для Vulkan - да и в этом нет уже смысла, когда везде это либо Unreal Engine либо Unity - даже для простых ДВУМЕРНЫХ ИГОР КАРЛ!
> Госп-ди Б-же мой! Я вижу, что теперь я биомусор, т.к. я не знаю, за что мне взяться и есть ли в этом какой смысл.

Не парься, забудь про C++, бери чистый C + SDL2, напиши рогалик или примитивный платформер под свою любимую ОС. Никаких анрилов и юнити-хуюнити для этого тебе не потребуется.
>> No.49203 Reply
>>49192
Линейная алгебра и дифференциальная геометрия не устаревают. Ты можешь в математику? Или твои знания ограничиваются glBegin glEnd?
Знание движков не отменяет необходимости понимания. Наоборот, понимание позволяет быстро учить новые вещи.
Да, и заодно осиль Rust, потом спасибо скажешь.
>> No.49223 Reply
>>49192
> желание пилить игори есть даже в 30 лет, но знания устарели?
Осспаде да какие к собакиным мамкам знания с юнькой и уечем яхз.

Стенания и плач на бордах и форумах.
И вот никто не желает признаваться себе что не код делаетб игру, а художник.
>> No.49233 Reply
Где фрилансить блеать?
>> No.49234 Reply
>>49233
Там.
>> No.49236 Reply
Анон, а ты обычно читаешь оригинал или перевод? Да, тема касается именно айти, потому что худлит можно и на польском почитать, но мы не об этом. В последнее время почитываю только оргиналы, но с каждым разом есть страх, страх что-то понять не так или понять что-то не до конца. Особенно учитывая то, что я постоянно пользуюсь словарём(в моём случае — клик по незнакомому слову), буквально на каждой странице.
>> No.49237 Reply
>>49236
Переводы отстают от оригинала, могут обосраться с собственно переводом и вычиткой-проверкой, можеть не быть ебук версии, а только говноскан. Плюсов и нет, тащемта.

Литературностей и сложностей в плане языка в такой литературе мало, разве что автор попадется, любящий попиздякать.
Так что продолжай, со временем привыкнешь.
>> No.49238 Reply
>>49237
Спасибо, анон, буду продолжать. :3


No.43511 Reply [Full thread]
File: 599716131.png
Png, 77.78 KB, 317×372 - Click the image to expand
edit Find source with google Find source with iqdb
599716131.png
Предыдущий тред: >>39226
431 posts are omitted, 35 of them with files. Expand thread.
>> No.50068 Reply
File: hqdefault.jpg
Jpg, 34.00 KB, 480×360 - Click the image to expand
edit Find source with google Find source with iqdb
hqdefault.jpg
>>43511
Мне иногда кажется, что С++ язык инженеров-программистов, которые точно знают, что делают и какие у этого последствия. Я уже десять лет работаю в небольшой компании, где пользуясь С++ делают что-то похожее на пикрелейтед. Долго объяснять весь список этих великих мелочей, но это портит не только общую работу, но и отношение к ней. При этом любая критика полностью отвергается аргументами о великом профессионализме главных программистов и туповатости критикующих.
>> No.50083 Reply
>>50068
Типичный фидбек неосилятора. Попробуй PHP.
>> No.50111 Reply
File: 2021-10-01-15-38-39-Скриншот-экрана.jpg
Jpg, 168.37 KB, 1059×865 - Click the image to expand
edit Find source with google Find source with iqdb
2021-10-01-15-38-39-Скриншот-экрана.jpg
>>50083
> Типичный фидбек неосилятора
Янеосилил пикрелейтед и его отладку.
> Попробуй PHP
Ненавижу отсутствие строгой типизации и скудные стредства отладки.
>> No.50118 Reply
>>50068
Воспринимай с++ как творчество. Ты можешь сделать всё что можно и нельзя. Сравнив красоту вседозволенности с++ с другими гарбадж коллекторными помойками, ты познаешь суть полноценного высокоуровневого погроммирования
>> No.50121 Reply
File: 5e35d1823a4ee079a785.jpg
Jpg, 121.08 KB, 533×575 - Click the image to expand
edit Find source with google Find source with iqdb
5e35d1823a4ee079a785.jpg
>>50118
> Воспринимай с++ как творчество
> вседозволенности с++ по сравнению с другими гарбадж коллекторными помойками
> ты познаешь суть полноценного программирования
Так-то да
>> No.50122 Reply
File: Vincent_van_Gogh_-_Self_Portrait_with_Bandaged_Ear.jpg
Jpg, 167.52 KB, 724×798 - Click the image to expand
edit Find source with google Find source with iqdb
Vincent_van_Gogh_-_Self_Portrait_with_Bandaged_Ear.jpg
>>50118
Но все-таки если речь идет о крупном рабочем проекте, где это творчество напрямую касается не только тебя, надо быть аккуратнее. Кроме творчества на работе есть еще отладка, поддержка, анализ чужого кода, как это работает вцелом и в частности. Не от скуки же появились методологии и парадигмы.
Похоже у меня бугурт, дедлаин и бугурт.
>> No.50123 Reply
>>50122
А в чём бугурт? Не мудри с шаблонами сильно, пиши комментарии в трудных для быстрого понимания местах, не плоди ub (а если плоди то отмечай это где-то) и выделяй время на рефактор. Вроде стандартная рабочая практика
>> No.50125 Reply
>>50123
В том, что стандартная рабочая практика почти всегда почти полностью вытесняет творчество. Если изучить все стандарты и всё сделать правильно, то в конце внезапно окажется, что все сложности и тонкие места стали незаметны. Что код негде оптимизировать, потому что нагрузки слишком низкие. Что сложности задачи не хватило для обоснования серьёзных абстракций. И что нетривиальные ходы зачастую вообще попадают под запрет и их сворачивают на код ревью.
>> No.50128 Reply
>>50111
> Янеосилил пикрелейтед и его отладку.
На первый взгляд ничего сложного нет в пике, но по рукам за такое я бы надавал.
Нахера макросом этот треш?
Почему не вынести иф с А наружу всех ифов?
Все ифы с С, на else if'ы, чтоб не сравнивать тонну раз.
Ифы с С можно поглубже утащить, и вообще придумать что-нибудь классное с кастами.
Если Е - просто резалт, то вначале выставить в тру, если проебались по всем веткам - выставить фолс.
Делитать элементы из листа, в форе пол листу, вроде тоже не хорошая идея (но тут могу ошибаться).

Это из того, что сразу можно сказать.

> скудные стредства отладки.
Иногда отладка возможна только по логам.

>>50125
> стандартная рабочая практика почти всегда почти полностью вытесняет творчество
Сильно зависит от компании и решаемых задач.
>>50111
> Янеосилил пикрелейтед и его отладку.
На первый взгляд ничего сложного нет в пике, но по рукам за такое я бы надавал.
Нахера макросом этот треш?
Почему не вынести иф с А наружу всех ифов?
Все ифы с С, на else if'ы, чтоб не сравнивать тонну раз.
Ифы с С можно поглубже утащить, и вообще придумать что-нибудь классное с кастами.
Если Е - просто резалт, то вначале выставить в тру, если проебались по всем веткам - выставить фолс.
Делитать элементы из листа, в форе пол листу, вроде тоже не хорошая идея (но тут могу ошибаться).

Это из того, что сразу можно сказать.

> скудные стредства отладки.
Иногда отладка возможна только по логам.

>>50125
> стандартная рабочая практика почти всегда почти полностью вытесняет творчество
Сильно зависит от компании и решаемых задач.
Если надо что-то максимально оптимизировать и вылизать, то в ход идут любые велосипеды и эксперименты.
Я всё хочу в драйверописательство с велосипедостроительством попробовать податься, с надеждой чутка ускорить работу всего.
Comment is too long. Full version.
>> No.50165 Reply
>>50128
> Я всё хочу в драйверописательство с велосипедостроительством попробовать податься, с надеждой чутка ускорить работу всего.

А что конкретно ускорить хочешь?


No.42967 Reply [Full thread]
File: feel-intensifies.jpg
Jpg, 6.13 KB, 233×217 - Click the image to expand
edit Find source with google Find source with iqdb
feel-intensifies.jpg
Анон, помоги исправить код преобразования массива в d-арную кучу или подскажи, где можно порассматривать код перестроения массива в n-арное дерево на C++.

https://ideone.com/q4w2GZ
16 posts are omitted. Expand thread.
>> No.42984 Reply
>>42983
3) И при просеиваниях должны же быть помены местами самих значений тоже, а не просто выбор места, куда преземлиться. Ну да, вот своп как раз и должен менять знеачения местами, а не индексы, теперь понятно.
>> No.42985 Reply
>>42984
4) Да, и зачем цикл построения пробегает только первые (n - 1)/d значений? Он же должен просееять вниз весь массив. Там должно выходить же NlogN - N просеиваний вниз, по logN каждая.
>> No.42986 Reply
>>42983
> 2) Первый ребёнок - это же id.
Первый ребёнок - это
child = parent * d + 1 исходя из формулы для родителя:
parent = (i - 1) div d А вообще индексы детей:
child1 = parent * d + 1 ... childN-1 = parent * d + (d - 1) ... childN = parent * d + d
>> No.42987 Reply
File: a2dheap.py
Py, 0.00 KB, 0 lines - Click the image to get file
view edit
a2dheap.py
>>42967
В общем ОП, вот тебе рабочий всплывающий и тонущий пример на ПАЙТОНЕ, а я покатился спать - завтра на работу.
>> No.42988 Reply
>>42986
Корень на нуле или на единице?
>> No.42989 Reply
>>42988
Корень - array[0].
>> No.42990 Reply
>>42987
Да, у меня тут ошибка в minChild(), первое же условие должно быть

if ( nodeIndex * d + 1 ) >= len(array): Иначе может произойти вылет за границы.
>> No.42991 Reply
>>42990
А, всё, да, тут всё правильно. Но в свопе ошибка точно. И по идее в границе цикла в билде тоже. Там должноы быть std::swap(a[i], a[s]); У тебя переменная i вообще не меняется вот и зацикленность.
>> No.42992 Reply
File: 135136944472.jpg
Jpg, 35.41 KB, 304×320 - Click the image to expand
edit Find source with google Find source with iqdb
135136944472.jpg
>>42991
Это у ОПа ничего не меняется, а в моём питонопримере всё меняется! Только с условием накосячил, но поправил.
>> No.42999 Reply
>>42987
Нашёл ещё одну ошибку у себя. Ну как ошибку - особенность поведения. На этих функциях алгоритм сортировки двоичной кучи не работает, потому что размер массива вычисляется там внутри. А требуется, чтобы он передавался снаружи, поскольку после окучивания массива надо обменивать корень с последним элементом и топить корень, на каждой итерации урезая размер обрабатываемого массива.


No.42650 Reply [Full thread]
File: hellodob.pas.png
Png, 17.52 KB, 646×428 - Click the image to expand
edit Find source with google Find source with iqdb
hellodob.pas.png
В этом треде мы будем помогать новичкам с решением элементарных задач.
Говорить о том, что %названиеЯзыка1% лучше %названиеЯзыка2%, мы здесь не будем, для этого есть другие треды.
Предыдущий: >>28288
268 posts are omitted, 36 of them with files. Expand thread.
>> No.49742 Reply
>> No.49744 Reply
>> No.49751 Reply
>>49737
Meanwhile, твой стиль кода - говно.
За using namespace std; надо пиздить.
int n; нужно инициализировать, даже если следующей строкой ты его считываешь.
За имена переменных n и v нужно пиздить еще сильнее. Это только в циклах можно i, j, k.
Вместо char и int нужно использовать типы фиксированной длины из cstdint.
За auto вместо примитивных типов нужно что? Правильно, пиздить. auto вообще следует использовать по-минимуму, только для итераторов или сложных шаблонов.
И про кавычки не забывать.
>> No.49752 Reply
>>49751
> auto
И чем тебе auto не нравится? Использовал бы его всегда и везде, если бы писал на плюсах - чем больше работы я могу скинуть на компилятор, тем лучше.
>> No.49753 Reply
>>49751
> За using namespace std; надо пиздить.
Один дурачок не понял, теперь другие за ним повторяют.
https://github.com/lefticus/cppbestpractices/blob/master/03-Style.md#never-use-using-namespace-in-a-header-file
Ещё почитай Страуструповый C++ Programming Principles and Practice, начиная на странице 296 в главе 8.7.1 как раз про это. То же самое и в приложении А.15 на странице 1127.
> int n; нужно инициализировать, даже если следующей строкой ты его считываешь.
а) Это записываешь, а не считываешь.
б) Тебя же за это любая крестомакака говном польёт.
> Вместо char и int нужно использовать типы фиксированной длины из cstdint.
Лолнет. Типы фиксированной длины нужно использовать только если длина тебе важна. Здесь она не важна.
> За auto вместо примитивных типов нужно что?
Хвалить?
https://herbsutter.com/2013/06/13/gotw-93-solution-auto-variables-part-2/
>> No.49754 Reply
>>49752
> Использовал бы его всегда и везде, если бы писал на плюсах - чем больше работы я могу скинуть на компилятор, тем лучше.
Это говнокод. Нужна строгая типизация, вот это все - а с auto ты можешь скомпилить ошибочный код, не подозревая об этом. Это что-то вроде задания констант define'ами.
>>49753
> Ещё почитай Страуструповый C++ Programming Principles and Practice, начиная на странице 296 в главе 8.7.1 как раз про это. То же самое и в приложении А.15 на странице 1127.
Можно дрочить на мертвого страуса, а можно на Дейкстру с "goto нинужен". А можно вместо этого сообразовываться с реальностью - и заранее защитить код от подключения говнолиб с идентичными стандартным именами.
> а) Это записываешь, а не считываешь.
> б) Тебя же за это любая крестомакака говном польёт.
Ну вот макака и поливает. А сениоры знают, что потом какой-нибудь джун будет допиливать этот код, вставит еще строку между объявлением переменной и считыванием, и словит УБ.
> Лолнет. Типы фиксированной длины нужно использовать только если длина тебе важна. Здесь она не важна.
Макакам не важна, а сениорам нужна всегда. Потому что рекомпильнут твой говнокод более модным компилятором или на другой платформе - и выебут тебя скопом.
> Хвалить?
Нет, ебать. И статеечка говно.
А) В итераторах можно использовать auto, но исключительно из-за крайней убогости STL API. К слову, там говнокод, потому что надо использовать cbegin
B) Несет какую-то хуету. Макака узнала про слово explicit и удивляется.
C) Макака опять несет хуету. Похоже, макака еще не знает про разницу между конструктором и оператором = , а также тем, что компилятор не даст породить временную переменную в этом идиоматичном случае.
D) Оставлять сигнатуру функции на auto - это такой способ отстрелить себе все ноги вместе с яйцами, что просто пиздец. И заменять тип аргумента auto - еще больший пиздец криворукой макаки. Еще бы функции через define задать предложил, индус хуев бомбит от такого рукожопия. Уж если хочется метапрограммировать, бери шаблоны: уж сколько там проверок в компайл-тайм можно навертеть. Нет, бля, хочу индусить говно, не хочу size_t и шаблоны, нас в Бомбейском Заборостроительном на вечерних курсах крестов за 21 день этому не учили.
>> No.49755 Reply
>>49754
> Нужна строгая типизация
Во-первых, если нужна строгая типизация, то не пиши на крестах. Во-вторых, auto никакой типизации не отменяет, и без него ты напорешься на implicit conversion и отстрелишь себе ногу с гораздо большей вероятностью. О чём там Саттер выше и пишет.
> заранее защитить код от подключения говнолиб с идентичными стандартным именами.
Что? Я тебе вообще-то про то, что только дурачки обрезают фразу "никогда не используй using namespace в заголовочниках" до "никогда не используй using namespace". И ты тоже дурачок, потому что не думая за ними повторяешь.
> вставит еще строку между объявлением переменной и считыванием
Ну не пиши на крестах. Там и не такое можно сделать. Или не нанимай идиотов. Проблема или надумана или в тебе, потому что ты не обучил своего джуна объявлять переменные по месту использования.
Вот серьёзно, гайдланы про "никогда не инициализируй то, что будет сразу же перезаписано" разбросаны по всему интернету, поэтому мне хотелось бы получить от тебя ссылок туда, где с каким-нибудь обоснованием рекомендуется обратное.
> рекомпильнут твой говнокод более модным компилятором или на другой платформе
И что произойдёт? Ничего? Всё продолжит работать?
Оно сломается только если ты не использовал типы фиксированной длины там, где они были нужны, о чём я, собственно, и писал.
> статеечка говно
Ну да, откуда ж Саттеру-то знать, как так кресты эти работают. То ли дело какой-то случайный анонимный хрен с горы.
> Оставлять сигнатуру функции на auto - это такой способ отстрелить себе все ноги вместе с яйцами, что просто пиздец.
Хотелось бы пример. Не говоря уже о том, что в крестах ты физически не можешь написать тип для лямбды, поэтому ты обязан использовать auto (там про это, кстати, написано).

У тебя типичный синдром ньюфага. Это когда ты недавно что-то там выучил и спешишь со всеми поделиться новостью, а всё, что не соответствует твоему видению мира, которое ты почерпнул из одной-двух энтрилевельных книжек (и хорошо, если книжек), в тебе вызывает агрессию, потому что, ну как же так-то, ты же лучше знаешь, как оно там на самом деле, а тут какой-то "дурак" старается покрасоваться и "обсирается" в процессе.
>> No.49756 Reply
>>49755
> Во-первых, если нужна строгая типизация, то не пиши на крестах.
Ты еще скажи, что в крестах не строгая типизация. Не учитывая шаблоны, конечно.
> Во-вторых, auto никакой типизации не отменяет, и без него ты напорешься на implicit conversion и отстрелишь себе ногу с гораздо большей вероятностью.
Поэтому все конструкторы делают explicit, если implicit не нужен. С auto отстрелить ногу проще, потому что выведенный тип может оказаться не тем, который ожидал программист - надеюсь, ты не будешь с этим спорить?
> Что? Я тебе вообще-то про то, что только дурачки обрезают фразу "никогда не используй using namespace в заголовочниках" до "никогда не используй using namespace". И ты тоже дурачок, потому что не думая за ними повторяешь.
Я как раз думаю, и даже встречал дурачков-джунов, которые ломали код из-за этого using. Внезапно, в .cpp ты пишешь имплементацию, где можешь вызвать не ту функцию, которую ожидаешь - потому что дурачок и влепил using.
> Ну не пиши на крестах. Там и не такое можно сделать. Или не нанимай идиотов. Проблема или надумана или в тебе, потому что ты не обучил своего джуна объявлять переменные по месту использования.
Ну в общем когда выйдешь из вузика и начнешь работать на реальных проектах, поймешь. Правда же, зачем писать строгий код? Лучше хуяк-хуяк и в продакшн, а потом будешь объяснять клиентам, что твой босс нанял не тех джунов, лол.
> Вот серьёзно, гайдланы про "никогда не инициализируй то, что будет сразу же перезаписано" разбросаны по всему интернету, поэтому мне хотелось бы получить от тебя ссылок туда, где с каким-нибудь обоснованием рекомендуется обратное.
Ну если ты читаешь каких дрочащих на auto индусов, то ты еще и не такие гайдлайны найдешь.
Начни с C++ Gotchas Дьюхерста. Для тебя даже погуглил, это совет 48.
> И что произойдёт? Ничего? Всё продолжит работать?
Действительно, ничего ведь не произойдет, если твой int imdumb = 0xFFFFF скомпилируют на платформе с 16-битным int.
Скажи, ты индус?
> Ну да, откуда ж Саттеру-то знать, как так кресты эти работают. То ли дело какой-то случайный анонимный хрен с горы.
Ну кто же виноват, если этот Саттер с горы не знает азы серьезной разработки.
> Хотелось бы пример
Да хотя бы проебывание const и последующий вызов неконстантного метода аргумента в коде функции. Был бы не индус, словил бы компайл эррор.
> Не говоря уже о том, что в крестах ты физически не можешь написать тип для лямбды, поэтому ты обязан использовать auto
Бля, индус, иди на cppreference, открывай std:: function и смотри примеры, там и лямбда есть.
> У тебя типичный синдром ньюфага.
Как скажешь, лол. Пойду расскажу коллегам, как нынче макаки пишут с auto, неинициализированными переменными и прочими int.
>> No.49757 Reply
>>49756
> Ты еще скажи, что в крестах не строгая типизация.
Нет четкого определения строгой типизации. Однако есть определение статической типизации, и, да, плюсы статически типизированы. Однако использование auto никак ее не нарушает. Ты просто просишь у компилятора выбрать тип самому. И, если вдруг что-то пойдет не так, например ты будешь использовать переменную как int, а потом попытаешься ее использовать как объект (мы пока не обсуждаем тысячи способов неявных преобразований), то ты получишь ошибку компиляции.
>> No.49759 Reply
>>49756
> Ты еще скажи, что в крестах не строгая типизация
С narrowing implicit conversions повсюду? С возможностью проебать один сраный & и получить ситуацию, когда компилятор молча пихает объект туда, где ожидается референс? Такая-то строгость.
> выведенный тип может оказаться не тем, который ожидал программист
Ну да. Об этом Саттер и пишет. Вот вместо for ( int x = arraylength; ... делаешь ты for ( auto x = arraylength; ... и получаешь не тот тип, который ожидал.
> Внезапно, в .cpp ты пишешь имплементацию, где можешь вызвать не ту функцию, которую ожидаешь - потому что дурачок и влепил using.
Ну, окей, тут соглашусь. Мне, конечно тяжело представить ситуацию, в которой есть две функции с одинаковыми именами, которые принимают одинаковое количество аргументов с одинаковыми (или хотя бы совместимыми) типами и возвращают значение одного и того же типа, но что я вообще могу знать о жизни.
> Правда же, зачем писать строгий код?
И при этом ты пишешь на крестах. Ну, да, логично.
> ничего ведь не произойдет, если твой int imdumb = 0xFFFFF скомпилируют на платформе с 16-битным int
Ничего. Потому что во-первых, тут длина, очевидно важна, и во-вторых, оно не скомпилируется. Алсо, в третьих, если оно-таки скомпилируется, то это будет хорошим таким аргументом про строгую типизацию в крестах.
> Ну кто же виноват, если этот Саттер с горы не знает азы серьезной разработки.
Ну, да, Саттеры эти ваши со Страуструпами вообще ни в чём не шарят. Набрали дебилов в комитет по квотам. Вот твои мифические сеньёры, которых никто не видел - вот это да, вот это эксперты.
> открывай std:: function и смотри примеры, там и лямбда есть
Открываю: "Class template std::function is a general-purpose polymorphic function wrapper."
Если погуглить, то легко найти информацию, что если лямбду записать в переменную типа std::function, то случится боксинг. Теперь смотрим вот сюда https://stackoverflow.com/questions/7951377/what-is-the-type-of-lambda-when-deduced-with-auto-in-c11 и в принятом ответе видим, что "The type of a lambda expression is unspecified.". Крутим ниже, и видим цитату из стандарта "The type of the lambda-expression (which is also the type of the closure object) is a unique, unnamed non-union class type". Знаешь, что значит юник и аннеймд? Это значит, что у тебя нет никакой возможности выразить этот тип в коде.


No.42459 Reply [Full thread]
File: tumblr_mywsylvAec1so3i95o1_500.gif
Gif, 498.42 KB, 492×394 - Click the image to expand
edit Find source with google Find source with iqdb
tumblr_mywsylvAec1so3i95o1_500.gif
Это вроде не совсем для ньюфагов реквест, поэтому пишу сюда. Он кофейный Java

Короче, я хочу читать файл. Натыкаясь в определённом месте на название класса, я хочу создать объект такого класса. Как это сделать универсально?
Вариант if(word="Classable") ... new Classable() не катит

Казалось бы, в джаве такое хуй сделаешь. Однак есть таинственная либа google-gson, которая умеет работать с классами, которых не знает
>> No.42460 Reply
>>42459
> Казалось бы, в джаве такое хуй сделаешь.
Это в сраных крестах такое хуй сделаешь. Гугли "reflection in java".
>> No.42461 Reply
>>42459
Какой в этом вообще может быть смысл? Я почти уверен, что здесь что-то делают неправильно.
мимо-неджавист
>> No.42462 Reply
>>42461
О конфигурируемом через XML внедрении зависимостей ты, конечно, не слышал?
Вообще это обоссанное ненужное говно, но таки это распространенная практика.
>> No.42463 Reply
File: special-agent-dale-cooper-thumbs-up-twin-peaks.jpg
Jpg, 137.47 KB, 500×374 - Click the image to expand
edit Find source with google Find source with iqdb
special-agent-dale-cooper-thumbs-up-twin-peaks.jpg
>>42460
великолепно!
пойду делать всё неправильно
фронта коридоре
>> No.42503 Reply
File: g3T67XPKCtc.jpg
Jpg, 76.18 KB, 637×950 - Click the image to expand
edit Find source with google Find source with iqdb
g3T67XPKCtc.jpg
Словом, я решил делать игори, на этот раз серьёзно. Я решил делать не одну, а в перспектике ряд игорей, например, 2хмерных эрпогэ. Но проблемой стала архитектура. Мне трудно определить как строить программу, где нужно абстрагироваться, а где не очень, как делать эти ваши MVC правильно
Словом, серьёзно дизориентирован. И хотеть бы не изобретать велосипед, если только все существующие умеют ездить с использованием двух ног
Вопросы актуальности 2мерны эрпогэ в треде не поднимаются. Разве что чисто ознакомительно, но не более того
карандашь безумием


No.42295 Reply [Full thread]
File: Снимок-Программирование-10-Mozilla-Firefox.png
Png, 268.93 KB, 1762×1035 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок-Программирование-10-Mozilla-Firefox.png
Сюда еще не вбрасывал. Борда на крестах, короче. Потому что я могу.
https://ololoepepe.me/board
https://github.com/ololoepepe/ololord
52 posts are omitted, 3 of them with files. Expand thread.
>> No.42525 Reply
File: Снимок-b-ратство-Mozilla-Firefox.png
Png, 470.19 KB, 1450×841 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок-b-ратство-Mozilla-Firefox.png
  • Переименовал везде систему премодерации в систему черновиков.
  • Подправил разметку (сам не помню уже, что и где исправил, вроде что-то с цитированием).
  • Запилил возможность делать ссылки на посты с других досок (примерно как здесь, только с еще одним слешем перед именем доски).
  • Исправил выделение постов при клике на ссылки.
  • Добавил мини-список правил под формой ответа (как у всех, короче).
  • Добавил страницу с описанием разметки.
  • Если пост, на который ссылался другой пост, удаляется, то ссылка на удаленный пост становится неактивной (точнее, превращается в обычный текст).
Технические мелочи:
  • Улучшил систему ведения логов (более единообразно и более информативно теперь).
  • В новостях и правилах теперь HTML, можно все что угодно туда вставлять (раньше был простой текст, только ссылки автоматом вставлялись).
Пока что, наверное, хватит, а то уже свистоперделки начинаются. Еще совместимость с куклой попробую сделать, а так можно в релиз выкатывать.
>> No.42527 Reply
>>42525
Кукла - это костыль, сразу надо делать необходимый функционал.
>> No.42528 Reply
>>42527
Не могу не согласиться. Но ты же понимаешь, что воспроизвести все, что может кукла - это задача довольно тяжелая, скорее всего, не на один месяц непрерывной работы. Тут можно поспорить, что многие свистоперди не нужны, и я опять же с этим соглашусь, но только не все ведь так считают. Кто-то любит делать из борды йобу, умеющую помимо всего прочего считать интегралы и подавать кофе в постель.
>> No.42580 Reply
File: Снимок.png
Png, 244.09 KB, 1411×928 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
Несколько оптимизировал свое поделие:
  • Информация о файлах (картинках) теперь хранится в базе (да, раньше в файле хранилась, потому что изначально не предусмотрел и было лень переносить посты из старой базы в новую).
  • Ссылки на посты теперь хранятся в отдельной таблице, что существенно увеличивает скорость их добавления и особенно удаления (раньше при удалении приходилось читать и записывать каждый пост).
  • Добавил поле "userData" в таблицу "posts" - дополнительные данные для нестандартных досок. Раньше приходилось извращаться с запихиванием, например, в поле "subject", то есть жутчайший говнокод.
  • Проверка капчи и все операции с файлами (сохранение и создание превью) теперь происходят до начала транзакции БД, чтобы не вызывать длительной блокировки.
  • Удаление файлов происходит после завершения транзакции, что, как и в предыдущем пункте, снижает длительность блокировки, а также не приводит к преждевременному удалению файлов, если вдруг транзакция откатится.
  • Файлы превью при откате транзакции теперь также удаляются (раньше не удалялись).
Прочие мелочи:
  • Для файлов без расширения оно автоматически выбирается на основе MIME-типа и добавляется к имени.
  • Теперь отображается дата и время последнего редактирования поста. К черновикам не относится (пока пост в статусе черновика, его можно сколько угодно редактировать, эта шняга не появится). Сделано, по сути, для того, чтобы показывать, когда мочератор/админ злоупотребляет полномочиями, чтобы без повода все подряд не редактировал.
  • Забаненные IP, а также IP, запросы с которых не логгируются, теперь задаются в виде диапазона (192.168.0.1-192.168.0.255), а не wildcard'ом, как раньше.
  • Исправлено отображение трипкода (а то он даже при включенной галочке не отображался, может это и к лучшему было, лол).
И еще (хоть к движку это и не относится): отключил форму поиска, а то, говорят, у некоторых страница не отображалась, пока эта сраная форма не прогрузится (что странно, ведь у меня то отображалась).
>> No.42657 Reply
File: Снимок.png
Png, 40.47 KB, 964×745 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
  • Исправил сообщение "Вам не надо вводить капчу. Осталось постов без капчи: N". Теперь после отправки очередного сообщения количество оставшихся постов автоматически обновляется.
  • Добавил поддержку видео .mp4 и .ogg (.ogv).
  • Добавил поддержку аудио .mp3, .ogg, .wav.
  • Для всех типов файлов добавил иконки в поле выбора файла и логотипы в теле поста (логотип используется, если не удалось, к примеру, создать thumbnail для видео, а также для всех аудио-файлов).
  • Добавил возможность отмены скачивания файлов из треда. Также кнопка закачки блокируется после нажатия.
  • Количество постов, которые можно оставить без ввода капчи, теперь сохраняется после перезапуска сервера.
  • Улучшена разметка. Привет тем, кому не нравятся bbCode'ы. Пикрелейтед. Да, на одной борде подсмотрел. Нет, не на той самой.
  • Добавил возможность заново отрендерить все посты одной командой. Будет полезно при изменениях в разметке и в некоторых других случаях, связанных с администрированием.
>> No.42765 Reply
File: Снимок.png
Png, 171.08 KB, 1444×774 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
  • Добавлен собственный поиск (по всем доскам, либо по указанной доске). Не требует индексации гуглом, работает вроде быстро.
  • Исправлено создание ссылок на посты при использовании AJAX-запросов.
  • Исправлены превью постов по наведению на ссылку.
  • Добавлена возможность удалять прикрепленные файлы.
  • Вместо alert'ов теперь показываются всплывающие сообщения.
  • На доске /echo/ добавлена возможность редактировать ссылку на тред. Вообще система HTML-шаблонов несколько улучшена, теперь больше возможностей кастомизации.
  • Произведен небольшой рефакторинг JS-кода.
  • Добавлен класс ConfigurableBoard, в котором можно задать некоторые настройки, такие как название доски, без необходимости наследоваться. Соответственно, убраны отдельные классы досок, которые можно настроить при помощи этого класса.
  • Добавлена доска /rpg/ для текстовых RPG. Со встроенной системой голосования. Киллер фича, лол.
>> No.42798 Reply
File: Снимок-b-ратство-Mozilla-Firefox.png
Png, 190.44 KB, 1430×900 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок-b-ратство-Mozilla-Firefox.png
  • Теперь на всех досках на 1 капчу 10 постов.
  • Для того, чтобы свести влияние пинга к минимуму, файлы из треда качаются параллельно по две штуки разом.
  • Разметка немного допилена (не помню уже, что именно менял, вроде чтоб ссылки лучше определялись).
  • Реализован новый быстрый поиск. Index-based, так сказать. Работает быстрее, чем ты тилибонькаешь свой стручок.
  • Предусмотрена возможность добавлять доски, где нельзя постить файлы, и при этом можно создавать треды (раньше тред без файла никак нельзя было создать).
  • Примерно в 10-15 раз увеличена скорость рендеринга тредов/досок (закеширована одна тяжелая операция).
  • Добавлен диалог настроек. Настройки времени и стиля помещены туда.
  • Добавлена возможность выбирать тип капчи. В /pr/ железно зашита кодерская капча для защиты от дебилов.
  • Добавлена поддержка яндекс-капчи (чтоб им пусто было за такой кривой апи).
  • Исправлено ошибочное отображение нулевого (0x0) разрешения для аудио- и видеофайлов файлов.
  • Исправлено отображение ошибки при постинге, если ошибка произошла не на сервере, а где-то в пути (прокся не пустила и т.п.).
  • Добавлена возможность быстрого ответа на выбранный пост (форма телепортируется прямо к посту, потом уходит на место).
  • Добавлена возможность отрендерить все посты заново (при изменениях в разметке, например).
  • Рендеринг постов теперь выполняется вне транзакции.
>> No.42880 Reply
File: Снимок.png
Png, 53.30 KB, 1403×783 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
  • Файлы из треда теперь скачиваются по две штуки одновременно, чтобы снизить влияние пинга.
  • Для асинхронного постинга используется нормальный XHR вместо хака с iframe.
  • Реализована возможность добавлять файлы к уже запощенному посту.
  • Улучшена глагне (можно добавлять кастомный контент, а так же список сайтов-друзей).
  • Добавлена доска /d/. На этой доске отображается User-Agent, как в спец. треде куклоскрипта.
  • Добавлена система подсчета постов.
  • Усовершенствована разметка ссылок, добавлен тег [url], реализована разметка e-mail.
  • Исправлены быстрые ответы с доски.
  • Добавлен выбор действия после быстрого ответа (в настройках).
  • Исключения теперь отлавливаются во всех потоках.
  • Исправлена система авто-обновления тредов.
  • Усовершенствована система правил (можно указать, какие общие правила включать на доску).
  • Улучшена кнопка "Пожаловаться".
  • Реализована поддержка частичных GET-запросов (аудио и видео благодаря этому теперь перематываются).
  • Реализовано встраивание видео с YouTube. Вместо ссылки подставляется название видео.
  • Теперь сохраняется дополнительная информация об аудио и видео (длительность, битрейт, теги).
  • Реализована поддержка заголовков Last-Modified/If-Modified-Since (кеширование браузером).
  • Улучшен AJAX-запрос get_new_posts (если номер последнего поста равен 0, возвращаются все посты треда).
  • Добавлен AJAX-запрос get_thread_numbers (возвращает номера всех тредов с доски).
  • Добавлен AJAX-запрос get_file_meta_data (возвращает мета-данные о файле, такие как длительность, битрейт или теги).
  • Добавлена страница-плейлист (аудио-файлы теперь можно добавлять в плей-лист).
  • Добавлена система "Избранных" тредов (выскакивает окошко, если в избранных тредах появились новые посты).
  • Добавлена возможность кешировать файлы вручную (например, сразу после запуска сервера).
>> No.42911 Reply
File: Снимок.png
Png, 131.96 KB, 1000×980
edit Find source with google Find source with iqdb
Снимок.png
File: Снимок-b-ратство-...
Png, 294.00 KB, 1002×991
edit Find source with google Find source with iqdb
Снимок-b-ратство-Tor-Browser.png

  • Исправлены теги audio (теперь задается нормальная ширина).
  • Усовершенствован подсчет скорости досок (постов в единицу времени).
  • Исправлено скачивание файлов из треда.
  • Для настроек и скрытия тредов/постов используется localStorage вместо кукисов.
  • Прикреплять файлы теперь можно Drag and Drop-ом.
  • Для аудио- и видеофайлов теперь отображается дополнительная информация при наведении курсора (теги аудио, битрейт для видео).
  • HTML/JS/CSS теперь немного минифицируется.
  • Добавлен счетчик символов на поле ввода текста формы постинга.
  • Исправлена Yandex-капча.
  • Добавлен стиль Futaba.
  • В панель навигации добавлена информация о новых постах на досках.
  • В базу данных добавлены индексы и таким образом на порядки увеличена скорость работы (особенно заметно при большом количестве постов/тредов).
  • Добавлена возможность использовать внешнюю утилиту file вместо библиотеки libmagic. При использовании Qt5 сначала производится попытка определить MIME-тим при помощи встроенного средства QMimeDatabase.
  • Существенно оптимизирован парсер текста поста (быстрее до нескольких десятков раз в зависимости от количества тегов разметки).
  • Исправлена кнопка "Пожаловаться".
  • Исправлено отображение темы треда, если тема не была указана.
  • Исправлено обновление постов, ссылавшихся на удаленный пост (ссылка на удаленный пост перестает быть ссылкой).
  • Исправлено отображение трипкодов (теперь больше похоже на классические трипкоды).
  • В плейлист добавлены кнопки для скачивания треков.
  • Действия над постом теперь показываются только при наведении мыши, чтобы не загромождать пространство.
>> No.47914 Reply
А еще на шморкач сходи. Сажи.


[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] ... [24] [25] [26]
Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]