Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (8)

Наибольший вклад в теги

Все теги (65)

Лучшие ответы пользователя

Все ответы (53)
  • Что конкретно может дать программисту знание языка Lisp?

    @mithraen
    У каждого языка есть набор подходов к разработке, которыми в нем наиболее удобно пользоваться. Опыт использования языков с разными парадигмами разработки меняет мышление — вы можете сформулировать задачу разными способами.

    Это, в итоге, оказывается полезным и при разработке на других языках.

    С практической же точки зрения сейчас Lisp мало интересен. Насколько я вижу, сейчас на практике используют скорее Scala.

    Вообще функциональные языки очень интересны. Их освоение для более-менее опытного программиста оказывается сложным (новичку их осваивать даже проще), из-за того, что многие привычные подходы в них оказываются неудобны. Но после освоения — оказываются даже проще в разработке чем объектно-ориентированные и процедурные.

    Итоги:
    1. Освоение функциональных языков полезно потому, что повысит скорость и качество разработки и на других языках (правда будет неприятный побочный эффект — от них станет подташнивать, когда окажется что вещь реализуемая в несколько строк на haskell требует несколько страниц бреда на C++).

    2. Их очень удобно использовать в качестве скриптовых языков внутри более сложных продуктов (как тот же AutoLISP).

    3. В крупных «enterprise» проектах их использовать нереально из-за того что мало разработчиков которые с ними знакомы, а для бизнеса заменимость сотрудников критически важна.

    4. В небольших проектах, которые пишутся в одиночку — после освоения они могут дать заметно большую скорость реализации проекта. Соответственно, если заказчику все равно на чем сделано, лишь бы работало и работало хорошо, и оплата попроектная — функциональщик может банально зарабатывать больше.

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

    6. Ну и еще — например в JavaScript и Perl есть ряд инструментов, привычных для функционального программирования. Владение хотя бы одним функциональным языком программирования позволит писать более красивый код на этих языках.
    Ответ написан
    3 комментария
  • Лучший ЯП для парсинга веб-сайтов

    @mithraen
    Как только возникает слово «парсинг», в первую очередь стоит вспоминать о Perl (Practical Extraction and Report Language). Для решения этой задачи там есть:

    • модули для работы с HTTP — как низкоуровневые, так и специальные, типа WWW::Mechanize — удобен, если надо написать скрипт, который последовательно выполняет какой-то набор операций (например надо автоматизировать какие-то действия пользователя web-интерфейсе, а API никакого не предусмотрено);
    • модули для асинхронной работы по HTTP (AnyEvent::HTTP) — позволяют написать робота, который без необходимости создавать множество тредов будет выполнять одновременно несколько запросов;
    • регулярные выражения — мощнейший инструмент для парсинга данных, и в perl его использование наиболее удобно (это часть синтаксиса языка);
    • библиотеки для разбора HTML в дерево (например HTML::Parser);


    Python хороший скриптовый язык общего назначения, но для задач разбора данных код на Perl будет куда проще.
    Ответ написан
    1 комментарий
  • Git. Коммиты на сервер?

    @mithraen
    1. Создать на сервере репозиторий:
    $ ssh servername
    $ git init-db --bare myreponame

    2. Сделать клон репозитория локально:
    $ git clone servername:myreponame

    3. Сделать так, чтобы по push в серверный репозиторий автоматически синхронизировался рабочий каталог:
    $ ssh servername
    $ cd myreponame/hooks
    $ cat > update
    #!/bin/sh -e
    refname="$1"
    oldrev="$2"
    newrev="$3"

    gitdir=`pwd`

    if [ "$refname" = «refs/heads/master» ]; then
    tmpdir=`mktemp -d`
    cd "$tmpdir"
    git \
    --git-dir="$gitdir" \
    archive --format=tar "$newrev" | tar x
    rsync -a --delete-after "$tmpdir/" /var/www/что-там-надо/
    rm -rf "$tmpdir"
    fi

    exit 0

    4. Не забыть сделать этот скрипт исполняемым:
    $ chmod +x update

    5. Делаем первый коммит: на локальной машине заходим в репозиторий и делаем:
    $ touch test
    $ git add test
    $ git commit -m 'test' test
    $ git push

    6. Проверяем что у нас получилось в рабочем каталоге, радуемся жизни
    Ответ написан
    4 комментария
  • Как заставить разработчиков пофиксить сайт?

    @mithraen
    Это проще для маленькой организации. Для большой все совсем по-другому.

    Есть огромный поток различных запросов и мнений от клиентов. 90% из них бред. Из оставшихся 90% нужно этому конкретному клиенту, но не нужно бизнесу. Выделить из этого потока действительно полезные рацпредложения непросто.

    Далее саппорту нужно передать это сообщение разработчикам. Разработчикам внести изменения, потом проверить что это изменение ничего не ломает в других браузерах (например они не очепятались при внесении изменения), да еще и таки протестировать в Safari.

    То есть такое изменение потребует суммарно чуть ли не человекомесяц работы. То есть обойдется компании в пару тысяч долларов. И теперь главное — какое количество пользователей придет в onlime от других провайдеров (или не уйдет от них к дргим) из-за поддержки Safari?

    Т.е. это чисто убыточное действие. Которое компании — не нужно. Оно может стать не убыточным, если компания использует это в своем PR типа «мы, в отличии от наших конкурентов, заботимся о наших пользователей даже с другими ОС нежели Windows», тогда это просто затраты на рекламу.

    Для ТП вашей проблемы действительно просто нет. Для бизнеса совершенно нормально от нескольких процентов настандартных пользователей просто избавляться. Пользователи MacOS и Linux традиционно решают свои проблемы сами :(

    В рамках взаимодействия с onlime как с бизнесом ваша проблема неразрешима. Им это действительно делать невыгодно. Но в рамках человеческого общения с сотрудниками компании как специалистами — проблема разрешима.

    Но в этом случае вам фактически надо выполнить роль project manager'а и эксперта, а также ряда других сотрудников компании бесплатно и без соответствующих полномочий.
    Ответ написан
    1 комментарий
  • Стоит ли учить пхп новичку?

    @mithraen
    Вы начали не с PHP а с JavaScript :)

    PHP в качестве первого языка при изучения программирования плох тем, что позволяет писать очень грязный код, и при этом весьма беден в плане возможностей как языка (а не библиотек).
    Человек, который имел опыт программирования на другом языке, на PHP часто пишет лучше.

    JavaScript как язык гораздо мощнее — в нем даже есть элементы функционального программирования. Для поднятия своих скиллов как программиста очень рекомендую с ними ознакомиться.

    Для web-разработчика сейчас знать PHP надо. Хотя бы потому, что код на нем наверняка придется в жизни не только писать, но и читать.

    Так что раз вам нужно делать web-сайт — изучайте PHP, и не напрягайтесь по этому поводу. Если же хотите в будущем выбиться в верхний ценовой сегмент по квалификации, даже если будете делать сайты на PHP, все равно ознакомьтесь с другими языками и предлагаемыми ими парадигмами.
    Ответ написан
    6 комментариев