• Как правильно писать комментарии к коммитам?

    TheHorse
    @TheHorse
    Сейчас использую:
    <Название название подсистемы>:<Что сделано.>
    Example:
    Gaia: Implemented type traits for memcpy relocation.

    Критерии качества в этом контексте очевидны:
    1. Комментарий должен быть таким, чтобы можно было понять где вносились изменения.
    2. Комментарий должен быть таким, чтобы можно было понять что сделано.
    3. Комментарий должен быть лаконичным.

    Даты, ники и прочие вставлять не нужно потому, что эти сведения итак есть в СУВ.
    Ответ написан
    Комментировать
  • А какие приемы маркетинга больше всего раздражают вас?

    TheHorse
    @TheHorse
    1+1=3
    Ответ написан
    Комментировать
  • Динамические структуры. Обязательна ли процедура dispose()?

    TheHorse
    @TheHorse
    1) В паскале нет GC и встроенных умных ссылок, и отсутствие ссылок ничего не изменяет.
    2) Да.
    3) Нет, в С мусор не собирается автоматически.
    Ответ написан
    Комментировать
  • О стиле программирования: Переносить ли скобку?

    TheHorse
    @TheHorse
    Еще недавно, там где я работаю, это зависело от языка и даже фреймворка (в случае наличия). Позавчера мне просто надоело видеть 2 разных варианта в пределах одного экрана, и теперь у нас везде применяется вариант с переносом.

    Вариант с переносом выбран потому, что визуальная структурность и читабельность важнее количества строк кода.

    P. S. За вариант без переноса в pascal-подобных языках просто убивать хочется:

    var i : integer;
    function rock(hard: boolean); begin
       for i := 1 to 10 do begin
           //do something
       end;
    end;
    
    Ответ написан
    1 комментарий
  • Как получить одинаковый хэш двух схожих строк?

    TheHorse
    @TheHorse
    Можно пробовать хеш функцию, которая является суммой всех символов div С, где С — константа, большая (например,100). Тогда с высокой долей вероятности, строки, которые отличаются на 1-2 символа будут попадать в один хеш.

    В общем случае, для адресов не спасает расстояние Левенштейна, и не спасают какие либо хеш — функции.
    Ответ написан
    Комментировать
  • Лучшая первая книга об алгоритмах?

    TheHorse
    @TheHorse
    Голосую за Кормена). Экономической математики должно быть достаточно чтобы осилить, а остальное дело времени и усилий.
    Ответ написан
    Комментировать
  • Определение нарушения уровня абстракции?

    TheHorse
    @TheHorse
    Нарушением уровня абстракций, насколько я понимаю то, что вы вкладываете в понятие уровня абстракции, будет факт несогласованности интерфейса класса. Если у вас есть методы из названий которых следует, что они относятся к разным уровням абстракции, вы нарушили абстракцию класса. Другими словами, если в одном классе есть методы getCount и getCountOfFlat — на лицо нарушение абстрагирования. Появление таких методов вероятно при наличии наследования, которое я считаю исключением из правил.

    На сколько я понимаю, из курса ТСПП, уровень абстракции — абстрактная величина, и не может быть вычислена.

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

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

    P. S. Никогда не встречал понятие уровня абстракции за пределам контекста декомпозиции, может не правильно понял, следовательно, не правильно ответил :(
    Ответ написан
    6 комментариев
  • С чего начать?

    TheHorse
    @TheHorse
    Нет, не могли бы. Не ссылочки вам нужны, а книги. Предпочтения по языкам/направлениям есть?
    Фундаментальные алгоритмы — Т. Кормен «Алгоритмы. Построение и анализ.»
    Ответ написан
    5 комментариев
  • Какую тему по информатике выбрать для выпускной работы?

    TheHorse
    @TheHorse
    Могу порекомендовать разработать простенький веб-сервер на linux. За пару недель может осилите. Будет очень полезно, интересно, ну и вебом связано.
    Ответ написан
    2 комментария
  • Целесообразно ли брать SSD для ускорения компиляции больших библиотек?

    TheHorse
    @TheHorse
    На Visual Studio C++ проект в 40 000 строк 2:50 минут на винте и 2:10 на SSD Vertex 4. Проц — Core i7-3770K.
    Ответ написан
    Комментировать
  • Есть ли возможность репортить рекламу в старых постах на хабре?

    TheHorse
    @TheHorse
    1. Нужно убедится, что автор испортил статью специально, в рекламных целях.
    2. Выдать запрос / предупреждение с просьбой исправить.
    3. В случае отказа, либо отсутствия ответа — оповестить администрацию, которая, надеюсь, объяснит автору в чём он не прав.
    4. В случае отсутствия действий со стороны администрации — оповестить хабросообщество (опубликовать небольшой пост / QA, либо просто в личку нескольким людям с весомой кармой).

    P. S. Я считаю, что менять ссылки в статьях на рекламные — недопустимо, и думаю, что за это нужно наказывать. Но обязательно нужно убедиться, что автор сделал это намерено.
    Ответ написан
    3 комментария
  • Надо ли писать статью об управлении проектами для чайников?

    TheHorse
    @TheHorse
    Мне интересно было бы почитать.
    Ответ написан
    Комментировать
  • Сайт, способный выдержать высокую нагрузку (?)

    TheHorse
    @TheHorse
    Ответ теоретический, вне контекста php:

    1. В общем случае, хранить все в .html — не быстрее.

    1. 1 Если их мало и можно все хранить в ОП, то нет необходимости хранить кучи мелких файлов. Но сериализация нужна (на случай перезагрузки).

    1. 2. Если файлов намного больше, чем можно впихнуть в ОП, то хранение всего в файлах, будет менее эффективно, чем другие методы. Дело в том, что таким файлам свойственно иметь большой процент общей информации. По сути в каждом файле .html может быть от 0% до 100% уникальной информации, для упрощения выкладки, припустим что это значение равно 50%. Тогда, вами используемые средства, делают на 50% больше операций чтения/записи на файловой системе, которая, кстати, является самым слабым звеном производительности, в большинстве случаев.

    Если вы храните 50% общей информации (html-шаблоны) в ОП (что в большинстве случаев возможно), то вы на 50% снижаете нагрузку с файловой системы. Если быть точным, то не 50%, а вроде чуть больше, но это уже другой вопрос с «глубоким углублением».

    Если 50% уникальной информации, сложны в построении (что маловероятно), либо строятся (вычисляются / считываются) не оптимальным образом, то стоимость их построения может быть выше, чем двукратная стоимость операций на файловой системе, и тогда ваш метод эффективней, но это только по отношению к операциям чтения.

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

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

    2. Рекомендую использовать БД. Каждая современная СУБД, крайне не эффективна, и делает то, что вам не нужно (и не один раз). Но чтобы сделать что-то лучше, конкретно для своего проекта, потребуется очень много времени.

    3. Если стоит задача сделать безопасный, быстрый, надежный сайт то, я думаю, php, asp.net, python, ruby, node.js никоим образом не сравнятся с системным программированием на С/С++/Delphi (внезапно да, даже Делфи).

    4. То, что вы предлагаете — светлая инженерная мысль, удачи вам.
    Ответ написан
    3 комментария
  • Сколько будет 0/0?

    TheHorse
    @TheHorse
    Lim n / n, при n — стремится к 0 = 1. Другими словами 0 / 0 = 1.
    Lim n^2 / n, при n — стремится к 0 = 0. Другими словами 0 / 0 = 0.
    Lim n / n^2, при n — стремится к 0 = ∞. Другими словами 0 / 0 = ∞.

    Короче, 0 / 0 = что попало.
    Ответ написан
    3 комментария
  • Что почитать новичку для разработки под Android?

    TheHorse
    @TheHorse
    startandroid.ru/ — там множество уроков, от установки среды разработки и до полноценных приложений. Я очень быстро осилил (30 часов), по данным урокам.

    Они там не полные, но для старта — очень даже не плохо.

    P. S. если нет ограничений по времени, лучше изучайте по книгам.
    Ответ написан
    Комментировать
  • Имеет ли решение задача?

    TheHorse
    @TheHorse
    Для двоичного поиска нужно, чтобы R(k) была линейной, а вашем случае, если я не ошибаюсь, может быть что попало.
    Ответ написан
  • Как выводить звук некоторых программ только на определенное гнездо?

    TheHorse
    @TheHorse
    В общем случае не легко, а скайп в настройках звука предлагает выбрать устройство для вывода звука. Просто ставите на отдельную звуковую и все работает.
    Ответ написан
    1 комментарий
  • Как безболезненно уйти от Windows 7?

    TheHorse
    @TheHorse
    Поддерживаю dual boot.

    Сам недавно вернулся на Win 7 с Arch Linux. Основная причина — бесит KDE, GNOME, XFCE…, а aero просто шикарен. Что касается LibreOffice уже ответили, Qt Creator для с++ — лучше MS Visual Studio 2010 во всех отношениях, кроме как дебага.
    Wine — очень крутая и сильная штука, но пока что умеет не все, и бывают глюки. Windows 7 — рядом, в dual boot — очень рекомендую.
    Ответ написан
    1 комментарий
  • Существует ли уголовная ответственность программиста в случае гибели людей изза ошибки в коде?

    TheHorse
    @TheHorse
    Не уверен, но похоже что для каких либо случаев, можно приписать преступную халатность.
    Ответ написан
    Комментировать
  • Как изучить программирование с нуля?

    TheHorse
    @TheHorse
    Полностью поддерживаю SLY_G.

    Книги — источник систематически изложенной информации. Прочитайте хоть одну книгу по Pascal / C# (ну или что там еще простого есть (только не С, там сразу уклон в системное и сложновато будет, каким бы простым он не был)). А потом делайте что хотите:
    1. Свой небольшой / большой проект, который научит думать и решать проблемы.
    2. Чужой (open source) проект, где заставят делать правильно.
    3. Юниором куда-то, где вас будут явно учить.

    Ну и конечно, университет — очень полезен для программирования, даже если там программированию будет учить кто-то, кто сам ничего не понимает. Без фундамента, инженером (хорошим программистом) никто и никогда не станет. То бишь, быть может у вас получится решать поставленные задачи, но вы будете на это тратить намного больше времени, и решения будут менее эффективны.

    Доп. инфа:
    1. Учите математики, если вы не знаете что такое детерминант, ряды Тейлора, конъюнкция… — стыдно быть даже юниором.
    2. Англ. — печально, но все самое интересное на англ. языке
    3. Задавайте больше вопросов, но перед тем как их задавать пробуйте разбираться и думать самостоятельно.

    Удачи вам.
    P. S. Товарищи, не давайте вредных советов).
    Ответ написан
    Комментировать