[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]

Файл: 34026736.jpg -(129 KB, 1000x740, 34026736.jpg)
129 No.8901  
А давайте здесь будем писать "умные" термины, и объяснять что они значат, чтобы потом можно было девочкам рассказывать а они бы смотрели большими глазами и удивлялись?
>> No.8902  
Был бы очень рад, если бы кто-нибудь рассказал мне почему сишку называют няшной и объяснил термины из этой пасты:

Не понимаю, в чём проблема?

Делаешь пандорический захват, лифтишь в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически вычисляешь результат. Любой второкурсник справится. А если делать на анафорических лямбдах — так задачка вообще на пять минут.
>> No.8903  
Файл: 4ced3b7c07081a7ddd58ce31d8ff0e1400e89da865d0f.jpg -(220 KB, 906x503, 4ced3b7c07081a7ddd58ce31d8ff0e1400e89da865d0f.jpg)
220
Я начну, пожалуй.

Семафор
Семафором называется объект (или даже просто переменная), которая используется при работе много поточного приложения, и сигнализирует остальным потокам программы о том, что некая область программной памяти на данный момент используется.
Плюсы - простота реализации. Просто объявил ее и дальше отслеживаешь состояние.
Минусы - коллизии при "реальной многопоточности", когда можно ожидать модификации "общей" памяти "параллельно" выполняемыми на двух и более физических процессорах инструкциях (но вообще, это не наша проблема, если, конечно, мы не упоролись и не пишем библиотеку синхронизации, или вообще ебашим код на "голое железо").

Практическое применение - везде, где есть необходимость "одновременного" модифицирования общего куска памяти двумя и более процессами. Например, когда один процесс обсчитывает данные из входящего массива, в который пишут данные два и более потоков (т.е. когда нужно записывать показания с сенсоров в базу данных).
>> No.8904  
>>8902

>пандорический захват

абракадабра собственного изобретения.

>лифтишь

безграмотная абракадабра. правильно будет "преобразуешь"

>в монаду

в последовательную цепочку команд

>потом строишь рекурсивную схему

вроде бы все понятно,

>(здесь подойдёт зигохистоморфный препроморфизм)

опять словотворчество - бессмыслица.

>как монадический трансформер

монада - цепочка команд, [лопата] трансформер - робот, который может превращаться во что-нибудь другое. [/лопата]

>из категории эндофункторов,

словотворчество. что характерно для "умных слов" используется латинизация

>и метациклически

Мета- (с греч. μετά- — между, после, через), часть сложных слов, обозначающая абстрагированность, обобщённость, промежуточность, следование за чем-либо, переход к чему-либо другому, перемену состояния, превращение.

Абракадабра, в общем.

>вычисляешь результат

>анафорических лямбдах

Выражения ссылающиеся сами на себя. Синоним рекурсии.

Общий смысл - сделай через рекурсию.

Рекурсивно решают только мудаки так как рекурсия не ня (по причине слабоконтролируемого пиздеца стеку).

>почему сишку называют няшной

Потому, что на ней куда быстрее писать чем на голом ассемблере, а еще есть ништяки вроде типов, переменных (а не голая память и тысячи mov и jmp).

Ну, я думаю так.
>> No.8905  
>>8902
Ссылки в тему.

http://tailcalled.wordpress.com/

Перевод определения «Монада — это просто моноид в категории эндофункторов»

http://it-talk.org/topic15518.html
>> No.8908  
Спасибо, так гораздо понятнее. Монада получается это аналог функции/метода... "последовательная цепочка команд" в чисто функциональном языке звучит до ужаса императивно.

>Рекурсивно решают только мудаки так как рекурсия не ня (по причине слабоконтролируемого пиздеца стеку).

Иногда без нее код будет многократно сложнее впрочем.

>Потому, что на ней куда быстрее писать чем на голом ассемблере, а еще есть ништяки вроде типов, переменных (а не голая память и тысячи mov и jmp).

А вот это у меня вызывает сомнения. Это выглядит как что-то родом с борд, где ни сишку, ни ассемблер не любят. И писать на ней сущее мучение.
>> No.8913  
Блин, жалко на нольчане смыло вайпом олимпиадку с предложением запилить пандорический захват на вашем любимом языке програмирования.
>> No.8914  
>>8908
Почему мучение? Си - он простой, и писать на нем сущее удовольствие, в отличии от тех же плюсов, которые значительно переусложнены (на самом деле предназначены для немного другого класса задач). Опять же, это такая обертка над ассемблером, можно работать с памятью точно так же, только меньшим количеством вызовов, что сводится к более короткому и читаемому коду. Плохо писать можно на чем угодно, да.
>> No.8915  
Две основные причины - 1) надо постоянно изобретать велосипеды и 2) ручное управление памятью.
Велосипеды:
Я приведу сравнение с питоном, если ты не возражаешь. Писал я на днях один маленький кусочек кода параллельно на сишке и питоне и понадобилась мне в нем функция, осуществляющая вложенные петли произвольной степени вложенности, принимающаяя степень вложенности как аргумент, что бы перебрать все комбинации n элементов из списка в m возможных элементов. Вобщем я даже не стал пытаться сам ее написать, нашел рекурсивную функцию на стаковерфло, которую невоткнул как она вообще работает сам бы я написал через if и goto :3, но методом тыка настроил и заставил работать. В питоне я набрал ровно две строчки - импорт итертулс и конструирование нужного мне генератора.
Или более общий пример. Вот такая строчка: a = {}
Ты же представляешь, что будет ее аналогом на сишке? Надо написать собственную хорошую хэш-функцию. Надо написать какой-нибудь способ произвольного хранения данных (через всякие маллоки-реаллоки, фри и т.п.). Надо связать их друг с другом. В процессе надо постараться не прострелить себе ногу что-нибудь напутав с выделением памяти или поинтерами. Протестировать результат.
А посмотреть на работу со строками в сишке...
Ручное управление памятью:
Просто фантастическая пакость. Очень легко допустить маленькую труднонаходимую ошибку, которая будет непредсказуемым образом менять поведение программы. Я вот, в процессе обучения себя програмированию, пишу рогалик на сишке (я уже неоднократно проклял выбор языка, но переписывать уже поздно). Это просто лютый кошмар. Например я добавляю переменную в структуру и игра начинает крашится собранная одним конкретным компиллятором. Бэктрейсинг дебаггером дает тебе безобидную функцию. Ну коню понятно, что это скорее всего проблема с памятью или еще какой андефайнед бехавиор где-то в произвольном месте программы. Надо запускать валгринд.. опс, а компилятор-то виндовый крашится, валгринд только под линукс, под линукс все собирается отлично и валгринд не находит ошибок... В итоге вместо того, что бы писать большую часть времени отлавливаешь баги и изобретаешь воспомогательные велосипеды.
>> No.8916  
>>8915
Это абсолютно разные языки. Ты бы ещё с ассемблером сравнил.
>> No.8917  
>>8916

Но для чего сейчас вообще нужна сишка? Писать драйверы и прошивки? Писать шаред либы вычисляющие какую-нибудь лабуду что бы потом их подключить в тот же Питон (который является сейчас одним из главных языков, используемым учеными)? Больше ничего не могу придумать.
>> No.8918  
Файл: 120906__468x_high-iq-hirano-001.jpg -(21 KB, 468x624, 120906__468x_high-iq-hirano-001.jpg)
21
Объясните мне про виды распределенного програмного обеспечения, про миддлваре, про МОМ, про РПС и прочих няшек.
>> No.8920  
>>8915
>Надо написать
Вот когда поймешь, почему в этом словосочетании ошибка - можешь возвращаться к сишке.
>> No.8921  
>>8917
>одним из главных языков, используемым учеными
Пруф или фортран (по старой памяти), C и R.
Я как-то пробовал писать научную ерунду на питоне, но потом остался недоволен производительностью numpy и отвратительной переносимостью.
>> No.8922  
Объясните что такое "шаблон функции" а то мое кунфу слишком слабо, чтобы понять что это.
>> No.8923  
>>8921

Не думаю что кто-то делал подробное исследование по всем наукам, но глянь в гугль, питон там на первых местах когда речь идет абсолютно о любой науке. Из исследований нашлось только вот это
http://www.datasciencecentral.com/profiles/blogs/kdnuggets-poll-results-top-languages-for-analytics-data-mining

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

>Вот когда поймешь, почему в этом словосочетании ошибка

И кто же за меня код напишет интересно.
>> No.8924  
>>8923
>абсолютно о любой науке
Не в моей. Под абсолютно любой ты скорее всего подсознательно подразумеваешь всяких хипсторов от ит, которых к науке-то отнести сложно.
Вот да, матлаб еще популярная штука, натыкался на него в статьях.
>код напишет
Его написали еще в 80-х годах. Ты просто плохо искал.
>> No.8925  
Нуу, ты еще мне что-то приписывать взялся что я подразумеваю. Говорю же погугли. Популярные языки программирования в физике, химии, биологии, статистике и т.п. везде питон будет в первых рядах. В США его кстати уже свыше десяти лет учат в школах вместо паскаля.

>Его написали еще в 80-х годах.

Ох лол. Я кстати в привел выше пример такого поиска. Но вообще каждый раз как понадобиться что-то простое в нормальном языке и сложное в сишке лезть искать код чужого велосипеда и потом разобраться и адаптировать его под себя...

Алсо вот хорошая паста про сишку
http://warp.povusers.org/grrr/HateC.html
Я не знаю плюсы, поэтому не могу сравнить с ними, но про сишку он написал очень верно.
>> No.8927  
>>8925
http://is.gd/4GZrnq Да, я вижу, как он используется. Сам для себя, в осноном.

Из твоей ссылки я сделал вывод, что следующую софтину буду писать на перле. Мне безумно нравится перл, и мне без разницы, что он не предназначен для чего-то другого кроме обработки текста.
А по тому, как он через предложение говорит, что плюсы - расширенный ц, видно, что он не знает ни того ни другого языка, ибо они слишком разные, хоть и с похожим синтаксисом.
Я бы еще поспорил про производительность его 'удобных' стд-инструментов в сравнении с самописными, но не стану, они все равно проигрывают как в удобстве для дебага, так и в скорости, ибо предназначены для других задач, совсем не тех, для которых используют Ц, и где важна производительность.
А скорость разработки в данном случае - это что-то из области жаваиндустрии - посадить сотню индусов за джаву и пусть они как можно быстрее клепают какую-нибудь ерунду на продажу.
>> No.8928  
Файл: 33981341_p0.jpg -(107 KB, 800x789, 33981341_p0.jpg)
107
>>8918
>Объясните мне про виды распределенного програмного обеспечения,

>виды распределенного програмного обеспечения

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

Если ты про разницу между "тонким клиентом" и "толстым клиентом", так она искуственна, обуславливалась количеством бизнес-логики, которую можно было "сгрузить" на "клиента", чтобы от большого количества клиентов не дох сервер (обычно, это разные вычисления с плавающей точкой - проценты, доли и остальная "реально нужная" компьютерная ебистика).
Банальный пример - 1с, которая переходит от технологии "толстого" клиента к нормальному "клиент-серверному" стилю (потому, что там наконец то наняли программистов и освободили бухгалтеров от несвойственного им программирования), ну или "игрушки", где графика и звучок храняться на клиенте потому, что просчитать такие количества информации в реальном времени неподъемная задача (фактически - количество клиентов ммо + количество серверов ммо + некоторое количество маршрутизаторов - это размер кластера, который нужен был бы компании, для того, чтобы играть эту ммо из браузера где угодно).

>про миддлваре,

Че ета? Сервер который предоставляет услуги для другого софта? Ты про СУБД, которыми пользуются, скажем, биллинговые системы услышать захотел или что?

>про МОМ,

Управление объектом памяти? Менеджер операций от M$? Конкретизируй.


>про РПС

Remote Procedure Call - что про него рассказывать? Ты его осуществляешь каждый раз когда сюда заходишь.

>и прочих няшек.
...
>> No.8933  
Файл: 0424 - The Roomate Transmogrfication_avi_20120507_.jpg -(26 KB, 314x322, 0424 - The Roomate Transmogrfication_avi_20120507_.jpg)
26
>>8928
Программаст на 1с что ли?
Тащемта я хотел, чтобы кто-нибудь здесь помог мне поглубже погрузится вот в эту тему http://en.wikipedia.org/wiki/Middleware_(distributed_applications)

>Сервер который предоставляет услуги для другого софта?
В моем понимании, это промежуточное звено в сложном ПО, необходимое для обеспечения его модульности, "распределенности", простоты доработки и сопровождения.
Например клиент может потребовать какие-то сферические данные от сервера, а миделваре (выступающая для него в роли сервера) сама решит откуда и как эти данные забрать (одна БД, другая БД, какой-то другой сервер/протокол, драйверы железа и вообще что угодно). При этом правила общения оговорены только между клиентом и миделваре, между миделваре и источниками/обработчиками данных.

МОМ - это Message-Oriented Middleware. Этот тип с большой долей вероятности используют сетевые ОС (IOS, JunOS, VRP), но подробнее не могу, ибо не инсайдер.

>Remote Procedure Call - что про него рассказывать?
Уж побольше, чем ты нацарапал тут. Хотелось бы узнать про базовые принципы, а потом погрузится в http://search.cpan.org/~cedwards/RPC-Simple-1.002/, если мне подойдёт.
>> No.8934  
>>8933

Честно говоря из вас двоих на программиста на 1С больше похож ты. И капча 1С это подтверждает.
>> No.8935  
>>8934
А ты кто такой? Без комментария по делу ты гуманитарий простой.
>> No.8936  
Файл: Alice-Margatroid-3-alice-margatroid-25929195-723-8.jpg -(424 KB, 723x831, Alice-Margatroid-3-alice-margatroid-25929195-723-8.jpg)
424
>>8933

> Хотелось бы узнать про базовые принципы RPC

Ты устанавливаешь соединение с сервером, передаешь ему параметры и имя процедуры - он вызывает у себя процедуру, с твоими параметрами и выдает тебе ответ.

> В моем понимании, это промежуточное звено в сложном ПО

Ну, это так и есть. В связке "Браузер клиента" -> веб сервер (еге еще называют сервер приложений, потому, что он запускает интерпретатор скрипта) ->
База данных с данными.

Мидлом будет все что находится на уровне "веб сервер".

Браузер соответственно - тонким клиентом, а СУБД - бэкэендом.

>Message-Oriented Middleware

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

> помог мне поглубже погрузится вот в эту тему

http://www.rabbitmq.com/tutorials/tutorial-one-python.html

Ну, вот здесь есть туториалы, про работу с месаджами и РПЦ.
Теория довольно простая, сложности в деталях и конкретике, что не является темой треда.
>> No.9155  
Объясните, зачем нужен синглтон.
Eyem конфус.
>> No.9158  
Файл: evrei.jpg -(14 KB, 480x354, evrei.jpg)
14
>>9155

Лол. Т.е. ты обосрал Золотце, потом написал пост про "высеры на файликах" и божественный дельфи, а потом пошел и спросил, что такое синглтон. Сара, я пошел смеяться и есть мацу.
>> No.9160  
>>9155
Чтобы какой-то объект был создан только однажды и был доступен везде. Пример где такое нужно: лог.
>> No.9166  
>>9158
Но местное население не может ответить на мои вопросы. Я много чего тут спрашивал. Ваш уровень под плинтусом. Без обид. Хотя нет, можешь обижаться, я разрешаю.
>> No.9171  
Файл: 0a86dc418057b240f9e82d7ef1abcfb1.jpg -(690 KB, 799x763, 0a86dc418057b240f9e82d7ef1abcfb1.jpg)
690
>>8908
> Монада получается это аналог функции/метода...
Нет. Говоря программистским языком, монада -- это любой тип кайнда -> с перегруженным монадическим интерфейсом. Больше никакого глубинного смысла в этом понятии нет, поскольку логика поведения разных монад может быть совершенно разной. В программировании монады часто используются как способ добавить побочные эффекты в чисто функциональный код.
"Трансформер" (имелся в виду монадический трансформер) из той пасты -- это, грубо говоря, способ объединения монад в так называемый стек, "перемещение" по которому осуществляется с помощью функции liftM, отсюда "лифтить".
В целом, эта паста -- просто нагромождение баззвордов, намекающее, что за строгость системы типов и чистоту функций приходится расплачиваться.
>> No.9172  
>>9171
>монада -- это любой тип кайнда -> с перегруженным монадическим интерфейсом

Рекурсия это рекурсия.
А по русски можно?
>> No.9176  
>>9172
Вакаба скушала часть моего поста: там говорилось "тип кайнда (asterisk) -> (asterisk)", иначе говоря, конструктор типов с одним аргументом.
Пример -- списки. В haskell они тоже являются монадами, кстати: http://pastebin.com/0heWgVA2
>> No.9178  
>>9160
Не совсем так.
Область видимости такого объекта будет ограничена, и синглтон позволяет создавать несколько сущностей такого объекта если конструктор виден наружу и поддерживается архитектурой.
>> No.9179  
>>9176
> конструктор типов с одним аргументом. Пример -- списки
Макро́с чтоли?
>> No.9188  
>>9179
Макросы тут не при чём. Конструктор типов -- определённый математический объект (точнее я сказать не могу), который отображает тип в другой тип или конструктор типа.
Пример конструктора типов -- список. Параметризуя его типом Int, мы получаем тип [Int] (список целых чисел) и т.п.
Да, в >>9171 неточность: s/liftM/lift/.
>> No.9208  
Да, синглтон это всего-лишь паттерн.
http://en.wikipedia.org/wiki/Singleton_pattern
>> No.9282  
Привет всем итт. Вопрос из серии «как реализовать с помощью ООП». Есть объектная модель(Domain model), там происходят взаимодействия объектов, вызываются методы и т.п. Как правильно сделать логописалку? Надо, чтобы в консоль писалось о том, что происходит. В виде статического класса?
>> No.9283  
>>9282

оопопроблемы
>> No.9287  
>>9282
Есть ли аналог копипасты про пандорический захват, только про банду четырёх?
>> No.9288  
>>9282
> Как правильно сделать логописалку?
Так, чтобы она решала задачу и не сильно мешалась под ногами.
> В виде статического класса?
Ит депендс.

>>9287
На, сам ищи: http://lurkmore.to/%D0%9A%D0%BE%D0%BF%D0%B8%D0%BF%D0%B0%D1%81%D1%82%D0%B0:%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%
B0%D0%BD%D0%B8%D0%B5
>> No.9289  
Што такое банда четырех?
>> No.9290  
Алсо вот эта паста сделала меня поперхнуться.

АНОНИМНЫЕ ЭКСПЕРТЫ, Я СЕГОДНЯ ШЕЛ ПО ИНСТИТУТУ И ВДРУГ УВИДЕЛ ПИТОНОЁБА В ФУТБОЛКЕ "I LOVE PYTHON", НУ Я РЕЗКО ПОДСКОЧИЛ К ДЕКАНАТУ, РЕШИТЕЛЬНО ЗАБРАЛ ДОКУМЕНТЫ И ПОЯСНИЛ ИХ КРИКОМ "НЕ ЛЮБЛЮ ПРЕСМЫКАЮЩИХСЯ"! ПОТОМУ ЧТО Я УГОРЕЛ ПО RUBY, ПАЦАНЫ, ДУХ Smalltalk ЖИВЕТ ТОЛЬКО В РУБИ, ГДЕ ФУЛЛ ООП, ГДЕ РУБИСТЫ ЖИВУТ МЕТАПРОГРАММИРОВАНИЕМ И ЕБУТ ОБГВИДКОВ В РОТ! ТОЛЬКО RUBY, ТОЛЬКО ДИНАМИКА, ТОЛЬКО ООП!!! ПРИМЕСИ ИТЕРАТОРЫ ОБЪЕКТЫ!! РУБИСТЫ, не учитесь со ПЕТОНОЁБАМИ, УГОРАЙТЕ в настоящем ЯЗЫКЕ, любите РУБИ, ОТКРЫТО И СМЕЛО ОТЧИСЛЯЙТЕСЬ, ПЕРЕВОДИТЕСЬ НА ДРУГОЙ ФАКУЛЬТЕТ!
>> No.9297  
>>9290
Меня всегда интересовало, почему рубисты испытывают какую-то ненависть к питонистам, несмотря на то, что питонисты вообще не обращают внимания на существование руби.
>> No.9299  
>>9297

Когда я с Питона перешел на Руби у меня открылись глаза, на каком дерьме я раньше писал.
>> No.9420  
Руби - великое благо для Питона, все хипсторы истерични туда убигают, а питоновское коммюнити остаётся удивительно здравомыслящим. Правда вот Джангу угораздило стать вторым ПХП, как следствие - все форумы были забиты "посоны как на джанге сложить два числа памагите", но джанга, к счастью, сдыхает постепенно, и волна проходит. Тут ещё Нода ЖС выскочила, вся пионерия туда ломанулась, скоро будет ваще благодать.
>> No.9421  
>>9420

Рельсы популярны уже лет шесть, это еще вопрос откуда куда хипстерье бегает. Питон впрочем всегда был парашей как и его коммьюнити. Ты кстати очередное доказательство.
>> No.9611  
Файл: Chuunibyou Demo Koi ga Shitai! - 03_mkv_20121216_1.jpg -(64 KB, 571x594, Chuunibyou Demo Koi ga Shitai! - 03_mkv_20121216_1.jpg)
64
Что такое posix и с чем его едят?
>> No.9613  
>>9611
Определенный набор стандартов на все. Едят в основном с *nix системами, но во всяких виндовсах тоже можно Posix-окружение настроить через костыли. Не все не-виндовс системы полностью посикссовместимы, например няшка-haiku лишь частично.
>> No.9615  
Файл: maid.jpg -(168 KB, 1472x2880, maid.jpg)
168
>>9611
POSIX - синоним для относительно стабильной части API Линупса и концепции Worse is Better.

работа функций отсутствующих в ПОЗИХе не гарантируется ВООБЩЕ. Но тебе и ПОЗИХ хватит для undefined behaviour. Единственный способ избежать segmentation fault - отказаться от Линупса и не писать на C/C++ вообще. На Haskell тоже не пиши, иначе девочкой станешь.
>> No.9620  
>>9615

Мне кажется, у тебя травма детства.

Правда, учитывая новые тенденции, вышупомянутый кусок api и правда нужен мало где - на все хоть сколько-нибудь используется уже давно есть удобные библиотеки-обертки. Разве что ты сам будешь эти библиотеки их писать. Поэтому и волки сыты (легаси работает) и овцы целы (через прослойку все много проще). Так что ТЫ просто не видишь ситуации вцелом.



[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]