Задать вопрос
  • Зависает намертво линукс как исправить?

    @great_77
    у меня 16.04 на ноутбуке с интеловскими кишками мёртво вставал,и долго искал проблему,пока не нашёл вот это:...«Если виснет намертво на дистрах выше 14.04.3, то 99% что это из-за графики Интел. У меня были регулярные зависания через 20 - 40 - 90 мин. Решилось так sudo gedit /etc/default/grub приводим строку GRUB_MDLINE_LINUX_DEFAULT к следующему виду (если ничего не добавляли) GRUB_CMDLINE_LINUX_DEFAULT=„quiet splash intel_idle.max_cstate=1“ Сохраняем, закрываем. sudo update-grub И перезагружаем. Проблема должна пропасть, если виновата Intel HD.»... МНЕ ПОМОГЛО. специально неделю гонял без перезагрузки видео в браузере хром.
    anonymous (30.06.17 05:54:02)
    Ответ написан
    1 комментарий
  • Как работает подход Unit of Work?

    @Flying
    Unit of Work - это паттерн определяющий логическую транзакцию т.е. атомарную синхронизацию изменений в объектах, помещённых в объект UoW с хранилищем (базой данных).

    Если обратиться к исходному описанию этого паттерна у Мартина Фаулера - то видно что объект, реализующий этот паттерн отвечает за накопление информации о том какие объекты входят в транзакцию и каковы их изменния относительно исходных значений в хранилище. Основная работа производится в методе commit() который отвечает за вычисление изменений в сохранённых в UoW объектах и синхронизацию этих изменений с хранилищем (базой данных).

    Паттерн Unit of Work как правило не является полностью самостоятельным, он обычно тесно связан с паттерном Identity Map, задача которого - сохранение карты созданных объектов, взятых из хранилища с тем чтобы гарантировать что одна единица информации из хранилища представлена ровно одним экземпляром объекта данных в приложении. Это позволяет избежать конфликтов изменений т.к. не допускает ситуации когда два объекта, представляющих один и тот же элемент данных в хранилище, изменены по-разному. Информация из Identity Map используется в методе commit() паттерна Unit of Work для вычисления разницы между исходными данными и накопленными изменениями.

    Поскольку для вычисления разницы (и, соответственно, определения того что и каким образом должно быть изменено в хранилище) необходимо знать какие данные и как именно хранятся в объектах - как правило необходима также реализация паттерна Metadata Mapping, описывающего связь между содержимым хранилища (к примеру таблицами и столбцами базы данных) и классами / свойствами объектов.

    Также, если данные в хранилище не являются независимыми (к примеру связи между таблицами в базе данных) - может потребоваться реализации ряда паттернов, отвечающих за сохранение информации о связях между данными (это паттерны раздела Object-Relational Structural Patterns в каталоге паттернов).

    Подводя итог: сам по себе Unit of Work довольно прост в своём внешнем интерфейсе, но реализация его корректной работы требует предоставления множества дополнительных данных, поэтому миниатюрных примеров привести не могу.

    Если говорить о PHP - то лучшей реализацией этих паттернов на PHP безусловно является Doctrine ORM. В частности в разделе Working with Objects документации Doctrine можно найти хорошее описание и множество примеров использования паттернов, описанных выше.
    Ответ написан
    6 комментариев
  • Как и когда выгодно покупать продукты JetBrains?

    miraage
    @miraage
    Старый прогер
    Тема повторяется из года в год.

    https://toster.ru/answer?answer_id=956226#answers_...


    Если работаете по найму и не можете себе позволить лицензию - попросите компанию ее Вам купить.
    500р/месяц в первый год, -20% за второй год, -40% в последующие, если подписка всё время активна - это совсем немного.

    Просто подумайте, сколько денег тратите в месяц на ненужную фигню, типа шоколадок/чипсов/сигарет. Сразу деньги на лицензию найдутся.
    Ответ написан
    Комментировать
  • VIM set encoding, fileencoding если файл в windows-1251

    @qnikst
    Возможно поможет (автоопределение utf-8 файлов)
    " {{{ Locale settings
    " if we have BOM => this is BOM
    if &fileencodings !~? "ucs-bom"
    	set fileencodings^=ucs-bom
    endif
    if &fileencodings !~? "utf-8"
    	let g:added_fenc_utf8 = 1
    	set fileencodings+=utf-8
    endif
    if &fileencodings !~? "default"
    	set fileencodins+=default
    endif
    " }}}

    определяемые кодировки
    set fileencodings=utf-8,cp1251,koi8-r,cp866


    Меню для быстрого выбора кодировки
    menu Encoding.koi8-r :e ++enc=koi8-r ++ff=unix<CR>
    menu Encoding.windows-1251 :e ++enc=cp1251 ++ff=dos<CR>
    menu Encoding.cp866 :e ++enc=cp866 ++ff=dos<CR>
    menu Encoding.utf-8 :e ++enc=utf8<CR>
    menu Encoding.koi8-u :e ++enc=koi8-u ++ff=unix<CR>
    
    map <F8> :emenu Encoding.<TAB>
    
    Ответ написан
    1 комментарий
  • Какой самый экономный дистрибутив Linux?

    @G_r_i_g_a
    Как то звучит совсем бредово. Для запуска браузера поставить виртуальную машину, в нее накатить операционную систему, в качестве браузера выбрать хром и при этом при всём говорить об экономии места??? :D
    Ты порнушку собрался смотреть? Накатывание дистрибутива тебе не даст ни обхода блокировок, ни конфиденциальности, т.к. не скроет твой трафик от провайдера. Для чего тебе браузер, жружий 1,5 Гб оперативной памяти при открытых двух вкладках, в виртуалке? Или хочешь туннель в туннель завернуть?
    Ответ написан
    2 комментария