Задать вопрос
  • (Решение: нерабочая планка) Установленная оперативная память в Windows 7 x64. Почему разные данные в отчёте ОС, Биос и HWiNFO64?

    @sazhyk
    Мне кажется налицо косяк операционной системы. Однако, я бы, для того чтобы в этом убедиться, для начала:
    1. Глянул журналы винды (хотя они капец какие неинформативные, но что уж есть)
    2. загрузился с Live-CD/DVD/USB ОС семейства Linux (дабы исключить/подтвердить косяк винды) и в них глянул сколько памяти
    3. загрузился с Live-CD/DVD/USB ОС семейства Windows (дабы исключить/подтвердить косяк винды) и в них глянул сколько памяти
    4. поменял модули местами в слотах (ну мало ли)
    5. запустил по очереди с каждым модулем в отдельности и в разных слотах
    6. проверил обновления для материнской платы, почитал, что там в них обновили и накатил их
    7. сделал CLEAR CMOS
    8. Снова всё проверил, при необходимости включая шаги 1-5

    И, если в результате лив-дистрибутивы видят всю оперативку, а винда наотрез отказывается - под нож её. Можно попробовать ей дать шанс, и поставить все обновы, но я не верю в чудеса))
    Ответ написан
    3 комментария
  • Front end и back end на русском? Без англицизма если?

    @ferasinka
    Клиентское и серверное
    Внешнее представление и внутренняя логика
    Ответ написан
    Комментировать
  • PHP и инициализация очень тяжелых объектов

    gaelpa
    @gaelpa
    Сериализуйте объекты в инициализированном состоянии и только восстонавливайте их при каждом запросе.
    Подключения к базам и прочее, делайте по мэджик методу __wakeup (или __set_state если используете var_export).
    Причем большинство "подключений к базе" не потребует дополнительной работы за счет сохранения состояния между запросами на уровне расширения.
    Ну и не забудьте сделать профилирование, а то может спички оптимизируете на самом деле.
    Ответ написан
    Комментировать
  • VK и восстановление/удаление аккаунта: как?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Да, Ваши данные - это цель Вконтакте. Обращайтесь в полицию, прокуратуру, суд, ФСБ. Вашим делом займутся лучшие специалисты, будут работать в три смены, круглосуточно.

    А для начала - Вы прочитали пользовательское соглашение ВКонтакте? :)
    Ответ написан
    1 комментарий
  • Как изучить/разобраться в чужом PHP коде?

    @m-haritonov
    По методике:
    Я начинаю изучение фреймворков с точки входа (скрипта, который вызывается при получении HTTP запроса, в случае веб фреймворка). Смотрю на возможные пути дальнейшего выполнения кода в этом входном скрипте. Затем изучаю каждый из путей выполнения, доходя до точки завершения работы этого пути (т.е. изучаю от входа к выходу, сверху вниз). Пытаюсь понять предназначение каждого из путей и участков кода, которые на этом пути встречаются. В итоге пытаюсь понять как данный фреймворк вписывается в известную мне модель работы веб технологий (HTTP и т.п.), какая часть фреймворка предназначена для устранения дублирования кода и т.п.

    По софту:
    Для статического анализа кода поищите по запросам «php reengineering», «php reverse engineering». Обратный инжинеринг PHP кода есть, например, в Enterprise Architect: www.sparxsystems.com.au/platforms/php_uml.html

    Для динамического анализа кода можете с помощью xdebug сделать профилирование вызова и на основе полученного файла построить граф с помощью специальной программы (например, KCacheGrind). Подробнее здесь: xdebug.org/docs/profiler

    Ещё ссылки на некоторые инструменты: stackoverflow.com/a/4156265/925775 (мне там приглянулся PHP Call Graph)

    P.S.: по софту мог где-то ошибиться, т.к. нет большого опыта в использовании описанных инструментов.
    Ответ написан
    2 комментария
  • Что случилось с разработкой php-apc?

    EugeneOZ
    @EugeneOZ
    Нет смысла разрабатывать сегодня то, что не будет использовано завтра.
    Ответ написан
    4 комментария
  • Программы для учета в ТСЖ

    @servekon
    Работаю менеджером поддержки в фирме, которая разрабатывает ПО для сферы ЖКХ. Программа называется Мегаполис. Серверная часть на MSSQL, клиентская часть пока на MS Access(сейчас переписываем на C#). Есть личный кабинет для сайта, прием оплаты на сайте через Payonline, Webcreds. Работают на ней практически все подмосковье и не только. Будут вопросы, пишите в личку. Есть еще ПО для отдела субсидий.
    Ответ написан
    2 комментария
  • Mysqli vs PDO — что выбрать?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    PDO и mysqli — это две сильно разные вещи. PDO является универсальным DBAL, позволяющим работать с любой поддерживаемой базой.

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

    если вы собираетесь использовать другие базы, то имеет смысл использовать PDO, да ито. придётся дополнять его квери билдером, чтобы получить реальную переносимость. в иных случаях пользуйтесь mysqli, который предоставляет больше функциональности.
    Ответ написан
    2 комментария
  • mysql slow insert Медленный запрос insert

    stavinsky
    @stavinsky
    Простите если сказал банальность, но:
    1. партицирование — всегда хорошо ровно как и шардинг
    2. скуль держать на vds при 4 млн записей в таблице — это по меньшей мере странно, используйте тогда хотя бы MyISAM, хотя боюсь тоже не спасет.
    3. мускуль — 5.5, почему не сделали профайлинг? может быть стало бы понятно во что все упирается
    4. анализ дисковой тоже не помешает, хотя бы вывод iostat -dx 5 в момент записи и без нее
    Ответ написан
    5 комментариев
  • mysql slow insert Медленный запрос insert

    ivnik
    @ivnik
    Посмотрите чему равна innodb_flush_log_at_trx_commit и скиньте сюда результат show variables like 'innodb_%'

    Если innodb_flush_log_at_trx_commit = 1 то попробуйте изменить на 2 (flush журнала будет происходить раз в секунду, вместо каждой транзакции)
    Ответ написан
    Комментировать
  • mysql slow insert Медленный запрос insert

    AxisPod
    @AxisPod
    Неужто тут нужна InnoDB? Если памяти на табличку не хватает, то будет тормозить. Опять же судя по всему это VDS, а тут диск уже точно общий, так что другие VDS на этом сервере дают хороший тормоз.
    Ответ написан
    2 комментария
  • Не получается открыть COM-port в linux

    kenny_opennix
    @kenny_opennix
    Вывод пожалуйста команды.
    ls -l /dev/ttyS*
    

    echo отрабатывает корректно?
    Ответ написан
    7 комментариев
  • Где найти данные о распределении номерной емкости операторов г. Омска?

    VasiliyIsaichkin
    @VasiliyIsaichkin
    Web front/back-end (JS-full stack) app developer
    А чем вас официальная информация федерального агенства связи не устраивает? Информация официальная и свежая (01.07.2013)

    www.rossvyaz.ru/activity/num_resurs/registerNum/
    Единственно что, парсить надо, ну тут делов не много.
    Ответ написан
    Комментировать
  • Как вы распоряжаетесь своими пенсионными накоплениями?

    Slipeer
    @Slipeer
    Оставили в ПФР почему?

    Потому что не верю, что доживу до пенсии…
    Ответ написан
    2 комментария
  • Подобрать архитектуру распределённого Yii-приложения?

    Mendel
    @Mendel
    PHP-developer
    Первое что Вам нужно сделать это разобраться с guid.
    Я не пробовал этого в Yii, но насколько я помню навскидку там не должно быть серьезных препятствий к его использованию.
    Если есть какие-то наработки, модули модели и т.п., то надо будет их приучить к новой структуре. Поменять типы полей в базе (включая связанные), поменять автоинкремент на генерацию гуид по вашей логике и т.п.

    Создаете себе базовый класс наследник от CActiveRecord, скажем CDistributedActiveRecord.
    Этот класс у вас будет отвечать как за guid так и за репликацию.
    Собственно все АР наследуют от него.

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

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

    Совет — сильно подумайте о внешних ключах. Как это отразится на ваших ручных репликациях.

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

    Если мои ограничения вам подходят, или вы готовы под них подстроится, то можем переходить к репликации.
    Для репликации мы переопределяем методы создания и изменения записей таким образом, чтобы они сохраняли наши изменения в журналы.
    Журналы могут быть как у каждой реплицируемой таблицы, так и общие для всех. Зависит от задачи. Журналы у нас содержат в себе только:
    инкрементарный номер записи, который представляет из себя «скрытое время», который является сквозным для всех таблиц, возможно название таблицы, и guid изменяемой записи. Также мы указываем что произошло с записью. для целей репликации у нас есть два действия — сохранение и удаление. Нам не интересно была ли запись создана, или редактируется старая — все равно нам ее передавать.

    Далее мы создаем еще одну таблицу, в которой у нас будут указаны узлы с которыми у нас предусмотрена связь. Здесь может быть что угодно, включая реквизиты для связи с узлом, но обязательными полями должны быть — признак того, какие именно записи передавать (поскольку некоторые данные могут передаваться в несколько узлов сразу, то нет смысла выносить это в журналы репликации) и два номера обработанных записей: входящий и исходящий (не путать с номерами сообщений в 1с). В этих номерах мы будем отражать какие записи из журналов репликации мы получили или отправили (или если у нас будет оффлайн репликация, то какие изменения мы отправили и получили о них подтверждение о получении). Далее при передаче инфы соседям, мы будем делать запрос в журнал репликации, который будет отбирать только данные с нужным ПредприятиеВладелец (или без ограничения если у нас отправка «наверх») и с номером записи больше чем номер уже обработанный. Имея список записей которые нам надо отдать мы ищем их в соответствующих таблицах, формируем пакет для синхронизации, и отправляем его. При получении пакета мы проверяем записи на факт того, не являются ли эти записи уже отработанными до этого (проверяем по номеру, особенно критично для оффлайн синхронизации).

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

    Как передавать информацию? да как угодно. Хоть по почте кидайте в виде json.

    Не забывайте чистить «журналы репликации» от записей которые уже не нужны никаким из узлов с которыми есть связь (т.е. чьи номера меньше чем ВСЕ исходящие номера у всех узлов). Также хочу обратить ваше внимание на размерность счетчика-идентификатора в этом журнале. Делайте его побольше :)

    Что еще важно в большой, распределенной системе? Важны тщательно продуманные права пользователей, и важны ЛОГИ. Много больших и разных логов. Еще больше логов. Логи для разбора полетов лучше всего вести отдельно от журналов репликаций. В них требуется большая детализация чем там, с другой стороны они читаются редко, а пишутся часто, так что индексация нужна в меньшей степени. обязательно указывать кто вносил изменения, когда вносил и т.п. В идеале такие журналы держать вообще в отдельной базе или даже в текстовом файле.

    Вроде пока всё что вспомнил.
    Ответ написан
    2 комментария
  • Переезд на линукс, но как быть с офисом?

    @egorinsk
    Зачем переходить с Windows на Линукс? Большинство офисных программ пишутся, разрабатываются и тестируются именно под Windows, может я чего-то не понимаю, но какая выгода в переходе? Wine работает неидеально, имеет баги и недоработки.

    Тем более это странно выглядит, если у вас уже куплены лицензии на софт, то тут даже экономии нету.
    Ответ написан
    10 комментариев
  • Как решить проблемы после конвертации виртуальной машины из VirtualBox в VMWare Workstation?

    shanker
    @shanker Автор вопроса
    да, как раз виртуалка с Windows 7. Настройки её действительно отправляли в сон через 30 мин. Изменил, посмотрю поможет ли. Спасибо за интересную идею
    Ответ написан
    Комментировать
  • Эффективность труда: офис против аутсорса?

    @Eddy_Em
    Дома продуктивно работать могут только асоциалы-одиночки.
    Нормального человека дома от работы будут отвлекать.
    Ответ написан
    5 комментариев