Задать вопрос
  • Не запускается phpstorm.exe, как диагностировать проблему?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    1) Правый клик по "Компьютер", далее "Управление":
    5c66e043c6385793277577.png
    2) Также можно попробовать запустить с командной строки: перейдите в каталог phpstorm - "C:\Program Files\JetBrains\PhpStorm 2018.2\bin\", путь может отличатся. Далее нажмите в папке shift + правый клик мыши и выберите "открыть окно команд" и введите "phpstorm.exe". Возможно ошибка выведется в консоль(или как оно называется в windows, забыл) ).
    3) Также попробуйте отключить на время антивирус.
    4) Можно попробовать установить последнею версию java.
    Ответ написан
    Комментировать
  • Как подбирать цвета для тематики сайта?

    Dima_So
    @Dima_So
    Experientia est optima magistra
    Комментировать
  • Системы управления знаниями - есть ли что-то новое?

    3 комментария
  • Почему асимметричное шифрование слабее симметричного?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    При одинаковой длине ключей, симметричных и асимметричных, криптостойкость алгоритмов разная. И криптостойкость симметричных выше. Асимметричных ниже. ...

    Как это объяснить?

    Это объясняется тем, что у симметричных и асимметричных алгоритмов разная природа.
    Симметричные (например AES) используют ключ для генерации преобразования входного блока в выходной. Количество бит в ключе напрямую определяет размер пространства преобразований -- 128-битный ключ даёт 2128 возможных значений выходного блока для каждого входного.
    Асимметричные используют ключ по-разному, поэтому нужно рассматривать конкретный алгоритм. RSA использует биты ключа для хранения произведения двух простых чисел. 128-битный ключ даёт 64-битные простые числа. Факторизация 128-битного числа не требует перебора 2128 вариантов и занимает на обычном современном железе порядка секунды.
    Ответ написан
    Комментировать
  • Как деплоить небольшие проекты?

    @Stqs
    senior software developer
    вопросы у вас философские, на каждый можно отвести часы обсуждения
    Полноценный CI/CD поднимать не вижу смысла ввиду размеров

    вы ж все равно собираетесь какие-то скрипты мутить и чото выдумывать,
    какая разница это будут крон скрипты на сервере или джоба в дженкинсе? по-скорости написания - одно и тоже будет. так что по-моему размер тут не имеет значение
    единственное что имеет значение - насколько явно у вас описан процесс(алгоритм) билда/разворачивания приложений
    с этой точки зрения мое видение примерно такое:

    1) git не есть инструмент для развертывания по, git лишь для версионирования кода
    и по-идее результатом вашей работы должен быть не код в гитхабе, а какой-то вменяемый артефакт, готовый к деплою (docker-image, pip пакет, npm пакет, deb пакет, jar, war, zip в крайнем случае, и тд и тп). Если производить артефакты то вопрос с тегами отпадет сам собой - у вас будет артефакт какой-то версии и все
    сервер не должен знать ни про какие гиты и ни про какие-то теги в нем
    Здесь я бы рекомендовал паковать все в докер-имеджи хотя бы только потому, что сервер в итоге не будет знать ничего о зависимостях приложения, нужных библиотеках, ниочем вообще, вам нужно установить только докер
    Огромное преимущество использование докера - в Dockerfile вы вынуждены волей/неволей описать точно и явно все шаги требуемые для установки приложения. И что самое замечательное - это все будет храниться в том же репозитории, под контролем гит - шикарно.
    Артефакты желательно хранить в каком-то артефактории,
    но если реально все просто - то можно хранить несколько последних версий прямо на сервере в какой-нибудь папочке

    2) как только вы получили артефакт - его можно деплоить
    неплохо было б знать особенности вашего проекта, но грубо говоря допустим что достаточно его зааплоадить на сервер, положить в нужное место
    опять же с этим дженкинс справится на ура и займет у вас это все дело 10 минут . Если вы опишете логику в Jenkinsfile вы выиграете еще раз потому что процесс развертывания(алгоритм) будет описан опять же ЯВНО. И будет тоже под контролем гита. (Jenkins должен знать только в каком репозитарии и в каком месте ему искать Jenkinsfile)
    Если же вы будете крутить какой-то спрятанный cron скрипт на сервере - о нем никому ничего не будет известно. Поверьте уже через короткое время все это дело начнет усложнятся, что-то забудется, что-то измениться и это все вместе больно ударит вас по яйцам.

    В чем еще преимущество такого подхода: если вам нужно сделать roll-back на предыдущую версию вам не нужно собирать проект заново выкачивая все с гита, ведь у вас есть предыдущие артефакты, ролбек в таком случае вообще не проблема - просто указываем предыдущую версию артефакта и деплоим еще раз и все

    3) Env Variables
    когда приложение стартует - считывает все что ему нужно из переменных окружения
    деплой джоба может каждый раз эти переменные устанавливать перед тем как деплоить - это было бы тоже круто потому что вы сделали бы это знание так же явным

    Итого имеем
    - логика сборки проекта описана в Dockerfile и находится под гитом
    - логика деплоя находится в Jenkinsfile и находится под гитом, и что самое главное является кодом (Jenkinsfile пишем на груви, для простых вещей вам понадобиться 30 минут изучения и все)
    - на сервере мы ничего не устанавливали совершенно кроме самого докера
    - мы храним несколько версий нашего приложения на всякий случай и можем быстро откатиться не прибегая к гиту вообще
    - сервер не знает ничего о гитах
    - на сервере нет НИКАКОЙ дополнительной логики по разворачиванию вашего приложения
    - имея все это очень легко добавлять другие сервера для деплоя - что нам нужно - грубо говоря указать другой айпи и набор env variables к нему ( если они конечно отличаются)
    giphy.gif
    Ответ написан
    5 комментариев
  • [PHP] DataBase на ООП, как лучше написать?

    search
    @search
    мама говорит что я особенный
    Вот тут вкратце описаны все популярные шаблоны проектирования DB слоя https://gist.github.com/codedokode/c4cbc4d7dc8e45ea074a

    Выбирайте тот что вам по душе и кайфуйте.

    Попробуйте DataMapper. Он довольно прост в реализации (вам даже либа не пондобится. Ну разве что стандартная PDO) и меньше чем ActiveRecord склоняет программистов к говнокоду. Ну и гораздо менее тяжеловесен чем полноценная ОРМ. Для понимания и закрепления ООП - самое то.

    Только что попробовал поискать примеры в русском тырнете, но ничего вменяемого не нашел. Попробуйте сами погуглить ради интереса.

    Вот очень подробная статья на инглише https://www.sitepoint.com/integrating-the-data-mappers/

    А самый, на мой взгляд, лучший пример, предоставлен японцем (не пугайтесь иероглифов, смотрите код): https://github.com/hirak/pdo-datamapper-example
    Ответ написан
    2 комментария
  • Книги по построению БД?

    @Romanchitoz
    Это популярный вопрос.
    Хорошие книги по базам данных
    А так AVKOR предложил хорошие варианты.
    Ответ написан
    Комментировать
  • Книги по построению БД?

    @AVKor
    Kroenke, David M., Auer, David J. Database Processing.
    Connolly, Thomas M., Begg, Carolyn E. Database Systems: A Practical Approach to Design, Implementation, and Management.
    Ответ написан
    Комментировать
  • Средство автоматизации регрессионного тестирования?

    @taktik
    Sr. QA automation | SDET
    Как вариант можно посмотреть на CodeceptJS. Но сам не пользовался, про минусы не знаю.
    Есть статья на хабре - https://habr.com/ru/post/319656/
    Ответ написан
    1 комментарий
  • Какой CMS движок учить начинающему?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никакой. Изучайте разработку ПО, языки программирования, построение архитектуры ПО, алгоритмы, математику и т.д и т.п.

    UPD
    Приведу немного аргументации и очевидных вещей для тех, кто не понимает почему ответ именно такой. На самом деле все очень просто: в IT индустрии всё развивается и меняется очень, очень-очень быстро. И как следствие возникает проблема устаревания знаний и умений. Вот например 15-20 лет назад изучение языка программирования под названием "Дельфи" и популярной тогда его среды разработки для десктопных приложений вполне имело смысл и было популярным явлением, т.к. оно тогда довольно широко использовалось, или например Perl для создания сайтов. А где оно сейчас? Почему сегодня сайты пишутся на джаваскрипте? А как на счет десктопных приложений? А ведь те же десять лет назад попробуй скажи такое — как бы область деятельности не пришлось менять. И вот такое происходит просто с языками программирования за довольно короткое время. А основа любого CMS, фреймворка и иже с ними — это как раз таки язык программирования. И вот за время жизни языка программирования в нём случаются новые стандарты, изменения и прочее, а популярное ПО на нём переписываются десятки и сотни раз. Т.е., изменчивость продуктов какого либо языка зависит как от самого языка так и от его популярности. И чем они выше — тем чаще что-то меняется. Из всего этого вытекает очень логичный вывод: в долгосрочной перспективе выгоднее те знания, которые не устареют как можно дольше. И вот тут как раз таки знания разработки ПО и языков программирования, построения архитектура, алгоритмы и прочее имеют наибольший срок устаревания. А уж сколько тысяч лет математике можно и не вспоминать. А она, кстати именно благодаря стремительному развитию IT тоже развивается очень быстрыми темпами. Так вот, при наличии вот таких фундаментальных знаний можно легко и быстро осваивать любые новые фреймворки, CMS, языки программирования и прочее. А уж при наличии подробных мануалов, гугла, форумов и прочего большинство задач сводится тупо к вбиванию "как сделать YYY в ZZZ" в строке поиска (я вот например никак не могу понять ход мыслей людей, которые задают вопросы на форумах и прочих ресусах, ответ на которые выдается в первых же строчках гугла, складывается впечатление, что они вообще первый раз в интернете и про гугл не знают вообще ничего).
    Если есть желание именно в изучении CMS — ставим себе задачу и решаем её используя разные CMS, далее выбираем наиболее понравившуюся и пользуемся пока не надоест или не устареет. А после — повторить.

    Немного перефразирую сам вопрос и соседний популярный ответ:
    — Каким инструментом учиться пользоваться начинающему строителю?
    — Учись использовать молоток и гвозди, леса полно, доски везде используются.
    Вот только строительство — это не одни только доски, в которые забиваются гвозди, а еще архитектура, сопромат и иже с ним, экстерьер, интерьер, отопление, освещение, канализация, вентиляция и ещё куча всего. Аналогично и во всех остальных областях, в том числе и web разработке.
    Ответ написан
    9 комментариев
  • Как в PHP вывести маленькое дробное число без изменения количества знаков после запятой и перевода в формат "e"?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    > Есть какой-то еще способ заставить PHP просто вывести дробное число без изменения его внешнего вида?

    Нет

    Разумеется, никакого способа нет. Потому что никакого "внешнего вида" у дробных чисел не существует в природе. У них есть только внутренний вид, но вам на него смотреть не захочется. А для вывода в десятичном формате его всегда надо преобразовать и отформатировать.

    Если важен "исходный внешний вид", то следует работать с числами, как со строками, и тогда они будут всегда выводиться, как есть.
    Ответ написан
    Комментировать
  • Как вы вносите изменения в сайт после установки админки?

    @maniiii
    Тут описана работа из ide и в принципе это шикарный вариант. А тут обсуждалась связка только с шаблонами.
    Ответ написан
    Комментировать
  • Как вы вносите изменения в сайт после установки админки?

    one_day
    @one_day
    концепция модх хранить шаблоны в бд
    для работы локально нужно использовать такой костыль:
    # Snippet to include files from filesystem
    # [[includeFile? &file=`assets/templates/mytemplate/file.html`]]
     
    if ( !isset($file) || $file== "" ) return "No file specified."; //check if there's a file given.
     
    //Start the buffer
    ob_start();
     
    //include
    include $file;
     
    //get contents from the buffer
    $ob_contents = ob_get_contents();
     
    //and kill/delete the buffer
    ob_end_clean();
     
    //return it to MODx
    return $ob_contents;

    1) Создаём сниппет includeFile с этим кодом
    2) Создаём шаблон, и вызваем этот снипет передавая в &file - относительный пусть к файлу шаблона assets/templates/mytemplate/file.html
    Ответ написан
    Комментировать
  • Как работает функция сортировки usort?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Где хранить огромное количество закладок?

    DevMan
    @DevMan
    пользую raindrop.
    не без косяков, но в целом доволен.
    Ответ написан
    8 комментариев
  • Где найти интересные решения макетов для интерфейса сайта?

    romansergeevich
    @romansergeevich
    interfaces.pro - живые
    froala.com/design-blocks - шаблоны
    Ответ написан
    Комментировать
  • Как быстро передать 100 Гб между двумя ПК в разных странах?

    @Fixid
    https://www.resilio.com/
    Суммарно перегнал 6Тб
    Выжирает весь 200мб/с канал между компом в России и сервером в США
    Юзает UDP
    Ответ написан