1. bash / Говнокод #16743

    −80

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    Devastator:ark grawl$ sass-convert -F scss -T sass -i -R *.scss
    Error: '*.scss' is not a directory
      Use --trace for backtrace.
    Devastator:ark grawl$ sass-convert -F scss -T sass -i -R .
    Devastator:partials grawl$ sass-convert -F scss -T sass -i -R *.scss
    Error: 'colors.scss' is not a directory
      Use --trace for backtrace.
    Devastator:partials grawl$ sass-convert -F scss -T sass -i -R .
        convert ./colors.scss
      overwrite ./colors.scss
    Errno::EISDIR: Is a directory - .
      Use --trace for backtrace.
    Devastator:partials grawl$ sass-convert -F scss -T sass -i -R
    Error: directory required when using --recursive.
      Use --trace for backtrace.

    sass-convert великолепен

    Запостил: Grawl, 22 Сентября 2014

    Комментарии (32) RSS

    • писали скорее всего виндозники, но принцип старых BSD скорее всего применим на 100%. а именно:

      несмотря на внешнюю навороченость и гибкость, програма работает только так как описано в примерах. если отсутствуют примеры, скорее всего программу никто не тестировал и не запускал.
      Ответить
      • Всё намного хуже. Писали рубисты.
        Ответить
        • Говоришь так, будто Руби – это что-то плохое.
          Ответить
          • Если говорить о совместимости между версиями всяких либ да и самой руби - да, плохое. Без виртуального окружения невозможно юзать.

            Видимо, с таким же похуизмом они отнеслись и к командной строке...
            Ответить
            • А, совместимость – это да, краеугольный камень просто. Хрен знает как что-то запустить, не изучив всю подноготную. И, главное – пишут “just put it in your gemfile”, а на деле надо хер знает что вообще сделать, начиная с `bundle exec server`.
              Ответить
              • Моё знакомство с ruby началось и закончилось на поднятии redmine... Тогда я и узнал, что нельзя просто взять, и поставить самые свежие версии либ, и что даже последние циферки в версии имеют огромное значение.

                P.S. Впрочем, в оправдание Руби, мало-мальски сложный софт на питоне я тоже гоняю через virtualenv.
                Ответить
                • Вот такая же фигня. Пытался использовать Middleman – так он тупо не запустился. И всё.
                  Ответить
                • Чем дальше, тем меньше у меня желания работать с динамическими языками. Без нормальной типизации одолевает грусть и тоска.

                  Пытаюсь написать тулу на пистоне, утомился бороться с пропущенными return и тупыми опечатками, которые должен находить не я в процессе отладки, а компилятор до начала этого процесса.
                  Ответить
                  • Ну так hint/lint тебе в зубы!
                    Ответить
                  • > в процессе отладки
                    В процессе тестирования же.

                    P.S. При динамической тупизации лень ручной отладки запросто побеждает лень написания тестов. Да и тесты на таких языках поприятней писать, чем в тех же крестах. Хотя для мелкой тулзы это оверкилл, да. И написание тестов, к сожалению, убивает весь фан от программирования.
                    Ответить
                    • Кмк, тесты имеет смысл писать, когда ты уже продумал внутреннюю структуру. А пока ты играешься и только прикидываешь, как всё это примерно будет работать (тот самый прототип, да, я часто такие пишу), тесты это только потеря времени и убийца потока.

                      Поставил и прогнал pylint. Действительно много чего нашёл, но и шума довольно много.
                      Ответить
                      • Я, конечно, совсем не адепт TDD. Но в последнее время стараюсь заставлять себя писать тест вместо "попробовать вот с такими параметрами, а потом еще с такими, а теперь еще раз с теми, что в первый раз"... Ибо задалбывает запускать руками. Заодно вылезают на поверхность такие детали интерфейса, о которых не думаешь, если начать с реализации...

                        О 100% покрытии речь естественно не идет. Только интересные положительные/отрицательные кейсы, только хардкор. Остальное - втопку до следующих итераций.

                        > убийца потока
                        Из потока написания кода - да, вырывает. Из потока рассуждений о интерфейсе - имхо, не вырывает, а наоборот, даже затягивает.
                        Ответить
                    • > лень ручной отладки запросто побеждает лень написания тестов
                      Винительный говнокод!

                      Примеры:
                      1. (кто?) Вася побеждает (кого?) Петю.
                      2. (кого?) Васю побеждает (кто?) Петя.
                      3. (что?) лень побеждает (что?) лень.
                      Ответить
                      • Я что-то неправильно написал? Можно поподробней разобрать мою ошибку, если да.
                        Ответить
                        • Неоднозначное предложение вышло (см. отличие примера 3 от 1 и 2). Оба слова "лень" выглядят так, будто бы написаны в именительном падеже, но это не так.

                          Пусть молоток всегда побеждает в схватках с гвоздём. Тогда "Гвоздь был слаб, потому сегодня молоток побеждает гвоздь" и "Гвоздь сегодня побеждает мототок, поскольку молоток сильнее" будут нормальными предложениями, но без пояснений никто ничего не поймёт.
                          Ответить
                          • Здесь можно сэмулировать эргативную конструкцию страдательным залогом (гвоздь побеждён молотком) или возвратным (гвоздь побеждается молотком). Тогда неоднозначность исчезает.
                            Ответить
                        • Хотя, тут ещё побеждает "лень <что-то делать>" а не "<что-то>", т.е. утверждение ещё надо инвертировать для понимания. Если после этого предложения вставить какую-нибудь формулу, порог вхождения читателя можно ещё немного повысить.
                          Ответить
                          • Идём глубже:
                            При динамической тупизации лени ручной отладки запросто побеждают лени написания тестов.


                            Лени — род. падеж ед. ч. или им. падеж мн. ч. или вин. падеж мн. ч.?
                            Ответить
                            • Кстати, в случае с мышами выходит интересно:
                              1. Мыши Microsoft побеждают мыши Genius.
                              2. Белые лабораторные мыши побеждают серых мышей.
                              Ответить
                              • Не умничай, местное быдло всё равно ничего не поймёт. А за знание русиша - 5.
                                Ответить
                                • Ситуацию можно адаптировать для закоренелых программистов:
                                  > "лень побеждает лeнь".replace(/[a-z]/g, "*")
                                  "лень побеждает л*нь"
                                  Ответить
                                  • Ты показал мне то, что я так долго стремился увидеть. Спасибо тебе.
                                    Ответить
                                    • По иронии судьбы я сейчас на это в коде нарвался. Злой компилятор выдал несколько непонятных ошибок вида
                                      MyClass.cc:100500: error: stray '\363' in program

                                      А всё потому, что при переименовании класса была случайно набрана русская "С".
                                      Ответить
      • Раньше мне удавалось скармливать ей целые деревья, но теперь, видимо, она обновилась.
        Ответить

    Добавить комментарий