• Какой формат электронных книг наиболее универсален?

    @Bonart
    Для художественной литературы самый универсальный формат - fb2.
    Для технической сканированной - djvu, изначально электронной - pdf
    Ответ написан
    Комментировать
  • Ребёнок и программирование

    @Bonart

    > Дочери 4 месяца, планирую в будущем учить кодить на Java.
    Да это растление малолетних какое-то.
    Детишкам есть смысл давать лого или хаскель, т.е. языки с хорошей лаконичностью и REPL (желательно с графикой).

    Ответ написан
    Комментировать
  • Ноутбук программиста: Lenovo IdeaPad Z510A VS ASUS N550JV

    @Bonart

    В первую очередь нужна хорошая FulHD (как минимум) IPS-матрица. Второй монитор вторым монитором, но массовые ноутбучные матрицы - явный неликвид.
    За мощностью процессора гнаться большого смысла нет - охлаждение в корпусах ноутбуков оставляет желать лучшего, даже среднебюджетная настольная конфигурация порвет почти любой ноутбук.
    А вот памяти до упора и SSD от 120 Гб ставить обязательно (как правило, после покупки), за скоростью того и другого гнаться опять-таки смысла нет.
    Windows 8 бояться не нужно - ничего страшного в ней нет.

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

    @Bonart

    > После обычного С язык показался мне очень сложным и запутанным.
    Возможно, вам стоит выбрать себе другую профессию.
    Ява как раз относительно проста, но крайне многословна, что приводит к появлению монструозных фреймворков и программированию на XML.
    Есть смысл рассмотреть "скриптовые" языки (JavaScript, Python), в них кривая обучения более пологая.

    Ответ написан
    1 комментарий
  • Размагничивание магнитной полосы чипованой карты, в целях безопасности

    @Bonart
    Не следует так делать ни в коем случае. Карта станет невалидной и лучшее что вам будет светить — платный перевыпуск.
    В чем огромный плюс чиповой карты — если оплата ей прошла по полосе и вы оспариваете транзакцию, то банк вернет вам деньги, так как легко сможет отжать их у эквайера через платежную систему (перенос ответственности).
    К сожалению, есть нюансы — для некоторых регионов, включая США и ЮВА платежная система возврат не поддерживает.
    В этом случае деньги при скимминге и расчете белым пластиком в таких регионах уйдут навсегда.
    Что делать — запретить съем налички с кредиток, установить дневной лимит покупок, запретить трансграничные транзакции, стать клиентом банка, который все это поддерживает технически (Сбер, ТКС, Авангард, Связной) или достаточно клиентоориентирован, чтобы возвращать деньги за свой счет (Авангард, ТКС).
    За рубеж берите с собой минимум две карты разных банков разных платежных систем.
    Ответ написан
    2 комментария
  • Замена notepad ++?

    @Bonart
    SciTE (есть список подпрограмм) — code.google.com/p/scite-ru/
    Ответ написан
    1 комментарий
  • Выбор смартфона на Android?

    @Bonart
    Huawei Honor — пока все еще очень дешево за такое железо, обновление до 4.0 официальное. Где продается — смотреть по магазинам своего города, из общероссийских сетей видел в ДНС, но там недешево.
    HTC лучше не брать совсем — китайское качество и китайский сервис по совершенно не китайской цене. Многие модели имеют массовые сбои из-за перегрева.
    Самсунги — выбирать только те, на которых уже успешно идет 4.0, иначе есть большой риск пролететь.
    В евросети, МТС брать также не стоит — отвратнейший сервис, могут спокойно продать товар из заведомо бракованной партии, трудности с возвратом если что.
    Ответ написан
    1 комментарий
  • Компилятор Free Pascal в редакторе типа Notepad++?

    @Bonart
    Поставить SciTE вот отсюда code.google.com/p/scite-ru/
    Там оно уже есть
    Если нет — добавить в файл pascal.properties
    #using free pascal
    
    # compile
    command.compile.*.pas=fpc "$(FilePath)"
    
    # normal execute
    if PLAT_WIN
    	command.go.*.pas="$(FileName).exe"
    	command.go.subsystem.*.pas=2
    if PLAT_GTK
    	command.go.*.pas="kvt -e $(FileName)"
    
    # build
    command.build.*.pas=fpc -B "$(FilePath)"
    command.build.subsystem.*.pas=1
    
    command.name.0.*.pas=Debug Compile
    command.0.*.pas=fpc -g "$(FilePath)"
    command.name.1.*.pas=Debug Build
    command.1.*.pas=fpc -g -B "$(FilePath)"
    command.name.2.*.pas=GDB
    if PLAT_WIN
    	command.2.*.pas=gdbpasw "$(FileName)"
    if PLAT_GTK
    	command.2.*.pas=gdb "$(FileName)"
    	command.name.3.*.pas=DDD
    	command.3.*.pas=ddd "$(FileName)"
    
    Ответ написан
    Комментировать
  • Как правильно отказать кандидату после собеседования?

    @Bonart
    Отказывать лучше четко и прямо объяснив причину, без лишних обнадеживаний и реверансов.
    Результатом может быть:
    1. Человек подтянет слабый навык и придет снова.
    2. Человек не придет снова, но и обиду не затаит, а значит антирекламу делать не станет.
    3. Человек окажется неадекватен — это гораздо лучше, чем неадекватность внутри коллектива.
    Обтекаемые формулировки не дают понять соискателю в чем причина, «мы вам перезвоним» без звонка — хуже придумать сложно.
    Ответ написан
    Комментировать
  • Ручная или автоматическая проверка стиля кодирования?

    @Bonart
    А не проще использовать автоматический форматтер? Сразу будет проверка + приведение в божеский вид.
    Ответ написан
    Комментировать
  • Free Pascal статьи?

    @Bonart
    Не надо наступать на горло собственной песне. Даже если тема утонет под продуктами жизнедеятельности стадных троллехомячков — хабр не единственный ресурс для таких дефицитных публикаций.
    Ответ написан
    Комментировать
  • Наследование C#

    @Bonart
    Потому что переменная с имеет тип А, а значит новый (new) метод класса С просто не виден — виден только одноименный виртуальный метод A, перекрытый (override) в В, после чего унаследованный С, а значит будет вызван именно он.
    Ответ написан
    1 комментарий
  • Вопрос для гуру регулярных выражений

    @Bonart
    Классические регулярные выражения из математики такую задачу не решают. Но на практике последние версиии популярной библиотеки PCRE умеют:
    my $bal = qr/
        (?<bal>            # Name the rule (optional)  
        \{                 # Open brace
        (?>                # Possessive subgroup
            (?> [^{}]+ )   #  Grab all the non braces
        |                  #    or
            (?&bal)        #  Recurse
        )*                 # Zero or more times
        \}                 # Close brace
        )                  # End named rule
    /x;
    
    if ('{x{x}y{x}x}' =~ /^$bal$/ ){
        print "It's balanced\n";
    }
    
    $_= 'XXXX function xxx() {x{x}y{x}x} XXXX';
    
    while ( /\bfunction\s+(\w+)\(\)\s*($bal)/g ){
        print "function: $1\nbody: $2\n";
    }
    


    Да и дотнет не отстает:

    string pattern = 
        @"^((?<openBracket>\{) | [^\{\}] |" + 
        @"(?<closeBracket-openBracket>\}))*" +
        @"(?(openBracket)(?!))$";
    Regex r = new Regex(pattern, RegexOptions.IgnorePatternWhitespace);
    
    Ответ написан
    Комментировать
  • Не виснущий Wi-fi роутер. Существует ли?

    @Bonart
    Прошить его OpenWRT — железо у данного конкретного китайца вполне приличное
    Ответ написан
    2 комментария
  • Чем плох Bugzilla по сравнению с другими таск-трекерами?

    @Bonart
    У багзиллы непередаваемо кошмарный интерфейс, где проектировщик не валялся никогда. Плюс жесткая заточенность на трекинг багов, а не задач. Redmine в глазах нашей конторы порвал багзиллу чисто видом таблицы списка задач.
    Ответ написан
    1 комментарий
  • Помоготе выбрать БД

    @Bonart
    Oracle может подойти — там есть специальная поддержка для скользящих окон в синтаксисе и собственно движке запросов
    Ответ написан
    Комментировать
  • Почему рейтинг растет, а карма падает?

    @Bonart
    1. Подстроиться: выдать топик, который нравится одному из крупных стад хомячков.
    2. Расширить тематику: если пишешь для одной аудитории, то плюс к топику можно поставить многократно, а в карму — только однажды.
    Ответ написан
    1 комментарий
  • Динамические массивы внутри классов в Object Pascal

    @Bonart
    Описать динамический массив внутри класса несложно. Заранее
    type
    TIntegerArray = array of Integer;
    TMyClass = class
    private
    FMyIntegers: TIntegerArray;
    end;

    Но внутри класса динамический массив нужен как собаке пятая нога. Он хорош для передачи значений в функции и возврата их оттуда. Вставка, удаление, сортировка, поиск элементов для динамического массива будут во-первых страшно неэффективные, во-вторых — с невозможностью легкой замены на другой контейнер.
    Для всего остального намного лучше нормальный класс-контейнер, например, TIntegerArrayList из JCL.
    Ответ написан
    Комментировать
  • Какой телефон выбрать?

    @Bonart
    HTC HD2 — шикарный экран и стоит намного дешевле. Для WinMobile программ море плюс можно поставить Андроид без перепрошивки.
    Ответ написан
    Комментировать
  • Если в RAR-архиве выделено 5% для восстановления, то вероятность его восстановления равна 5%?

    @Bonart
    5% для восстановления по идее означает 100% восстановления, если повреждено не более 5% передаваемой информации нетто. Т.е. если надо передать мегабайтный архив, то 5% на восстановление дадут возможность исправить не более 50 килобайт мусора на выходе без повторной передачи, заплатив за это лишними 50 килобайтами передаваемых данных.
    Ответ написан
    5 комментариев