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

Прочитать запись полностью »

Метки: ,

Вчера перебрал и перепаял гирбокс в аксу. Лишних деталей не осталось, к счастью. Закончил заниматься этим увлекательным делом в районе полчетвёртого ночи. Сегодня на очереди гирбокс АУГа. Вчера наконец купил мотор, сегодня заказал аккумулятор. Подготовка к игре 9го числа идёт полным ходом, в общем.

Метки:

5
Апр

Miranda 0.9.19

Прошлый раз, когда я выкладывал миранду, она была аж 0.8.17 что ли. Уже 0.9.19. Брать здесь.

Да, совместимость со старой сборкой не гарантирую, бэкапы, бэкапы и ещё раз бэкапы :) Из плагинов добавился waTrack, вроде бы и всё.

Под катом идиотизм.

Прочитать запись полностью »

30
Мар

compatibility

Для затравки загадка: почему Windows Vista и Windows 7 занимают по 20 и более гигабайт? Ответ в конце поста.

Итак, один из штатных троллей канальчека [info]danvolodar сделал вброс на тему полугодовой давности. Тема следующая: разработчики glibc в линуксе привели поведение memcpy в соответствие со стандартом и всякий софт начал из-за этого падать (потому что клухацкеры полагались на недокументированное поведение). Для начала закопипастю свою позицию по данному конкретному случаю:

Есть много денег, как у Майкрософта — лепи костыль для каждого кулхацкера (как, например, поддержка SimCity и прочего). Нет много денег, как обычно, следи, чтобы документированное работало как работало. В целом, виноваты, кулхацкеры, использовавшие недокументированные фичи.

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

У нас есть стандарт языка Си. Этот стандарт нужен не только для линукса на х86 и х86-64, но также и для линукса на всех остальных архитектурах, а также для Винды, юникса и прочих поделок. Это удобно. Ты пересаживаешься на новую ОС/другую архитектуру и ты знаешь, какого поведения ожидать от той или иной функции рантайма. Именно для этого стандарт и был создан. Поэтому, если находим баг в реализации стандарта, его надо исправлять. Обязательно. Или документировать различие, в случае если исправление нецелесообразно.

Тут сразу же встаёт проблема совместимости, когда сторонние разрабы-кулхацкеры, которые использовали твою реализацию стандарта, полагаясь на недокументированные бажные фичи, начнут плакать «аааа, у нас всё упало, верните как было». Так было, есть и будет. Разработчика-кулхацкера не интересует соответствие стандартам, его не интересует, что реализацию стандарта использует куча других людей. Ему нужно, чтобы его маленький хак работал и не надо было ничего делать. Вполне логичное поведение.

Эту проблему можно решать двумя способами.

  1. Мы вносим в документацию изменение: «идите нахер со своими стандартами, у нас будет вот так». Этот вариант хорош тем, что не надо ничего делать. Плох тем, что наша реализация отличается от стандарта, новый человек будет неприятно удивлён, когда об этом узнает => кривая обучения становится круче. Надо знать не только стандарт, но и кучу маленьких хачков, прикрученных ради неумех.
  2. Придумать способ сосуществования разных версий одного и того же модуля, даже если атрибут «версия» у них одинаковый. Это стоит а) денег (в виде работы проектировщиков, разработчиков и т.д.); б) места на жёстком диске юзера. Именно поэтому последние версии виндов так дохера занимают место.

Способ 2, реализованный в Майкрософте относительно прост и туп. При линковке в EXE записывается не только версия dll, но и хеш той конкретной длл, с которой мы линкуемся. А винда хранит кучу версий этот длл и умеет найти нужную дллку по хешу. В результате, у нас есть более новые версии библиотек с исправленными багами и старые версии библиотек для софта, который использует недокументированные фичи. Все довольны и счастливы. Почему так нельзя сделать в линупсе мне непонятно.

Способ 2, реализованный у Apple, проще и тупее. Там просто каждая программа таскает за собой все необходимые ей библиотеки с собой. И никаких проблем нет.

Вернёмся к нашим баранам. Предложенное Линусом решение — сделать memcpy алиасом memmove — абсолютно неприемлимо. Потому что, кроме 1% от всех десктопов, у Линукса есть ещё минимум 18% «встраиваемых устройств» (роутеры, свитчи, мобилы, пылесосы, станки, военные чипы всякие и пр.), которые ещё не вылезли в рай двухгигагерцовых процов и гигабайтов памяти. И, скорее всего, не вылезут. И им разница между memcpy и memmove важна и критична до сих пор. И эти 18% в абсолютном исчислении в разы больше, чем 1% от десктопов. Наиболее правильное решение в условиях линуксоидов (малый бюджет, етс) было предложено на рсдн тогда же, полгода назад:

  1. На уровне молока матери билд-системы разделение на DEBUG и RELEASE билды, вместо самописных велосипедов в половине make-файлов.
  2. За год до изменения модифицируем debug-версию memcpy(), чтобы там вылетал ASSERT() в случае пересекаюшихся буферов.
  3. Даем девелоперам год на фикс. Пишем об этом явно и везде.
  4. Спустя год, меняем release-реализацию.

Но линуксоидам же нахер не надо этого делать, им надо поорать друг на друга «ты мудак и твоя реализация говно». Это, кстати, показывает всю суть текущей реализации опен-сорца в большинстве проектов. Когда Линусу или ещё кому предъявляешь претензии (например, по дохера не закрытых критических багов годами), они говорят: это опен-сорц, возьми да исправь сам, а не хочешь — жри, что дают, бесплатно же. Когда же делаешь так с ними (см. разрабов glibc), то вой до небес: «как вы смели, моя софтинка падает, мне править некогда, вы — мудаки».

Теперь не менее важное, кто виноват в данном конкретном случае (в порядке убывания):

  1. Те, кто посадил в 1993м году багу и 17 лет не правил.
  2. Те, кто использовал этот баг.
  3. Те, кто изменил поведение де-факто без оповещений заранее.
30
Мар

aug

Ствол поставил. Многие непонятные раньше вещи типа «смешная китайская приблуда хз зачем» при установке стали нужными и понятными =)

Завтра сборка гирбокса.

Метки:

28
Мар

Rango

Ходил буквально вчера в кинотеатру посмотреть мультик. По рекомендации [info]bolanoid решил сходить на Ранго. И, знаете, мультик не разочаровал даже в дубляже. Очень напомнил замечательный сеттинг Deadlands. А под кат засуну пару спойлеров (в виде, как всегда, криво написанной рецензии)

Прочитать запись полностью »

Вы знаете, ну вот наверняка их Сталин до этого довёл. Или ещё кто из правительства. Я не знаю. Но меня это начинает доставать уже.

  1. Заказы можно делать только из IE. На сайте нихера не написано. Узнал случайно.
  2. Сегодня звонок: «вы знаете, а из вашего заказа половины нет в наличии». На вопрос: «А ничего, что когда я заказывал всё было?» ответ «Ну вот так получилось».
  3. Доставка тоже жжёт. «А может вы до метро дойдёте?» Агащасблин. И полчаса рабочего времени выкину.

Вашу ж мать, господа предприниматели. Пока вы так бизнес ведёте, нам никакие реформы с вторжениями не нужны. Сами всё профукаем.

Пойду искать, где заказать оставшиеся детали.

Метки: ,

Вышли IE9 и Firefox 4. Я прямо разрываюсь.

Firefox приклепал «Firefox Sync». Молодцы. Только вот синхронизацию расширений так и не сделали. Как всегда, в общем.

Заказал кучу деталек для страйкбола.

Страница 13 из 50« Первая...1112131415...203040...Последняя »