[ /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.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
384 posts are omitted, из них 59 с файлами. Развернуть тред.
>> No.49112 Ответ
Файл: 2149439.jpg
Jpg, 294.50 KB, 703×983 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
2149439.jpg
>>49104
1. Ты продумываешь архитектуру на глубине в единицу, т.е. разбиваешь большую систему на подсистемы и описываешь интерфейсы взаимодействия между ними + выбираешь структуры данных для каждой подсистемы, если это возможно.
2. Начинаешь реализовывать методы интерфейсов, в процессе применяя по необходимости пункт 1 рекурсивно, если подсистема не плоская.

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

Те, кто делают учебные курсы, подходящую архитектуру обычно держат в голове, поэтому у них всё довольно просто получается.
>> No.49113 Ответ
сделал запрос по нажатию на кнопку в javascript с помошью xmlhttprequest. теперь вопрос: как загрузить ответ на страницу
>> No.49114 Ответ
>> No.49130 Ответ
>>47927
Сап тред. Помогите самоучке. Я пытаюсь с помощью процедуры vba передать запрос к базе данных Oracle через adobc соединение, но при попытке открыть соединение мне выдаёт ошибку "нет прослушивателя". Я так понимаю, прослушиватель находится не на моем компьютере, а на сервере с базой. Как думаете, в чем проблема, если считать, что с сервером все в порядке и listener там запущен?

Мои мысли:
1 нужно указывать не только путь к серверу как он представлен в сетевом окружении, а ip сервера, но этот вариант кажется мне маловероятным.
2 логин/пароль, которые я указываю в строке соединения исходно приходили с другого рабочего компьютера и серверу не нравится, что ip моего компьютера не совпадает с логином/паролем.

Всем добра итт.
>> No.49135 Ответ
Файл: UpgradeReport_Plus.gif
Gif, 0.07 KB, 9×11 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
UpgradeReport_Plus.gif
Собираюсь писать игрушку (курсач) под ведроид, но никогда этого не делал ранее. Умею в жабу, но она мне не нравится, в С++ практического опыта мало, но он мне нравится, я так понял, на нем тоже можно.
Собсна, два вопроса:
1. Как это возможно? Как приложения на плюсах будут работать на разных устройствах без перекомпиляции? Или не будут?
2. Писать под андроид на плюсах — это боль? В смысле, кроме того что просто придется писать на плюсах, могут быть еще какие-то проблемы?
>> No.49136 Ответ
>>49135
Рой в сторону QtCreator. Вроде бы он может (раньше точно мог) собирать под андройд.
Но под андройд всё-же проще яву. Это мэйнстрим, будет проще гуглить и решать всякию хуиту.
>> No.49138 Ответ
>>49136
> Рой в сторону QtCreator. Вроде бы он может (раньше точно мог) собирать под андройд.

Эмм, что? Собирает не IDE, собирает тулчейн. А тулчейн для андроида (C/C++ компилятор) в той же андроид студии ставится, и ей же можно "собирать": https://developer.android.com/studio/projects/add-native-code

Можно вообще всё из консоли компилировать, без всяких этих ваших новомодных IDE
>> No.49139 Ответ
>>49138
> Можно вообще всё из консоли компилировать, без всяких этих ваших новомодных IDE
Скатимся сейчас до того, что языки - говно, асм - рулит на самом деле нет.

> Собирает не IDE
Да ты чо, пойду пасанам расскажу.

Если возникает вопросы как в >>49135
То проще дать указание в сторону какой IDE рыть, которая сама поставит и подсосет всё что надо.
>> No.49140 Ответ
>>49139
> То проще дать указание в сторону какой IDE рыть, которая сама поставит и подсосет всё что надо.

После таких указаний люди начинают думать, что IDE это и есть компилятор. И что собирать можно только через IDE. Виндовс-мышление одним словом.
>> No.49141 Ответ
>>49140
Для многих людей F=ma.
Кому надо и кто этим занимается дальше - копают и знают, что и как на самом деле.
Если человеку для жизни хватит и этих знаний, то пусть так считает.


No.46029 Ответ [Открыть тред]
Файл: pylogo0.png
Png, 126.61 KB, 800×642 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
pylogo0.png
Предыдущий >>37139 ушёл в бамплимит.

Краткая справка для новичков:
Официальный сайт: http://python.org/
Документация по стандартной библиотеке и разнообразные Tips & Tricks: http://docs.python.org/
неСвежая тема для священной войны, или руководство по выбору между версиями: http://wiki.python.org/moin/Python2orPython3
Ссылка для вопящих про дикие тормоза: http://speed.pypy.org/
Python для микроконтроллеров http://micropython.org или http://www.github.com/micropython
288 posts are omitted, из них 47 с файлами. Развернуть тред.
>> No.48738 Ответ
Файл: 14440559092710.jpg
Jpg, 62.80 KB, 640×632 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
14440559092710.jpg
>>48728
мнение другого вкатывальщика без какого-либо реального опыта. скажу о твоем коде то же, что сказали в первый раз о моем
1) Весь код - одно большое нарушение PEP8. Есть строки больше 80 символов, пустых строк между определениями функций 1, а не 2. Может ещё че есть, это просто в глаза бросилось.
2) цитата того анона, что обосрал мой первый код"декомпозировать, разделить обязанности, предусмотреть варианты возможных изменений в текущем коде и инкапсулировать их, предусмотреть возможные варианты развития и не усложнять их." Более подробно я описать эту проблему не особо могу. У тебя и логика игры (таблица чисел с пустым местом), и само графическое выведение, и перестановка этих чисел - все в одном месте. Это плохо. Вот что бы мне пришлось делать, если бы я хотел вывести твои пятнашки в консоль, а не в gui? Пришлось бы вообще все переделывать. Нихуя не maintaiability код.

Это общие замечания были. Теперь о самом коде.

3)Не знаю как другие программисты, но я не люблю, когда функции изменяют переменные за пределами своего скоупа. Считать какую-то глобальную для всей программы переменную - ок, изменить - хуйня. Так что global стэйтмэнты я не люблю. Опять же, импортирую твой код для использования в своей графической программке например, а у меня original_seq и другие отвечают за мои собственные последовательности, с которыми я работают ну например у меня вычисляется 100000000 член последовательности фиббоначи через рекурсивные вызовы, я решил в это время пятнашки сложить. И че произойдет? Все обвалиться нахуй из-за global.
>>48728
мнение другого вкатывальщика без какого-либо реального опыта. скажу о твоем коде то же, что сказали в первый раз о моем
1) Весь код - одно большое нарушение PEP8. Есть строки больше 80 символов, пустых строк между определениями функций 1, а не 2. Может ещё че есть, это просто в глаза бросилось.
2) цитата того анона, что обосрал мой первый код"декомпозировать, разделить обязанности, предусмотреть варианты возможных изменений в текущем коде и инкапсулировать их, предусмотреть возможные варианты развития и не усложнять их." Более подробно я описать эту проблему не особо могу. У тебя и логика игры (таблица чисел с пустым местом), и само графическое выведение, и перестановка этих чисел - все в одном месте. Это плохо. Вот что бы мне пришлось делать, если бы я хотел вывести твои пятнашки в консоль, а не в gui? Пришлось бы вообще все переделывать. Нихуя не maintaiability код.

Это общие замечания были. Теперь о самом коде.

3)Не знаю как другие программисты, но я не люблю, когда функции изменяют переменные за пределами своего скоупа. Считать какую-то глобальную для всей программы переменную - ок, изменить - хуйня. Так что global стэйтмэнты я не люблю. Опять же, импортирую твой код для использования в своей графической программке например, а у меня original_seq и другие отвечают за мои собственные последовательности, с которыми я работают ну например у меня вычисляется 100000000 член последовательности фиббоначи через рекурсивные вызовы, я решил в это время пятнашки сложить. И че произойдет? Все обвалиться нахуй из-за global.
4)Че ты бля делаешь в bones_shufle? Меняешь по две косточки 100 раз? Это можно сделать намного проще, подумай как. Да и сам while со счетчиком прекрасно заменяется на for i in range(100), если тебе он очень нужен.
4.5) Так же я не нашел проверки на то, что составленная тобой игра вообще решаема. Хотя может если ты меняешь по 2 косточки, то всегда получишь решаемую таблицу. Но мой вариант реализации все равно кажется мне проще.возможно это не так
5) 52 и 53 строки можно заменить одной с помощью divmod().
6) В каждый момент времени из всех кнопок нажатие как минимум 75% ни приведет ни к чему. Это не очень.

В общем все надо нахуй выкидывать и переделыватьили нет, опять же, я сам только вкатываюсь. Если решишь прислушаться к моему мнению, то после того как все переделаешь можешь посмотреть мою реализациюможешь и до, но я настоятельно советую после, у меня вышло в 190 строк.
Сообщение слишком длинное. Полная версия.
>> No.49074 Ответ
Дорогие питонисты, помогите советом. С python.org скачал установочник 3.7 для x64, поставил, запускаю – открывается чёрный IDLE без командной строки – точь-в-точь командная строка винды. Если через контекстное меню открыть файл *.py в IDLE для редактирования, там уже всё как раньше у меня было в Python 3.3. И вот теперь вопрос: какого чёрта?
Да, вот такой я ламер.
>> No.49076 Ответ
Файл: IDLE-Python.png
Png, 62.73 KB, 507×625 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
IDLE-Python.png
>>49074
Эврика. Нашёл правильный ярлык для запуска. До этого запускал не тот. Просто после установки на рабочий стол был помещён "не тот" ярлык.
>> No.49099 Ответ
>>49076
Вечера, господа питоньеро. Есть внезапный вопрос, в связи с вот ЭТИМ:
https://www.opennet.ru/opennews/art.shtml?num=49256
Какие еще лексемы могут начать шатать в ближайшем будущем от оскорбленных анонимок? Как подстелить соломку (ну кроме очевидного и неправильного "собирай статичное питоновское окружение" или "юзай ветку 2.х") для софта, который будет введен в продакшн по самым пессимистичным меркам на 7-8 лет и на работу которого не должен влиять никто?
>> No.49100 Ответ
>>48738
> 1) Весь код - одно большое нарушение PEP8.
Почему в Питоне придумали какой-то там PEP8 и все его стараются соблюдать, а в других языках ничего такого нет?
Понятно что есть какие-то договоренности на тему кодинг стайла, но у разных проектов/огранизаций они разные.
>> No.49101 Ответ
>>49100
Потому, что сначала Гвидо соговнокодеры не смог в нормальный интерпретатор, хотя бы уровня пёрла но со своим ЧИТАЕМЫМ тимоди, а потом этот баг с отступами был превращен в охуеть какую фичу. Защитники Гвидо могут идти лесом со своим "это было by design".
>> No.49102 Ответ
>>49099
> на 7-8 лет
Не используй питон.
>> No.49110 Ответ
Привет, питоноводы. Можете ленивому недонепрограммисту подсказать библиотеку для работы с графикой. Так, чтобы как в Паскале с модулем Graph: чтобы можно было нарисовать точку, линию, прямоугольник, небо, Аллаха, и, конечно, грабить корованы.
P.S. Какого чёрта у меня NameError: name 'Tk' is not defined в копипасте из интернета:
import tkinter
window = tk()
>> No.49115 Ответ
>>49110
PyQt5
>> No.49137 Ответ
Нужен нормальный алгоритм отрисовки графа.
ТЗ: Не более 16 вершин, у каждого ребра есть вес, который нужно обозначить на рисунке(т.е. на самом ребре). Очень желательно, чтобы ребра не пересекались.

Мне бы хоть концепт нормальный... А то сейчас вообще вершины по кругу и веса в легендах.


No.48615 Ответ [Открыть тред]
Файл: 1.jpg
Jpg, 49.89 KB, 1024×600 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1.jpg
Предлагаю челендж, где каждую неделю мы будем выполнять задания.

Придумал разные уровни сложности:
1 - как самый простой.
5 - самый сложный.

Первые задания от меня, на правах ОПа!

C3: Реализация синтезатора bytebeat, воспроизводящего аудио непосредственно с помощью OpenAL или аудио вашей платформы (e.g alsa, oss, sndio)

C2: Реализуйте последовательность Фибоначчи с помощью рекурсивного решения, но избегайте экспоненциальной временной сложности. Программа должна быть четко определена для первых 100 членов Фибоначчи. Это типичный вопрос на интервью. Haskell, Idris и Agda не могут быть использованы для этого задания, бонусные очки для выяснения, почему.

C1: Реализация программы fizzbuzz без использования оператора деления по модулю ( % , mod, rem, & c...)

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

Придумал разные уровни сложности:
1 - как самый простой.
5 - самый сложный.

Первые задания от меня, на правах ОПа!

C3: Реализация синтезатора bytebeat, воспроизводящего аудио непосредственно с помощью OpenAL или аудио вашей платформы (e.g alsa, oss, sndio)

C2: Реализуйте последовательность Фибоначчи с помощью рекурсивного решения, но избегайте экспоненциальной временной сложности. Программа должна быть четко определена для первых 100 членов Фибоначчи. Это типичный вопрос на интервью. Haskell, Idris и Agda не могут быть использованы для этого задания, бонусные очки для выяснения, почему.

C1: Реализация программы fizzbuzz без использования оператора деления по модулю ( % , mod, rem, & c...)

Реализацию можно кидать тут под спойлером либо pastebin.

Связь дабы не проебать треад и для организации тут: @lambdaclass
Сообщение слишком длинное. Полная версия.
>> No.49129 Ответ
Так себе идея.
>> No.49134 Ответ
>>48615
Где-то я видел уже задачу C2. Не понимаю, почему haskell не может быть использован для решения. Вот несколько решений на хаскеле. Третье не рекурсивное, но самое лаконичное и ясное. Первые два - рекурсивные, хотя рекурсивна внутренняя функция. А рекурсивной должна быть внешняя? Тогда наверное и вправду не получится избежать экспоненциальной временной сложности. Но почему именно на тех трех языках? На джаве наверное тоже не получится избежать. Или здесь я должен разбираться в тонкостях того, как исполняется хаскель, чтобы ответить?

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

module Fib () where

fib :: Int -> [Int]
fib 1 = [1]
fib 2 = [1,1]
fib n = innerfib [1,1] (n-2)

innerfib :: [Int] -> Int -> [Int]
innerfib arr 0 = arr
innerfib (a : b : rest) n = innerfib (a + b : a : b : rest) (n-1)
>>48615
Где-то я видел уже задачу C2. Не понимаю, почему haskell не может быть использован для решения. Вот несколько решений на хаскеле. Третье не рекурсивное, но самое лаконичное и ясное. Первые два - рекурсивные, хотя рекурсивна внутренняя функция. А рекурсивной должна быть внешняя? Тогда наверное и вправду не получится избежать экспоненциальной временной сложности. Но почему именно на тех трех языках? На джаве наверное тоже не получится избежать. Или здесь я должен разбираться в тонкостях того, как исполняется хаскель, чтобы ответить?

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

module Fib () where

fib :: Int -> [Int]
fib 1 = [1]
fib 2 = [1,1]
fib n = innerfib [1,1] (n-2)

innerfib :: [Int] -> Int -> [Int]
innerfib arr 0 = arr
innerfib (a : b : rest) n = innerfib (a + b : a : b : rest) (n-1)

fib2 :: Int -> [Int]
fib2 1 = [1]
fib2 2 = [1,1]
fib2 n = innerfib2 (1, 1) (n-2) [1,1]

innerfib2 :: (Int,Int) -> Int -> [Int] -> [Int]
innerfib2 p 0 arr = arr
innerfib2 p n arr = case nextpair p of (a,b) -> innerfib2 (a,b) (n-1) (b:arr)

nextpair :: (Int,Int) -> (Int,Int)
nextpair (a,b) = (b, a+b)

fib3 :: Int -> [Int]
-- fib3 n = take n (map snd (iterate nextpair (1,1)))
fib3 n = (map snd . take n) (iterate nextpair (1,1))
Сообщение слишком длинное. Полная версия.


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 с нуля, то есть вообще ни с какими языками программирования до этого дела не имел
Сообщение слишком длинное. Полная версия. 6 posts are omitted. Развернуть тред.
>> 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.49032 Ответ
О, привет второй голанг тред, где-то там далеко плавает твой предшественник.

Го - основной язык. дженерики не нужны но я скорее сисадмин которому нужен недо-с потому что я ленивая балда.
>> No.49053 Ответ
>>49032
> но я скорее сисадмин которому нужен недо-с потому что я ленивая балда
А чем твою ленивую балду не устрил тот же питон, например. Я без агитации спрашиваю, просто интересно.
>> No.49068 Ответ
>>49053
Без агитации, отвечу. :3

1) Я очень не люблю пробелы как разделитель кода.
2) Структуры мне легче идут в го.
3) Го - более ограниченый язык, и мне легче его запомнить.
4) Статично скомпиленый код - ня. На серверах каждый раз устанавливать pip install huyeta-v.01 лень.
5) gofmt - ня.
>> No.49070 Ответ
>>49068
Кстати, дополню, я работаю на питоне, ибо овердохрена утилитов (и почти все интерфейсы и апи к нейросетям/нейросетесервисам) на питоне.

Он у меня не вызывает лютой НЕНАВИСТИ, но и любви тоже мало.
>> No.49072 Ответ
>>49068
Спасибо за ответ.
Поддерживаю тебя по всем пунктам.

Го, конечно, довольно убог (не как что-то хорошее или плохое, просто констатация факта), но если уж мне нужен будет богатый возможностями язык, то я возьму лисп или хаскелл (а никак не питон). А если всё это богатство не нужно, то я в любой день предпочту голанг питону.
>> No.49081 Ответ
Между тем, в черновом варианте, завезли как раз поддержку "более нормального" выкидывания ошибок, и дженериков.
>> No.49128 Ответ
Книги на русском:
Язык программирования Go - 2016 (Брайан У. Керниган)
Марк Саммерфильд - Программирование на языке Go - 2013

Книги на английском:
Cox-Buday K. - Concurrency in Go - 2017
Writing An Interpreter In Go
Network Programming with Go
go-programming-blueprints-2nd
go-in-practice
go-in-action

Каналы в телеге:
https://t.me/golangdigest
https://t.me/gophernews
Книги на русском:
Язык программирования Go - 2016 (Брайан У. Керниган)
Марк Саммерфильд - Программирование на языке Go - 2013

Книги на английском:
Cox-Buday K. - Concurrency in Go - 2017
Writing An Interpreter In Go
Network Programming with Go
go-programming-blueprints-2nd
go-in-practice
go-in-action

Каналы в телеге:
https://t.me/golangdigest
https://t.me/gophernews
https://t.me/golanglibrary

Полезное:
dou.ua/lenta/tags/Go%20дайджест
dou.ua/lenta/articles/senior-go
https://www.jetbrains.com/research/devecosystem-2018/go/
+ ищите слак каналы, русско- и украино- язычный относительно активные, там постятся статьи и новости.

Где писать:
VS Code, GoLand, Vim, Sublime, Atom.

Без английского тут делать нечего, язык развивающийся, всё публикуется на английском, русскоязычное комьюнити относительно маленькое, какие-то статьи на русском публикуются в небольшом количестве, да и то - в основном переводы.

Что-то отсюда даже можно добавить в шапку, а лучше сделать её в гите, а в треде кидать ссылку.

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

>>48145
Да, 4-тый курс универа, го - основной язык, особо сложного ничего на нем не писал. Рассылаю резюме на галеры, джуновакансий почти нихуя, хр-юши игнорят в основном, следовательно, из вкатывальщиков-джунов на го у контор выбор есть.
Сообщение слишком длинное. Полная версия.


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... Зачем всё это? Чем это лучше просто кучи функций, которые могут просто вызывать другие функции и работать с какими-то структурами?

Или вот методы, методы это функции, которые привязаны к конкретной структуре, но что если мне нужны методы, которые связывают два разных класса? Например это может код, переводящий из вектора в растровую картинку. Этот код должен быть методом класса для растровой или векторной картинки?
24 posts are omitted, из них 1 с файлами. Развернуть тред.
>> No.49022 Ответ
>>49021
> > Какой именно код его требует?
Тот, который его требует.
В общем виде эта задача не решается. Но так или иначе иногда удобно использовать ООП. Когда - сердце подскажет.

> > это уже ООП или еще нет?
> > Или вот если просто использовать классы, но не использовать наследования и полиморфизмов, это ООП?
Ты задаешь пустые вопросы уровня курица или яйцо.
Ну допустим ООП.
>> No.49042 Ответ
>>49022
> В общем виде эта задача не решается. Но так или иначе иногда удобно использовать ООП. Когда - сердце подскажет.
У меня сердце (и другие органы) пока ничего подсказать не может т.к. я не совсем понимаю это ООП.
> Ты задаешь пустые вопросы уровня курица или яйцо.
> Ну допустим ООП.
Допустим. Но такой код может написать человек, который вообше ничего про ООП не слышал. Как-то это слишком размыто

Давайте вот лучше наследование подробно разберем. На примере аналитической геометрии на плоскости.
Вот например точка. Точку можно записывать в декартовых координатах (y, x) и в полярных (r-радиус, f-угол). Т.е. если без ООП то можно объявить две структуры, в одной координаты x, y, в другой радиус r, угол f.
Мы хотим иметь функцию, которой передаем две точки, и она возвращает true если точки в одном месте находятся (накладываются друг на друга) и false если нет. Методом какого класса такая функция должна быть?
>>49022
> В общем виде эта задача не решается. Но так или иначе иногда удобно использовать ООП. Когда - сердце подскажет.
У меня сердце (и другие органы) пока ничего подсказать не может т.к. я не совсем понимаю это ООП.
> Ты задаешь пустые вопросы уровня курица или яйцо.
> Ну допустим ООП.
Допустим. Но такой код может написать человек, который вообше ничего про ООП не слышал. Как-то это слишком размыто

Давайте вот лучше наследование подробно разберем. На примере аналитической геометрии на плоскости.
Вот например точка. Точку можно записывать в декартовых координатах (y, x) и в полярных (r-радиус, f-угол). Т.е. если без ООП то можно объявить две структуры, в одной координаты x, y, в другой радиус r, угол f.
Мы хотим иметь функцию, которой передаем две точки, и она возвращает true если точки в одном месте находятся (накладываются друг на друга) и false если нет. Методом какого класса такая функция должна быть?
Ок, допустим мы ходим сделать еще и отрезки, прямые и лучи при этом надо чтоб отрезок можно было задавать двумя точками, при этом одна точка может быть в полярных координатах, другая в декартовых, или обе в декартовых или обе в полярных, а еще прямые и лучи могут задаваться через одну единственную точку (хоть в полярных, хоть в декартовых координатах) и угол, и должны быть функции, которые бы позволяли находить точки пересечения луча с прямой, луча с лучом, прямой с прямой, отрезка с отрезком, независимо от того, каким образом какую прямую мы задали, проверять параллельность, проверять принадлежность какой-то точки какому-то отрезку... А еще можно добавить векторов, и им там проверять коллениарность... Пока остановимся на этом.

Так вот, как это все будет выглядеть в ООП, что из чего унаследуется, методами каких классов будут функции, сравнивающие отрезки/прямые и пр. и возвращающие точку пересечения, проверяющие параллельность?
Сообщение слишком длинное. Полная версия.
>> No.49050 Ответ
>>49042
> Так вот, как это все будет выглядеть в ООП, что из чего унаследуется, методами каких классов будут функции, сравнивающие отрезки/прямые и пр. и возвращающие точку пересечения, проверяющие параллельность?
Начнем с начала. Имеются классы "координаты в декартовой системе" и "координаты в полярной системе", плюс в них методы конверсии друг в/из друга.
Иметь одновременно две системы координат и хуячить каждому классу дублирующие методы - слишком криво. Так что берется опорная система координат, и кому надо, юзает функции конверсии классов "координата". Пусть опорной будет декартова, так как полярные - хуета.
Класс точка хранит в себе один объект класса "декартовы координаты". Этот класс также имеет операторы == и !=, внутри одного из них сравниваются координаты этой точки и параметра. Это дает приятный сахар if (pointA != pointB) вместо сишного аутизма !isEqual(pointA, pointB).
Отрезок - еще один класс, имеет внутри два объекта класса "декартовы координаты" - концы отрезка. Прямые и лучи точно также имеют две координаты внутри, плюс для особо извращенных имеют конструкторы не только из двух точек, но и точки и угла - внутри этих конструкторов попросту высчитывается вторая dummy точка исходя из параметра угла.
>>49042
> Так вот, как это все будет выглядеть в ООП, что из чего унаследуется, методами каких классов будут функции, сравнивающие отрезки/прямые и пр. и возвращающие точку пересечения, проверяющие параллельность?
Начнем с начала. Имеются классы "координаты в декартовой системе" и "координаты в полярной системе", плюс в них методы конверсии друг в/из друга.
Иметь одновременно две системы координат и хуячить каждому классу дублирующие методы - слишком криво. Так что берется опорная система координат, и кому надо, юзает функции конверсии классов "координата". Пусть опорной будет декартова, так как полярные - хуета.
Класс точка хранит в себе один объект класса "декартовы координаты". Этот класс также имеет операторы == и !=, внутри одного из них сравниваются координаты этой точки и параметра. Это дает приятный сахар if (pointA != pointB) вместо сишного аутизма !isEqual(pointA, pointB).
Отрезок - еще один класс, имеет внутри два объекта класса "декартовы координаты" - концы отрезка. Прямые и лучи точно также имеют две координаты внутри, плюс для особо извращенных имеют конструкторы не только из двух точек, но и точки и угла - внутри этих конструкторов попросту высчитывается вторая dummy точка исходя из параметра угла.
Так как ты хочешь найти параллельности и прочая, то имеет смысл унаследовать отрезок, прямую и луч от базового класса. Это будет класс с двумя координатами, для каждой координаты булевый флаг "конец", скажем, с методом пересчета угла в dummy-точку, методами проверки на параллельность и т.д. Профит: вместо аутичного сишного копипаста функций ты сразу имеешь универсальные методы проверки на принадлежность точки и прочая.
Для добавления векторов достаточно унаследовать его от класса отрезка (с добавлением какой-нибудь ссылки, указывающей на одну из двух координат как на начальную).
Сообщение слишком длинное. Полная версия.
>> No.49059 Ответ
>>49050
> Иметь одновременно две системы координат и хуячить каждому классу дублирующие методы - слишком криво. Так что берется опорная система координат, и кому надо, юзает функции конверсии классов "координата". Пусть опорной будет декартова, так как полярные - хуета.
> Отрезок - еще один класс, имеет внутри два объекта класса "декартовы координаты" - концы отрезка.
Нет, это плохо. Если мы задаем координаты двух точек отрезка в полярных координатах, и нам надо повернуть этот отрезок на угол X относительно начала координат, мы просто этот угол прибавляем или отнимаем (в зависимости от того, по или против часовой) от углов тех двух точек, ну и если угол измеряется в обычных градусах, то если он перевалил за 360 или ушел в минуса, сделать соответствующую коррекцию. Ну и аналогично для других единиц измерения угла (радианы, грады).
Если то же самое мы захотим сделать с отрезком, точки которого заданы в декартовых координатах, работы у нас будет уже значительно больше.
> Класс точка хранит в себе один объект класса "декартовы координаты". Этот класс также имеет операторы == и !=, внутри одного из них сравниваются координаты этой точки и параметра. Это дает приятный сахар if (pointA != pointB) вместо сишного аутизма !isEqual(pointA, pointB).
>>49050
> Иметь одновременно две системы координат и хуячить каждому классу дублирующие методы - слишком криво. Так что берется опорная система координат, и кому надо, юзает функции конверсии классов "координата". Пусть опорной будет декартова, так как полярные - хуета.
> Отрезок - еще один класс, имеет внутри два объекта класса "декартовы координаты" - концы отрезка.
Нет, это плохо. Если мы задаем координаты двух точек отрезка в полярных координатах, и нам надо повернуть этот отрезок на угол X относительно начала координат, мы просто этот угол прибавляем или отнимаем (в зависимости от того, по или против часовой) от углов тех двух точек, ну и если угол измеряется в обычных градусах, то если он перевалил за 360 или ушел в минуса, сделать соответствующую коррекцию. Ну и аналогично для других единиц измерения угла (радианы, грады).
Если то же самое мы захотим сделать с отрезком, точки которого заданы в декартовых координатах, работы у нас будет уже значительно больше.
> Класс точка хранит в себе один объект класса "декартовы координаты". Этот класс также имеет операторы == и !=, внутри одного из них сравниваются координаты этой точки и параметра. Это дает приятный сахар if (pointA != pointB) вместо сишного аутизма !isEqual(pointA, pointB).
Да это вообще не важно. К ООП это не имеет никакого отношения. Можно конечно отдельно обсудить проблемы всех этих перегрузок операторов в контексте языка C++, например невозможность для перегруженных операторов менять приоритеты, ассоциативность и коммутативность, невозможность сделать short-circuit evaluation для && и || при их перегрузке, невозможность вводить свои новые операторы. Притом в том же хаскеле можно вводить свои операторы, и задавать им приоритет и ассоциативность https://progra-lang.blogspot.com/2016/02/Operatory-v-yazyke-programmirovaniya-Haskell.html
> Прямые и лучи точно также имеют две координаты внутри, плюс для особо извращенных имеют конструкторы не только из двух точек, но и точки и угла - внутри этих конструкторов попросту высчитывается вторая dummy точка исходя из параметра угла.
> Так как ты хочешь найти параллельности и прочая, то имеет смысл унаследовать отрезок, прямую и луч от базового класса. Это будет класс с двумя координатами, для каждой координаты булевый флаг "конец", скажем, с методом пересчета угла в dummy-точку, методами проверки на параллельность и т.д. Профит: вместо аутичного сишного копипаста функций ты сразу имеешь универсальные методы проверки на принадлежность точки и прочая.
Представь что тебе надо проверить параллельность двух прямых или двух лучей, или прямой и луча. У тебя есть точка и угол. Если угол и там и там одинаков (или одинаков если развернуть на 180 градусов) то эти прямые/лучи или лежат на одной прямой, или параллельны. Осталось только проверить, лежат ли прямые/лучи на одной прямой (накладываются ли).
Если же у тебя прямые и лучи хранят две точки, тебе нужно будет выполнять дополнительную работу по определению угла, что неэффективно.

А еще если у тебя две прямые заданы одной точкой и углом, будет очень легко находить угол в точке пересечения
> Для добавления векторов достаточно унаследовать его от класса отрезка (с добавлением какой-нибудь ссылки, указывающей на одну из двух координат как на начальную).
Может быть проще договориться, что первая точка это всегда начальная, вторая - всегда конечная?
Сообщение слишком длинное. Полная версия.
>> No.49063 Ответ
Файл: co.jpg
Jpg, 66.25 KB, 751×499 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
co.jpg
>>49059
> Нет, это плохо. Если мы задаем координаты двух точек отрезка в полярных координатах, и нам надо повернуть этот отрезок на угол X относительно начала координат, мы просто этот угол прибавляем или отнимаем (в зависимости от того, по или против часовой) от углов тех двух точек
Нет, это хорошо. Хоть ты и про повороты ничего не говорил, но это элементарно добавляется одним методом, в котором координаты концов конвертятся в полярные, поворачиваются и конвертятся обратно в декартовы.
А вообще это надо по задаче смотреть, что выгоднее: хранить декартовы или полярные.
> Если то же самое мы захотим сделать с отрезком, точки которого заданы в декартовых координатах, работы у нас будет уже значительно больше.
Лолнет, вся дополнительная работа - конвертация туда и обратно.
> Да это вообще не важно. К ООП это не имеет никакого отношения.
Имеет. Это в сишке есть только тупые структуры без операторов, а в ООП есть классы, которые могут инкапсулировать в себе что угодно и предоставлять API, в том числе и Foo::operator ==. То, что у класса могут быть кастомные операторы, вытекает из парадигмы класса.
> например невозможность для перегруженных операторов менять приоритеты
Да оно и не надо в реальной жизни. Если ты пишешь код сразу с кучей разных операторов в одну строку да еще и с нестандартными приоритетами, то ты пишешь говнокод, и любой поддерживающий его потом программист будет заслуженно проклинать себя самыми нехорошими словами.
> невозможность сделать short-circuit evaluation для && и || при их перегрузке
Чо? (пикрелейтед)
> невозможность вводить свои новые операторы
Нинужно
>>49059
> Нет, это плохо. Если мы задаем координаты двух точек отрезка в полярных координатах, и нам надо повернуть этот отрезок на угол X относительно начала координат, мы просто этот угол прибавляем или отнимаем (в зависимости от того, по или против часовой) от углов тех двух точек
Нет, это хорошо. Хоть ты и про повороты ничего не говорил, но это элементарно добавляется одним методом, в котором координаты концов конвертятся в полярные, поворачиваются и конвертятся обратно в декартовы.
А вообще это надо по задаче смотреть, что выгоднее: хранить декартовы или полярные.
> Если то же самое мы захотим сделать с отрезком, точки которого заданы в декартовых координатах, работы у нас будет уже значительно больше.
Лолнет, вся дополнительная работа - конвертация туда и обратно.
> Да это вообще не важно. К ООП это не имеет никакого отношения.
Имеет. Это в сишке есть только тупые структуры без операторов, а в ООП есть классы, которые могут инкапсулировать в себе что угодно и предоставлять API, в том числе и Foo::operator ==. То, что у класса могут быть кастомные операторы, вытекает из парадигмы класса.
> например невозможность для перегруженных операторов менять приоритеты
Да оно и не надо в реальной жизни. Если ты пишешь код сразу с кучей разных операторов в одну строку да еще и с нестандартными приоритетами, то ты пишешь говнокод, и любой поддерживающий его потом программист будет заслуженно проклинать себя самыми нехорошими словами.
> невозможность сделать short-circuit evaluation для && и || при их перегрузке
Чо? (пикрелейтед)
> невозможность вводить свои новые операторы
Нинужно
> Притом в том же хаскеле можно вводить свои операторы, и задавать им приоритет и ассоциативность
Вот поэтому хачкелем кроме полутора отмороженных никто не пользуется. Играются в свои игрушки, а нахрена - непонятно.
> Если же у тебя прямые и лучи хранят две точки, тебе нужно будет выполнять дополнительную работу по определению угла, что неэффективно.
Это несущественно, в каких координатах хранить - определяется по задачам. Если на сотню задач с декартовыми координатами придется одна задача по высчитыванию угла, то и хрен бы с ним. Да и подсчитать угловой коэффициент - раз плюнуть.
> Может быть проще договориться, что первая точка это всегда начальная, вторая - всегда конечная?
Можно и так, но это может быть не удобно при некоторых гуях, например.
Сообщение слишком длинное. Полная версия.
>> No.49064 Ответ
>>49063
> Чо? (пикрелейтед)
> (a1 && a2) && (a3 && a4)

Лол, ты продемонстрировал короткозамкнутость bool && bool, а не A && A.

>>48918

> Да можно вообще макросы MAX(a, b) ((a > b) ? a : b) использовать. Почему это небезопасно и не один нежопорукий программист так не делает, интересно.

Oh really?

https://github.com/mpv-player/mpv/blob/7dd69ef77c6aa80067c13f76aa0b78d63fbc4eda/common/common.h#L36
>> No.49065 Ответ
>>48832
> Вот допустим есть public private protected модификаторы доступа т.е. ограничения на то, откуда какой метод можно вызывать. public можно вызывать отовсюду, private только для методов из числа public, а protected ... protected становится private при наследовании, притом наследований может быть 3 вида - тоже public, private, protected... Зачем всё это? Чем это лучше просто кучи функций, которые могут просто вызывать другие функции и работать с какими-то структурами?
>

Модификаторы доступа нужны для удобства. Когда у тебя в проекте будет сотня классов с тысячами переменных и методов ты поймешь
>> No.49067 Ответ
>>49063
> Нет, это хорошо. Хоть ты и про повороты ничего не говорил, но это элементарно добавляется одним методом, в котором координаты концов конвертятся в полярные, поворачиваются и конвертятся обратно в декартовы.
Если я сказал что нужны декартовы и полярные, это значит что нужны декартовы и полярные. Если ты говоришь "нет, полярные ненужны, будем все делать в декартовых. Пусть опорной будет декартова, так как полярные - хуета." то ты провалил задание.
> Лолнет, вся дополнительная работа - конвертация туда и обратно.
Иногда эта дополнительная работа может очень много времени занимать, если надо повернуть кучу точек относительно начала координат.
> Имеет. Это в сишке есть только тупые структуры без операторов, а в ООП есть классы, которые могут инкапсулировать в себе что угодно и предоставлять API, в том числе и Foo::operator ==. То, что у класса могут быть кастомные операторы, вытекает из парадигмы класса.
Причем тут сишка и плюсы вообще? Я говорю об ООП. Если очень хочется поговорить о сишке и плюсах, могу создать новый тред. Вон в хаскеле можно вообще свои новые операторы добавлять и выставлять им приоритеты, где там ООП?
> > невозможность сделать short-circuit evaluation для && и || при их перегрузке
> Чо? (пикрелейтед)
https://stackoverflow.com/questions/25913237/is-there-actually-a-reason-why-overloaded-and-dont-short-circuit
> > невозможность вводить свои новые операторы
> Нинужно
Очень аргументированно. Я так тоже могу, смотри: ООП - нинужно.
> Вот поэтому хачкелем кроме полутора отмороженных никто не пользуется. Играются в свои игрушки, а нахрена - непонятно.
>>49063
> Нет, это хорошо. Хоть ты и про повороты ничего не говорил, но это элементарно добавляется одним методом, в котором координаты концов конвертятся в полярные, поворачиваются и конвертятся обратно в декартовы.
Если я сказал что нужны декартовы и полярные, это значит что нужны декартовы и полярные. Если ты говоришь "нет, полярные ненужны, будем все делать в декартовых. Пусть опорной будет декартова, так как полярные - хуета." то ты провалил задание.
> Лолнет, вся дополнительная работа - конвертация туда и обратно.
Иногда эта дополнительная работа может очень много времени занимать, если надо повернуть кучу точек относительно начала координат.
> Имеет. Это в сишке есть только тупые структуры без операторов, а в ООП есть классы, которые могут инкапсулировать в себе что угодно и предоставлять API, в том числе и Foo::operator ==. То, что у класса могут быть кастомные операторы, вытекает из парадигмы класса.
Причем тут сишка и плюсы вообще? Я говорю об ООП. Если очень хочется поговорить о сишке и плюсах, могу создать новый тред. Вон в хаскеле можно вообще свои новые операторы добавлять и выставлять им приоритеты, где там ООП?
> > невозможность сделать short-circuit evaluation для && и || при их перегрузке
> Чо? (пикрелейтед)
https://stackoverflow.com/questions/25913237/is-there-actually-a-reason-why-overloaded-and-dont-short-circuit
> > невозможность вводить свои новые операторы
> Нинужно
Очень аргументированно. Я так тоже могу, смотри: ООП - нинужно.
> Вот поэтому хачкелем кроме полутора отмороженных никто не пользуется. Играются в свои игрушки, а нахрена - непонятно.
Вообще-то у хаскеля и прочих ФП языков есть своя ниша, в которой они востребованы.
> > Если же у тебя прямые и лучи хранят две точки, тебе нужно будет выполнять дополнительную работу по определению угла, что неэффективно.
> Это несущественно, в каких координатах хранить - определяется по задачам. Если на сотню задач с декартовыми координатами придется одна задача по высчитыванию угла, то и хрен бы с ним. Да и подсчитать угловой коэффициент - раз плюнуть.
Это существенно. Я написал что нужны декартовы и полярные координаты. Я ж не написал "нужны декартовы, а полярные там как-нибудь через декартовы можно сделать, типа инициализировать их как порярные, но хранить как декартовы". А еще кроме полярных и декартовых есть много чего еще, например биполярные, параболические, эллиптические... И определенный способ представления координат может быть выгоден для проведения определенных преобразований над точками, заданными в такой системе координат, так что тупо хранить все в декартовых и потом каждый раз конвертить туда-сюда может быть просто глупо.
Сообщение слишком длинное. Полная версия.
>> No.49069 Ответ
>>49064
> Лол, ты продемонстрировал короткозамкнутость bool && bool, а не A && A.
Это ты серьезно сейчас предлагаешь писать говнокодище, где && возвращает не bool?
> Oh really?
Собственно, сразу видно сишный говнокод. За одно только
#define CONTROL_OK 1
#define CONTROL_TRUE 1
#define CONTROL_FALSE 0
#define CONTROL_UNKNOWN -1
#define CONTROL_ERROR -2
#define CONTROL_NA -3
автора надо выебать шваброй. Так даже на сях пишут только джуны.
>> No.49127 Ответ
>>49069
> автора надо выебать шваброй. Так даже на сях пишут только джуны.
А что тебе не так? Энумы хочешь? Скажи это разработчикам Linux ядра
https://elixir.bootlin.com/linux/v4.1/source/include/linux/brcmphy.h


No.43511 Ответ [Открыть тред]
Файл: 599716131.png
Png, 77.78 KB, 317×372 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
599716131.png
Предыдущий тред: >>39226
383 posts are omitted, из них 36 с файлами. Развернуть тред.
>> No.49039 Ответ
>>49027
ну винапи я изучал по интернетам + как сказал >>49029 MSDN. с проблемой установки mingw не сталкивался, хотя вроде бы ставил на 32x win7.
>>49035
> Нинужна
ну хз
>> No.49117 Ответ
Файл: 654654.JPG
Jpg, 19.42 KB, 646×303 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
654654.JPG
`#include<stdio.h>
int main(void)
{
int incorr,resp[9],marks[4];
for (int i=0;i<10;++i)
{
scanf("%i",&resp[i]);
switch(resp[i])
{
case (1):
++marks[0];
break;
case (2):
++marks[1];
break;
`#include<stdio.h>
int main(void)
{
int incorr,resp[9],marks[4];
for (int i=0;i<10;++i)
{
scanf("%i",&resp[i]);
switch(resp[i])
{
case (1):
++marks[0];
break;
case (2):
++marks[1];
break;
case (3):
++marks[2];
break;
case (4):
++marks[3];
break;
case (5):
++marks[4];
break;
default:
++incorr;
}
}
printf("\n\n\n\n");
for (int i=0;i<5;++i)
printf("%i %i\n",i+1,marks[i]);

printf("in corr %i\n",incorr);
}`
Что не так? Проблема с 3 и 5. Прошу не бить за тяпляп код.
Сообщение слишком длинное. Полная версия.
>> No.49119 Ответ
>>49117
Я конечно, не силен в сях, но разве не нужно сначала обнулить массивы при инициализации? Алсо у тебя размеры массивов 9 и 4 и в циклах идет обращения за границы массивов.

#include<stdio.h>
int main(void)
{
int incorr, resp[10], marks[5];

for (int i=0;i<5;++i){
marks[i] = 0;
}

for (int i=0;i<10;++i){
scanf("%i",&resp[i]);
switch(resp[i])
>>49117
Я конечно, не силен в сях, но разве не нужно сначала обнулить массивы при инициализации? Алсо у тебя размеры массивов 9 и 4 и в циклах идет обращения за границы массивов.

#include<stdio.h>
int main(void)
{
int incorr, resp[10], marks[5];

for (int i=0;i<5;++i){
marks[i] = 0;
}

for (int i=0;i<10;++i){
scanf("%i",&resp[i]);
switch(resp[i])
{
case (1):
++marks[0];
break;

case (2):
++marks[1];
break;

case (3):
++marks[2];
break;

case (4):
++marks[3];
break;

case (5):
++marks[4];
break;

default:
++incorr;
}
}
printf("\n\n\n\n");

for (int i=0;i<5;++i)
printf("%i %i\n",i+1,marks[i]);

printf("in corr %i\n",incorr);
}
Сообщение слишком длинное. Полная версия.
>> No.49120 Ответ
>>49119
Спасибо анон, обнулил массивы и с 3 проблемы решились. 5 до сих пор живет своей жизнью:)
За границы не выходит, ибо неравенство строгое
>> No.49121 Ответ
>>49120
Как это не выходит, если в первом цикле у тебя 10 проходов, а массив на 9 значений? В этом же цикле есть
case (5):
++marks[4];
break;
хотя marks[4] не существует, ибо у тебя размер массива 4, т.е. marks[3] будет последним элементом.
Во втором цикле такая же фигня.
>> No.49122 Ответ
>>49121
массив не на 9 значений, а от 0 до 9, то есть индексов.
также и с marks[4] от 0 до 4 целых пять индексов
>> No.49123 Ответ
>>49122
фикс
то есть 10 индексов
>> No.49124 Ответ
>>49122
Окей, не значений, а элементов. Попутал.

> также и с marks[4] от 0 до 4 целых пять индексов
Это на каком языке? На Си, при объявлении массива arr[4], в нем всего 4 элемента, это arr[0], arr[1], arr[2], arr[3]. А arr[4] - это уже выход за границу массива.
Если я правильно помню, про объявлении массива int[9] выделяется память размера int умноженная на 9 (на значение в квадратных скобках) т.е. для 9 int'ов. В коде же обращение идет к элементам с нуля? поэтому крайним элементом будет элемент [8].
>> No.49125 Ответ
>>49124
Спасибо, анон. Ты прав, я все совершенно иначе понял, когда учил матчасть. Компилятор - скрытный убийца. Даже и не предупредил о том, что я за границы массива вылез
>> No.49126 Ответ
>>49125
Бывает. Думаю можно поднастроить компилятор на более строгий вывод предупреждений. Смотри в доках компилятора. У gcc есть -Wall.


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
137 posts are omitted, из них 21 с файлами. Развернуть тред.
>> 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.49118 Ответ
XMLHttpRequest суть хитро обмазанный методами общения с сервером промис?


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/

Ну пока всё. Спрашивайте свои ответы. Ато может я чего забыл ненароком.
Сообщение слишком длинное. Полная версия. 222 posts are omitted, из них 42 с файлами. Развернуть тред.
>> No.49054 Ответ
>>49051
>>49052
Спасибо, почитаю.
Нашел для практики https://www.ratatype.com/
Без гайдов, но с ачивками и спидометром.

В слепую печать я привык, но я печатаю примерно четырьмя пальцами и очень неточно, решил переучиться. Тем более, когда пытаешься печатать как можно быстрее, ты полностью сконцентрирован на строке — некогда смотреть на клавиатуру.
>> No.49055 Ответ
>>49054
> Нашел для практики
Найди лучше такой сайт/прогу, где есть специальные упражнения, заточенные именно на постепенное освоение выбранной тобой раскладки. Там они выстроены от простого к сложному. В том же gtypist'е есть.
> Без гайдов
Гайд простой: каждому пальцу назначается свой набор клавиш, которые только он может нажимать. Плюс в состояни ожидания пальцы возвращаются на свои клавиши в центральном ряду. А дальше упражнения и тренировки, соблюдая это правило. В википедии есть:
https://en.wikipedia.org/wiki/Touch_typing
>> No.49056 Ответ
>>49055
> Найди лучше такой сайт/прогу, где есть специальные упражнения, заточенные именно на постепенное освоение выбранной тобой раскладки. Там они выстроены от простого к сложному
Так так там и есть.
>> No.49058 Ответ
>>49056
Не нашёл, но я не очень пристально искал. Должны быть упражнения типа того, что сначала печатаем только слова/псевдослова, состоящие из букв центрального ряда. Потом постепенно добавляем другие буквы.

Если есть, то ок.
>> No.49060 Ответ
>>33881
Анон, как эти вашим ВИМом овладеть? Туториал пройден, плагины поставлены, настроен под себя. Десятипальцевой слепой печатью владею, но печатаю всё равно медленнее чем в IDE или любом другом редакторе, особенно когда нужно заниматься рефакторингом, да и вообще по коду перемещаться.
>> No.49061 Ответ
>>49060
Ищи решения для всяких утомительных для тебя операций, сведи использование hjkl до минимума.
>> No.49062 Ответ
>>49060
Почитай вот это:
http://www.moolenaar.net/habits.html
Это оригинал. Вроде бы русский перевод тоже где-то есть.
>> No.49082 Ответ
>>48854
> Я, когда вимом пользовался, вообще выработал у себя привычку любой законченный кусок ввода на автомате завершать нажатием на Esc (конечно, Esc надо перебиндить поближе для этого).
Я хоть и пока не очень много пользовался вимом, но уже выработал привычку долбить постоянно долбить по эскейпу. Хорошо, что он обычно ничего не делает, но вот если перебиндить его на капслок... печатать не в виме станет невозможно.
>> No.49106 Ответ
>>49060
Я поставил vim-плагин для intellij idea и совмещаю vim с ide.

Ну и еще добавил разные плагины в сам vim, что он тоже стал похож на ide, так что разные небольшие проекты можно править прямо в vim-е. Когда бывает нужно автодополнение, переключаюсь на intellij idea.

Лично мне удобны в vim-е:
- перемещение по тексту
- поиск
- повторение последней операции через нажатие на "."
- сложные замены с регулярными выражениями

Мне стало легче с vim-ом после того, как я узнал, что можно выделять несколько строк, нажав "Shift-V".
Кастомизацию vim-а через добавление плагинов облегчает Vundle.vim.

Я создал git-репозиторий, в котором храню свой .vimrc-файл.
>> No.49116 Ответ
> Вики на wikia.com
смеюсь


No.27510 Ответ [Открыть тред]
Файл: 200px-NET_h_rgb_2...
Png, 17.12 KB, 200×49
edit Find source with google Find source with iqdb
200px-NET_h_rgb_2.png
Файл: 371px-C_sharp.svg...
Png, 6.26 KB, 371×254
edit Find source with google Find source with iqdb
371px-C_sharp.svg.png

Здесь будет ветка обсуждения .net и C#.
И сразу вопрос: какой встроенный класс в C# реализует массив с обращением по индексу за О(1), в котором при этом можно было бы добовлять в конец элементы(аналог vector из С++), и какой соответственно реализует связный список с вставкой элемента в середину и начало и удалением элемента за О(1)(аналог list в С++).
467 posts are omitted, из них 70 с файлами. Развернуть тред.
>> No.48745 Ответ
Файл: 785px-Inheritance.svg.png
Png, 10.33 KB, 785×487 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
785px-Inheritance.svg.png
Имеется абстрактный класс и 4 производных от него.
Всё вместе представляет собой 60 строчек кода.
По-моему, вся эта кучка классов удобнее для восприятия в виде одного файла.
Стоит ли выносить каждый производный класс в отдельный файл?
Даже не представляю, как гуглить подобные стандарты.
>> No.48746 Ответ
>>48745
Стоит.
Классы имеют привычку разрастаться.
>> No.48748 Ответ
>>48746
Спасибо.
Учту.
>> No.48816 Ответ
Що про эф сярп сказать можете, комрады?
>> No.48820 Ответ
Файл: shirai-kuroko.jpg
Jpg, 204.48 KB, 1050×1400 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
shirai-kuroko.jpg
>>48816
Вакансий море, в отрасли — жуткий кадровый голод, выбирайте эф сярп, комрады.
>> No.49071 Ответ
Файл: konachan-com-63238-sample.jpg
Jpg, 157.81 KB, 1800×1013 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
konachan-com-63238-sample.jpg
Расскажите про .net core.
Я правильно понимаю, что можно сделать что-то под шиндовс на шарпе, а потом отпилить гуи, сконпелять под эту кору и запускать на линупс сервере?
Насколько трудоемка установка этих зависимостей и смогу ли я юзать все доступные стандартные либы или кастомные?
>> No.49073 Ответ
>>49071
> Я правильно понимаю, что можно сделать что-то под шиндовс на шарпе, а потом отпилить гуи, сконпелять под эту кору и запускать на линупс сервере?
Так ведь это можно было и до .NET Core делать, через Mono. Кстати, если использовать Mono и если гуи написано на Windows Forms, его можно не отпиливать, в Mono нет поддержки WPF, но Windows Forms поддерживается. А в .NET Core нет ни того, ни другого, но можно использовать например Avalonia, Electron.NET, ASP.NET Core или какие-нибудь привязки к Qt например
>> No.49103 Ответ
Файл: 91180856.jpg
Jpg, 11.42 KB, 165×232
edit Find source with google Find source with iqdb
91180856.jpg
Файл: 1386054315513.gif
Gif, 403.03 KB, 408×462
edit Find source with google Find source with iqdb
1386054315513.gif

Нет у кого этой книги в скане? https://www.piter.com/product/otladka-prilozheniy-dlya-microsoft-net-master-klass
У меня была бумажная много лет назад, а потом вроде цветная дежавюха, но теперь не найти.
В гуглях встречается только какая-то предыдущая версия, это не то.
>> No.49108 Ответ
>> No.49109 Ответ
>>49108
Это старая, упомянутая в посте.


No.46835 Ответ [Открыть тред]
Файл: Cw02i0IUsAAdYJK.jpg
Jpg, 107.89 KB, 915×803 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Cw02i0IUsAAdYJK.jpg
Хочу сделать такую тему:

1. Скачать весь твиттер или большую его часть.
2. Загнать всё это дело в Elasticsearch.
3. Прогнать это всё дело через классификаторы, анализаторы кейвордов, сентимента и т. д.
4. Предоставлять API для выборок любой сложности.

Зачем?

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

Кому?

Маркетологам, аналитикам, исследователям.

Хочу сделать такую тему:

1. Скачать весь твиттер или большую его часть.
2. Загнать всё это дело в Elasticsearch.
3. Прогнать это всё дело через классификаторы, анализаторы кейвордов, сентимента и т. д.
4. Предоставлять API для выборок любой сложности.

Зачем?

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

Кому?

Маркетологам, аналитикам, исследователям.

----

Так вот, как думаешь, имеет шансы взлететь? Есть ли аналогичные решения?
Сообщение слишком длинное. Полная версия.
>> No.46837 Ответ
>>46835
Обычный стриминг апи очень лимитирован. Есть вариант присосаться к сырому потоку, но он стоит очень дохуя, и чтобы его обработать в рилтайме надо тоже очень дохуя дури в железе. В общем, это для топовых корпораций вариант, а не для ололо-стартапа.
О скачивании всего твиттора речи вообще не идет, там какие-то сотни миллионов в день и никто тебе не даст в них копаться.
>> No.46841 Ответ
>>46837
Ну, в общем, посидели с пацанами и пришли к тому же мнению. А ещё это вроде как нарушает TOS, так что ну его в пень, даже если бы были (ну, чисто гипотетически) ресурсы.
>> No.49107 Ответ
>>46837
Можно just for fun использовать spark, он работает распределенно. Есть spark-streaming.
>> No.49131 Ответ
Оооо^H^H^H^H


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

[ /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/ ] [ Главная | Настройки | Закладки | Плеер ]