• Да, я пишу десктопные приложения под Windows
    –1
    Их действительно нет.
    Иногда мне кажется, что окружающие люди мыслят слишком локально… То, о чем вы говорили, и что показано в следующем же ответе на SO, то есть статический класс со статическим полем — по сути своей и являет глобальную переменную: у вас есть к ней доступ откуда угодно, правда в пределах нэймспэйса.
    Во-первых, не языка, а управляемой среды выполнения. А во-вторых, какое это имеет отношение к побочным эффектам?
    Модификация по адресу, полученному функцией не из своего аргумента — суть побочный эффект.
    Логике языка — нет, не противоречит. При этом он является хаком, потому что нарушает границы CLR.
    Хе-хе, ну тут не поспоришь — с точки зрения CLR мы нарушаем границы ее памяти (не интересовался CLR, основываюсь на предположении, что там есть что-то о памяти), а с точки зрения языка памяти нет в принципе, мы от нее абстрагированы.

    Лишь один нюанс: ведь вы же кодите на языке, используя его стандарты, вы не обязаны заботится, как это будет на нижнем уровне реализовано. Если завтра кто-то уберет слой CLR, оставив лишь язык, то в вашей предыдущей цитате останутся лишь слова, что логике языка это не противоречит.
    Другое дело, что я не понимаю, как это связано с совершенно легитимными статическими операциями.
    Прошу прощения, не понял вопроса.
    Ивент логи? Почта? Трейс?
    Я так же не очень понимаю, против чего это является возражением. Если надо отправить лог, или его часть, по почте, мы делаем/вызываем довольно нехитрую функцию, собственно, берущую часть текста, и отправляющую по почте.

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

    Но, разумеется, я никогда не работал с высоконагруженными сервисами, и там да, каждый такт процессора на счету.
  • Да, я пишу десктопные приложения под Windows
    0
    RemoteDebugger
    Хех, сколько нового узнаю. Да, я не знал, что студия умеет работать удаленно, интересно, спасибо. Я искал, было дело, дебаггер без IDE для C#, но безрезультатно. Пытался даже gdb подключить, но ничего хорошего из этого не вышло.

    Остальная, едкая, часть вашего комментария показывает вашу удивительную ненаблюдательность. Возможно, если бы беседа пошла иным путем, эти слова представляли бы собой сарказм, но поскольку вы так и не удосужились предоставить аргументов, чем использование этого класса лучше класса Console, ваши слова не несут никакого смысла.
  • Да, я пишу десктопные приложения под Windows
    –1
    Могу. И хотя формально в CLR нет глобальных переменных, есть свойства и поля статических классов, которые могут выполнять ту же функцию.
    Да, интересно, я не знал. Когда я искал возможность создать глобальную переменную в C#, я остановился на самом заплюсованном ответе stackoverflow «There's no such thing as a global variable in C#. Period.», что во многом подтверждало мои мысли, и не стал копать глубже.
    Серьезно? Почему это вдруг? C# — это совершенно обычный императивный язык с побочными эффектами.
    C++ — это совершенно обычный императивный язык с побочными эффектами. У вас полный контроль над памятью, вы можете перейти по указателю, о котором ничего не известно компилятору, но почему-то известно вам. Вы можете забыть освободить память, или освободить ее дважды (разумеется это все плохо, я не о том). Идея в том, что нет «внешнего мира» с охраной у врат, есть огороженная опушка с домиком в лесу, и вы знаете, что за оградку выходить без крайней необходимости не стоит. То есть у вас есть выбор: делать все так, чтобы компилятор знал об этом по-максимуму, либо забить на все — что в долгосрочной перспективе приведет к хаосу.

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

    Я продолжу мысль со следующей цитатой.
    Нет ровным счетом ничего противоречащего логике C# в том, чтобы написать статический класс Logger, имеющий набор методов Error, Debug и Info, которые бы выводили диагностическую информацию куда угодно, в том числе — во внешний файл.

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

    Я вот как привык лет десять назад сразу подключать логгирующую библиотеку для униформного вывода диагностики в консоль, в файл, в трейс (который в веб-приложениях можно вытащить на страницу), в event log, в БД и еще куда угодно, так и придерживаюсь этой привычки.
    Опыт моей работы с веб ограничивается страничками на PHP для встраиваемого контроллера. И да, насколько я знаю, где-то на нижнем уровне все происходит приблизительно так: открывается файл, и делается дубликат файлового дескриптора с целью, чтобы теперь принты уходили не в stdout, а в файл.
  • Да, я пишу десктопные приложения под Windows
    0
    lair аха, я понял, что вы имели ввиду — что подобные статические методы являют собой часть стандарта. Да, это верная точка зрения, я хотел обратить внимание на несколько другое — вы не можете создать статический класс, чей безаргументный метод модифицирует… Хм, что? Другой класс? Объект другого класса? Невозможно создать глобальную переменную.

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

    Проведите мысленный эксперимент: в вашем C# коде создается объект, и вы написали на С++ сложную библиотечную функцию, посягающую на личное пространство вызвавшей ее программы — функция проводит хитрую эвристику по поиску некоторого объекта C#, и модифицирует его значение. Теперь, вы просто вызываете эту функцию из любого статического класса С#, и — та-дам! — переменная в объекте становится глобальной, вам более не нужен объект этого класса для ее модификации.

    Теперь, можете ли вы сказать, что только исходя из возможности C# вызывать библиотечные функции, данный эксперимент соответствует стандарту? Вы безусловно согласитесь, что это хак.
  • Да, я пишу десктопные приложения под Windows
    0
    На самом же деле, ни Trace, ни Console не находятся «в рамках языка». Оба они существуют в стандартной библиотеке, и степень их «стандартности» совершенно одинаковая.
    Я не уверен, что мы правильно друг друга понимаем, поэтому на всякий случай уточню: степень их «стандартности» одинаковая с точки зрения библиотеки С. Но для С# — что я и пытался сказать — это некая чуждая субстанция, потому что статические методы не имеют права модифицировать нечто за пределами аргументов, это священные земли, запретное место, и каждый перенос строки, поставленный безаргументным «Console.Writeline()» пляшет ногами на столе покрытом незелёными листьями стандарта, и вопит «Я еретик!».
    Что характерно, Diagnostics.Trace — это, как раз, правильный способ делать диагностический вывод из приложения, неоднократно описанный в документации, и работающий разными способами в зависимости от настройки.
    Я так же не уверен, было ли это возражением, и против чего, поэтому скажу, что, как я писал выше, для средств логгинга я не вижу разницы меж двумя классами. И при поиске средств логгинга для нового языка программирования, логическая цепочка весьма коротка: «Хм-м, что бы мне поискать под C#, если отладка без дебаггера и интерактивной оболочки в C++, Haskell, Python, BASH, PHP, Pascal, Basic, C, Common Lisp происходит выводом принта в файл или терминал». Как видите, «инструмент похожий на терминал, но не терминал», чем бы он не являлся, не имеет шансов оказаться среди звеньев.
  • Да, я пишу десктопные приложения под Windows
    0
    Без отладчика затем, что у вас приложение работает, а на компе через три кабинета — не очень. И устанавливать туда IDE ради мелочного бага — как-то не комильфо.

    Да, TraceListener любопытная штука… С одной стороны печально, что я не знал о таком хаке над языком; к слову, спасибо. Но с другой стороны, я могу наверняка сказать, почему такая идея мне не приходила, и более того, даже не пришла бы в голову. Следите за мыслью: TraceListener — эдакая глобальная сущность, являющаяся с точки зрения языка классом, но на самом деле представляющая собой объект. То есть, чтобы нагуглить существование подобной штуки, я должен совсем отчаяться найти решение в рамках языка — т.к. это потребовало бы для меня сначала понимание, что я должен сделать нечто еще более глобальное, а потом уже мысль «Может кто-то уже сделал; давай-ка погуглим…». Но дело в том, что в рамках языка решение существует, это стандартный ввод/вывод. Проблема лишь в кривой его реализации под одной из ОС.

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

    Разумеется вы можете спросить — «ведь Console.WriteLine» являет собой такой же хак над языком, почему об этом мысль не возникла?». Ответ прост: я думал об этом в разрезе существования класса Console именно как части языка, а не как хака; ведь стандартный вывод всегда и в большинстве языков используют для отладки, во многих приложениях даже существует возможность контролировать количество вывода в ран-тайме.

    Но сейчас самое интересное: переделал бы я приложение при возможности, после находки такого хака?! Нет. Ведь у меня по-прежнему лишь два варианта: писать в файл, для обработки пост-фактум, и… писать в терминал для обработки, так сказать, онлайн! По файлу необходимости пока не было, но перенаправление тоже стандартная возможность при работе с stdout, и кто-то уже выше даже показал способ.

    В результате, нет абсолютно никакой разницы нет между этими классами, по-крайней мере в сфере необходимого мне применения.
  • Да, я пишу десктопные приложения под Windows
    0
    А как вы собираетесь отлаживать программу на ПК без отладчика и IDE?
  • Да, я пишу десктопные приложения под Windows
    0
    Согласен с VoidVolker. Что про Qt, инструменты, модификации в С++ стандарте, и прочее можно писать, это очевидно. Но тут дело, что автор статьи явно вычеркнул из темы веб, кроссплатформенность, и прочие абстрактности, он хочет читать исключительно разработку десктопных приложений под Windows. И здесь действительно нового практически нечего писать.
  • Да, я пишу десктопные приложения под Windows
    0
    Так можно сказать про что угодно. И это было давно.
  • Да, я пишу десктопные приложения под Windows
    0
    Если это была подколка, то мимо. Во время описанных метаний, я приблизительно одинаково знал обе системы. Просто под GNU/Linux часть каких-то пакетов, как тот же Dolphin, была предустановлена. Кроме того, гуглить по русско-язычному инету по «Linux спецэффекты» было проще, чем «замена оболочки терминала windows» (по моим воспоминаниям даже хуже, мне тогда довольно сложно было на русском подобрать верный запрос).
  • Да, я пишу десктопные приложения под Windows
    0
    Тоньше надо быть, товарищ, тоньше.
  • Да, я пишу десктопные приложения под Windows
    0
    Спасибо, пригодится.
  • Да, я пишу десктопные приложения под Windows
    0
    Нет, я использовал вот этот код, забайндил на кнопку запуск и закрытие окна терминала. Есть правда один неясный, но не слишком досаждающий баг — если начать использовать приложение (не могу конкретнее сказать, в какой момент), при последующем запуске терминала вывод на нем не появляется. То есть нужно его запускать окно сразу после запуска. Но я в это не углублялся.

    Перенаправление в файл без Моно не реализовывалось, пока нет необходимости. Но в отдаленных планах такое есть.
  • Да, я пишу десктопные приложения под Windows
    0
    Это же давно было (с точки зрения моего опыта это было чуть ли не в детстве, хотя физически я тогда уже с армии вернулся). Сейчас я вижу у коллег на работе TotalCommander, и понимаю, что он неплох. Но на тот момент я его пользовал лишь пару раз, и меня совершенно отталкивал этот полу-текстовый интерфейс, это была как раз пора увлечения всякими спецэффектами вроде трясущихся, или сгорающих окон и прочего. Я использовал Dolphin, и пытался как-то найти аналог под винду — считайте TotalCommander, только с рюшечками; сие кончилось фэйлом.

    Про ConEmu я тогда просто не знал, найти так же не смог (я тогда плохо знал английский, и гуглил только в русскоязычном интернете, что сильно ограничивало круг поиска).
  • Да, я пишу десктопные приложения под Windows
    0
    Распространненое заблуждение, предел возможностей pandoc — конвертировать самые базовые мелочи, как параграфы, и «хэдинги» разного уровня. Я могу сделать даже более сильное заявление: он никогда не станет нормальным конвертером — как бы абсурдно не звучало, но это цель мэйнтейнера этого проекта.

    Я спорил в разных ветках гитхаба с главным разработчиком, и это окончилось тем, что в одном из комментариев тот заявил на один из багов при конвертации LaTeX, что это out of scope. Я полу-саркастично спросил, что может быть стоит добавить в ReadMe, что почти вся работа настоящего конвертера «out of scope» (не прямым текстом, просто это был уже черт знает какой по счету спор) — я никак не ожидал, что он примет предложение за чистую монету, и добавит в ReadMe.

    Как я понял из его аргументации, «out of scope» просто потому, что ему лень этим заниматься.
  • Да, я пишу десктопные приложения под Windows
    0
    Я сейчас погуглил, и не вижу никаких встроенных средств. Если вы про внешние фреймворки, то не вариант — это маленькая тулза (которая впрочем уже малость разрослась, но все же), предполагающая распространение единственным исполняемым файлом, т.е. нужен минимум внешних зависимостей.
  • Да, я пишу десктопные приложения под Windows
    0
    Да-да, с логгингом вообще беда. Мне на работе приходится разрабатывать приложение на C# — так стоит только сделать граф. интерфейс, как stdout магическим образом перестает работать. Был сделан класс для логгинга — вот только передавать его в каждый статический метод оказалось очень жирно; а еще за мультипоточностью этого класса надо следить, сортировать сообщения по времени из разных потоков…

    В конце-концов из кучи кода повырезал его к чертовой матери, отлаживаю под Mono — хотя бы там stdout работает — а для отладки на компах без моно и IDE сделал какой-то хак, который запускает по нажатию кнопки окно терминала, и туда все пишет. Довольно криво, потому что когда родной терминал запущен, то работает плохо — при большом кол-ве вывода, он вызывает невнятные задержки. Костыли, костыли…
  • Да, я пишу десктопные приложения под Windows
    0
    Стоп. Это я только что про linux прочитал? А что за систему я тогда пытался сделать своей основной раза три в течение 2-х недель, но потом каждый раз понимал, что вместо работы танцую с бубном?
    Знакомый опыт. У меня была похожая ситуация, только забавней: я две недели сидел на GNU/Linux, матерно ругался, говорил «Никогда больше не запущу», и уходил на Win7. Затем итерация повторялась, но уже с виндой — я вспоминал удобный файловый менеджер, адекватный шелл (я так и не смог найти под винду замены), матерился, и уходил обратно.

    Это повторялось, наверное, несколько месяцев, пока Win7 у меня не сломалась. Более того, когда я пытался ее переустановить, установщик падал с BDOS. GNU/Linux тем временем работал, хотя и со странными глюками. Месяца полтора спустя у меня… навернулся винчестер! Мне до сих пор невдомек, как так вышло, что винда и установщик столь тонко это прочувствовали.

    Как бы то ни было, при малом кол-ве знаний, GNU/Linux действительно может раздражать. Зато если хорошо в ней шарить, можно для разработки найти множество плюсов — это и /proc/, и bash, и тайловый оконный менеджер, и намного лучше продуманное АПИ, и установка подручных утилит в одну команду, многое другое… Честно, у меня на работе сейчас очень аккуратно настроенное окружение, и когда я кому-нибудь под виндой пытаюсь помогать, это довольно скоро вызывает раздражение.

    Кстати заблуждение, что GNU/Linux чисто терминальный — как раз таки работа с мышью там намного лучше продумана. Это и первичный буфер обмена, и возможность ускорить указатель мыши до каких угодно скоростей при помощи Coordinate Transformation Matrix, и возможность выделять текст на MsgBox'ах — не помню каких, кажется KDE'шных…
  • Да, я пишу десктопные приложения под Windows
    +2
    А я, спасибо курсовым в институте, вообще терпеть не могу офисные утилиты — больше ничего мне столько нервов не тратило. Обиднее всего, что до сих пор не конвертера LaTeX → whatever-office-format.
  • Да, я пишу десктопные приложения под Windows
    0
    Люди любят узнавать что-то новое, обнаруживать неожиданное применение старым навыкам. Десктопный софт под Windows — это существенно больше лет опыта разработки, чем мобильный и веб. Это просто нагуглить, легко понять; тут просто не о чем писать.
  • Анализ вариантов построения телефонии на базе Мicrosoft Skype For Business
    0
    В подобной конторе будет обычный сисадмин, человек с должностью, кто отвечает за коммуникации и работу каких-то стандартных программ типа офиса. Отличие такой конторы от офиса с кол-вом IT'шников стремящимся к нулю, лишь в том, что сисадмину меньше мороки «в среднем по больнице», т.к. все те «юниксоиды, виндузятники, сетевики, виртуализаторы, админы СХД и так далее» обычно могут за себя постоять, не призывая всемогущих существ из админохранилища. С др. стороны подобные люди тяжелее на сговорчивость в среднем, т.к. могут считать себя лучше знающими что на их рабочем месте нужно (определенно не без причин, хоть несколько эгоистично).

    Про подразделение, отвечающе за Unison я не совсем понял — ведь если вы ставите вопрос, что нужно выбирать UC-решение, следовательно этого решения еще нет, и никто за него не отвечает.

    А выбором на мой взгляд должны заниматься те самые сисадмины — им босс говорит «У дяди Васи в соседнем подъезде ТАКАЯ система: ему в одной программе и сообщения, и звонки с телефона, и даже письма; а у нас в сто раз больше народу, чем мы хуже??». Это оформляется в виде ТЗ, и сисадмины начинают чесать головы, что лучше и надежнее выбрать да чтобы быстрее и проще настроить было. Здесь я обращу внимание, что в конечном итоге именно админам это все поддерживать, поэтому они должны знать с чем работают, либо научиться этому.
  • Анализ вариантов построения телефонии на базе Мicrosoft Skype For Business
    0
    Я не вижу смысла холиварить на тему «линукс против MS в ентерпрайзе», всё давно разжевано, спорить тут как-то не о чем.
    Ну а что же вы спорите то?
    Вы даже примерно не в курсе того, что MS обвязка умела еще во времена SMS, раз речь заходит о «пакетном менеджере».
    Просветите.
    Да и упоминание плазмы тоже забавно, ведь речь-то вообще не про нее шла…
    Какое заявление, такой и ответ. Извольте конкретизировать.

    Про «архитекторов» прокомментировать ничего не могу, т.к. слышу впервые. Мне кажется, что что-то тут не так, раз в после таких архитекторов компания переходит на Lync и прочее, но аргументов привести не могу, поскольку даже представления не имею, кто это, если не сисадмины (уж не тот ли бородатый мужик из Matrix: Reloaded?).
  • Анализ вариантов построения телефонии на базе Мicrosoft Skype For Business
    0
    Задача уникальна для каждого бизнеса. Нет смысла смотреть конкретный пример. В целом, речь про обустройство рабочего места пользователя и интеграцией с кучей всего самого разного. Да так, чтобы масштабировалось и никогда не падало.
    Чересчур абстрактно. В такой формулировке и без примеров ваши слова являются подтверждением — GNU/Linux намного превосходит Windows в плане масштабирования.

    Про падение я вообще не понимаю. Да, раньше КДЕ падал, но α) это был общеизвестный факт, можно его не использовать, β) то время давно прошло, сейчас он стабилен как слон, и γ) его падение на рабочем процессе никак не сказывалось — все что происходило, это мерцающая на секунду панелька, и сообщение об ошибке.
    Кому мне дело до стартапов и SMB? Там совершенно другая специфика, там возможен любой колхоз и благодаря нулевым масштабам этот колхоз даже может какое-то время успешно работать. По мере роста сопровождение может стать слишком дорогостоящим (просто для примера: в компании на 10000 человек невозможно руками ставить ОС и софт на каждый пользовательский компьютер и невозможно вводить для каждого пользователя какие-либо уникальные настройки, всё должно накатываться полностью самостоятельно, а в компании на 10 человек всё это не требуется, дороже будет автоматизировать).
    Что-то я начинаю путаться: вы со мной соглашаетесь, или все-таки возражаете мне? Удаленная установка софта на кучу ПК сразу, как и изменение настроек глобально, звучит обыденной задачей в применении к GNU/Linux. Более того, под Windows до недавнего времени даже пакетного менеджера не было (ходят слухи, в десятке появился).
    Интереснее примеры крупных организаций, с крупными IT департаментами на много сотен человек, с тысячами/десятками тысяч не-IT сотрудников, причем с минимальным штатом разработчиков или вообще без них.
    Вы упускаете самую соль: после того, как стартап становится более-менее крупным, происходит упомянутое мной в прошлом комментарии — на сцену выходит админ, которому, даже если бы он хотел, было бы хлопотно ставить другую ОС, и все перенастраивать. Гипотетически он может предложить сие шефу, но это же будет куча работы! Все уже сделано, «работает — не трожь!», и с повышением кол-ва работников до тысяч, ситуация просто усугубляется.
  • Анализ вариантов построения телефонии на базе Мicrosoft Skype For Business
    0
    Вопреки мнению многих красноглазиков, главным критерием при выборе решения всегда является способность решить конкретную бизнес-задачу :) Если некое решение стоит 0 денег капексом, но не решает бизнес-задачу и попутно требует существенных затрат на внедрение и доработку, плюс приносит убытки из-за простоя сервиса, то вывод очевиден.
    Вопреки мнению многих гуманитариев, главной способностью при выборе решения всегда является способность к критическому мышлению :) Что за бессмысленный комментарий? Я вас спросил подробности: почему дороже выходит, какой софт применяют, какую задачу пытались решить — не обязательно писать глубокие детали, но хотя бы поверхностные примеры.
    Так ведь и под винду немерено решений UC. Но почему-то на практике их ровно два — от MS и Cisco. Остальные — так себе.
    Как я писал выше, я не занимался UC. Но исходя из вашего последнего комментария, и других к статье (не моих), на практике их ровно один — от Cisco. Следовательно те решения едва ли хуже, чем от MS.
    Но многие организации не используют GNU/Linux на десктопах, так как виндовая инфраструктура иногда оказывается дешевле ;)
    Из того, что вижу лично я — это происходит просто потому, что GNU/Linux распространен в основном среди IT'шников, а занимаются базовыми вещами в стартапе (не IT'шном) бизнесмены, не очень близкие с IT. Когда их фирма разрастается достаточно, чтобы задуматься об инфраструтуре и прочем, и нанять себе сисадмина, тот просто работает на том, что есть, и не заморачивается.
  • Анализ вариантов построения телефонии на базе Мicrosoft Skype For Business
    0
    Скажу по секрету, опенсорс != экономия. Кровавый ентерпрайз с шести(и более)значными ценниками в долларах может оказаться выгоднее.
    А можно подробнее?
    Их слова не имеют ни малейшего значения — маркетологи всегда забывают упомянуть недостатки. Разумеется, даже не вникая в функционал, главный недостаток — «это первая версия».
    Откуда вы взяли «первую версию», эта статья опубликована в 2008 году, почти декаду назад. А еще, положа руку на сердце, это была первая ссылка в гугле по запросу «unified communications linux» — наверняка несложно еще отыскать.
    А еще лицензии стоят денег…
    А что, S4B бесплатен? Вопрос то, что при использовании Skype for busyness вы покупаете кота в мешке, поскольку применение бесплатных решений на базе GNU/Linux для десктопов резко усложняется. Именно об этом я говорю.
  • Анализ вариантов построения телефонии на базе Мicrosoft Skype For Business
    0
    Если же стоит вопрос экономии и использование бесплатного ПО, то в данном случае, наверное, в качестве сервера телефонии, стоит выбрать Asterisk.

    Это бизнес, в нем всегда стоит вопрос экономии.
    Если мы говорим, о том, что в компании выбран стандарт — Windows или Apple, то можно легко рассматривать S4B. Если в компании, по производственной необходимости, какой-то процент пользователей использует Linux, то можно использовать только стационарный телефон, совместимый со Skype For Business, без программного клиента.


    Но это не будет система UC, это будет только телефония.

    Я никогда не занимался UC, но навскидку есть некий Unison, который по их словам превосходит альтернативу MS. Возможно фраза маркетинговая, но можно быть уверенным, что это рабочая альтернатива.
    Более того, на сколько мне известно, уже есть программные клиенты сторонних производителей, кто делает S4B клиент для Linux, но с ограниченным функционалом.

    С точки зрения бизнеса полагаться на нечто, что может быть работает — тоже плохая идея. Эти клиенты не являются разработкой Microsoft, следовательно если завтра MS поменяют протокол, вся коммуникация в вашей любимой фирме рухнет пока те разработчики не подтянутся, и не внесут соотв. изменения — что дело небыстрое ввиду необходимости исследования изменений.
  • Анализ вариантов построения телефонии на базе Мicrosoft Skype For Business
    –2
    Таким образом, полноценный клиент доступен почти на всех популярных ОС для ПК/планщетов/смартфонов – Windows/MacOS/Adroid/iOS/Windows phone. Не поддерживается, разве что, только Linux.

    Вот я на работе занимаюсь разработкой под GNU/Linux. И что вы мне предлагаете — переключаться для звонков в Windows (я не исключаю, что под wine заработает, но вдруг нет? Опыт с VisualStudio намекает)?

    Я уверен, вы сейчас скажете что-то вроде «Разработчики единчный случай» — но учитывая тот факт, что GNU/Linux в качестве корпортивного стандарта экономит кучу денег на лицензии, я уверен, что использовать в компании «Skype for buisness» плохая идея.
  • Зачем нужен свободный код и как на нем зарабатывать
    +1
    Разные категории. TES'ы имеют нечто очень оригинальное и новое, чего не найдешь в каждой игре, именно потому даже старые из них до сих пор живы.

    Xonotic же, особенно десять лет назад, не имел ничего выдающегося. Да, там есть режим DM, который очень похож на Quake3. Да, там есть режим CTF, напоминающий UnrealTournament. Навскидку единственное, чего нету в др. стрелялках, это режим CTF: Minsta + Hook, и то я не знаю, был ли он 10 лет назад.
    Это набор вещей, которые и так эксплуатируются в прочих стрелялках, так почему бы не поиграть в них? Почему не взять тот же оригинальный Quake3 — я уверен, 10 лет назад графика в них не отличалась. Если бы Xonotic был проприетарным, про него бы просто забыли — там не было чего-то такого, чтобы услышав, игрок сказал «Вау!», и сил одной компании, которая его начала разрабатывать просто не хватило бы, чтобы довести до сегодняшнего уровня, не будь он открытым; т.е. к сегодняшнему дню он бы еще и сильно устарел.
  • Зачем нужен свободный код и как на нем зарабатывать
    0
    А можете рассказать, как вы на нем зарабатываете? Вы просто продаете бинарники, что в нише «домохозяек» имеет смысл, т.к. они сами его с исходного кода собирать не будут? Или как-то по-другому?
  • Зачем нужен свободный код и как на нем зарабатывать
    +1
    Вывод: в свободности таких проектов, как мобильные приложения, сайты, игры, полезные программки на десктоп, софт для професионналов в областях, далеких от программирования, практически нет смысла.


    Как это нет смысла в свободности игр? Вот вам живой пример — есть игра Xonotic, эдакая помесь Quake и Unreal Tournament. Ей уже очень много времени, первая версия была выпущена десять лет назад (тогда под другим именем, здесь это не принципиально). Она до сих пор активна, рьяно развивается, в нее постоянно контрибьютят, у нее выходят новые версии. Если бы код у нее был закрытый, десять лет она бы точно не продержалась на плаву — она бы наверняка даже не достигла нынешнего уровня пол количеству модов, моделей, и много другого.

    Идея о полезности исключительно разработчикам тоже неверна. Пользователи могут извлечь выгоду из открытости посредством компиляции под свою архитектуру, и с флагами, которые обычно распространителям включать неохота, например «flto». Ведь, напомню, речь идет о ресурсоемком приложении, и здесь это действительно имеет смысл.
  • Kotlin ❤ FP
    0
    Ну, по моему опыту такое бывает нечасто, и обычно подобный код выглядит приблизительно одинаково трудным что со скобками, что без них.
  • Kotlin ❤ FP
    +3
    Я думаю, речь о Higher-Kinded Types.
  • Kotlin ❤ FP
    +1
    К сожалению синтаксис функций совсем не как в Haskell. Кому-то может показаться сущей мелочью — но поверьте мне: когда я на работе разбираю код в С++ или C# с кучей вызовов функций в одной строке, все эти скобки быстро начинают мешать пониманию, где результат одной функции идет к другой, к третьей; и так тоскливо становится, когда я вспоминаю оператор доллара, и отсутствие необходимости в скобках в Haskell.
  • Codebattle: игра для программистов
    +1
    Судя по главной странице, пока поддерживаются только ruby, php, python и JS? Было бы круто еще Haskell добавить.
  • Анимационное видео вращения экзопланеты вокруг своего светила
    0
    У меня работает: Firefox, Kubuntu, AwesomeWM.

    Может быть попробуйте с другого браузера?
  • Количество сайтов с элементами Flash упало с 50% до 22% за четыре года
    0
    > >>>> Разница здесь в том, что в первом случае патч могли выпустить сторонние люди — и это то, о чем я
    > говорил. Но тут «знающие» люди не стали этим заниматься, они предпочли сделать костыли, и забить.
    >
    > Вы так выгораживаете косяки других компаний, что согласитесь на что угодно, лишь бы подчеркнуть косяки во
    > флеше. С Вами всё ясно, можно дальше не вести дискуссию. Если человека убьет током от USB во время
    > подключения Flash Drive — такие граждане как Вы сразу начнете писать, что Adobe со своим флеш плеером и тут
    > виноват.

    О чем вы? В процитированном вами фрагменте я просто приравниваю поступок Google к поступку Adobe, и подчеркиваю, что на отвратительное отношение компании в случае с FOSS всегда есть обход.

    > >>>> В случае с FlashPlayer возможности выпустить патч стороннему человеку нет даже гипотетической.
    >
    > Еще раз. У Вас есть возможность поправить исходники Firefox. Вы сможете это сделать так, чтоб хотя бы в
    > ближайшие 5 лет это релизнулось ко мне и всем? Ой как сомневаюсь.

    Специально для вас:

    * Now talking on #introduction
    * Topic for #introduction is: Hi! We'll help you with the basics of Mozilla Development. http://v.gd/moz_dev_intro || Ask us anything! http://v.gd/goodq || Pasting: http://pastebin.mozilla.org || Logs: http://is.gd/fVfkZg
    * Topic for #introduction set by Ms2ger (Sat Mar 29 18:19:49 2014)
    <Hi-Angel> Hello, I've a theoretic question. I am arguing with a buddy who says that if I'd sent a patch to Firefox, it would take five years time to appear in the mainstream version. Could anyone tell, how long a real time is, relatively?
    <mbrubeck> Hi-Angel: Once the patch is checked in, it takes 12 to 18 weeks before it appears in the stable version.
    <Hi-Angel> Thank you!
    * Rigin_Oommen (rigin@moz-so4.f0d.244.121.IP) has joined
    <mbrubeck> Of course, it can also take some time to get the patch reviewed and checked in, but we try to keep that to within, say, a week or so, for simple patches if no problems are found in review or testing.

    > >>>> Ведь у них всегда есть собственный форк кода андроида, так почему бы и не применить туда те же
    > изменения кода?
    >
    > Я вот понять не могу. Почему Вы считаете всех валенками, а таких как Вы — «что тут делать? Раз, два
    > и готово!». Не бывает такого и не будет. Повторюсь. У Вас там кто-то виноват. Тут кто-то мог бы сам
    > поправить и т.д.
    >
    > Я соглашусь лишь с Unreal Engine 4, который раскрыл сорцы и собирает с миру по нитки. Тут плюс в
    > том, что каждая игра идет с включенным в себя движком. В случае с сайтами — каждый сайт не может
    > выпускать свою версию браузера, чтоб там всё работало как положено. Но Вы именно в таком ключе
    > думаете, но не осознаете этого.

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

    > >>>> А тот же FlashPlayer, с которым мы сравниваем, форкнуть нельзя, он закрытый.
    > В сотый раз пишу. В мире уже 100500 версий JS плеера SWF контента. А у Вас он всё закрытый… Стив
    > Джобса начитались? Он тоже за это кричал. Хотя что-то я не видел ни один вариант опенсорснутого iOS.

    Очень интересно, можно мне пару ссылочек на такой плеер, чтобы я заменил в Firefox. Несколько лет назад у меня на старом ноуте были проблемы с производительностью, и я все пытался найти, но ничего путнего из этого не вышло. Конечно знаю, что тот же VLC может воспроизводить Flash видео — но он же не встроен в браузер. И да, я тогда искал плагин, который бы это делал, может сейчас дела обстоят лучше, но на тот момент нашел только нечто полурабочее, тоже без толку.

    > >>> Что прежде всего виноват производитель телефона, и только потом Google Inc.
    >
    > Вывод лишь один. Виноват гуглъ, что допускает баги. Они выпускают много говна, которое не
    > работает. Берут объемом, а не качеством. Тут стоит похвалить Apple. Но вы спускаете на тормозах всё,
    > что угодно и кому угодно. Но не Flash плееру.

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

    > >>>>> кучу советов редактирования бинарника
    > дайте ссылку на эту кучу

    http://lmgtfy.com/?q=fullscreen+flashplayer+focus+fix

    > О да, что такое Pepper Flash? Флеш плеер же закрыт и никто не имеет права его делать ;)

    Закрыт. То, что код доступен некоей компании, наверняка под условиями о нераспространении, этому никак не противоречит.

    По поводу менталитета пост-СССР ничего прокомментировать не могу, уж извините.

    > >>>>> Никакой возни со сворачиванием/разворачиванием проигрывателя я не хочу, это ужасно неудобно,
    > это просто раздражает.
    > Вас раздражает то, что о чем 99.9% даже не знают.

    Меня это устраивает. Данный пример сродни знанию наук — большинство не знают, да оно им и не нужно, их специальность не как не соприкасается, и они бы забыли, даже если знали. Здесь так же: у меня есть окружение, высокооптимизированное под мои нужды, в котором очень комфортно работать над повседневными задачами. Но это уже оффтоп, а если по делу, то эта проблема касается просто пользователей с двумя мониторами, и может в целом дела обстоят иначе, но среди моих знакомых не мало людей, кто, например, пользует ноут с внешним монитором — вот вам и два дисплея.

    > >>>>> был открытым, его противников было бы *значительно* меньше
    >
    > Вы не правы. Как-то кто-то в подобном обсуждении сказал со ссылкой на Microsoft «Флеш плеер плох
    > потому, что его придумали не мы».
    >
    > По факту Flash все ненавидят именно за баннеры, которые тормозят комп \ раздражают глаз. Всем
    > плевать на безопасность. Шансов быть ограбленным на улице среди белого дня в 100 раз выше, чем за
    > компом через Flash.

    Я не знаю про всех, но я честно сказал причины, которые не устраивают лично меня. Может у этих «всех» тоже есть причины помимо баннеров? Честно сказать, я так давно использую Adblock, что при мысли о Flash, баннеры последняя вещь, что мне приходит в голову.

    > Вы видите лишь поверхность, как это делают и другие. А я вижу и знаю ситуацию изнутри
    > Adobe. Кстати. Вы как-то выше писали, что Adobe свернули разработку Flash под Android,
    > Linux. давайте объясню то, что случилось на самом деле.
    >
    > Google «попросил» свернуть Flash Player на последней версии 11.1, которая не поддерживала
    > GPU. След. релиз 11.2 (я его видел и он отлично работал) должен был включить в себя то, что уже так
    > долго делали в Google. WebGL называется. Политическая война, не более. Взамен Google из коробки
    > продолжает встраивать и поддерживать Flash Player в своем хроме. Котрый на Linux есть тоже. А что
    > касается адобовского флеш плеера на линуксе — он там не нужен по причине низкого market share самого
    > линукса.
    >
    > Пол года назад купил новенький smart tv от lg. И о чудо — там есть встроенный flash плеер. Который
    > шикарно показывает рекламу на сайтах :D Обновлять его там даже смысла нет. У рекламного бизнеса есть
    > до сих пор сговор не брать flash баннеры версиями выше 10.3. Не смотря на то, что таких почти нет
    > людей.

    Последняя версия под GNU/Linux как раз 11.2.
    Что до гугла, так он давно перестал быть корпорацией добра. Кстати, вот вам еще один плохой поступок в полнеющую копилку злобностей от Google: именно это соглашение меж вашими компаниями можете посчитать апогеем, когда отовсюду возопили, как поскорее надо избавиться от Flash. Понимаете, в чем заключается самый то юмор: несмотря на малое покрытие GNU/Linux по сравнению с Windows, Linux коммьюнити обладает существенной силой. Причина в том, что каждый второй линуксоид — либо разработчик, либо, хотя бы, как-то связан с IT — например студент. Это люди, к которым как минимум прислушиваются, особенно если они умеют хорошо аргументировать. Вот и помирает потихоньку ваш Flash.
  • Количество сайтов с элементами Flash упало с 50% до 22% за четыре года
    0
    Так, по порядку, сначала по багу context.clearRect: ситуация с ним, на первый взгляд, та же самая, что и с багом полноэкранного режима FlashPlayer: у компании-разработчика были более важные — по их мнению — задачи, и потому багом те не занимались. Разница здесь в том, что в первом случае патч могли выпустить сторонние люди — и это то, о чем я говорил. Но тут «знающие» люди не стали этим заниматься, они предпочли сделать костыли, и забить. Я так понимаю, причины исключительно прагматичны — вероятно они решили, что пока обновление дойдет до пользователей, те уже разбегутся, и потому костыли городить все равно надо; но факт остается фактом. В случае с FlashPlayer возможности выпустить патч стороннему человеку нет даже гипотетической.

    Теперь по критическому багу: на самом деле, интересный вопрос, над которым стоит немного поразмыслить. Для начала, отсутствие патча в старых версиях — вина не только Google, но и производителей. Ведь у них всегда есть собственный форк кода андроида, так почему бы и не применить туда те же изменения кода?
    Но в целом, отвратительная политика гугла является общеизвестным фактом, и не только по отношению к Android. И, как вы думаете, к чему это привело…? К форку андроида, CyanogenMod, куда в-основном разработчики и стекаются; а не в ванильный андроид. А тот же FlashPlayer, с которым мы сравниваем, форкнуть нельзя, он закрытый.
    Какие из этих двух пунктов можно сделать выводы? Что прежде всего виноват производитель телефона, и только потом Google Inc.

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

    По отсутствию жалоб на полноэкранный режим — давайте поразмыслим, как это происходит: пользователь гуглит, как пофиксить проблему, он находит кучу советов редактирования бинарника, понимает что стандартный путь отсутствует, и α) молча делает редактирование, либо β) жалуется посредством репорта бага. Во втором случае он, конечно же, сначала ищет похожие репорты, обнаруживает, и понимает что дупликат смысла делать нет. В лучшем случае оставляет комментарий под старым багом.

    >Ах, да…
    >>>>>> «Во-первых, это нормально, что есть проприетарная MS Windows.»
    >
    >Во-первых, это нормально, что есть проприетарный Photoshop, Flash Player,
    >MS Windows, iOS, MS Office, Battlefield и т.д

    Хм, ну, нормально. Честно, смысла этого выпада я не понял. Возможно вы спутали меня со Столлманом — я признаю проприетарный софт. Просто это минус в его сторону по объективным причинам, только и всего. К слову говоря, я вас могу заверить — если бы FlashPlayer был открытым, его противников было бы *значительно* меньше. Если там такой хреновый код, что постоянно баги всплывают, его бы просто переписали.
  • Количество сайтов с элементами Flash упало с 50% до 22% за четыре года
    +1
    Сильный ответ, правда. Но я все же сделаю несколько замечаний.

    Вот он, баг про полноэкранный режим; правда «ОС», думаю, надо было ставить «все», но непринципиально. https://bugbase.adobe.com/index.cfm?event=selectBug&CFGRIDKEY=3569233
    Зарепортен еще в 2013 году, после чего его разработчики отложили на неопределенный срок, и… поставили статус «закрыт». Как говаривал Сталин, «Нет человека, нет проблемы».

    Как по вашему объяснить по-другому факт, что Adobe сначала прекратила разработку плеера под моб. платформы, а позднее остановила и под GNU/Linux (за исключением багфиксов), если не постепенным спуском FlashPlayer на тормозах?

    Проблема с документацией относится к FlashPlayer'у косвенно — если есть альтернатива, как лучше документированная реализация html5, то почему бы ее и не упомянуть?

    Ну и пара режущих глаза преувеличений:
    >Пойдите поругайте Microsoft за Windows, ведь каждый пользователь сумел бы и
    >справить код на С\С++.
    >То, что Вы можете залезть в чей-то код — я за Вас рад. Поменяйте, пожалуйст
    >а, в моем Firefox некоторые ньюансы.

    Во-первых, это нормально, что есть проприетарная MS Windows. Я ей не пользуюсь, и хотя причины этого не имеют отношения к исходному коду (здесь огромный список, который можно кратко свести к слову «удобство»; впрочем я больше разработчик, нежели пользователь, потому удобство для меня может быть несколько специфичным), нельзя не признать, что это просто еще один минус в сторону той ОС.
    Во-вторых, я не разработчик Firefox. Я просто утверждаю, что если есть какая-то проблема в браузере, которая меня сильно достанет, я могу попробовать ее исправить, благо опыта изучения кода неизвестной мне архитектуры с целью какого-то исправления у меня достаточно. Конечно же я не могу знать, что именно эта часть кода не окажется такой кривой, что там сам черт ногу сломит — но, как я уже писал, по-крайней мере я смогу добавить собранную информацию в баг-репорт.

    >Почему context.clearRectу HTML5 канвас на многих мобильных девайсах тупо не
    >работает? Ведь Android опенсорсный и каждый может внести правки…

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

    >Вы меня простите, но Вы очень сильно похожи на тех, кто по выходным собирае
    >т ядро линукса. Лишь потому, что есть исходники. А не потому, что что-то не
    > так.

    Не надо переходить на личности. Никто не пересобирает систему «просто так», этим занимаются энтузиасты с целью улучшения производительности. И, давайте я буду откровенным: это еще и полезный опыт — когда-то я тоже с этого начинал, и приобретенные тогда знания я использую каждодневно; более того, если бы не та пора, меня бы, вероятно, не приняли на работу, будучи студентом.
  • Количество сайтов с элементами Flash упало с 50% до 22% за четыре года
    +1
    Общий аргумент, это проблема безопасности — FlashPlayer как решето.

    Но, раз вы спрашиваете собственное мнение, то вот причины, почему не люблю FlashPlayer лично я:

    • Как я уже писал выше, у него отсутствует возможность отключить сворачивание полноэкранного режима, когда окно теряет фокус. Нет, конечно, умельцы уже накатали статей, как отредактировать бинарник, чтобы заставить его работать нормально, но согласитесь, это не нормально.

    • Adobe сама старается выбросить FlashPlayer. Для каких-то систем медленно, для каких-то быстрее — но мне лично совсем не хочется, чтобы однажды я зашел на сайт, и обнаружил, что из-за того, что Adobe успела добавить какие-то фичи в уникальную версию для какой-нибудь ОС перед окончательной остановкой разработки — я не могу пользоваться функционалом сайта.

    • Отсутствие внятной документации. Вот смотрю я на FlashPlayer с точки зрения пользователя, и, предположим, хочу включить аппаратное ускорение. Где это делается, как? На оф. сайте есть упоминание, якобы в каких-то настройках, путь до которых записан дословно по графическому интерфейсу, который, как минимум от версии к версии ОС, разный. Нет, безусловно, на сторонних сайтах гуглится, что можно добавить некую строчку в «mms.cfg», но почему поиск этих слов по сайту macromedia.com — только что специально проверил — выдает лишь несколько нерелевантных результатов? «Что плохого?» — спросите вы? Да то же, что и с любыми недокументированными возможностями — завтра Adobe выпустит новую версию плеера, и там будет конфиг находится в «mms2.cfg», и никто нам об этом не скажет.

    • Все познается в сравнении, и что мы имеем: html5, исходный код реализации которого в популярных браузерах открыт, против проприетарного FlashPlayer. Давайте я вас распишу во всех красках, к чему это ведет: во-первых внятная документация — даже, если она не будет сильно качественной, это будет осознаваться как существующая проблема, а не игнорироваться полностью, как с FlashPlayer.
    Во-вторых *существующее* коммунити. То есть, если я обнаружу, что у меня не работает, к примеру, аппаратное ускорение, шансы на решение этого бага существенно больше, хотя бы из-за значительно большего количества заинтересованных людей. Кроме того, я программист, и я могу и сам залезть в этот код, и попытаться разобраться в причинах. Даже если до патча дело не дойдет — по-крайней мере накопанную информацию я смогу предоставить в том же баг-репорте. В случае же с FlashPlayer я могу лишь пожаловаться «У меня не работает ускорение, моя конфигурация такая-то», и интенсивно надеяться, что кто-нибудь снизойдет до решения этой проблемы.
    В-третьих если я использую какой-нибудь не сильно мощный ноутбук в командировках, и вижу тормоза, в случае с html5 я могу скомпилировать с исходников все, понасобачив туда флагов навроде того же «-flto», который обычно игнорируют по причине сильных затрат ресурсов, но который дает очень крутые результаты по оптимизации. А что я смогу сделать с FlashPlayer? Вероятно, надеяться, что посещенные мной сайты не будут использовать чертов Flash? ;)
  • Количество сайтов с элементами Flash упало с 50% до 22% за четыре года
    0
    А еще огромный плюс, что его можно открыть на полный экран, и при переключении на другой рабочий стол html5 плеер не сворачивается.

    Чтобы заставить так работать FlashPlayer, приходилось вручную редактировать бинарник.