Java (j2ee, hibernate, spring, etc), python (twisted, cyclone, etc), C, scala, perl, embedded programming (linux, os-9/9000, vxworks, qnx), web development (jsp, velocity, xml/xslt, various template engines), databases ( mysql, sybase, postgres, mongo, redis)...
А теперь еще и flask, да и elasticsearch.
Контакты

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

Все теги (32)

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

Все ответы (683)
  • Что почитать про нормализацию БД?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    В принципе учебник для этого не нужен, нормализация - минимизация избыточности данных, имеет 5 форм. Первые три формы нацелены на связанность данных, две последних на улучшение структуры. Очень хорошо описано здесь - citforum.ru/database/dblearn/index.shtml (главы 6 и 7)
    Кратко здесь - support.microsoft.com/kb/283878/ru

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

    А вот и видео неплохое - www.youtube.com/watch?v=1GWx5CZdSCg
    Ответ написан
  • Чем отличаются языки программирования PHP, PYTHON, RUBY?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    Еще есть java, go - они тоже очень популярны.

    И на том и на том пишутся замечательные вещи!

    Go очень просто использовать - практически как замена C/C++, только более быстр в разработке. Сильно набирает популярность, достаточно низкоуровневый, чтобы на нем писать системные утилиты и большие распределенные системы. У него есть минусы (дебаггер например), но и плюсов очень много (дебаггер редко нужен).

    Java - отдельный вопрос, на нем очень удобно писать очень большие проекты, но кривая вхождения очень высока. Сам язык достаточно простой, но знание фреймворков (библиотек), как раз и составляет то, за что платит работодатель, и очень достойные деньги. Это, сильно не совру, один из самых высокооплачиваемых и рентабельных языков программирования.

    Что касается PHP - изначально язык создавался для простых проектов для WEB, как замена CGI, но вроде бы как вырос, появились объекты... Но, дальше WEB он не развивается.

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

    Python - отличный язык, очень богатая инфраструктура, куча коммерческих применений. На нем можно делать большие, очень большие, проекты. Очень легок в освоении. Я предпочитаю что-то быстро напрототипировать в питоне, а потом и переписывать не хочется.

    Сам программирую на Python, C, Java, PHP.
    Относительно неплохо разбираюсь в Ruby и Go, на уровне влесть в чужой проект и поправить ошибку.

    Мои фавориты - Java, Python. Присматриваюсь к Go.
    Ответ написан
  • Как перейти на linux front-end разработчику?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    Очень хорошее начало, давайте определимся.
    1) Нужен дистрибутив, который достаточно легко ставится, имеет большое комьюнити, достаточную документацию
    2) Дистибутив должен обладать как клиентским вариантом, так и серверным
    3) Дистрибутив должен быть известен и широко распространен
    4) Иметь все необходимое для разработки
    5) Поддерживаться производителями и разработчиками стороннего ПО (а есть и такие)!

    По хорошему, данным целям отвечают всего два дистрибутива и их клоны - RedHat и Debian. Дистирубивы на первый взгляд достаточно сильно различаются настройками и установкой софта, но внутри белее или менее похожи.

    Из Debian и его клонов рекомендую Ubuntu, именно для неё сейчас самая лучшая документация (и на русском), поддержка и комьюнити, а сам дистрибутив включает в себя все свеженькое и новенькое в плане поддержки железа и новых версий софта.
    - www.ubuntu.com

    Из RedHat и его клонов настоятельно рекомендую CentOS как клиент/серверную платформу - документация, поддержка железа комьюнити.
    - www.centos.org

    Оба дистрибутива бесплатные, более чем полностью.

    PS. Наверное здесь сейчас будут предлагать кучу экзотики - не ведитесь на это! Учиться ездить нужно на простых автомобилях, а не на тюнингованных. Да и эти дистрибутивы (RedHat/Debian) именно мейнстирм, в которых все вылизано и просто работает.
    Ответ написан
  • Почему на Java не разрабатывают операционные системы?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    Всеё банально просто. Java компилируется в байткод, а не в ассемблер. Байткод интерпретируется виртуальной машиной JVM, которая при необходимости делает компиляцию в нативный код процессора (технология JIT - Just-in-time compilation).
    Другими словами, для того чтобы получить нативный код нужно запустить байткод внутри JVM. Именно поэтому никто не пришет на java драйверов и прочей низкоуровневой хрени. С другой стороны, чтобы эту хрень писать на java, нужно чтобы было одно из двух условий:
    1) либо процессор напрямую поддерживал спецификацию JVM (со всем барахлом типа GC, memory allocation^ resource management)
    2) либо операционная система поддрерживала в ядре спецификацию JVM (с тем же самым барахлом)

    Ну и не нужно говорить, что язык барахло, если на нем нельзя писать драйверы и секции для MMU. Есть еще десятка два языков, которые это не поддерживают, например все X.NET или erlang^ python и т.д.
    Java для прикладного программирования, а C/C++/D/ASM и прочее - для машинного.
    Ответ написан
  • Знает кто альтернативу Acronis под Linux?

    leahch
    @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    Предположу, что альтернативы Acronis-у под линуксом нет! И не будет!
    В смысле понимания задач решаемых акронисом под виндой. Также как и нет такой альтернативы под маком.
    А все потому, что это никому там не нужно, ну вот абсолютно никому. Все что нужно для переноса системы на другой том и средства копирования/бекапов, все имеется из коробки.
    Да, это не одна супер-программа с сотней возможностей, это тысяча программ и утилит, каждая под свою конкретную задачу.
    Изначально акронис появился для переноса и дубляжа систем виндовс, так как стандартных средств в самом виндовсе не было. Это была та ниша, которая пустовала и давала пользователю быстро и качественно сдублировать систему.

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

    Например на маке достаточно было отформатировать диск и просто скопировать на него все содержимое. Вуаля! У нас есть загрузочный диск!
    В юниксах это делалось точно также. В линуксах и фрибсд, трабовалось еще поставить загрузчик одной командой!
    Далее пошло-поехало. Делаем образ системы, используем контроль версий (patch/diff/rcs/cvs/svn/git/hg, далее везде) или nis/ansible/puppet/chif и т.д. В маках теперь для этого есть тайммашина. Сетевая загрузка, управление установкой и прочие вещи. LVM,BTRFS/снапшоты. Да просто пишем скрипты с rsync/dd и куртизанками.
    Нужно корпоративненько - ставим бакулу/бареоc/urbackup.

    А чо в винде? Убогий бекап из коробки и то в корпоративной редакции?

    Юникс решает любую задачу кучей разных способов. Не ищите альтернативу акронису - её нет! Просто опишите свою задачу и я и куча специалистов подскажут вам как её решить. Здесь нет волшебной таблетки в виде акрониса. Есть большая аптечная лавка.

    Ну и на последок, как мы копируем диски на сотню/другую помпухтеров. Есть образ системы в виде архива tgz, есть обновления этого архива в виде отдельных файлов с изменениями, тоже tgz. Есть скрипт, который состоит из 5-7 строк:
    1) сделать разделы через parted
    2) форматнуть файловую систему
    3) растарить базовую систему
    4) растарить изменения
    5) установить загрузчик
    6) накатить конфигурацию
    7) отмонтировать
    Если нужно что-то особенное именно вам, то это делается от 30 минут до дня (в тяжелых случаях). Вот фото части дисков, эта операция у нас происходит раз в два месяца (меняем контент в необслуживаемых системах).
    ef77177df2684fb09fe5b24a2ea191e5.jpg
    Ответ написан

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

Все вопросы (12)