С багтрекером (у нас багзилла) меня долго смущало, что создание бага занимает существенное время: нужно тыкать мышкой, выбирая разные категории и заполняя несколько полей в соответствии с формальными требованиями. Поэтому для «быстрых заметок» использую текстовый файлик, который у меня всегда открыт в одном из Far'ов. Одна строчка = один баг/фичареквест в формате:
<компонент> <табуляция> <описание проблемы в произвольном стиле в объёме достаточном для того, чтобы я сам вспомнил, прочитав это позднее>
Компонент берётся из ранее использованных или придумывается новый на ходу; по сути минимальная каталогизация. С таким подходом замеченный между делом баг обычно отнимает 5-10 секунд на фиксацию. Если есть проблемы с воспроизводимостью, то больше, но всё равно всегда можно дописать типа «возникает иногда». После завершения текущей задачи свежие записи из этого списка можно неспеша закинуть в багтрекер, оформив как полагается, или быстро пофиксать, если проблемы небольшие. Здесь же спокойно разобраться с «возникает иногда» и понять, когда именно.
Иногда возникает некоторое чувство отчаяния, когда, отлаживая код, над которым работаешь непосредственно, напарываешься подряд на несколько других ранее неизвестных багов. Возникают депрессивные мысли типа «всё сломалось, мы все умрём». Подобная система «заметил-записал-забыл» эффективно помогает не допускать такого отчаяния.
Умение печатать вслепую (пусть не очень быстро) может внезапно очень пригодиться, если вы окажетесь за границей. Я из интернет-кафе в китайской глубинке отправлял письма домой на нормальном русском без всяких проблем. Только вводить текст приходилось в онлайн-транслитераторе яндекса, потому что раскладку там установить, конечно, не разрешают. Точно так же без проблем сидел в Германии с немецкой клавиатурой (на ней ещё и Y и Z зачем-то переставлены). Часто слышу от людей жалобы, что «приходится писать транслитом, потому что здесь русскую клавиатуру/наклейки не достать».
Меньше года назад очень быстро перешёл с перла на джаву. Почти «Питон -> C++». На джаве до этого писал только несколько простых задачек в универе лет 10 назад. В целом за месяц неплохо освоился, учитывая, что пришлось ещё и вникать в архитектуру большого проекта. Разумеется, многое пришлось осваивать и после, что-то осваиваю до сих пор, но программист на то и программист, чтобы постоянно учиться :-) Главное не бояться нового.
К строгой типизации привык быстро. Возможно, использую её активнее некоторых: в проекте со старых времён тянутся непараметризованные коллекции, и кто-то по инерции продолжает с ними работать, а я везде пихаю генерики, так как я сразу познакомился с джавой с генериками и не знал джаву без них. Пользуюсь новыми штуками (к примеру, аннотациями), когда опытные джава-программисты относятся к ним с осторожностью. Тоже потому что я не знал джаву без них. Активно использую регекспы там, где другие программисты токенайзерами парсили. Считаю, это преимуществом, а не недостатком (точнее недостатком других джава-программистов, которые не освоили регекспы). Да, люблю анонимные классы, с тоской вспоминаю цепочки вроде join-map-grep-split, что в джаве возможно (и я иногда делаю), но выглядит по-уродски. При этом понимаю, что адекватный toString часто может заменить map, чем и пользуюсь. Иногда сокрушаюсь из-за невозможности множественного наследования (до перла некоторое время писал на плюсах, но это уже было давно). Обожаю эклипс с его средствами генерации кода, рефакторинга и квик-фиксами.
В общем, да, это два разных мира, но в новом несложно освоиться, если разбираешься в программировании вообще и имеешь голову на плечах. А говнокод можно плодить и с десятилетним опытом одного языка за спиной.
Да, я неправильно суть претензии изложил. Нельзя подавать ток определённой мощности, если нет нагрузки. Собственно, и тока-то нет без нагрузки. А с нагрузкой мощность может быть разной, ведь там подаётся постоянное напряжение. Скорее как-то так: «Какую максимальную мощность тока должны обеспечивать порты, поддерживающие стандарт USB 2.0».
С помощью матриц вращения — легко. Конечно, зависит от того, как вы задаёте траекторию, но в любом случае вам нужно не больше одного синуса и одного косинуса на каждый кадр, а это уже нестрашно.
Да, вы правы. Результат вращения разный получится. Уберу про тождество.
А с тангенсом надо аккуратно — он в бесконечность может уйти, если поворачивать на 180°.
> Для пущего эффекту надо было на ftp://10.10.10.10 выложить.
Возможно, и выложили у себя во внутренней сети =)
10.0.0.0/8 — диапазон для приватных сетей.
Известно зачем — чтобы пятёрку получить =)
На самом деле непонятно, как лучше отложится — если реализовать его самому в программном коде или выполнить пару раз на бумаге вручную :-)
С багтрекером (у нас багзилла) меня долго смущало, что создание бага занимает существенное время: нужно тыкать мышкой, выбирая разные категории и заполняя несколько полей в соответствии с формальными требованиями. Поэтому для «быстрых заметок» использую текстовый файлик, который у меня всегда открыт в одном из Far'ов. Одна строчка = один баг/фичареквест в формате:
<компонент> <табуляция> <описание проблемы в произвольном стиле в объёме достаточном для того, чтобы я сам вспомнил, прочитав это позднее>
Компонент берётся из ранее использованных или придумывается новый на ходу; по сути минимальная каталогизация. С таким подходом замеченный между делом баг обычно отнимает 5-10 секунд на фиксацию. Если есть проблемы с воспроизводимостью, то больше, но всё равно всегда можно дописать типа «возникает иногда». После завершения текущей задачи свежие записи из этого списка можно неспеша закинуть в багтрекер, оформив как полагается, или быстро пофиксать, если проблемы небольшие. Здесь же спокойно разобраться с «возникает иногда» и понять, когда именно.
Иногда возникает некоторое чувство отчаяния, когда, отлаживая код, над которым работаешь непосредственно, напарываешься подряд на несколько других ранее неизвестных багов. Возникают депрессивные мысли типа «всё сломалось, мы все умрём». Подобная система «заметил-записал-забыл» эффективно помогает не допускать такого отчаяния.
К строгой типизации привык быстро. Возможно, использую её активнее некоторых: в проекте со старых времён тянутся непараметризованные коллекции, и кто-то по инерции продолжает с ними работать, а я везде пихаю генерики, так как я сразу познакомился с джавой с генериками и не знал джаву без них. Пользуюсь новыми штуками (к примеру, аннотациями), когда опытные джава-программисты относятся к ним с осторожностью. Тоже потому что я не знал джаву без них. Активно использую регекспы там, где другие программисты токенайзерами парсили. Считаю, это преимуществом, а не недостатком (точнее недостатком других джава-программистов, которые не освоили регекспы). Да, люблю анонимные классы, с тоской вспоминаю цепочки вроде join-map-grep-split, что в джаве возможно (и я иногда делаю), но выглядит по-уродски. При этом понимаю, что адекватный toString часто может заменить map, чем и пользуюсь. Иногда сокрушаюсь из-за невозможности множественного наследования (до перла некоторое время писал на плюсах, но это уже было давно). Обожаю эклипс с его средствами генерации кода, рефакторинга и квик-фиксами.
В общем, да, это два разных мира, но в новом несложно освоиться, если разбираешься в программировании вообще и имеешь голову на плечах. А говнокод можно плодить и с десятилетним опытом одного языка за спиной.
Lookup tables — это тоже очень хорошо.
А с тангенсом надо аккуратно — он в бесконечность может уйти, если поворачивать на 180°.
Возможно, и выложили у себя во внутренней сети =)
10.0.0.0/8 — диапазон для приватных сетей.
На самом деле непонятно, как лучше отложится — если реализовать его самому в программном коде или выполнить пару раз на бумаге вручную :-)