• Какие методы Вы используете, чтобы быстро найти участок в проекте с сотней тысяч строк?

    @justaguest
    grep с регулярными выражениями, и немного смекалки — самый лучший набор инструментов.

    Говорю, как человек, кому нередко приходилось что-то искать в огромных проектах, о которых заранее было известно только их предназначение, да используемый язык программирования.

    Живой пример: только вчера закончил писать курсовую, где в качестве практики фиксил небольшой баг в GUI текстового редактора Yi на Haskell (в котором я на момент написания этих слова разбираюсь чуть ниже среднего). Поскольку я не знаю ни архитектуры, не API, а в существующих статьях про интерфейс редактора нет ни слова, большая часть работы выглядела следующим образом:
    1. Войти в директорию, в которой предположительно — исходя из ее названия — находится интригующая меня часть кода
    2. Пойдя от обратного, спросить себя, как могла бы быть реализована та часть, которая меня сейчас интересует
    3. Найти в своих рассуждениях ключевые моменты, перевести их в ключевые слова, которые могли бы быть упомянуты в именах переменных/функций, комментариях, частично или полностью
    4. grep'нуть ключевые слова по коду, и пробежаться глазами по имеющимся линиям; особо интересные моменты просмотреть, открыв в текстовом редакторе
    5. Спросить, собрал ли я достаточно информации для понимания проблемы и возможного фикса; если нет, goto §2
    Ответ написан
    Комментировать
  • Какую литературу выбрать для глобального понимания, как работают ЯП и компьютер?

    @justaguest
    Уроки Битфрая. Рекомендую не на пустом месте -- я сам по ним когда-то учился ассемблеру. Написано качественно, что называется "для чайников"(да собственно так и называется "Дневники чайника"), и с легким юмором. Ничего близкого по качеству, из обучения ассемблеру, я в русскоязычном интернете не видел.
    Ответ написан
    Комментировать
  • Какой Linux дистрибутив выбрать для ноутбука Acer Aspire V3-771?

    @justaguest
    Я так полагаю, пакетный менеджер вам не важен, и вы подразумеваете выбором дистра, скорее, выбор окружения рабочего стола.
    Знаете, я долгое время пользовался KDE, и сейчас (по глупости) поломал и пакетный менеджер, и кеды. После пары смен окружения, я вам уверенно скажу, что более юзабельной среды, чем KDE, под линуксом я не нашел.
    Что пробовал:
    1) Unity -- я честно пытался себя к нему приучить, я искренне верил в слова "это с непривычки". Поверьте теперь мне -- это не с "непривычки", Юнити абсолютно неюзабелен, чего стоит только список открытых окон сбоку, где они абсолютно никак, кроме легкой выпуклости и едва заметных стрелочек, не отличаются от обычных приложений, стоящих там же.
    2) Mate + Compiz. Компиз в него очень криво интегрирован -- это помимо того, что сам компиз глючит, например вот уже второй год никак не исправят баг с исчезанием куба при прокрутке "рабочих столов".
    3) е17 -- глупость не лечится, именно так я охарактеризую разработчиков. Есть в современных окружениях мегаудобная фича, когда хватаешь окно за верхнюю часть, ведешь к краю, и оно "расползается" на полэкрана (в кде, и компизе -- когда последний не глючит -- можно еще настроить "расползание" на "четверть" экрана). Я нашел тему, где их просили добавить эту штуку, они сказали, если вкратце, что-то вроде "мы не видим в этом смысла". Были еще какие-то мелочи там, в-общем пока что не особо юзабельная среда.
    4) KDE. Конечно здесь какие-то баги были, но вроде в последнее время он у меня работал стабильно; да и потом, редкие баги еще можно стерпеть, а вот неюзабельность, как в других средах, нет. Однозначно, КДЕ лучшая среда.

    Так что ставьте Kubuntu, или что-то с KDE.

    UPD:
    P.S. Да, еще, как вариант XFCE + Compiz, но Compiz очень глючный в последнее время, потому по юзабельности лучше в эту сторону пока не смотреть.

    UPD2: К слову говоря, даже сейчас, пока я временно вынужден использовать Mate, я все равно юзаю КDE'шные приложения: Амарок(впрочем плеер, это действительно дело вкуса), Kate, Konsole. И, когда настраивал эмулятор, у меня не работал геймпад, пока я не открыл KDE'шные настройки -- т.к. в настройках Gnome ничего относящегося к геймпаду попросту нет -- и не зашел в настройки игровых контролеров.
    Ответ написан
    Комментировать
  • Exception handling disabled, use -fexceptions to enable?

    @justaguest
    Там же опции расположены в makefile? Откройте его в текстовом редакторе, найдите текст -fno-exceptions, и удалите его. Или загвоздка еще в чем-то?
    Ответ написан
    Комментировать
  • Существуют ли криптовалюты с майнингом исключительно на CPU?

    @justaguest
    Встречный вопрос: а существуют криптовалюты, чтоб в уме можно было подсчитать? Вот счастье: пришел в магазин, задумался ненадолго, прикинул в уме, и хлеба купил.

    Сложность подсчета влияет на стоимость: какой смысл в легко вычисляемой валюте -- ведь то, что можно насчитать на CPU наверняка можно еще быстрей вычислить на видеокарте.
    Ответ написан
    2 комментария
  • Какой язык программирования начать изучать филологу в 30 лет, если в школе у него было 3 по алгебре, 4 по геометрии, а по остальным предметам 5?

    @justaguest
    Основываясь на личном опыте выскажу немного парадоксальную идею: начинать лучше всего с ассемблера. Когда-то я учил Бейсик и Паскаль, и у меня всегда возникало недопонимание, мешающее кодингу: что такое переменная? Куда она уходит? Почему один кусок кода может быть быстрее другого, и как я могу знать об этом?
    Появившаяся значительно позднее возможность выучить ассемблер, можно сказать "открыла глаза"; причем стиль ассемблера после "обычных" языков вызывал недоумение -- если бы я начинал обучение с него, а потом перешел на более сложные, мне было бы значительно проще.

    UPD: Добавлю: если вы сейчас начнете учить Python, а потом перейдете на С++ или Paskal -- все-таки они ощутимо отличаются, и у вас тоже возникнут подобные вопросы.
    Рекомендую по ассемблеру уроки битфрая http://bitfry.narod.ru/ По его урокам я ассемблер и начинал учить.
    Ответ написан
    2 комментария