Да, говорится о Git и в качестве подтверждения слов «Git быстро утверждается в качестве всеобщего стандарта» приводится в пример репозиторий Linux, что на самом деле выглядит забавно. Так что вроде как описано всё правильно, но… не очень.
Объяснение такое же, как объяснение почему иногда виндовые игры и бенчмарки под wine «работают быстрее», чем под самой виндой. Это же не дополнительная прослойка, а просто другой код, который реализует эти же действия. Во FreeBSD Linux ABI немного другое, но суть та же. Так что ж тут странного? Иногда быстрее, иногда медленнее. Где код оптимальнее — там и быстрее. А в wine ещё и часть нереализованного API в виде затычек, которое не выполняется, потому, очевидно, и работает быстрее, но без какого-нибудь сглаживания :)
Я всё понял! И все поняли, что у вас либа работает и музыка играет! Докопались исключительно до слов тут все. Ибо нету никакой «встроенной большой библиотеки звуков». Ибо тем более вкупе с «поддерживают стандарт MIDI» явно кажется, что Вы имели ввиду, что вся эта «библиотека» зашита в карту, либо же картой синтезируется. Но это не так.
Что касается аппаратного MIDI то в статье оно не упоминается и библиотеки никак не касается.
Зато в статье упоминается вот это:
в любом компьютере имеющем звуковую карту встроена большая библиотека звуков. Все звуковые платы поддерживают стандарт MIDI
Думаю, про это и имелось ввиду всеми кто написал про «поддержку MIDI». И всё верно говорят, потому как эта ваша фраза в корне неверна и некорректна. А вы грубите зачем-то. Ничего давно не встроено, никто давно не поддерживает.
...., но очевидные вещи (в том числе гайды от MS, как ниже правильно сказали) надо бы соблюдать. А то странная вещь получается — программа, которая как бы занимается автоматизацией инсталляций итд сама нарушает эти правила. Как-то несерьёзно это, ИМХО.
«Нарушает» в обратную сторону. Это совсем не одно и то же, речь как раз о противоположном. Юзер может невозбранно ставить проги куда хочет в свой каталог. Это даёт возможность ставить проги без админа. Но по дефолту программа не должна писать чего-то там «под себя», в свой каталог, потому как место ей вообще — в програм файлес. Даже если её ставит юзер себе в свою папку оно пишет куда следует, а не рядом. И это — правильно. В линуксе etc всё аналогично. Ну это такие основы элементарные, что даже странно, что нужно про это спорить.
Больше интересно вот что: ок, проги берутся с офсайтов, но потом вы инсталляторы расковыриваете как-то, делая свои какие-то «пакеты» или прямо так целыми и качаете, а здесь просто запускаете на выполнение и всё? Если первое, то как именно, на какие компоненты и как обходите многие лицензионные моменты о ненарушении целостности дистрибутивов прог при распространении. Или вы со всеми авторами договариваетесь? Или как? Если второе, то как тогда делаете зависимости, пропуск нажатия «далее» итд. Дайте больше технических тонкостей. А то не очень понятно.
А никто и не требует. Но есть конкретные правила получения каждой госуслуги, в частности, про получение заграна:
Гражданин, имеющий место жительства и место пребывания в пределах одного населенного пункта, обращается с заявлением в территориальный орган по месту жительства.
Оформление и выдача паспортов осуществляются ФМС России в пределах компетенции, территориальными органами ФМС России и их структурными подразделениями по месту жительства либо по месту пребывания граждан.
С чатами были какие-то проблемы, по-моему они подвисали где-то внутри при регулярном create. А может я просто не умел их готовить и не делал какие-то инициализации или наоборот, освобождения. Документация на некоторый счёт весьма скудна. Через sendPacket всё работало точно, надо только пакет полностью заполнить (from/to итд).
Про глюки, честно говоря, всего уже не вспомню. То коннект не получался, то память жрало в разных частях. Последнее что было (это уж не очень давно всплыло) — одна из крайних версий либы перестала соединяться при некоторых условиях (кажется, дело было в SASL авторизации), а так как использований наших продуктов в среднем довольно много и на разных платформах, и используются клиентами разные xmpp-сервера, то получалось что мы снова огребли от некоторого кол-ва наших клиентов. Пришлось гуглить, искать похожие баги (встречались многочисленные упоминания), рыть исходники итд итп. В итоге из релизной версии, исходников из svn-транка и некоторых рецептов из инета соорудил какие-то заплатки, кажется, до сих пор это и поставляется в сборках)
Ну и постоянно какие-то мелочи были. Когда не выходишь за рамки принял/отправил, наверно и не заметно, а тут приходилось прикручивать к активной системе с огромной нагрузкой, и надо ещё следить чтобы не посыпалась память, чтобы потокобезопасно использовалось при этом и экономично. Ну, как-то так…
В РезидентИвеле сохраняться можно было только в некоторых местах на пишущей машинке, причём кол-во сохранений было ограничено (ленты приходилось искать и таскать в инвентаре). Немного бесило.
Ну хорошо, давайте разберёмся. Итак, в чём «пистец» то? В том, что нет цепочки самовызовов? В том, что у вас куча поименованных методов? Или в том, что у меня код не в столбик? Конструктор можно сократить, ибо часть параметров (мной, например) никогда не используются (ipadx, ipady), часть напрямую зависит от других (weightx, weighty), итд итп. Это ведь вообще САМЫЙ полный вариант раскладки в свинге, можно на нём написать ВСЁ, причём не вычисляя в цифрах что куда подвинуть, как у вас, а описательно задавая решётку и расположение в нёй компонентов с кучей вариантов растяжения, расположения в ячейке итп. Если из моего кода убрать побочное/ненужное/отвлекающее внимание и расположить в столбик:
.add(
jTextField1, new GridBagConstraints(
2, 0, //ячейка
1, 1, //размер ячейки в таблице, типа rowspan, colspan как в html (вроде правильно написал) 1.0, 0.0, //я в 99% тут использую всегда комбинации 1.0 и 0.0 в зависимости от указания растяжки ячейки и растяжки компонента в ней GridBagConstraints.WEST, //расположение в ячейке GridBagConstraints.HORIZONTAL, //растяжка
new Insets(0,0,0,0), //отступы от соседей, тут тоже можно сократить: задать константно или вычислять в зависимости от расположения в общей таблице 0, 0 // никогда не использую
));
Не понимаю где тут сложность. Причём это всё гармонично работает с указанными минимальными, prefered итп размерами. Кросплатформенен. Да да, именно так, на что вам обращают внимание. Да, это не поплывёт и учитывает DPI, направление письма (лево-право, сверху вниз итд итп, а ваш, а?) и кучу других параметров платформы.
Да и вообще ваш способ преследует совсем другую идеологию, нежели swing-layout, так что тут и сравнивать не очень-то корректно.
является ли первый вариант более читабельным и локаничным чем второй?
Ну и сам собой напрашивается ответ — да это пистец какой-то. Вообще ничего невозможно разобрать.
Да ну уж, прямо. В чём разница особая? По количеству кода или его содержанию никакой разницы нету. Вы просто пытаетесь выставить своё сугубо субъективное недовольство layout выставить как несомненную проблему swing-layout. Несмотря на то, что тысячи java-разработчиков кайфуют от именно такого, как им кажется, удобного механизма. И выше вам на это же явно указали другие юзеры. Я с ними соглашаюсь. Лаяуты в swing реализованы очень удобно и существуют на любой вкус и цвет, плюс возможность писать свои (тут вообще бесконечная гибкость потенциально). Поймите, это не значит, что ваш способ совсем гадкий или что-то типа такого. Это просто ваш личный велосипед, который удобен только вам, вот и всё.
abs(a+b)-abs(a-b) = abs(-3+(-6))-abs(-3-(-6)) = 6
Про глюки, честно говоря, всего уже не вспомню. То коннект не получался, то память жрало в разных частях. Последнее что было (это уж не очень давно всплыло) — одна из крайних версий либы перестала соединяться при некоторых условиях (кажется, дело было в SASL авторизации), а так как использований наших продуктов в среднем довольно много и на разных платформах, и используются клиентами разные xmpp-сервера, то получалось что мы снова огребли от некоторого кол-ва наших клиентов. Пришлось гуглить, искать похожие баги (встречались многочисленные упоминания), рыть исходники итд итп. В итоге из релизной версии, исходников из svn-транка и некоторых рецептов из инета соорудил какие-то заплатки, кажется, до сих пор это и поставляется в сборках)
Ну и постоянно какие-то мелочи были. Когда не выходишь за рамки принял/отправил, наверно и не заметно, а тут приходилось прикручивать к активной системе с огромной нагрузкой, и надо ещё следить чтобы не посыпалась память, чтобы потокобезопасно использовалось при этом и экономично. Ну, как-то так…
Хорошая библиотека, удобная и довольно гибкая. Но тонких и неуловимых глюков в ней просто куча :(
.add(
jTextField1,
new GridBagConstraints(2, 0, //ячейка
1, 1, //размер ячейки в таблице, типа rowspan, colspan как в html (вроде правильно написал)
1.0, 0.0,//я в 99% тут использую всегда комбинации 1.0 и 0.0 в зависимости от указания растяжки ячейки и растяжки компонента в нейGridBagConstraints.WEST, //расположение в ячейкеGridBagConstraints.HORIZONTAL, //растяжкаnew Insets(0,0,0,0), //отступы от соседей, тут тоже можно сократить: задать константно или вычислять в зависимости от расположения в общей таблице
0, 0// никогда не использую));
Не понимаю где тут сложность. Причём это всё гармонично работает с указанными минимальными, prefered итп размерами. Кросплатформенен. Да да, именно так, на что вам обращают внимание. Да, это не поплывёт и учитывает DPI, направление письма (лево-право, сверху вниз итд итп, а ваш, а?) и кучу других параметров платформы.
Да и вообще ваш способ преследует совсем другую идеологию, нежели swing-layout, так что тут и сравнивать не очень-то корректно.