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

Достижения

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

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

Все теги (18)

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

Все ответы (9)
  • Учебник по Сям (C, Си)

    ksusha
    @ksusha
    В дополнение к книжке Кернигана и Ричи рекомендовала бы «Практику программирования» Кернигана и Пайка, очень занимательное чтение, я для себя много нового узнала.
    Ответ написан
    Комментировать
  • Установка сервера SVN

    ksusha
    @ksusha
    >>корень репозитория должен быть корнем сайта и после коммита должен быть сразу доступен в браузере

    Пожалуй, включу режим зануды и внесу некоторую ясность. Репозиторий — это не просто набор файлов и папок. Репозиторий subversion использует организованную особым образом файловую систему. Обычно файлы хранятся в БД, либо являются файлами определенного формата, так что корень репозитория не может быть корнем сайта.

    Что касается использования файлов проекта по прямому назначению, нужно, во-первых, экспортировать рабочую копию(svn checkout). Это уже обычное дерево папок и файлов со скрытой поддиректорией .svn в каждом каталоге дерева. Такая локальная копия имеется у каждого участника проекта, который коммитит в центральный репозиторий. Но и эту копию нельзя использовать на продакшене, так как она содержит эти самые служебные поддиректории .svn. Для того чтобы от них избавиться, экспортируется чистая рабочая копия командой svn export. Вот теперь это ваш проект.

    Сейчас как раз разрабатываю веб-проект с помощью svn, могу поделиться как у меня все устроено.
    Есть VDS-ка, где крутится сервер svn. Есть две ветки репозитория — trunk и release. На локальном компе рабочая копия, по мере разработки коммичу все в trunk. Все скрипты тестирую на локалхосте. Девелоперская база данных общая, расположена на том же серваке что и svn.
    Ответ написан
    4 комментария
  • Объясните НДС

    ksusha
    @ksusha
    Отправила раньше времени :(

    Про НДС нужно помнить только в контексте той системы налогообложения, которая применяется у вас. Вас прежде всего должно интересовать уменьшение налоговой базы. Последний раз изучала вопрос года два назад, но не думаю, что все сильно поменялось. Если у вас объект налогообложения «доходы минус расходы», то НДС, уплаченный поставщикам, просто списывается на расходы, уменьшая налогооблагаемую базу.

    Если вы реализуете товары и услуги, не облагаемые НДС, то входной НДС списывается на себестоимость. А возмещению из бюджета подлежит только НДС 0%, а «не облагается НДС» или «не является плательщиком НДС» — это принципиально другое.

    НДС 18% и так всегда перекладывается на плечи покупателя, об этом можете не беспокоиться.

    А в случае, если вы продаете товар или оказываете услугу плательщику НДС, то никакого счета-фактуры вы ему не должны, т.к. сами плательщиком не являетесь, то есть ваш контрагент от сделки с вами ничего не может принять к вычету по НДС.
    Ответ написан
    1 комментарий
  • Как правильно организовать и защитить таблицу в которой будет хранится balance пользователя?

    ksusha
    @ksusha

    Зачем вам вообще хранить какой-то статус? При легальном апдейте баланса через приложение подписывайте все значащие данные в таблице баланса, передавая процедуре (или в запрос) какой-нибудь ключ. Подпись хранится в отдельном поле таблицы. Скажем, конкатенируете баланс и секретный ключ, берете sha1 от них - это подпись. При уменьшении баланса - такая же процедура: проверка подписи, если все ок - уменьшение баланса и подпись изменившихся данных. Если при попытке изменения баланса подпись не сходится, значит данные поломаны. Таким образом, не зная секретного ключа злоумышленник не сможет внести легальные изменения в таблицу балансов.
    Правда, в этом случае вам надо обеспечить сохранность ключа, хранить на диске не очень секьюрно.

    Кстати, тут все почему-то подумали о злобных хакерах со стороны. Не забываем, что сами сотрудники, имеющие доступ на продакшн, могут оказаться злоумышленниками. Когда речь идет о реальных деньгах нельзя полагаться на пушистость сисадминов/разработчиков.

    Ответ написан
    8 комментариев
  • Зачем нужна иерархия процессов в Unix?

    ksusha
    @ksusha
    Просто в Unix'е очень многое завязано на иерархии процессов, что и демонстрируют приведенные в цитате примеры.

    Вот еще примерчик, где используется иерархия.
    Когда процесс умирает, его родитель оповещается об этом. После этого он (родитель) удаляет из таблицы дескриптор умершего дочернего процесса. Если у процесса нет родителя, то этот дескриптор без перезагрузки ОС из памяти уже не удалить. Это расходует память. Дескриптор процесса весит не так чтобы уж очень мало — ~ 1,7 Кб.

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

    Еще реализация потоков (в Линуксе по крайней мере, где нет явной поддержки потоков) завязана на связи процессов между собой. Когда дочка порождается родителем, с помощью флагов указывается какие ресурсы шарить между ними. Плюс ко всему дочерний процесс наследует от родительского очень много свойств, напирмер UID, таким образом процесс запускается с теми же привилегиями, что и родительский.

    Если бы не было иерархии, все вышеперечисленное пришлось бы реализовывать как-то по-другому, но в Unix'e это так, просто особенность архитектуры, как Zigmar написал.
    Ответ написан
    Комментировать