• Вопрос по flock в php?

    У flock() нет в общем случае гарантированного поведения, на *nix лучше, по-моему, использовать семафоры.
    Ответ написан
    4 комментария
  • Выбор СУБД для проекта?

    Почему-то все отвечающие акцентировали внимание на выбор между разными, но очень похожими SQL РСУБД. NoSQL вполне себе достойная альтернатива, особенно если подавляющее большинство выборок либо являются выборками по одной таблице со словарями, либо сложными выборками, нацеленными на обеспечение гибкой схемы сущностей (задаваемые пользователями атрибуты и т. п.).
    Ответ написан
  • Миграция на Linux?

    >2. Существуют какие-то примочки, позволяющие привести вид папок в Линуксе к стандартному C:/Program Files?

    Этот вид ни разу не стандартный. Стандартный — Filesystem Hierarchy Standard
    Ответ написан
    Комментировать
  • Что нужно, для того что бы платить пользователям сайта деньги? Юридически

    Возможно налоговой, если не удерживается НДФЛ
    Ответ написан
    Комментировать
  • обсуждение идеи для fail-over бизнеса

    Имхо, потребуется не только, вернее не столько зашифрованный тоннель, а сами данные должны шифроваться на стороне клиента (симметрично или ассимитрично открытым ключом), так чтобы вы их прочитать не могли (включая имена файлов). Закрытый клиент для этого вряд ли подойдёт без сертификации ФСБ или кого там. А синхронизацию будет, наверное, интересно делать, особенно если минимизировать трафик и бакапы, например, логов делать инкрементальной.
    Ответ написан
    3 комментария
  • CMS и фреймворки

    Мне кажется не любят её здесь по другой причине — эта CMS не требует (или производит впечатление, что не требует) квалификации пользователя, а её код и архитектура не является (или производит впечатление, что не является) примером для подражания.

    P.S. Я старался быть максимально политкорректным :)
    Ответ написан
    6 комментариев
  • Что такое Blueprint в PHP?

    1. сущ.
    1) синька, (свето)копия; фотография в голубых тонах
    2) изготовление светокопий
    3) (детальный) план, программа, проект; образец, шаблон
    Синонимы:
    plan, draft, pattern, scheme
    2. гл.
    1) делать светокопию; копировать чертёж
    2) проектировать, намечать, планировать

    В разговорной речи инженеров часто используется как чертёж или проект. Слово произошло также как наше «синька», обусловлено господствующей в свое время технологией копирования чертежей цианотипиия, дающей копию в синих тонах.
    Ответ написан
    Комментировать
  • Читаете ли вы толмуты по программированию в 1000-с лишним страниц от "корки до корки"?

    Главы по каким-то специализированным вещам на практике мне не нужным (например, разработка десктопных UI или работа с экзотической БД типа MS SQL :) ) только по диагонали глазами пробегу.
    Ответ написан
    Комментировать
  • Проект в одиночку. Как?

    Ну и пишите в тесте что-то вроде

    result = MySuperClass::runSuperAction();
    assertEqual(result, 'Expected result');

    затем реализуете саму функцию (пустую), чтобы скомпилировались тесты, запускаете тесты и видите, что они не проходят, потом изменяете функцию так чтобы тест прошёл и, считайте, функциональность вы реализовали, тестирование этой функциональности и документацию.
    Ответ написан
    Комментировать
  • Контроль версий базы данных (сайта)

    Вроде как Drupal из коробки поддерживает версионирование нод.
    Ответ написан
  • А что вы делаете после установки ubuntu?

    Ставлю нужный софт: IDE, AMP, phpmyadmin, браузеры, deluge, skype и т. п. Ну и удаляю всё ненужное :)
    Ответ написан
    Комментировать
  • На чём писать демона

    Если вам точно нужен статический язык, но не си/плюсы, то посмотрите в сторону Java/С#.
    Ответ написан
    1 комментарий
  • Что вы можете сказать об СПбГУ ИТМО?

    Почему про ЛЭТИ не думаете? :-/
    Ответ написан
    Комментировать
  • Рендер модели со связанными данными - вопрос по Django от новичка?

    Хоть и не спец, сам джангу только осваиваю
    <ul>
    {% for album in albums %}
      <li>{{ album.artist }} - {{album.disc}}
        <ol>
        {% for track in album.track_set.all %}
          <li>{{ track.title }}</li>
        {% endfor %}
        </ol>
      </li>
    {% endfor %}


    Как-то так, подробнее docs.djangoproject.com/en/1.3/topics/db/queries/#related-objects

    P.S. для уменьшения обращений к БД («проблема 1+N» кажется называется)можно в контроллере использовать
    albums = Album.objects.select_related().order_by('id_album').all()[ 0:10]


    P.P.S. Модели у вас очень оригинальные, я бы так описал:
    class Album(models.Model):
        artist = models.CharField(max_length=100, null=True)
        disc = models.CharField(max_length=100, null=True)
     
    class Track(models.Model):
        album = models.ForeignKey(Album)
        title = models.CharField(max_length=100)
    Ответ написан
    1 комментарий
  • Как закрепить за собой права на код, написанный нанятым специалистом?

    Статья 1295. Служебное произведение

    1. Авторские права на произведение науки, литературы или искусства, созданное в пределах установленных для работника (автора) трудовых обязанностей (служебное произведение), принадлежат автору.

    2. Исключительное право на служебное произведение принадлежит работодателю, если трудовым или иным договором между работодателем и автором не предусмотрено иное.

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

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

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

    Плюс ещё нюанс именно для ПО — задание должно быть на создание программы, а не на выполнение работ. Грубо говоря, задание должно быть на создание движка сайта, а не на создание сайта. Но даже в этом случае за автором остаётся право использования программы в собственных целях (затрудняюсь сказать может ли он открыть конкурирующий с вами проект), потому лучше, чтобы он этого права явно отказался в договоре.
    Ответ написан
    1 комментарий
  • Изучить программирование с нуля?

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

    Для начального обучения хорошо подходят, по-моему, Python (+Django если говорить о вебе) или Ruby (+RoR в вебе), на худой конец PHP. Компилируемые языки со статической типизацией, по-моему, приводят начинающего программиста в ситуации, когда за деревьями не видно леса — заставляя уделять много внимания формальной правильности они способствуют снижению внимания на логическую правильность.
    Ответ написан
    Комментировать
  • ORM для PHP

    Doctrine2 — первая тоже была хороша, но вторая сказка :) Модели обычные объекты, не наследники чего-нибудь — связь с базой задаётся или в конфигах, или в аннотациях (комментарии к классу и свойствам по типу phpdoc) — никакой двойной, а то и тройной ответственности, модель не знает как и где она хранится в принципе, никаких методов объекта save или класса find нет. За хранение (вернее «персистентность») объектов отвечают репозитории. В общем реализованы паттерны DataMapper и UnitOfWork, а не популярный ActiveRecord в разных вариациях.
    Ответ написан
    5 комментариев
  • Существует ли простенькая CMS под Google App Engine ?

    >Там есть какие-то особенности при использование готовых CMS или написание своей СMS?

    Главное отличие, отсекающее подавляющее большинство неадаптированных разработок — использование собственного NoSQL хранилища (BigTable кажется) вместо привычных РСУБД а-ля MySQL/PostgreSQL/MS SQL/… Если CMS работает с MongoDB или CouchDB то адаптировать будет намного проще. Плюс, если память не изменяет, отсутствие доступа на запись к ФС, то есть изменяемые из админки конфиги/шаблоны/темы хранить в файлах не получится.

    Конкретно для Python — есть предустановленная Django (немного устаревшая и без некоторых фич) и много сложностей для написания примитивной CMS быть не должно. Трудности были, если склероз не изменяет, со связями «многие-ко-многим»
    Ответ написан
  • Борьба с php прокси для хостера

    Какая нибудь из расширений iptables? Например:

    owner

    This module attempts to match various characteristics of the packet creator, for locally-generated packets. It is only valid in the OUTPUT chain, and even this some packets (such as ICMP ping responses) may have no owner, and hence never match.
    --uid-owner userid
    Matches if the packet was created by a process with the given effective user id.
    --gid-owner groupid
    Matches if the packet was created by a process with the given effective group id.
    --pid-owner processid
    Matches if the packet was created by a process with the given process id.
    --sid-owner sessionid
    Matches if the packet was created by a process in the given session group.
    --cmd-owner name
    Matches if the packet was created by a process with the given command name. (this option is present only if iptables was compiled under a kernel supporting this feature)
    Ответ написан
    Комментировать
  • Сравнение Zend Framework vs Symphony vs Codeigniter?

    symfony, Symphony это CMS кажется :)

    А так, мне нравится использовать symfony2 как фреймворк, а ZF2 как библиотеку классов, подключаемую к фреймворку.
    Ответ написан
    Комментировать